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/a2wsgi/default.nix6
-rw-r--r--pkgs/development/python-modules/accelerate/default.nix9
-rw-r--r--pkgs/development/python-modules/aemet-opendata/default.nix4
-rw-r--r--pkgs/development/python-modules/aetcd/default.nix67
-rw-r--r--pkgs/development/python-modules/aioairzone/default.nix8
-rw-r--r--pkgs/development/python-modules/aioautomower/default.nix72
-rw-r--r--pkgs/development/python-modules/aiobotocore/default.nix4
-rw-r--r--pkgs/development/python-modules/aiocsv/default.nix10
-rw-r--r--pkgs/development/python-modules/aiodiscover/default.nix9
-rw-r--r--pkgs/development/python-modules/aioecowitt/default.nix11
-rw-r--r--pkgs/development/python-modules/aioelectricitymaps/default.nix4
-rw-r--r--pkgs/development/python-modules/aioesphomeapi/default.nix4
-rw-r--r--pkgs/development/python-modules/aiogram/default.nix10
-rw-r--r--pkgs/development/python-modules/aiohttp-zlib-ng/default.nix6
-rw-r--r--pkgs/development/python-modules/aiohue/default.nix4
-rw-r--r--pkgs/development/python-modules/aioopenexchangerates/default.nix10
-rw-r--r--pkgs/development/python-modules/aiopegelonline/default.nix11
-rw-r--r--pkgs/development/python-modules/aiopvapi/default.nix20
-rw-r--r--pkgs/development/python-modules/aioshelly/default.nix17
-rw-r--r--pkgs/development/python-modules/aiosqlite/default.nix2
-rw-r--r--pkgs/development/python-modules/aiotankerkoenig/default.nix64
-rw-r--r--pkgs/development/python-modules/aiounifi/default.nix6
-rw-r--r--pkgs/development/python-modules/aiowebostv/default.nix15
-rw-r--r--pkgs/development/python-modules/airium/default.nix42
-rw-r--r--pkgs/development/python-modules/anova-wifi/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible-runner/default.nix4
-rw-r--r--pkgs/development/python-modules/anyio/default.nix21
-rw-r--r--pkgs/development/python-modules/anywidget/default.nix4
-rw-r--r--pkgs/development/python-modules/approvaltests/default.nix5
-rw-r--r--pkgs/development/python-modules/appthreat-vulnerability-db/default.nix4
-rw-r--r--pkgs/development/python-modules/apycula/default.nix4
-rw-r--r--pkgs/development/python-modules/argcomplete/default.nix4
-rw-r--r--pkgs/development/python-modules/argilla/default.nix4
-rw-r--r--pkgs/development/python-modules/argparse-manpage/default.nix62
-rw-r--r--pkgs/development/python-modules/ariadne/default.nix25
-rw-r--r--pkgs/development/python-modules/asn1crypto/default.nix27
-rw-r--r--pkgs/development/python-modules/asteroid-filterbanks/default.nix54
-rw-r--r--pkgs/development/python-modules/astroid/default.nix4
-rw-r--r--pkgs/development/python-modules/async-tkinter-loop/default.nix2
-rw-r--r--pkgs/development/python-modules/async-upnp-client/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncua/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncwhois/default.nix15
-rw-r--r--pkgs/development/python-modules/autarco/default.nix27
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/autoit-ripper/default.nix17
-rw-r--r--pkgs/development/python-modules/awesomeversion/default.nix4
-rw-r--r--pkgs/development/python-modules/awkward/default.nix3
-rw-r--r--pkgs/development/python-modules/aws-sam-translator/default.nix19
-rw-r--r--pkgs/development/python-modules/awsiotpythonsdk/default.nix14
-rw-r--r--pkgs/development/python-modules/azure-eventgrid/default.nix18
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerservice/default.nix18
-rw-r--r--pkgs/development/python-modules/azure-mgmt-network/default.nix19
-rw-r--r--pkgs/development/python-modules/bbox/default.nix2
-rw-r--r--pkgs/development/python-modules/beartype/default.nix9
-rw-r--r--pkgs/development/python-modules/bellows/default.nix4
-rw-r--r--pkgs/development/python-modules/bitsandbytes/default.nix23
-rw-r--r--pkgs/development/python-modules/black/default.nix6
-rw-r--r--pkgs/development/python-modules/blackjax/default.nix4
-rw-r--r--pkgs/development/python-modules/blosc2/default.nix19
-rw-r--r--pkgs/development/python-modules/boschshcpy/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3/default.nix14
-rw-r--r--pkgs/development/python-modules/botocore-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix7
-rw-r--r--pkgs/development/python-modules/bqplot/default.nix4
-rw-r--r--pkgs/development/python-modules/brother/default.nix4
-rw-r--r--pkgs/development/python-modules/brotli-asgi/default.nix2
-rw-r--r--pkgs/development/python-modules/buildcatrust/default.nix4
-rw-r--r--pkgs/development/python-modules/cachier/default.nix11
-rw-r--r--pkgs/development/python-modules/cantools/default.nix4
-rw-r--r--pkgs/development/python-modules/catalogue/default.nix13
-rw-r--r--pkgs/development/python-modules/cepa/default.nix2
-rw-r--r--pkgs/development/python-modules/certbot/default.nix28
-rw-r--r--pkgs/development/python-modules/cffi/darwin-use-libffi-closures.diff11
-rw-r--r--pkgs/development/python-modules/cfn-lint/default.nix6
-rw-r--r--pkgs/development/python-modules/clarifai-grpc/default.nix4
-rw-r--r--pkgs/development/python-modules/click-default-group/default.nix38
-rw-r--r--pkgs/development/python-modules/cloudflare/default.nix4
-rw-r--r--pkgs/development/python-modules/cloudsmith-api/default.nix4
-rw-r--r--pkgs/development/python-modules/coffea/default.nix61
-rw-r--r--pkgs/development/python-modules/cohere/default.nix15
-rw-r--r--pkgs/development/python-modules/coinmetrics-api-client/default.nix4
-rw-r--r--pkgs/development/python-modules/concurrent-log-handler/default.nix2
-rw-r--r--pkgs/development/python-modules/connexion/default.nix4
-rw-r--r--pkgs/development/python-modules/correctionlib/default.nix5
-rw-r--r--pkgs/development/python-modules/courlan/default.nix11
-rw-r--r--pkgs/development/python-modules/crc/default.nix8
-rw-r--r--pkgs/development/python-modules/dask-awkward/default.nix23
-rw-r--r--pkgs/development/python-modules/dask-jobqueue/default.nix4
-rw-r--r--pkgs/development/python-modules/dask/default.nix4
-rw-r--r--pkgs/development/python-modules/datapoint/default.nix26
-rw-r--r--pkgs/development/python-modules/dateutil/default.nix10
-rw-r--r--pkgs/development/python-modules/dazl/default.nix74
-rw-r--r--pkgs/development/python-modules/dbt-bigquery/default.nix20
-rw-r--r--pkgs/development/python-modules/dbt-core/default.nix20
-rw-r--r--pkgs/development/python-modules/dbt-extractor/Cargo.lock364
-rw-r--r--pkgs/development/python-modules/dbt-extractor/default.nix18
-rw-r--r--pkgs/development/python-modules/dbt-postgres/default.nix12
-rw-r--r--pkgs/development/python-modules/dbt-redshift/default.nix14
-rw-r--r--pkgs/development/python-modules/dbt-semantic-interfaces/default.nix27
-rw-r--r--pkgs/development/python-modules/dbt-snowflake/default.nix18
-rw-r--r--pkgs/development/python-modules/dbus-fast/default.nix4
-rw-r--r--pkgs/development/python-modules/deebot-client/default.nix4
-rw-r--r--pkgs/development/python-modules/deluge-client/default.nix24
-rw-r--r--pkgs/development/python-modules/denonavr/default.nix10
-rw-r--r--pkgs/development/python-modules/dep-logic/default.nix6
-rw-r--r--pkgs/development/python-modules/diffsync/default.nix10
-rw-r--r--pkgs/development/python-modules/diffusers/default.nix4
-rw-r--r--pkgs/development/python-modules/django-bootstrap4/default.nix4
-rw-r--r--pkgs/development/python-modules/django-pattern-library/default.nix14
-rw-r--r--pkgs/development/python-modules/django-simple-history/default.nix4
-rw-r--r--pkgs/development/python-modules/docstr-coverage/default.nix40
-rw-r--r--pkgs/development/python-modules/dvc-ssh/default.nix4
-rw-r--r--pkgs/development/python-modules/dvc/default.nix4
-rw-r--r--pkgs/development/python-modules/editorconfig/default.nix32
-rw-r--r--pkgs/development/python-modules/edk2-pytool-library/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch8/default.nix4
-rw-r--r--pkgs/development/python-modules/elementpath/default.nix11
-rw-r--r--pkgs/development/python-modules/envs/default.nix6
-rw-r--r--pkgs/development/python-modules/essentials-openapi/default.nix65
-rw-r--r--pkgs/development/python-modules/essentials/default.nix38
-rw-r--r--pkgs/development/python-modules/eth-typing/default.nix11
-rw-r--r--pkgs/development/python-modules/eth-utils/default.nix14
-rw-r--r--pkgs/development/python-modules/eventlet/default.nix6
-rw-r--r--pkgs/development/python-modules/evohome-async/default.nix4
-rw-r--r--pkgs/development/python-modules/explorerscript/default.nix8
-rw-r--r--pkgs/development/python-modules/fakeredis/default.nix19
-rw-r--r--pkgs/development/python-modules/fastapi-sso/default.nix65
-rw-r--r--pkgs/development/python-modules/fastecdsa/default.nix4
-rw-r--r--pkgs/development/python-modules/fastembed/default.nix16
-rw-r--r--pkgs/development/python-modules/ffmpy/default.nix11
-rw-r--r--pkgs/development/python-modules/filedepot/default.nix17
-rw-r--r--pkgs/development/python-modules/flake8/default.nix15
-rw-r--r--pkgs/development/python-modules/flet-core/default.nix4
-rw-r--r--pkgs/development/python-modules/flet-runtime/default.nix4
-rw-r--r--pkgs/development/python-modules/flet/default.nix4
-rw-r--r--pkgs/development/python-modules/flufl/bounce.nix47
-rw-r--r--pkgs/development/python-modules/flufl/i18n.nix35
-rw-r--r--pkgs/development/python-modules/flufl/lock.nix21
-rw-r--r--pkgs/development/python-modules/fpyutils/default.nix13
-rw-r--r--pkgs/development/python-modules/frigidaire/default.nix4
-rw-r--r--pkgs/development/python-modules/frozenlist/default.nix31
-rw-r--r--pkgs/development/python-modules/fschat/default.nix4
-rw-r--r--pkgs/development/python-modules/fsspec-xrootd/default.nix65
-rw-r--r--pkgs/development/python-modules/furo/default.nix4
-rw-r--r--pkgs/development/python-modules/fx2/default.nix6
-rw-r--r--pkgs/development/python-modules/fypp/default.nix21
-rw-r--r--pkgs/development/python-modules/gerbonara/default.nix53
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix12
-rw-r--r--pkgs/development/python-modules/google-ai-generativelanguage/default.nix4
-rw-r--r--pkgs/development/python-modules/google-api-core/default.nix11
-rw-r--r--pkgs/development/python-modules/google-auth-oauthlib/default.nix25
-rw-r--r--pkgs/development/python-modules/google-auth/default.nix30
-rw-r--r--pkgs/development/python-modules/google-cloud-access-context-manager/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-appengine-logging/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-artifact-registry/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-asset/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-automl/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigtable/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-compute/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-container/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-datacatalog/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-dlp/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-firestore/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-iam-logging/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-language/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-monitoring/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-netapp/default.nix56
-rw-r--r--pkgs/development/python-modules/google-cloud-os-config/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-redis/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-resource-manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-secret-manager/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-securitycenter/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-shell/default.nix56
-rw-r--r--pkgs/development/python-modules/google-cloud-speech/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-tasks/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-testutils/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-texttospeech/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-trace/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-translate/default.nix18
-rw-r--r--pkgs/development/python-modules/google-cloud-videointelligence/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-vision/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-vpc-access/default.nix56
-rw-r--r--pkgs/development/python-modules/google-cloud-webrisk/default.nix57
-rw-r--r--pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-workflows/default.nix55
-rw-r--r--pkgs/development/python-modules/google-cloud-workstations/default.nix59
-rw-r--r--pkgs/development/python-modules/govee-local-api/default.nix44
-rw-r--r--pkgs/development/python-modules/gpaw/default.nix4
-rw-r--r--pkgs/development/python-modules/gradio-pdf/default.nix4
-rw-r--r--pkgs/development/python-modules/greeneye-monitor/default.nix4
-rw-r--r--pkgs/development/python-modules/grip/default.nix10
-rw-r--r--pkgs/development/python-modules/growattserver/default.nix11
-rw-r--r--pkgs/development/python-modules/grpc-google-iam-v1/default.nix30
-rw-r--r--pkgs/development/python-modules/grpcio-channelz/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-health-checking/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-reflection/default.nix4
-rw-r--r--pkgs/development/python-modules/gst-python/default.nix4
-rw-r--r--pkgs/development/python-modules/gvm-tools/default.nix8
-rw-r--r--pkgs/development/python-modules/h5io/default.nix52
-rw-r--r--pkgs/development/python-modules/h5py/default.nix2
-rw-r--r--pkgs/development/python-modules/habluetooth/default.nix4
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix8
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix4
-rw-r--r--pkgs/development/python-modules/hassil/default.nix4
-rw-r--r--pkgs/development/python-modules/hid/default.nix4
-rw-r--r--pkgs/development/python-modules/hishel/default.nix10
-rw-r--r--pkgs/development/python-modules/holidays/default.nix10
-rw-r--r--pkgs/development/python-modules/home-assistant-bluetooth/default.nix2
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-clusters/default.nix4
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-core/default.nix10
-rw-r--r--pkgs/development/python-modules/homeassistant-bring-api/default.nix45
-rw-r--r--pkgs/development/python-modules/http-message-signatures/default.nix4
-rw-r--r--pkgs/development/python-modules/httpx-auth/default.nix20
-rw-r--r--pkgs/development/python-modules/httpx-socks/default.nix4
-rw-r--r--pkgs/development/python-modules/identify/default.nix13
-rw-r--r--pkgs/development/python-modules/igraph/default.nix29
-rw-r--r--pkgs/development/python-modules/ihm/default.nix4
-rw-r--r--pkgs/development/python-modules/ilua/default.nix5
-rw-r--r--pkgs/development/python-modules/imagededup/default.nix47
-rw-r--r--pkgs/development/python-modules/imageio/default.nix4
-rw-r--r--pkgs/development/python-modules/iminuit/default.nix4
-rw-r--r--pkgs/development/python-modules/import-expression/default.nix45
-rw-r--r--pkgs/development/python-modules/intbitset/default.nix4
-rw-r--r--pkgs/development/python-modules/iodata/default.nix8
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix4
-rw-r--r--pkgs/development/python-modules/ipywidgets/default.nix29
-rw-r--r--pkgs/development/python-modules/jax/default.nix7
-rw-r--r--pkgs/development/python-modules/jaxlib/bin.nix51
-rw-r--r--pkgs/development/python-modules/jaxlib/default.nix261
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/jishaku/default.nix66
-rw-r--r--pkgs/development/python-modules/jsonargparse/default.nix4
-rw-r--r--pkgs/development/python-modules/julius/default.nix36
-rw-r--r--pkgs/development/python-modules/jupyter-collaboration/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab-lsp/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab-widgets/default.nix12
-rw-r--r--pkgs/development/python-modules/jwcrypto/default.nix16
-rw-r--r--pkgs/development/python-modules/kaggle/default.nix4
-rw-r--r--pkgs/development/python-modules/keyrings-cryptfile/default.nix2
-rw-r--r--pkgs/development/python-modules/knx-frontend/default.nix16
-rw-r--r--pkgs/development/python-modules/laces/default.nix38
-rw-r--r--pkgs/development/python-modules/langchain-community/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain-core/default.nix14
-rw-r--r--pkgs/development/python-modules/langchain/default.nix22
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix20
-rw-r--r--pkgs/development/python-modules/ledger-bitcoin/default.nix4
-rw-r--r--pkgs/development/python-modules/levenshtein/default.nix12
-rw-r--r--pkgs/development/python-modules/lexilang/default.nix41
-rw-r--r--pkgs/development/python-modules/limits/default.nix75
-rw-r--r--pkgs/development/python-modules/linear-garage-door/default.nix55
-rw-r--r--pkgs/development/python-modules/liquidctl/default.nix9
-rw-r--r--pkgs/development/python-modules/litellm/default.nix78
-rw-r--r--pkgs/development/python-modules/livereload/default.nix11
-rw-r--r--pkgs/development/python-modules/llm/default.nix33
-rw-r--r--pkgs/development/python-modules/llvmlite/default.nix7
-rw-r--r--pkgs/development/python-modules/lttng/default.nix29
-rw-r--r--pkgs/development/python-modules/lxml/default.nix49
-rw-r--r--pkgs/development/python-modules/markdown/default.nix4
-rw-r--r--pkgs/development/python-modules/markupsafe/default.nix38
-rw-r--r--pkgs/development/python-modules/matrix-nio/default.nix76
-rw-r--r--pkgs/development/python-modules/md-toc/default.nix15
-rw-r--r--pkgs/development/python-modules/mdformat-admon/default.nix38
-rw-r--r--pkgs/development/python-modules/mdformat-beautysh/default.nix9
-rw-r--r--pkgs/development/python-modules/mdformat-footnote/default.nix4
-rw-r--r--pkgs/development/python-modules/mdformat-frontmatter/default.nix7
-rw-r--r--pkgs/development/python-modules/mdformat-gfm/default.nix9
-rw-r--r--pkgs/development/python-modules/mdformat-mkdocs/default.nix4
-rw-r--r--pkgs/development/python-modules/mdformat-nix-alejandra/default.nix19
-rw-r--r--pkgs/development/python-modules/mdformat-simple-breaks/default.nix6
-rw-r--r--pkgs/development/python-modules/mdformat-tables/default.nix4
-rw-r--r--pkgs/development/python-modules/mdformat-toc/default.nix4
-rw-r--r--pkgs/development/python-modules/mdformat/default.nix116
-rw-r--r--pkgs/development/python-modules/medpy/default.nix64
-rw-r--r--pkgs/development/python-modules/meross-iot/default.nix11
-rw-r--r--pkgs/development/python-modules/meshtastic/default.nix4
-rw-r--r--pkgs/development/python-modules/mitmproxy/default.nix1
-rw-r--r--pkgs/development/python-modules/mizani/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix6
-rw-r--r--pkgs/development/python-modules/mkl-service/default.nix6
-rw-r--r--pkgs/development/python-modules/mlflow/default.nix4
-rw-r--r--pkgs/development/python-modules/mne-python/default.nix69
-rw-r--r--pkgs/development/python-modules/mobi/default.nix13
-rw-r--r--pkgs/development/python-modules/molecule/default.nix14
-rw-r--r--pkgs/development/python-modules/motionblinds/default.nix4
-rw-r--r--pkgs/development/python-modules/moto/default.nix4
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix2
-rw-r--r--pkgs/development/python-modules/mplhep/default.nix4
-rw-r--r--pkgs/development/python-modules/msprime/default.nix4
-rw-r--r--pkgs/development/python-modules/multidict/default.nix25
-rw-r--r--pkgs/development/python-modules/mypy/default.nix8
-rw-r--r--pkgs/development/python-modules/mypy/extensions.nix2
-rw-r--r--pkgs/development/python-modules/myuplink/default.nix47
-rw-r--r--pkgs/development/python-modules/nbconvert/default.nix6
-rw-r--r--pkgs/development/python-modules/neoteroi-mkdocs/default.nix63
-rw-r--r--pkgs/development/python-modules/niaaml/default.nix4
-rw-r--r--pkgs/development/python-modules/niaarm/default.nix4
-rw-r--r--pkgs/development/python-modules/nix-prefetch-github/default.nix19
-rw-r--r--pkgs/development/python-modules/nlpcloud/default.nix4
-rw-r--r--pkgs/development/python-modules/nomadnet/default.nix4
-rw-r--r--pkgs/development/python-modules/notebook/default.nix4
-rw-r--r--pkgs/development/python-modules/numba/default.nix6
-rw-r--r--pkgs/development/python-modules/numpy/default.nix10
-rw-r--r--pkgs/development/python-modules/numpyro/default.nix3
-rw-r--r--pkgs/development/python-modules/nvchecker/default.nix18
-rw-r--r--pkgs/development/python-modules/oauthlib/default.nix24
-rw-r--r--pkgs/development/python-modules/objax/default.nix21
-rw-r--r--pkgs/development/python-modules/oci/default.nix4
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix4
-rw-r--r--pkgs/development/python-modules/odp-amsterdam/default.nix4
-rw-r--r--pkgs/development/python-modules/oelint-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/openai-triton/0001-ptxas-disable-version-key-for-non-cuda-targets.patch27
-rw-r--r--pkgs/development/python-modules/openai-triton/default.nix26
-rw-r--r--pkgs/development/python-modules/openai/default.nix13
-rw-r--r--pkgs/development/python-modules/openaiauth/default.nix11
-rw-r--r--pkgs/development/python-modules/openbabel-bindings/default.nix3
-rw-r--r--pkgs/development/python-modules/openllm-client/default.nix6
-rw-r--r--pkgs/development/python-modules/openstacksdk/default.nix6
-rw-r--r--pkgs/development/python-modules/openstacksdk/tests.nix1
-rw-r--r--pkgs/development/python-modules/openusd/default.nix16
-rw-r--r--pkgs/development/python-modules/openwebifpy/default.nix4
-rw-r--r--pkgs/development/python-modules/opower/default.nix4
-rw-r--r--pkgs/development/python-modules/optimum/default.nix4
-rw-r--r--pkgs/development/python-modules/oralb-ble/default.nix27
-rw-r--r--pkgs/development/python-modules/orbax-checkpoint/default.nix78
-rw-r--r--pkgs/development/python-modules/orjson/default.nix23
-rw-r--r--pkgs/development/python-modules/osc-sdk-python/default.nix57
-rw-r--r--pkgs/development/python-modules/osc/default.nix3
-rw-r--r--pkgs/development/python-modules/oscscreen/default.nix33
-rw-r--r--pkgs/development/python-modules/oslo-context/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-log/default.nix4
-rw-r--r--pkgs/development/python-modules/osmpythontools/default.nix2
-rw-r--r--pkgs/development/python-modules/pandas/default.nix14
-rw-r--r--pkgs/development/python-modules/papermill/default.nix45
-rw-r--r--pkgs/development/python-modules/param/default.nix4
-rw-r--r--pkgs/development/python-modules/partd/default.nix57
-rw-r--r--pkgs/development/python-modules/pdoc/default.nix4
-rw-r--r--pkgs/development/python-modules/peaqevcore/default.nix11
-rw-r--r--pkgs/development/python-modules/pendulum/default.nix4
-rw-r--r--pkgs/development/python-modules/persistent/default.nix4
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/phonopy/default.nix11
-rw-r--r--pkgs/development/python-modules/phx-class-registry/default.nix4
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix4
-rw-r--r--pkgs/development/python-modules/pillow-heif/default.nix3
-rw-r--r--pkgs/development/python-modules/pinecone-client/default.nix4
-rw-r--r--pkgs/development/python-modules/pip-api/default.nix4
-rw-r--r--pkgs/development/python-modules/pipdeptree/default.nix4
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix4
-rw-r--r--pkgs/development/python-modules/plantuml-markdown/default.nix4
-rw-r--r--pkgs/development/python-modules/plexapi/default.nix13
-rw-r--r--pkgs/development/python-modules/plotnine/default.nix14
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/polars/Cargo.lock2507
-rw-r--r--pkgs/development/python-modules/polars/default.nix10
-rw-r--r--pkgs/development/python-modules/pony/default.nix18
-rw-r--r--pkgs/development/python-modules/pook/default.nix29
-rw-r--r--pkgs/development/python-modules/posthog/default.nix4
-rw-r--r--pkgs/development/python-modules/primepy/default.nix32
-rw-r--r--pkgs/development/python-modules/primer3/default.nix8
-rw-r--r--pkgs/development/python-modules/prisma/default.nix63
-rw-r--r--pkgs/development/python-modules/protobuf/default.nix3
-rw-r--r--pkgs/development/python-modules/proton-vpn-api-core/default.nix15
-rw-r--r--pkgs/development/python-modules/proton-vpn-connection/default.nix10
-rw-r--r--pkgs/development/python-modules/proton-vpn-logger/default.nix10
-rw-r--r--pkgs/development/python-modules/proton-vpn-network-manager/default.nix12
-rw-r--r--pkgs/development/python-modules/proton-vpn-session/default.nix10
-rw-r--r--pkgs/development/python-modules/psycopg2/default.nix12
-rw-r--r--pkgs/development/python-modules/psycopg2cffi/default.nix25
-rw-r--r--pkgs/development/python-modules/ptyprocess/default.nix27
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pure-pcapy3/default.nix6
-rw-r--r--pkgs/development/python-modules/puremagic/default.nix4
-rw-r--r--pkgs/development/python-modules/py-ecc/default.nix29
-rw-r--r--pkgs/development/python-modules/py-partiql-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/py-serializable/default.nix4
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix11
-rw-r--r--pkgs/development/python-modules/pyannote-audio/default.nix87
-rw-r--r--pkgs/development/python-modules/pyannote-core/default.nix44
-rw-r--r--pkgs/development/python-modules/pyannote-database/default.nix44
-rw-r--r--pkgs/development/python-modules/pyannote-metrics/default.nix56
-rw-r--r--pkgs/development/python-modules/pyannote-pipeline/default.nix52
-rw-r--r--pkgs/development/python-modules/pybrowsers/default.nix49
-rw-r--r--pkgs/development/python-modules/pycaption/default.nix4
-rw-r--r--pkgs/development/python-modules/pycfmodel/default.nix5
-rw-r--r--pkgs/development/python-modules/pyctr/default.nix4
-rw-r--r--pkgs/development/python-modules/pycyphal/default.nix74
-rw-r--r--pkgs/development/python-modules/pydantic/1.nix14
-rw-r--r--pkgs/development/python-modules/pydeck/default.nix6
-rw-r--r--pkgs/development/python-modules/pydrawise/default.nix4
-rw-r--r--pkgs/development/python-modules/pyflakes/default.nix21
-rw-r--r--pkgs/development/python-modules/pyformlang/default.nix4
-rw-r--r--pkgs/development/python-modules/pygit2/default.nix4
-rw-r--r--pkgs/development/python-modules/pygobject/3.nix3
-rw-r--r--pkgs/development/python-modules/pykka/default.nix4
-rw-r--r--pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix14
-rw-r--r--pkgs/development/python-modules/pylibjpeg/default.nix7
-rw-r--r--pkgs/development/python-modules/pylint-flask/default.nix39
-rw-r--r--pkgs/development/python-modules/pylint-plugin-utils/default.nix3
-rw-r--r--pkgs/development/python-modules/pylutron-caseta/default.nix4
-rw-r--r--pkgs/development/python-modules/pylutron/default.nix17
-rw-r--r--pkgs/development/python-modules/pymatreader/default.nix46
-rw-r--r--pkgs/development/python-modules/pymc/default.nix4
-rw-r--r--pkgs/development/python-modules/pymicrobot/default.nix4
-rw-r--r--pkgs/development/python-modules/pyngrok/default.nix4
-rw-r--r--pkgs/development/python-modules/pynose/default.nix30
-rw-r--r--pkgs/development/python-modules/pynuki/default.nix8
-rw-r--r--pkgs/development/python-modules/pyocr/default.nix19
-rw-r--r--pkgs/development/python-modules/pyocr/paths-cuneiform.patch101
-rw-r--r--pkgs/development/python-modules/pyocr/paths-tesseract.patch (renamed from pkgs/development/python-modules/pyocr/paths.patch)100
-rw-r--r--pkgs/development/python-modules/pyoctoprintapi/default.nix12
-rw-r--r--pkgs/development/python-modules/pyoverkiz/default.nix4
-rw-r--r--pkgs/development/python-modules/pypandoc/default.nix6
-rw-r--r--pkgs/development/python-modules/pyprecice/default.nix4
-rw-r--r--pkgs/development/python-modules/pyprobables/default.nix42
-rw-r--r--pkgs/development/python-modules/pyquil/default.nix65
-rw-r--r--pkgs/development/python-modules/pyquil/pydantic.patch28
-rw-r--r--pkgs/development/python-modules/pyrainbird/default.nix18
-rw-r--r--pkgs/development/python-modules/pyrisco/default.nix17
-rw-r--r--pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--pkgs/development/python-modules/pysaml2/default.nix27
-rw-r--r--pkgs/development/python-modules/pyscaffold/default.nix108
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-cookiecutter/default.nix62
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-custom-extension/default.nix63
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-django/default.nix60
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-dsproject/default.nix62
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-markdown/default.nix65
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-travis/default.nix60
-rw-r--r--pkgs/development/python-modules/pyschlage/default.nix6
-rw-r--r--pkgs/development/python-modules/pyswitchbot/default.nix4
-rw-r--r--pkgs/development/python-modules/pytedee-async/default.nix4
-rw-r--r--pkgs/development/python-modules/pytenable/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-asyncio/default.nix10
-rw-r--r--pkgs/development/python-modules/pytest-benchmark/default.nix33
-rw-r--r--pkgs/development/python-modules/pytest-describe/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-examples/default.nix1
-rw-r--r--pkgs/development/python-modules/pytest-harvest/default.nix68
-rw-r--r--pkgs/development/python-modules/pytest-httpx/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-mypy/default.nix19
-rw-r--r--pkgs/development/python-modules/pytest-testinfra/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-textual-snapshot/default.nix56
-rw-r--r--pkgs/development/python-modules/python-bring-api/default.nix45
-rw-r--r--pkgs/development/python-modules/python-docx/default.nix10
-rw-r--r--pkgs/development/python-modules/python-editor/default.nix19
-rw-r--r--pkgs/development/python-modules/python-engineio/default.nix4
-rw-r--r--pkgs/development/python-modules/python-homewizard-energy/default.nix4
-rw-r--r--pkgs/development/python-modules/python-matter-server/default.nix8
-rw-r--r--pkgs/development/python-modules/python-multipart/default.nix31
-rw-r--r--pkgs/development/python-modules/python-openstackclient/default.nix2
-rw-r--r--pkgs/development/python-modules/python-slugify/default.nix13
-rw-r--r--pkgs/development/python-modules/python-socketio/default.nix4
-rw-r--r--pkgs/development/python-modules/python-technove/default.nix64
-rw-r--r--pkgs/development/python-modules/python-telegram-bot/default.nix10
-rw-r--r--pkgs/development/python-modules/python-youtube/default.nix4
-rw-r--r--pkgs/development/python-modules/pytz/default.nix19
-rw-r--r--pkgs/development/python-modules/pyuavcan/default.nix51
-rw-r--r--pkgs/development/python-modules/pyunifiprotect/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvlx/default.nix6
-rw-r--r--pkgs/development/python-modules/qcodes-contrib-drivers/default.nix6
-rw-r--r--pkgs/development/python-modules/qcodes/default.nix14
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix5
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/Cargo.lock4053
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/default.nix67
-rw-r--r--pkgs/development/python-modules/quadprog/default.nix23
-rw-r--r--pkgs/development/python-modules/quil/default.nix65
-rw-r--r--pkgs/development/python-modules/rangeparser/default.nix40
-rw-r--r--pkgs/development/python-modules/redshift-connector/default.nix4
-rw-r--r--pkgs/development/python-modules/refery/default.nix45
-rw-r--r--pkgs/development/python-modules/reolink-aio/default.nix4
-rw-r--r--pkgs/development/python-modules/reqif/default.nix31
-rw-r--r--pkgs/development/python-modules/requests-cache/default.nix8
-rw-r--r--pkgs/development/python-modules/requests/default.nix6
-rw-r--r--pkgs/development/python-modules/requirements-detector/default.nix10
-rw-r--r--pkgs/development/python-modules/rerun-sdk/default.nix70
-rw-r--r--pkgs/development/python-modules/resend/default.nix47
-rw-r--r--pkgs/development/python-modules/rns/default.nix4
-rw-r--r--pkgs/development/python-modules/rokuecp/default.nix4
-rw-r--r--pkgs/development/python-modules/rova/default.nix16
-rw-r--r--pkgs/development/python-modules/s3transfer/default.nix8
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix4
-rw-r--r--pkgs/development/python-modules/sanic/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-build-core/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-misc/default.nix4
-rw-r--r--pkgs/development/python-modules/scrapy/default.nix21
-rw-r--r--pkgs/development/python-modules/securetar/default.nix4
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/shap/default.nix12
-rw-r--r--pkgs/development/python-modules/shtab/default.nix10
-rw-r--r--pkgs/development/python-modules/signify/default.nix28
-rw-r--r--pkgs/development/python-modules/sip/4.x.nix3
-rw-r--r--pkgs/development/python-modules/sip/default.nix15
-rw-r--r--pkgs/development/python-modules/skrl/default.nix4
-rw-r--r--pkgs/development/python-modules/skytemple-dtef/default.nix4
-rw-r--r--pkgs/development/python-modules/skytemple-files/default.nix4
-rw-r--r--pkgs/development/python-modules/skytemple-rust/default.nix6
-rw-r--r--pkgs/development/python-modules/skytemple-ssb-debugger/default.nix4
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix16
-rw-r--r--pkgs/development/python-modules/slackclient/default.nix4
-rw-r--r--pkgs/development/python-modules/slowapi/default.nix21
-rw-r--r--pkgs/development/python-modules/smartypants/default.nix27
-rw-r--r--pkgs/development/python-modules/smtpdfix/default.nix6
-rw-r--r--pkgs/development/python-modules/snakemake-interface-common/default.nix4
-rw-r--r--pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix4
-rw-r--r--pkgs/development/python-modules/somajo/default.nix4
-rw-r--r--pkgs/development/python-modules/spake2/default.nix38
-rw-r--r--pkgs/development/python-modules/sphinx-book-theme/default.nix6
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix5
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxemoji/default.nix2
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlmodel/default.nix4
-rw-r--r--pkgs/development/python-modules/stanio/default.nix4
-rw-r--r--pkgs/development/python-modules/starlette-wtf/default.nix4
-rw-r--r--pkgs/development/python-modules/stem/default.nix6
-rw-r--r--pkgs/development/python-modules/stravalib/default.nix10
-rw-r--r--pkgs/development/python-modules/streamlit/default.nix4
-rw-r--r--pkgs/development/python-modules/structlog/default.nix18
-rw-r--r--pkgs/development/python-modules/summarytools/default.nix5
-rw-r--r--pkgs/development/python-modules/sv-ttk/default.nix5
-rw-r--r--pkgs/development/python-modules/systembridgeconnector/default.nix47
-rw-r--r--pkgs/development/python-modules/systembridgemodels/default.nix51
-rw-r--r--pkgs/development/python-modules/tables/default.nix2
-rw-r--r--pkgs/development/python-modules/tempest/default.nix11
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix54
-rw-r--r--pkgs/development/python-modules/tensorboard/default.nix8
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix4
-rw-r--r--pkgs/development/python-modules/tesla-fleet-api/default.nix4
-rw-r--r--pkgs/development/python-modules/tesla-powerwall/default.nix16
-rw-r--r--pkgs/development/python-modules/teslajsonpy/default.nix4
-rw-r--r--pkgs/development/python-modules/testbook/default.nix5
-rw-r--r--pkgs/development/python-modules/textual-universal-directorytree/default.nix19
-rw-r--r--pkgs/development/python-modules/thermopro-ble/default.nix4
-rw-r--r--pkgs/development/python-modules/timm/default.nix19
-rw-r--r--pkgs/development/python-modules/tls-client/default.nix45
-rw-r--r--pkgs/development/python-modules/torch-audiomentations/default.nix46
-rw-r--r--pkgs/development/python-modules/torch-pitch-shift/default.nix44
-rw-r--r--pkgs/development/python-modules/torch/bin.nix27
-rw-r--r--pkgs/development/python-modules/torch/binary-hashes.nix98
-rw-r--r--pkgs/development/python-modules/torch/default.nix11
-rw-r--r--pkgs/development/python-modules/torch/fix-cmake-cuda-toolkit.patch30
-rw-r--r--pkgs/development/python-modules/torchaudio/bin.nix2
-rw-r--r--pkgs/development/python-modules/torchaudio/binary-hashes.nix98
-rw-r--r--pkgs/development/python-modules/torchaudio/default.nix6
-rwxr-xr-xpkgs/development/python-modules/torchaudio/prefetch.sh60
-rw-r--r--pkgs/development/python-modules/torchio/default.nix8
-rw-r--r--pkgs/development/python-modules/torchmetrics/default.nix4
-rw-r--r--pkgs/development/python-modules/torchvision/bin.nix2
-rw-r--r--pkgs/development/python-modules/torchvision/binary-hashes.nix74
-rw-r--r--pkgs/development/python-modules/torchvision/default.nix4
-rw-r--r--pkgs/development/python-modules/tplink-omada-client/default.nix6
-rw-r--r--pkgs/development/python-modules/tpm2-pytss/default.nix9
-rw-r--r--pkgs/development/python-modules/tqdm/default.nix1
-rw-r--r--pkgs/development/python-modules/transformers/default.nix4
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/tuf/default.nix6
-rw-r--r--pkgs/development/python-modules/twitchapi/default.nix8
-rw-r--r--pkgs/development/python-modules/txtai/default.nix4
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix11
-rw-r--r--pkgs/development/python-modules/types-aiobotocore-packages/default.nix719
-rw-r--r--pkgs/development/python-modules/types-aiobotocore/update.sh2
-rw-r--r--pkgs/development/python-modules/types-awscrt/default.nix4
-rw-r--r--pkgs/development/python-modules/types-html5lib/default.nix4
-rw-r--r--pkgs/development/python-modules/types-psycopg2/default.nix4
-rw-r--r--pkgs/development/python-modules/types-pytz/default.nix11
-rw-r--r--pkgs/development/python-modules/types-redis/default.nix4
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/types-setuptools/default.nix4
-rw-r--r--pkgs/development/python-modules/universal-silabs-flasher/default.nix11
-rw-r--r--pkgs/development/python-modules/unstructured/default.nix4
-rw-r--r--pkgs/development/python-modules/uqbar/default.nix59
-rw-r--r--pkgs/development/python-modules/urwid/default.nix11
-rw-r--r--pkgs/development/python-modules/urwidgets/default.nix14
-rw-r--r--pkgs/development/python-modules/urwidtrees/default.nix31
-rw-r--r--pkgs/development/python-modules/uvicorn/default.nix6
-rw-r--r--pkgs/development/python-modules/vallox-websocket-api/default.nix4
-rw-r--r--pkgs/development/python-modules/vector/default.nix4
-rw-r--r--pkgs/development/python-modules/vllm/default.nix139
-rw-r--r--pkgs/development/python-modules/wagtail-localize/default.nix6
-rw-r--r--pkgs/development/python-modules/wagtail-modeladmin/default.nix58
-rw-r--r--pkgs/development/python-modules/wcmatch/default.nix4
-rw-r--r--pkgs/development/python-modules/wcwidth/default.nix18
-rw-r--r--pkgs/development/python-modules/webdriver-manager/default.nix73
-rw-r--r--pkgs/development/python-modules/wheel-inspect/default.nix31
-rw-r--r--pkgs/development/python-modules/whenever/default.nix64
-rw-r--r--pkgs/development/python-modules/whoisdomain/default.nix40
-rw-r--r--pkgs/development/python-modules/widgetsnbextension/default.nix11
-rw-r--r--pkgs/development/python-modules/wyoming/default.nix4
-rw-r--r--pkgs/development/python-modules/xarray/default.nix10
-rw-r--r--pkgs/development/python-modules/xformers/default.nix4
-rw-r--r--pkgs/development/python-modules/xiaomi-ble/default.nix10
-rw-r--r--pkgs/development/python-modules/xknxproject/default.nix4
-rw-r--r--pkgs/development/python-modules/xrootd/default.nix41
-rw-r--r--pkgs/development/python-modules/xsdata/default.nix8
-rw-r--r--pkgs/development/python-modules/yamllint/default.nix16
-rw-r--r--pkgs/development/python-modules/yark/default.nix2
-rw-r--r--pkgs/development/python-modules/yasi/default.nix13
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--pkgs/development/python-modules/zamg/default.nix4
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--pkgs/development/python-modules/zigpy-deconz/default.nix4
-rw-r--r--pkgs/development/python-modules/zigpy-znp/default.nix11
-rw-r--r--pkgs/development/python-modules/zigpy/default.nix6
-rw-r--r--pkgs/development/python-modules/zodbpickle/default.nix4
608 files changed, 14772 insertions, 3560 deletions
diff --git a/pkgs/development/python-modules/a2wsgi/default.nix b/pkgs/development/python-modules/a2wsgi/default.nix
index 9f798a03edd6..dc19f1506958 100644
--- a/pkgs/development/python-modules/a2wsgi/default.nix
+++ b/pkgs/development/python-modules/a2wsgi/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "a2wsgi";
-  version = "1.10.0";
-  format = "pyproject";
+  version = "1.10.2";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yA7qK3Uu2kEhbGRbgqQ6YvYAbGM27zGn2xQDOZ7ffBY=";
+    hash = "sha256-RrLKQnz5rVOMFF4y6zaFfhy/R3ty/h7Q49NemMBgYbk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/accelerate/default.nix b/pkgs/development/python-modules/accelerate/default.nix
index f9a7be69f561..f4b17bbd5df2 100644
--- a/pkgs/development/python-modules/accelerate/default.nix
+++ b/pkgs/development/python-modules/accelerate/default.nix
@@ -2,8 +2,6 @@
 , lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
-, pythonAtLeast
 , pythonOlder
 , pytestCheckHook
 , setuptools
@@ -13,6 +11,8 @@
 , pyyaml
 , safetensors
 , torch
+, config
+, cudatoolkit
 , evaluate
 , parameterized
 , transformers
@@ -52,6 +52,8 @@ buildPythonPackage rec {
   preCheck = ''
     export HOME=$(mktemp -d)
     export PATH=$out/bin:$PATH
+  '' + lib.optionalString config.cudaSupport ''
+    export TRITON_PTXAS_PATH="${cudatoolkit}/bin/ptxas"
   '';
   pytestFlagsArray = [ "tests" ];
   disabledTests = [
@@ -74,6 +76,9 @@ buildPythonPackage rec {
   ] ++ 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"
diff --git a/pkgs/development/python-modules/aemet-opendata/default.nix b/pkgs/development/python-modules/aemet-opendata/default.nix
index 6960b390ed03..dcf232247be9 100644
--- a/pkgs/development/python-modules/aemet-opendata/default.nix
+++ b/pkgs/development/python-modules/aemet-opendata/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aemet-opendata";
-  version = "0.4.7";
+  version = "0.5.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Noltari";
     repo = "AEMET-OpenData";
     rev = "refs/tags/${version}";
-    hash = "sha256-kmU2HtNyYhfwWQv6asOtDpLZ6+O+eEICzBNLxUhAwaY=";
+    hash = "sha256-qj1rXM3yHYDQhtOkHfKEGS2ICjN7B2olD4og3uISjcw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aetcd/default.nix b/pkgs/development/python-modules/aetcd/default.nix
new file mode 100644
index 000000000000..8a2652450cd1
--- /dev/null
+++ b/pkgs/development/python-modules/aetcd/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, grpcio
+, protobuf
+, pytest-asyncio
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "aetcd";
+  version = "1.0.0a4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "martyanov";
+    repo = "aetcd";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-g49ppfh8dyGpZeu/HdTDX8RAk5VTcZmqENRpNY12qkg=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail "setuptools_scm==6.3.2" "setuptools_scm"
+    substituteInPlace setup.cfg \
+      --replace-fail "--cov=aetcd" ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    grpcio
+    protobuf
+  ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "aetcd"
+  ];
+
+  disabledTestPaths = [
+    # Tests require a running ectd instance
+    "tests/integration/"
+  ];
+
+  meta = with lib; {
+    description = "Python asyncio-based client for etcd";
+    homepage = "https://github.com/martyanov/aetcd";
+    changelog = "https://github.com/martyanov/aetcd/blob/v${version}/docs/changelog.rst";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aioairzone/default.nix b/pkgs/development/python-modules/aioairzone/default.nix
index c760300d7977..fdded411bee7 100644
--- a/pkgs/development/python-modules/aioairzone/default.nix
+++ b/pkgs/development/python-modules/aioairzone/default.nix
@@ -8,16 +8,16 @@
 
 buildPythonPackage rec {
   pname = "aioairzone";
-  version = "0.7.2";
-  format = "pyproject";
+  version = "0.7.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "Noltari";
-    repo = pname;
+    repo = "aioairzone";
     rev = "refs/tags/${version}";
-    hash = "sha256-ppzusDyGTh2HnDFjqXClyHzjK/TFKvGOWg5Nb2fDGnc=";
+    hash = "sha256-yIkP0eWyEJAZc2tJbwTvlU5b2pDta4SatmsTMPsSDt8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aioautomower/default.nix b/pkgs/development/python-modules/aioautomower/default.nix
new file mode 100644
index 000000000000..834fc55188c2
--- /dev/null
+++ b/pkgs/development/python-modules/aioautomower/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, mashumaro
+, poetry-core
+, pyjwt
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, syrupy
+}:
+
+buildPythonPackage rec {
+  pname = "aioautomower";
+  version = "2024.2.8";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "Thomas55555";
+    repo = "aioautomower";
+    rev = "refs/tags/${version}";
+    hash = "sha256-YdC6459lEvHDnX4L26n28oGzDSsa7/8UGHjnONhn9Yo=";
+  };
+
+  postPatch = ''
+    # Upstream doesn't set a version
+    substituteInPlace pyproject.toml \
+      --replace-fail 'version = "0.0.0"' 'version = "${version}"'
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    mashumaro
+    pyjwt
+  ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+    syrupy
+  ];
+
+  pythonImportsCheck = [
+    "aioautomower"
+  ];
+
+  pytestFlagsArray = [
+    "--snapshot-update"
+  ];
+
+  disabledTests = [
+    # File is missing
+    "test_standard_mower"
+  ];
+
+  meta = with lib; {
+    description = "Module to communicate with the Automower Connect API";
+    homepage = "https://github.com/Thomas55555/aioautomower";
+    changelog = "https://github.com/Thomas55555/aioautomower/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiobotocore/default.nix b/pkgs/development/python-modules/aiobotocore/default.nix
index 006bd358d7c2..9b8609c435af 100644
--- a/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/pkgs/development/python-modules/aiobotocore/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aiobotocore";
-  version = "2.8.0";
+  version = "2.9.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "aio-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-mVG3dCz9DnExteUFhvTGjZu81E0KbrObP3OX0w/OVzU=";
+    hash = "sha256-cODdmP/O24fNIugzl4AYdf3g4Gzwx3JseYKbZKgEPbc=";
   };
 
   # Relax version constraints: aiobotocore works with newer botocore versions
diff --git a/pkgs/development/python-modules/aiocsv/default.nix b/pkgs/development/python-modules/aiocsv/default.nix
index 8feda8b86aa8..8960dca9a8d7 100644
--- a/pkgs/development/python-modules/aiocsv/default.nix
+++ b/pkgs/development/python-modules/aiocsv/default.nix
@@ -6,24 +6,26 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aiocsv";
-  version = "1.2.5";
-  format = "setuptools";
+  version = "1.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "MKuranowski";
-    repo = pname;
+    repo = "aiocsv";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4QvVYcTpwhFH57r+iMgmYciWIC2prRnL+ih7qx/CA/U=";
+    hash = "sha256-5jMmT7XY+1VNbDNciZS6B/oQJFj4XmGvhDITKWHCuOQ=";
   };
 
   nativeBuildInputs = [
     cython
+    setuptools
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/aiodiscover/default.nix b/pkgs/development/python-modules/aiodiscover/default.nix
index 72a722a2230f..ee041198e8d9 100644
--- a/pkgs/development/python-modules/aiodiscover/default.nix
+++ b/pkgs/development/python-modules/aiodiscover/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aiodiscover";
-  version = "1.6.0";
+  version = "1.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,14 +24,9 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = "aiodiscover";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FbOqTUSqxSPSCn5zA4s47+M6OsVsqvUBZxTFvJ5PoHs=";
+    hash = "sha256-M3tus0r58YVJyi/S7UWq+OvaKke3hqkHGuYkUxEpVxg=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace '"pytest-runner>=5.2",' ""
-  '';
-
   nativeBuildInputs = [
     setuptools
   ];
diff --git a/pkgs/development/python-modules/aioecowitt/default.nix b/pkgs/development/python-modules/aioecowitt/default.nix
index 415a0b791a2a..b93333c2adb0 100644
--- a/pkgs/development/python-modules/aioecowitt/default.nix
+++ b/pkgs/development/python-modules/aioecowitt/default.nix
@@ -6,12 +6,13 @@
 , pytest-aiohttp
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aioecowitt";
-  version = "2024.2.0";
-  format = "setuptools";
+  version = "2024.2.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -19,9 +20,13 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-vKpzD6m0zG8yAghmoNKcufqoJUYOTxN3w+ix1ObuLpw=";
+    hash = "sha256-QfUawUtkNl2molropV8NSU7Kfm/D5/xuaPCjgm2TVOs=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     meteocalc
diff --git a/pkgs/development/python-modules/aioelectricitymaps/default.nix b/pkgs/development/python-modules/aioelectricitymaps/default.nix
index 753a108d93a7..fe16afab2258 100644
--- a/pkgs/development/python-modules/aioelectricitymaps/default.nix
+++ b/pkgs/development/python-modules/aioelectricitymaps/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aioelectricitymaps";
-  version = "0.3.0";
+  version = "0.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "jpbede";
     repo = "aioelectricitymaps";
     rev = "refs/tags/v${version}";
-    hash = "sha256-saIzVbgYx5nIM5fk7i3wu4X1gOIj81L/rRNq5Xl4cnw=";
+    hash = "sha256-q06B40c0uvSuzH/3YCoxg4p9aNIOPrphsoESktF+B14=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aioesphomeapi/default.nix b/pkgs/development/python-modules/aioesphomeapi/default.nix
index a640c978764a..7c81afa0f8b3 100644
--- a/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "21.0.1";
+  version = "21.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "esphome";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-HPnyFHHx1BahqzvRChT85BaG4eJM3qvTq2Tpbqb3SDI=";
+    hash = "sha256-uNVf0wnqVntjTxkNTilvb0v6h3VBCjd91wbLQJ6q71g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiogram/default.nix b/pkgs/development/python-modules/aiogram/default.nix
index e2da72982ca8..727cf4992810 100644
--- a/pkgs/development/python-modules/aiogram/default.nix
+++ b/pkgs/development/python-modules/aiogram/default.nix
@@ -22,16 +22,16 @@
 
 buildPythonPackage rec {
   pname = "aiogram";
-  version = "3.3.0";
+  version = "3.4.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "aiogram";
     repo = "aiogram";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TD4pDmM899zBOxllM0iju2u6IhmXxLYWBpjfWhewVFc=";
+    hash = "sha256-2of4KHdpAATOt0dCqI3AmTJtdeN5SdiWydeGjtagABI=";
   };
 
   nativeBuildInputs = [
@@ -66,7 +66,9 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "aiogram" ];
 
-  passthru.updateScript = gitUpdater { };
+  passthru.updateScript = gitUpdater {
+    rev-prefix = "v";
+  };
 
   meta = with lib; {
     description = "Modern and fully asynchronous framework for Telegram Bot API";
diff --git a/pkgs/development/python-modules/aiohttp-zlib-ng/default.nix b/pkgs/development/python-modules/aiohttp-zlib-ng/default.nix
index d97a21bf6589..bb5337203f6f 100644
--- a/pkgs/development/python-modules/aiohttp-zlib-ng/default.nix
+++ b/pkgs/development/python-modules/aiohttp-zlib-ng/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "aiohttp-zlib-ng";
-  version = "0.1.3";
+  version = "0.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,12 +19,12 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = "aiohttp-zlib-ng";
     rev = "refs/tags/v${version}";
-    hash = "sha256-t7T3KIGId5CoBciSkwu/sejW45i2EYtq1fHvNKNXlhA=";
+    hash = "sha256-XA2XSX9KA/oBzOLJrhj78uoy6ufLbVTENYZL3y/+fwU=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=aiohttp_zlib_ng --cov-report=term-missing:skip-covered" ""
+      --replace-fail " --cov=aiohttp_zlib_ng --cov-report=term-missing:skip-covered" ""
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiohue/default.nix b/pkgs/development/python-modules/aiohue/default.nix
index 56b911ee4f89..44ab0e99a9d0 100644
--- a/pkgs/development/python-modules/aiohue/default.nix
+++ b/pkgs/development/python-modules/aiohue/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aiohue";
-  version = "4.7.0";
+  version = "4.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-t48rUPAM0XpbDreCwHU/smoyhPtxhwrpDkb1170GkQM=";
+    hash = "sha256-/9kATmBNhKXt2PWB1pRdMJr+QzP23ajQK+jA8BuJ7J4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aioopenexchangerates/default.nix b/pkgs/development/python-modules/aioopenexchangerates/default.nix
index 6f18127ed167..668274ff85df 100644
--- a/pkgs/development/python-modules/aioopenexchangerates/default.nix
+++ b/pkgs/development/python-modules/aioopenexchangerates/default.nix
@@ -1,13 +1,14 @@
 { lib
 , aiohttp
 , aioresponses
-, pydantic_1
+, pydantic
 , buildPythonPackage
 , fetchFromGitHub
 , poetry-core
 , pytest-aiohttp
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 }:
 
 buildPythonPackage rec {
@@ -31,11 +32,16 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "pydantic"
   ];
 
   propagatedBuildInputs = [
     aiohttp
-    pydantic_1
+    pydantic
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/aiopegelonline/default.nix b/pkgs/development/python-modules/aiopegelonline/default.nix
index a596791e74c0..cb280b01d2e4 100644
--- a/pkgs/development/python-modules/aiopegelonline/default.nix
+++ b/pkgs/development/python-modules/aiopegelonline/default.nix
@@ -6,12 +6,13 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aiopegelonline";
-  version = "0.0.7";
-  format = "setuptools";
+  version = "0.0.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -19,9 +20,13 @@ buildPythonPackage rec {
     owner = "mib1185";
     repo = "aiopegelonline";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r+5b52N/vliKHx6qOLJ4lWcQt1TPEcn5Dz7cZNhRbNg=";
+    hash = "sha256-/k0TR0oUYZigi/2xRVLPFAIMAmXoLnE0NRlvEZrWylo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
   ];
diff --git a/pkgs/development/python-modules/aiopvapi/default.nix b/pkgs/development/python-modules/aiopvapi/default.nix
index 1a5689f3df43..d759a4db6a28 100644
--- a/pkgs/development/python-modules/aiopvapi/default.nix
+++ b/pkgs/development/python-modules/aiopvapi/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "aiopvapi";
-  version = "3.0.1";
+  version = "3.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,15 +18,9 @@ buildPythonPackage rec {
     owner = "sander76";
     repo = "aio-powerview-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+jhfp8gLEmL8TGPPN7QY8lw1SkV4sMSDb4VSq2OJ6PU=";
+    hash = "sha256-NfSGu4M0NWfCDc37zRwUjYtZz5jOtw3pYgF6fIsB/Yo=";
   };
 
-  postPatch = ''
-    # https://github.com/sander76/aio-powerview-api/pull/31
-    substituteInPlace setup.py \
-      --replace '"asyncio", ' ""
-  '';
-
   nativeBuildInputs = [
     setuptools
   ];
@@ -43,16 +37,6 @@ buildPythonPackage rec {
     "aiopvapi"
   ];
 
-  disabledTestPaths = [
-    # https://github.com/sander76/aio-powerview-api/issues/32
-    "tests/test_shade.py"
-    "tests/test_scene.py"
-    "tests/test_room.py"
-    "tests/test_apiresource.py"
-    "tests/test_hub.py"
-    "tests/test_scene_members.py"
-  ];
-
   meta = with lib; {
     description = "Python API for the PowerView API";
     homepage = "https://github.com/sander76/aio-powerview-api";
diff --git a/pkgs/development/python-modules/aioshelly/default.nix b/pkgs/development/python-modules/aioshelly/default.nix
index 832bd768a8bd..4e77bc9c6509 100644
--- a/pkgs/development/python-modules/aioshelly/default.nix
+++ b/pkgs/development/python-modules/aioshelly/default.nix
@@ -3,28 +3,37 @@
 , bluetooth-data-tools
 , buildPythonPackage
 , fetchFromGitHub
+, habluetooth
 , orjson
 , pythonOlder
+, setuptools
+, yarl
 }:
 
 buildPythonPackage rec {
   pname = "aioshelly";
-  version = "7.1.0";
-  format = "setuptools";
+  version = "8.0.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-W8oAJ7q4cAWq+RF4Hwd8cuPkEZQorsBnjmos5tVSBzc=";
+    hash = "sha256-3W5XfSOaKCCBjDHJh8IP/5I48py3j6i2O3FfhbcQzbY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     bluetooth-data-tools
+    habluetooth
     orjson
+    yarl
   ];
 
   # Project has no test
diff --git a/pkgs/development/python-modules/aiosqlite/default.nix b/pkgs/development/python-modules/aiosqlite/default.nix
index 2da12df9edbc..ad0863280a06 100644
--- a/pkgs/development/python-modules/aiosqlite/default.nix
+++ b/pkgs/development/python-modules/aiosqlite/default.nix
@@ -1,5 +1,4 @@
 { lib
-, aiounittest
 , buildPythonPackage
 , fetchFromGitHub
 , flit-core
@@ -26,7 +25,6 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    aiounittest
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/aiotankerkoenig/default.nix b/pkgs/development/python-modules/aiotankerkoenig/default.nix
new file mode 100644
index 000000000000..5915fdd6beb1
--- /dev/null
+++ b/pkgs/development/python-modules/aiotankerkoenig/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, aiohttp
+, aioresponses
+, buildPythonPackage
+, fetchFromGitHub
+, mashumaro
+, orjson
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, syrupy
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "aiotankerkoenig";
+  version = "0.4.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "jpbede";
+    repo = "aiotankerkoenig";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-BB1Cy4Aji5m06LlNj03as4CWF8RcYKAYy4oxPomOP68=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov" ""
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    mashumaro
+    orjson
+    yarl
+  ];
+
+  nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+    syrupy
+  ];
+
+  pythonImportsCheck = [
+    "aiotankerkoenig"
+  ];
+
+  meta = with lib; {
+    description = "Python module for interacting with tankerkoenig.de";
+    homepage = "https://github.com/jpbede/aiotankerkoenig";
+    changelog = "https://github.com/jpbede/aiotankerkoenig/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiounifi/default.nix b/pkgs/development/python-modules/aiounifi/default.nix
index cf1615734d20..93010f174c7c 100644
--- a/pkgs/development/python-modules/aiounifi/default.nix
+++ b/pkgs/development/python-modules/aiounifi/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aiounifi";
-  version = "69";
+  version = "71";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "Kane610";
     repo = "aiounifi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XYwdnG3OprHRZm3zQgoPw4VOzvvVflsQzi7+XQiASAU=";
+    hash = "sha256-KmxwCjmvDByCtsSQ+fQtdLS4ZDxtUaqc5zoOF9dsSq8=";
   };
 
   postPatch = ''
@@ -66,6 +66,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/Kane610/aiounifi";
     changelog = "https://github.com/Kane610/aiounifi/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/aiowebostv/default.nix b/pkgs/development/python-modules/aiowebostv/default.nix
index 7b00bfb5b0de..e264710e0c47 100644
--- a/pkgs/development/python-modules/aiowebostv/default.nix
+++ b/pkgs/development/python-modules/aiowebostv/default.nix
@@ -2,23 +2,28 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 , websockets
 }:
 
 buildPythonPackage rec {
   pname = "aiowebostv";
-  version = "0.3.3";
-  format = "setuptools";
+  version = "0.4.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
-    repo = pname;
+    repo = "aiowebostv";
     rev = "refs/tags/v${version}";
-    hash = "sha256-djcfYpHkhXhjQwJzHP3mNflKrcP6Yj3/z62qeXg67ss=";
+    hash = "sha256-VUznW+rMCZF1LbrQmEaOgdcX3YCm6Tf7yWlB8KNrjxU=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     websockets
   ];
diff --git a/pkgs/development/python-modules/airium/default.nix b/pkgs/development/python-modules/airium/default.nix
new file mode 100644
index 000000000000..4d84454a339c
--- /dev/null
+++ b/pkgs/development/python-modules/airium/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitLab
+, setuptools
+, pytestCheckHook
+, beautifulsoup4
+}:
+
+buildPythonPackage rec {
+  pname = "airium";
+  version = "0.2.6";
+  pyproject = true;
+
+  src = fetchFromGitLab {
+    owner = "kamichal";
+    repo = "airium";
+    rev = "v${version}";
+    hash = "sha256-qAU+rmj2ZHw7KdxVvRyponcPiRcyENfDyW1y9JTiwsY=";
+  };
+
+  propagatedBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    beautifulsoup4
+  ];
+
+  # tests require internet access, broken in sandbox
+  disabledTests = [
+    "test_get_bad_content_type"
+    "test_translate_remote_file"
+  ];
+
+  meta = with lib; {
+    description = "Bidirectional HTML-python translator";
+    homepage = "https://gitlab.com/kamichal/airium";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hulr ];
+  };
+}
diff --git a/pkgs/development/python-modules/anova-wifi/default.nix b/pkgs/development/python-modules/anova-wifi/default.nix
index a94ef0e3d624..a7cd85ca8b9e 100644
--- a/pkgs/development/python-modules/anova-wifi/default.nix
+++ b/pkgs/development/python-modules/anova-wifi/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "anova-wifi";
-  version = "0.11.6";
+  version = "0.11.7";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Lash-L";
     repo = "anova_wifi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zRMs0GAsLgKt1R0SfRFPchjmk87K2d8vBeHJs66k9xc=";
+    hash = "sha256-G87lNPyFnMO0YWKtLv/RgSZ0j0exFro24erwYv87V90=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ansible-runner/default.nix b/pkgs/development/python-modules/ansible-runner/default.nix
index 4a9ff67c3cba..899fd02e9392 100644
--- a/pkgs/development/python-modules/ansible-runner/default.nix
+++ b/pkgs/development/python-modules/ansible-runner/default.nix
@@ -23,14 +23,14 @@
 
 buildPythonPackage rec {
   pname = "ansible-runner";
-  version = "2.3.4";
+  version = "2.3.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eaG9E02BPI6jdAWZxv2WGhFCXOd1fy/XJc9W1qGnI2w=";
+    hash = "sha256-zZ3dV2WHDqPFRbbLR6qtXwTZowpijdP82082eijCIIU=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/anyio/default.nix b/pkgs/development/python-modules/anyio/default.nix
index f645a416e834..f8d992bed39b 100644
--- a/pkgs/development/python-modules/anyio/default.nix
+++ b/pkgs/development/python-modules/anyio/default.nix
@@ -12,6 +12,7 @@
 , exceptiongroup
 , idna
 , sniffio
+, typing-extensions
 
 # optionals
 , trio
@@ -28,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "anyio";
-  version = "4.1.0";
+  version = "4.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -37,7 +38,7 @@ buildPythonPackage rec {
     owner = "agronholm";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-PEDPliWJX3QypwsvJTAJhrQnJx8lWXQQSdyjN0I8L+I=";
+    hash = "sha256-9BxzdeQ5Yh4FDXGNVx9kiy7/fBmn8esvZkrK4wW4oGA=";
   };
 
   nativeBuildInputs = [
@@ -50,6 +51,7 @@ buildPythonPackage rec {
     sniffio
   ] ++ lib.optionals (pythonOlder "3.11") [
     exceptiongroup
+    typing-extensions
   ];
 
   passthru.optional-dependencies = {
@@ -77,16 +79,7 @@ buildPythonPackage rec {
     "-m" "'not network'"
   ];
 
-  disabledTests = [
-    # INTERNALERROR> AttributeError: 'NonBaseMultiError' object has no attribute '_exceptions'. Did you mean: 'exceptions'?
-    "test_exception_group_children"
-    "test_exception_group_host"
-    "test_exception_group_filtering"
-    # timing sensitive
-    # assert threading.active_count() == initial_count + 1
-    # assert 4 == (4 + 1)
-    "test_run_sync_from_thread_pooling"
-  ] ++ lib.optionals stdenv.isDarwin [
+  disabledTests = lib.optionals (stdenv.isx86_64 && stdenv.isDarwin) [
     # PermissionError: [Errno 1] Operation not permitted: '/dev/console'
     "test_is_block_device"
   ];
@@ -98,7 +91,9 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [ "anyio" ];
+  pythonImportsCheck = [
+    "anyio"
+  ];
 
   meta = with lib; {
     changelog = "https://github.com/agronholm/anyio/blob/${src.rev}/docs/versionhistory.rst";
diff --git a/pkgs/development/python-modules/anywidget/default.nix b/pkgs/development/python-modules/anywidget/default.nix
index 4d449bbe0303..d12798092413 100644
--- a/pkgs/development/python-modules/anywidget/default.nix
+++ b/pkgs/development/python-modules/anywidget/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "anywidget";
-  version = "0.9.0";
+  version = "0.9.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fV8yMQ6WGZyyf5c41B0MSwHusVx090SzukqX/WqbqG0=";
+    hash = "sha256-S6nB3Df17sD1Zrsp+1Di66FNeaVmE1rqt8hogjI/3I4=";
   };
 
   # We do not need the jupyterlab build dependency, because we do not need to
diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix
index 53ad86c4ea37..497d4a9aa4dd 100644
--- a/pkgs/development/python-modules/approvaltests/default.nix
+++ b/pkgs/development/python-modules/approvaltests/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "approvaltests";
-  version = "10.3.0";
+  version = "10.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "approvals";
     repo = "ApprovalTests.Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1f0iTwLREF20Khkd4/xEfxXINJIpc4LfszsvCblS/yM=";
+    hash = "sha256-/UsrUzCd4aYEQ4epZggk2O2esJCUG0DxRseK+s6yJd4=";
   };
 
   nativeBuildInputs = [
@@ -54,7 +54,6 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    "test_docstrings"
     # Tests expects paths below ApprovalTests.Python directory
     "test_received_filename"
     "test_pytest_namer"
diff --git a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
index 5101f0fcc0d0..a2257be2f428 100644
--- a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
+++ b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "appthreat-vulnerability-db";
-  version = "5.6.1";
+  version = "5.6.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "AppThreat";
     repo = "vulnerability-db";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BkJ1hA4SXuXYkJnSNaZ/JeX+PHdJylfwKkRzQsBxc24=";
+    hash = "sha256-aOHnuZdjXiIqd/SeQdVB1qB7v8DfnEFH0zHctA74MPw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/apycula/default.nix b/pkgs/development/python-modules/apycula/default.nix
index afa3cf9230d5..43289ba0751d 100644
--- a/pkgs/development/python-modules/apycula/default.nix
+++ b/pkgs/development/python-modules/apycula/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "apycula";
-  version = "0.10.0";
+  version = "0.11.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "Apycula";
-    hash = "sha256-nSj+c6IX57kwcDz/h2Sg4U8JlxZ5fq8k7hDL1zCE08g=";
+    hash = "sha256-yuDyW1JXavI6U3B3hx3kdHBuVCQd2rJJqgZ0z15ahaw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/argcomplete/default.nix b/pkgs/development/python-modules/argcomplete/default.nix
index 7c5bf5436996..2496934d571b 100644
--- a/pkgs/development/python-modules/argcomplete/default.nix
+++ b/pkgs/development/python-modules/argcomplete/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "argcomplete";
-  version = "3.1.6";
+  version = "3.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "kislyuk";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Akwa6dsf8w/Sw0ydUrqKEP5+dzHYX4hS8vcl7Gw4ePc=";
+    hash = "sha256-gOKuFv04Qv9ry7LEKC9zIe7kJvHNFhTBDUrL+zu8AYk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/argilla/default.nix b/pkgs/development/python-modules/argilla/default.nix
index 884502a83683..336b6f6db856 100644
--- a/pkgs/development/python-modules/argilla/default.nix
+++ b/pkgs/development/python-modules/argilla/default.nix
@@ -65,7 +65,7 @@
 }:
 let
   pname = "argilla";
-  version = "1.23.0";
+  version = "1.24.0";
   optional-dependencies = {
     server = [
       fastapi
@@ -126,7 +126,7 @@ buildPythonPackage {
     owner = "argilla-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-+Yamol0o2dgQoXbi8RKLn3YOZ2mcTFikPkHZDd3Nnqo=";
+    hash = "sha256-2baSX6b2BFYHXKg37WMHcGel3OTGsCJrulvyxmbdBek=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/argparse-manpage/default.nix b/pkgs/development/python-modules/argparse-manpage/default.nix
new file mode 100644
index 000000000000..59a303e0237b
--- /dev/null
+++ b/pkgs/development/python-modules/argparse-manpage/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+, packaging
+, tomli
+, pytestCheckHook
+, pip
+}:
+
+buildPythonPackage rec {
+  pname = "argparse-manpage";
+  version = "4.5";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "praiskup";
+    repo = "argparse-manpage";
+    rev = "v${version}";
+    hash = "sha256-9lriW+Yx/6ysoumloQglDm5JEcKNUWm422B3P6IE/EE=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    packaging
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    tomli
+  ];
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
+    tomli
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pip
+  ];
+
+  disabledTests = [
+    # TypeError: dist must be a Distribution instance
+    "test_old_example"
+    "test_old_example_file_name"
+  ];
+
+  pythonImportsCheck = [
+    "argparse_manpage"
+  ];
+
+  passthru.optional-dependencies = {
+    setuptools = [ setuptools ];
+  };
+
+  meta = with lib; {
+    description = "Automatically build man-pages for your Python project";
+    homepage = "https://github.com/praiskup/argparse-manpage";
+    changelog = "https://github.com/praiskup/argparse-manpage/blob/${src.rev}/NEWS";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nickcao ];
+    mainProgram = "argparse-manpage";
+  };
+}
diff --git a/pkgs/development/python-modules/ariadne/default.nix b/pkgs/development/python-modules/ariadne/default.nix
index ecfb0c32bc46..65b65c8643ec 100644
--- a/pkgs/development/python-modules/ariadne/default.nix
+++ b/pkgs/development/python-modules/ariadne/default.nix
@@ -1,32 +1,35 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, hatchling
 , freezegun
 , graphql-core
+, hatchling
+, httpx
 , pytest-asyncio
 , pytest-mock
 , pytestCheckHook
 , pythonOlder
-, snapshottest
+, python-multipart
 , starlette
+, syrupy
 , typing-extensions
 , werkzeug
 }:
 
 buildPythonPackage rec {
   pname = "ariadne";
-  version = "0.21.0";
-  format = "pyproject";
+  version = "0.22.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "mirumee";
-    repo = pname;
+    repo = "ariadne";
     rev = "refs/tags/${version}";
-    hash = "sha256-T5J0xAF33PDkC8sDOzHADpQJxwdXwKary0y/jaUJ9Fk=";
+    hash = "sha256-GMBtW2gZbF1m0BrKhYEkSaZYt5tIGmP/ipy6WC1H1pg=";
   };
+
   patches = [
     ./remove-opentracing.patch
   ];
@@ -43,10 +46,12 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     freezegun
+    httpx
     pytest-asyncio
     pytest-mock
     pytestCheckHook
-    snapshottest
+    python-multipart
+    syrupy
     werkzeug
   ];
 
@@ -54,6 +59,10 @@ buildPythonPackage rec {
     "ariadne"
   ];
 
+  pytestFlagsArray = [
+    "--snapshot-update"
+  ];
+
   disabledTests = [
     # TypeError: TestClient.request() got an unexpected keyword argument 'content'
     "test_attempt_parse_request_missing_content_type_raises_bad_request_error"
diff --git a/pkgs/development/python-modules/asn1crypto/default.nix b/pkgs/development/python-modules/asn1crypto/default.nix
index 58bfe11458db..426116f5775a 100644
--- a/pkgs/development/python-modules/asn1crypto/default.nix
+++ b/pkgs/development/python-modules/asn1crypto/default.nix
@@ -1,26 +1,40 @@
 { lib
 , buildPythonPackage
+, python
 , fetchFromGitHub
 
-# build-system
+# build system
 , setuptools
 
 # tests
 , pytestCheckHook
 }:
 
-buildPythonPackage {
+# 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
+with (
+  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=";
+  }
+);
+
+buildPythonPackage rec {
   pname = "asn1crypto";
-  version = "1.5.1-unstable-2023-11-03";
   pyproject = true;
+  inherit version;
 
   # Pulling from Github to run tests
   src = fetchFromGitHub {
     owner = "wbond";
     repo = "asn1crypto";
-    # https://github.com/wbond/asn1crypto/issues/269
-    rev = "b763a757bb2bef2ab63620611ddd8006d5e9e4a2";
-    hash = "sha256-11WajEDtisiJsKQjZMSd5sDog3DuuBzf1PcgSY+uuXY=";
+    inherit rev hash;
   };
 
   nativeBuildInputs = [
@@ -35,5 +49,6 @@ buildPythonPackage {
     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";
     license = lib.licenses.mit;
     homepage = "https://github.com/wbond/asn1crypto";
+    maintainers = with lib.maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/asteroid-filterbanks/default.nix b/pkgs/development/python-modules/asteroid-filterbanks/default.nix
new file mode 100644
index 000000000000..3a22c0fb5132
--- /dev/null
+++ b/pkgs/development/python-modules/asteroid-filterbanks/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, black
+, codecov
+, coverage
+, librosa
+, numpy
+, pre-commit
+, pytest
+, scipy
+, torch
+}:
+
+buildPythonPackage rec {
+  pname = "asteroid-filterbanks";
+  version = "0.4.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "asteroid-team";
+    repo = "asteroid-filterbanks";
+    rev = "v${version}";
+    hash = "sha256-Z5M2Xgj83lzqov9kCw/rkjJ5KXbjuP+FHYCjhi5nYFE=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    black
+    codecov
+    coverage
+    librosa
+    numpy
+    pre-commit
+    pytest
+    scipy
+    torch
+  ];
+
+  pythonImportsCheck = [ "asteroid_filterbanks" ];
+
+  meta = with lib; {
+    description = "The 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/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index 6d5c11104315..fd0812139e3c 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "3.0.1"; # Check whether the version is compatible with pylint
+  version = "3.0.2"; # Check whether the version is compatible with pylint
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = "astroid";
     rev = "refs/tags/v${version}";
-    hash = "sha256-z6FmB3I3VmiIx0MSsrkvHmDVv2h3CaaeXlDG3DewGXw=";
+    hash = "sha256-KTmFJKlymI1ACWk3UhbkZF/dB9W8/h6kaAfKLL3yiCA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/async-tkinter-loop/default.nix b/pkgs/development/python-modules/async-tkinter-loop/default.nix
index 9d469ca43bc0..2d4c0e538a68 100644
--- a/pkgs/development/python-modules/async-tkinter-loop/default.nix
+++ b/pkgs/development/python-modules/async-tkinter-loop/default.nix
@@ -4,6 +4,7 @@
 , python3Packages
 , poetry-core
 , tkinter
+, typing-extensions
 , pythonRelaxDepsHook
 , pytestCheckHook
 }:
@@ -26,6 +27,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     tkinter
+    typing-extensions
   ];
 
   pythonRemoveDeps = [
diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix
index 4d283d1d5ed8..fc4ee957d278 100644
--- a/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "async-upnp-client";
-  version = "0.38.1";
+  version = "0.38.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "StevenLooman";
     repo = "async_upnp_client";
     rev = "refs/tags/${version}";
-    hash = "sha256-tYGJwmzyVTry3KIMv1JjoBsE6kNw7FJb1nq1+39bEdU=";
+    hash = "sha256-gPA9u1BuMswfg5Nll8l6vrcTP2s3Zn9ESTbV+dOxlhA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/asyncua/default.nix b/pkgs/development/python-modules/asyncua/default.nix
index 774569543628..e2417b6a2463 100644
--- a/pkgs/development/python-modules/asyncua/default.nix
+++ b/pkgs/development/python-modules/asyncua/default.nix
@@ -6,7 +6,7 @@
 , cryptography
 , fetchFromGitHub
 , pyopenssl
-, pytest-asyncio
+, pytest-asyncio_0_21
 , pytest-mock
 , pytestCheckHook
 , python-dateutil
@@ -60,7 +60,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
-    pytest-asyncio
+    pytest-asyncio_0_21
     pytest-mock
   ];
 
diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix
index e462a0d0b49c..084c9ee8d306 100644
--- a/pkgs/development/python-modules/asyncwhois/default.nix
+++ b/pkgs/development/python-modules/asyncwhois/default.nix
@@ -6,24 +6,29 @@
 , pytestCheckHook
 , python-socks
 , pythonOlder
+, setuptools
 , tldextract
 , whodap
 }:
 
 buildPythonPackage rec {
   pname = "asyncwhois";
-  version = "1.0.9";
-  format = "setuptools";
+  version = "1.1.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "pogzyb";
     repo = "asyncwhois";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5T/h4YzODH7zFyQpG8qVZetTK7V+Ii9jc+MQFgMUA8w=";
+    hash = "sha256-rJwJhSOFrZZ3WXEZmPMfdosBBW/R5/PMqs0QLnsPMoI=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     python-socks
     tldextract
@@ -38,7 +43,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "python-socks[asyncio]" "python-socks"
+      --replace-fail "python-socks[asyncio]" "python-socks"
   '';
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/autarco/default.nix b/pkgs/development/python-modules/autarco/default.nix
index b5a8715f6ced..71cf0df61d77 100644
--- a/pkgs/development/python-modules/autarco/default.nix
+++ b/pkgs/development/python-modules/autarco/default.nix
@@ -3,35 +3,33 @@
 , aresponses
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
+, mashumaro
+, orjson
 , poetry-core
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
+, syrupy
 , yarl
 }:
 
 buildPythonPackage rec {
   pname = "autarco";
-  version = "0.2.0";
-  format = "pyproject";
+  version = "0.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "klaasnicolaas";
     repo = "python-autarco";
-    rev = "v${version}";
-    hash = "sha256-3f6N4b6WZPAUUQTuGeb20q0f7ZqDR+O24QRze5RpRlw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-IBf6Dw2Yf7m+5bQ72K0kPxGdtpl8JowQ9IO3gWS3Vso=";
   };
 
-  patches = [
-    # https://github.com/klaasnicolaas/python-autarco/pull/265
-    (fetchpatch {
-      name = "remove-setuptools-dependency.patch";
-      url = "https://github.com/klaasnicolaas/python-autarco/commit/bf40e8a4f64cd9c9cf72930260895537ea5b2adc.patch";
-      hash = "sha256-Fgijy7sd67LUIqh3qjQjyothnjdW7Zcil/bQSuVsBR8=";
-    })
+  pythonRelaxDeps = [
+    "orjson"
   ];
 
   postPatch = ''
@@ -43,10 +41,13 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
     aiohttp
+    mashumaro
+    orjson
     yarl
   ];
 
@@ -56,6 +57,7 @@ buildPythonPackage rec {
     aresponses
     pytest-asyncio
     pytestCheckHook
+    syrupy
   ];
 
   pythonImportsCheck = [
@@ -65,6 +67,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Module for the Autarco Inverter";
     homepage = "https://github.com/klaasnicolaas/python-autarco";
+    changelog = "https://github.com/klaasnicolaas/python-autarco/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index 429082e442b8..2bfbc16e8f91 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -27,7 +27,7 @@
 , pygobject3
 , pyopenssl
 , qrcode
-, pytest-asyncio
+, pytest-asyncio_0_21
 , python-snappy
 , pytestCheckHook
 , pythonOlder
@@ -72,7 +72,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     mock
-    pytest-asyncio
+    pytest-asyncio_0_21
     pytestCheckHook
   ] ++ passthru.optional-dependencies.scram
   ++ passthru.optional-dependencies.serialization
diff --git a/pkgs/development/python-modules/autoit-ripper/default.nix b/pkgs/development/python-modules/autoit-ripper/default.nix
index ed0c716bbc95..5b926c18c3c2 100644
--- a/pkgs/development/python-modules/autoit-ripper/default.nix
+++ b/pkgs/development/python-modules/autoit-ripper/default.nix
@@ -3,29 +3,29 @@
 , fetchPypi
 , pefile
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "autoit-ripper";
-  version = "1.1.1";
-  format = "setuptools";
+  version = "1.1.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-a30SDJdKoljWjV0O1sZ35NnQPFcJ0XOPcmTanozWpHY=";
+    hash = "sha256-+BHWDkeVewoRUgaHln5TyoajpCvJiowCiC2dFYyp1MA=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     pefile
   ];
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "pefile==2019.4.18" "pefile>=2019.4.18"
-  '';
-
   # Project has no tests
   doCheck = false;
 
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module to extract AutoIt scripts embedded in PE binaries";
     homepage = "https://github.com/nazywam/AutoIt-Ripper";
+    changelog = "https://github.com/nazywam/AutoIt-Ripper/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/awesomeversion/default.nix b/pkgs/development/python-modules/awesomeversion/default.nix
index 164b89ae4cc6..4cd972d95b8c 100644
--- a/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/pkgs/development/python-modules/awesomeversion/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "awesomeversion";
-  version = "23.11.0";
+  version = "24.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "ludeeus";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-glnM32ha5eXVpoaDkEsbwdH1oiG9qMxFwbtqLx+Kl98=";
+    hash = "sha256-bpLtHhpWc1VweVl5G8mM473Js3bXT11N3Zc0jiVqq5c=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index eb8e764c9bdc..5c174cb54d2b 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -1,4 +1,5 @@
 { lib
+, fsspec
 , stdenv
 , buildPythonPackage
 , pythonOlder
@@ -10,7 +11,6 @@
 , numpy
 , packaging
 , typing-extensions
-, fsspec
 , jax
 , jaxlib
 , numba
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     awkward-cpp
+    fsspec
     importlib-metadata
     numpy
     packaging
diff --git a/pkgs/development/python-modules/aws-sam-translator/default.nix b/pkgs/development/python-modules/aws-sam-translator/default.nix
index 12e0a8803552..9fad12faaac4 100644
--- a/pkgs/development/python-modules/aws-sam-translator/default.nix
+++ b/pkgs/development/python-modules/aws-sam-translator/default.nix
@@ -29,8 +29,8 @@ buildPythonPackage rec {
   };
 
   postPatch = ''
-    substituteInPlace pytest.ini \
-      --replace " --cov samtranslator --cov-report term-missing --cov-fail-under 95" ""
+    # don't try to use --cov or fail on new warnings
+    rm pytest.ini
   '';
 
   propagatedBuildInputs = [
@@ -49,14 +49,15 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  pythonImportsCheck = [
-    "samtranslator"
-  ];
-
   preCheck = ''
-    sed -i '2ienv =\n\tAWS_DEFAULT_REGION=us-east-1' pytest.ini
+    export AWS_DEFAULT_REGION=us-east-1
   '';
 
+  pytestFlagsArray = [
+    "tests"
+    ''-m "not slow"''
+  ];
+
   disabledTests = [
     # urllib3 2.0 compat
     "test_plugin_accepts_different_sar_client"
@@ -79,6 +80,10 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
+  pythonImportsCheck = [
+    "samtranslator"
+  ];
+
   meta = with lib; {
     description = "Python library to transform SAM templates into AWS CloudFormation templates";
     homepage = "https://github.com/aws/serverless-application-model";
diff --git a/pkgs/development/python-modules/awsiotpythonsdk/default.nix b/pkgs/development/python-modules/awsiotpythonsdk/default.nix
index 5907b74ba220..20da74babff2 100644
--- a/pkgs/development/python-modules/awsiotpythonsdk/default.nix
+++ b/pkgs/development/python-modules/awsiotpythonsdk/default.nix
@@ -2,12 +2,13 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
-  pname = "AWSIoTPythonSDK";
-  version = "1.5.2";
-  format = "setuptools";
+  pname = "awsiotpythonsdk";
+  version = "1.5.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -15,9 +16,13 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "aws-iot-device-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GHMnDRxXkaKDTaawwPtMqa7EZJ8Y35+ScgtfEP9PJGs=";
+    hash = "sha256-TUNIWGal7NQy2qmHVTiw6eX4t/Yt3NnM3HHztBwMfoM=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Module has no tests
   doCheck = false;
 
@@ -28,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python SDK for connecting to AWS IoT";
     homepage = "https://github.com/aws/aws-iot-device-sdk-python";
+    changelog = "https://github.com/aws/aws-iot-device-sdk-python/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/azure-eventgrid/default.nix b/pkgs/development/python-modules/azure-eventgrid/default.nix
index 4d9c50bb0594..a3588cbe9874 100644
--- a/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -5,27 +5,29 @@
 , fetchPypi
 , isodate
 , pythonOlder
-, typing-extensions
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.16.0";
-  format = "setuptools";
+  version = "4.17.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-o895Xjp/su2mc1WHbsQvWDe28sX/HhLtOb7BC5TFkyg=";
+    hash = "sha256-6/bqxCAvewKR5lI6ulFpP3THu9DH1rDEFwsRynDJ6+k=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     azure-common
     azure-core
     isodate
-  ]  ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
   ];
 
   # Module has no tests
@@ -37,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A 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";
+    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;
     maintainers = with maintainers; [ maxwilson ];
diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index ddb4b6987fac..94417bc47ec7 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -6,27 +6,29 @@
 , fetchPypi
 , isodate
 , pythonOlder
-, typing-extensions
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "29.0.0";
-  format = "setuptools";
+  version = "29.1.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0BiuK5JCj6rqfSYD8+GWca2k5SQ19MXEHR3TQcYzgoA=";
+    hash = "sha256-RohxeLsQNZM/BvpjEhwaydTFhx8gKuK4a8Svbh47NU8=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     azure-common
     azure-mgmt-core
     isodate
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
   ];
 
   # has no tests
@@ -38,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "This is the Microsoft Azure Container Service Management Client Library";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/containerservice/azure-mgmt-containerservice";
     changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-containerservice_${version}/sdk/containerservice/azure-mgmt-containerservice/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ maxwilson ];
diff --git a/pkgs/development/python-modules/azure-mgmt-network/default.nix b/pkgs/development/python-modules/azure-mgmt-network/default.nix
index a9e55d0e775a..d64d76abd1fe 100644
--- a/pkgs/development/python-modules/azure-mgmt-network/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-network/default.nix
@@ -5,27 +5,29 @@
 , fetchPypi
 , isodate
 , pythonOlder
-, typing-extensions
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-network";
-  version = "25.2.0";
-  format = "setuptools";
+  version = "25.3.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-EUxCktIjsdHiR7Qa9luNWjeTVn5q2/ojB3IFUiP0GCo=";
+    hash = "sha256-3OLK+xrg5WPgte/FN9yYp8Ctgk1CYeZL7XX3iBlt1cY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     azure-common
     azure-mgmt-core
     isodate
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
   ];
 
   # Module has no tests
@@ -41,7 +43,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Microsoft Azure SDK for Python";
-    homepage = "https://github.com/Azure/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 ];
   };
diff --git a/pkgs/development/python-modules/bbox/default.nix b/pkgs/development/python-modules/bbox/default.nix
index 93eb8d272887..5e601e43b564 100644
--- a/pkgs/development/python-modules/bbox/default.nix
+++ b/pkgs/development/python-modules/bbox/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-FrJ8FhlqwmnEB/QvPlkDfqZncNGPhwY9aagM9yv1LGs=";
   };
 
-  nativebuildInputs = [
+  nativeBuildInputs = [
     poetry-core
   ];
 
diff --git a/pkgs/development/python-modules/beartype/default.nix b/pkgs/development/python-modules/beartype/default.nix
index 3eba6f3317a4..b5091bf519d0 100644
--- a/pkgs/development/python-modules/beartype/default.nix
+++ b/pkgs/development/python-modules/beartype/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 , pytestCheckHook
 , pythonOlder
 , typing-extensions
@@ -8,16 +9,20 @@
 
 buildPythonPackage rec {
   pname = "beartype";
-  version = "0.16.4";
+  version = "0.17.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GtqJzy1usw624Vbu0utUkzV3gpN5ENdDgJGOU8Lq4L8=";
+    hash = "sha256-6RHhrn3kvM0VdF92Q2CdhzL2TeXC+4ROicu+0cWo1JU=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
     typing-extensions
diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix
index 24052663f1c2..f7431e6ea4eb 100644
--- a/pkgs/development/python-modules/bellows/default.nix
+++ b/pkgs/development/python-modules/bellows/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "bellows";
-  version = "0.37.6";
+  version = "0.38.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "bellows";
     rev = "refs/tags/${version}";
-    hash = "sha256-S3Yf0C+KInYoDaixlJf+9WSPIcEhfQCdcwEuNQYxugU=";
+    hash = "sha256-7aqzhujTn1TMYBA6+79Ok76yv8hXszuuZ7TjhJ6zbQw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/bitsandbytes/default.nix b/pkgs/development/python-modules/bitsandbytes/default.nix
index c511f01d6dcf..189b8a9c6c27 100644
--- a/pkgs/development/python-modules/bitsandbytes/default.nix
+++ b/pkgs/development/python-modules/bitsandbytes/default.nix
@@ -12,7 +12,7 @@
 
 let
   pname = "bitsandbytes";
-  version = "0.41.0";
+  version = "0.42.0";
 
   inherit (torch) cudaCapabilities cudaPackages cudaSupport;
   inherit (cudaPackages) backendStdenv cudaVersion;
@@ -43,15 +43,15 @@ let
 in
 buildPythonPackage {
   inherit pname version;
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "TimDettmers";
-    repo = pname;
+    repo = "bitsandbytes";
     rev = "refs/tags/${version}";
-    hash = "sha256-e6SK2ylITookO6bhpfdRp/V4y2S9rk6Lo1PD3xXrcmM=";
+    hash = "sha256-PZxsFJ6WpfeQqRQrRRBZfZfNY6/TfJFLBeknX24OXcU=";
   };
 
   postPatch = ''
@@ -73,8 +73,16 @@ buildPythonPackage {
   else
     ''make CUDA_VERSION=CPU cpuonly'';
 
-  nativeBuildInputs = [ setuptools wheel ] ++ lib.optionals torch.cudaSupport [ cuda-native-redist ];
-  buildInputs = lib.optionals torch.cudaSupport [ cuda-redist ];
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ] ++ lib.optionals torch.cudaSupport [
+    cuda-native-redist
+  ];
+
+  buildInputs = lib.optionals torch.cudaSupport [
+    cuda-redist
+  ];
 
   propagatedBuildInputs = [
     scipy
@@ -88,8 +96,9 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    homepage = "https://github.com/TimDettmers/bitsandbytes";
     description = "8-bit CUDA functions for PyTorch";
+    homepage = "https://github.com/TimDettmers/bitsandbytes";
+    changelog = "https://github.com/TimDettmers/bitsandbytes/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/black/default.nix b/pkgs/development/python-modules/black/default.nix
index 52cc36e989cc..73ce7f8d30fd 100644
--- a/pkgs/development/python-modules/black/default.nix
+++ b/pkgs/development/python-modules/black/default.nix
@@ -5,7 +5,6 @@
 , pythonOlder
 , pytestCheckHook
 , aiohttp
-, aiohttp-cors
 , click
 , colorama
 , hatch-fancy-pypi-readme
@@ -19,7 +18,6 @@
 , platformdirs
 , tokenize-rt
 , tomli
-, typed-ast
 , typing-extensions
 , uvloop
 }:
@@ -78,6 +76,10 @@ buildPythonPackage rec {
     parameterized
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
+  pytestFlagsArray = [
+    "-W" "ignore::DeprecationWarning"
+  ];
+
   preCheck = ''
     export PATH="$PATH:$out/bin"
 
diff --git a/pkgs/development/python-modules/blackjax/default.nix b/pkgs/development/python-modules/blackjax/default.nix
index cae11bd30c8d..7ecc4eda9519 100644
--- a/pkgs/development/python-modules/blackjax/default.nix
+++ b/pkgs/development/python-modules/blackjax/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "blackjax";
-  version = "1.1.0";
+  version = "1.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "blackjax-devs";
     repo = "blackjax";
     rev = "refs/tags/${version}";
-    hash = "sha256-VAsCDI0rEqx0UJlD82wbZ8KuMi6LOjUlO6YzqnOfAGk=";
+    hash = "sha256-6+ElY1F8oRCtWT4a/LIG6hYMthlq5mDx2baKAc6zIns=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/blosc2/default.nix b/pkgs/development/python-modules/blosc2/default.nix
index 1bc55fbdcf0a..d960139a7d6e 100644
--- a/pkgs/development/python-modules/blosc2/default.nix
+++ b/pkgs/development/python-modules/blosc2/default.nix
@@ -7,10 +7,14 @@
 , cython_3
 , ninja
 , oldest-supported-numpy
+, pkg-config
 , scikit-build
 , setuptools
 , wheel
 
+# c library
+, c-blosc2
+
 # propagates
 , msgpack
 , ndindex
@@ -26,15 +30,14 @@
 
 buildPythonPackage rec {
   pname = "blosc2";
-  version = "2.3.2";
-  format = "pyproject";
+  version = "2.5.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Blosc";
     repo = "python-blosc2";
     rev = "refs/tags/v${version}";
-    fetchSubmodules = true;
-    hash = "sha256-tRcyntJlmLPbqnX7nzdBQ/50uXy0fVLb2YGVOIwJjxU=";
+    hash = "sha256-yBgnNJU1q+FktIkpQn74LuRP19Ta/fNC60Z8TxzlWPk=";
   };
 
   postPatch = ''
@@ -47,12 +50,16 @@ buildPythonPackage rec {
     cython_3
     ninja
     oldest-supported-numpy
+    pkg-config
     scikit-build
     setuptools
     wheel
   ];
 
+  buildInputs = [ c-blosc2 ];
+
   dontUseCmakeConfigure = true;
+  env.CMAKE_ARGS = "-DUSE_SYSTEM_BLOSC2:BOOL=YES";
 
   propagatedBuildInputs = [
     msgpack
@@ -68,11 +75,13 @@ buildPythonPackage rec {
     torch
   ];
 
+  passthru.c-blosc2 = c-blosc2;
+
   meta = with lib; {
     description = "Python wrapper for the extremely fast Blosc2 compression library";
     homepage = "https://github.com/Blosc/python-blosc2";
     changelog = "https://github.com/Blosc/python-blosc2/releases/tag/v${version}";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ ris ];
   };
 }
diff --git a/pkgs/development/python-modules/boschshcpy/default.nix b/pkgs/development/python-modules/boschshcpy/default.nix
index 38a1338ab65b..f3fda2ef3c8b 100644
--- a/pkgs/development/python-modules/boschshcpy/default.nix
+++ b/pkgs/development/python-modules/boschshcpy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "boschshcpy";
-  version = "0.2.88";
+  version = "0.2.90";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "tschamm";
     repo = "boschshcpy";
     rev = "refs/tags/${version}";
-    hash = "sha256-tyx7VJGsU9YYNJQy1mly0AgwKULZ1BWeRzz1BDgXrUU=";
+    hash = "sha256-qI8fpQJ7fyZ6CX010cyPuoFj9UQM+jHOJ201GCjIwBU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix
index 16ac2560c60a..0cd99fd4abbe 100644
--- a/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -365,14 +365,14 @@
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.39";
+  version = "1.34.49";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ywCmGzid3oVaJllil8xm99ahgHUpi7iyA4GLOWOx0VM=";
+    hash = "sha256-l21X4VqWJUfeTnWo+2BRWYRpK3IQdDBbiK5Nelav4eU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index 717bb264283f..3a48019b2e99 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -1,29 +1,39 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchFromGitHub
 , botocore
 , jmespath
 , s3transfer
+, pythonRelaxDepsHook
 , setuptools
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.33.6"; # N.B: if you change this, change botocore and awscli to a matching version
+  version = "1.34.21"; # N.B: if you change this, change botocore and awscli to a matching version
   format = "pyproject";
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "boto";
     repo = pname;
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-oOrUVBh1sbaOibU8A+bGZ4z7IEiE4gjHwZ+8889Hv60=";
   };
 
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
   ];
 
+  pythonRelaxDeps = [
+    "botocore"
+    "s3transfer"
+  ];
+
   propagatedBuildInputs = [
     botocore
     jmespath
diff --git a/pkgs/development/python-modules/botocore-stubs/default.nix b/pkgs/development/python-modules/botocore-stubs/default.nix
index 133114b9cd21..0ee4bac8de62 100644
--- a/pkgs/development/python-modules/botocore-stubs/default.nix
+++ b/pkgs/development/python-modules/botocore-stubs/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "botocore-stubs";
-  version = "1.34.39";
+  version = "1.34.49";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "botocore_stubs";
     inherit version;
-    hash = "sha256-LK8KDVR97UkwZAjqlZ2Uq6Od2WC33hGdkGwoKdFJ7OY=";
+    hash = "sha256-St5+p0mKRFMiherfKD7Z3SvW540n/9VjKBj4pUgDs2w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index ea7ea23fc40d..bc1454b70ff1 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
 , python-dateutil
 , jmespath
@@ -11,12 +12,14 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.33.6"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.34.21"; # N.B: if you change this, change boto3 and awscli to a matching version
   format = "setuptools";
 
+  disabled = pythonOlder "3.8";
+
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-k4BWurgxgp+Q4J7NcN1rKVr9UrFIL1WC7noR2CQ9lmE=";
+    hash = "sha256-IZg7sEc6GRMBksUOxpdNVfDEqkinCUvPQPeILItpuPE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bqplot/default.nix b/pkgs/development/python-modules/bqplot/default.nix
index 4ae4aae24263..a38d600f0f3b 100644
--- a/pkgs/development/python-modules/bqplot/default.nix
+++ b/pkgs/development/python-modules/bqplot/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "bqplot";
-  version = "0.12.42";
+  version = "0.12.43";
 
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mUhvdMq8/f+EHf7kG6bStHeC2Fo0/zajSiI9Q//Apyk=";
+    hash = "sha256-8rRp0fA99PUYc8sEBqJLVs30qDX8WqlWB3b8Y2uLNEk=";
   };
 
   # upstream seems in flux for 0.13 release. they seem to want to migrate from
diff --git a/pkgs/development/python-modules/brother/default.nix b/pkgs/development/python-modules/brother/default.nix
index 54bb6bff1b32..c19190e815ce 100644
--- a/pkgs/development/python-modules/brother/default.nix
+++ b/pkgs/development/python-modules/brother/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "brother";
-  version = "3.0.0";
+  version = "4.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "bieniu";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-rRzcWT9DcNTBUYxyYYC7WORBbrkgj0toCp2e8ADUN5s=";
+    hash = "sha256-FLaSj1LQy/eWPxU1a4WGpsdoN5Zi4EwrgCmz8AXGeLc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/brotli-asgi/default.nix b/pkgs/development/python-modules/brotli-asgi/default.nix
index 8bdd814cfe5e..3bb6041422ae 100644
--- a/pkgs/development/python-modules/brotli-asgi/default.nix
+++ b/pkgs/development/python-modules/brotli-asgi/default.nix
@@ -6,6 +6,7 @@
 , starlette
 , brotli
 # check inputs
+, httpx
 , requests
 , mypy
 , brotlipy
@@ -35,6 +36,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "brotli_asgi" ];
 
   nativeCheckInputs = [
+    httpx
     requests
     mypy
     brotlipy
diff --git a/pkgs/development/python-modules/buildcatrust/default.nix b/pkgs/development/python-modules/buildcatrust/default.nix
index cb997ab80134..e56d50fb9d4d 100644
--- a/pkgs/development/python-modules/buildcatrust/default.nix
+++ b/pkgs/development/python-modules/buildcatrust/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "buildcatrust";
-  version = "0.1.3";
+  version = "0.2.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256:0s0m0fy943dakw9cbd40h46qmrhhgrcp292kppyb34m6y27sbagy";
+    hash = "sha256-mjX+T5xo6cD1GxJ49Tx7zthPbGPFPYaf2qcNKVHEzJA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cachier/default.nix b/pkgs/development/python-modules/cachier/default.nix
index 28159a16454c..0cfc20b73397 100644
--- a/pkgs/development/python-modules/cachier/default.nix
+++ b/pkgs/development/python-modules/cachier/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "cachier";
-  version = "2.2.2";
+  version = "2.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "python-cachier";
     repo = "cachier";
     rev = "v${version}";
-    hash = "sha256-zUZqT4SIwZRqhRS/wHIzIYVULnp5aYcytCQd17T0D/4=";
+    hash = "sha256-pgDv0ApFgaNR0amqJNwkTSPlqczOClk9D1uVzZW1B7g=";
   };
 
   pythonRemoveDeps = [ "setuptools" ];
@@ -41,10 +41,10 @@ buildPythonPackage rec {
   ];
 
   preCheck = ''
-    substituteInPlace pytest.ini \
+    substituteInPlace pyproject.toml \
       --replace  \
-        "--cov" \
-        "#--cov"
+        '"--cov' \
+        '#"--cov'
   '';
 
   nativeCheckInputs = [
@@ -77,7 +77,6 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [
     "cachier"
-    "cachier.scripts"
   ];
 
   meta = {
diff --git a/pkgs/development/python-modules/cantools/default.nix b/pkgs/development/python-modules/cantools/default.nix
index 05a52e2bca08..cb2b7f6fcce7 100644
--- a/pkgs/development/python-modules/cantools/default.nix
+++ b/pkgs/development/python-modules/cantools/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "cantools";
-  version = "39.4.3";
+  version = "39.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eqo9JGvFMouynGgfyBYtKAC+Be4JWz7blHD6FHj55QY=";
+    hash = "sha256-bo6Ri2ZxpiqfOZBUbs5WI+Hetx3vsc74WplVrDAdqZ4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/catalogue/default.nix b/pkgs/development/python-modules/catalogue/default.nix
index e1c1fed3bfdd..b417dba120f6 100644
--- a/pkgs/development/python-modules/catalogue/default.nix
+++ b/pkgs/development/python-modules/catalogue/default.nix
@@ -4,22 +4,27 @@
 , pytestCheckHook
 , pythonAtLeast
 , pythonOlder
+, setuptools
 , typing-extensions
 , zipp
 }:
 
 buildPythonPackage rec {
   pname = "catalogue";
-  version = "2.0.8";
-  format = "setuptools";
+  version = "2.0.10";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-syXHdlkgi/tq8bDZOxoapBEuG7KaTFztgWdYpyLw44g=";
+    hash = "sha256-T1baqUCRPT8J1YnBkcdOWm1Rdis6njfdU7dDev1s2hU=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
     typing-extensions
     zipp
diff --git a/pkgs/development/python-modules/cepa/default.nix b/pkgs/development/python-modules/cepa/default.nix
index ef7850caf211..5e28aca3c642 100644
--- a/pkgs/development/python-modules/cepa/default.nix
+++ b/pkgs/development/python-modules/cepa/default.nix
@@ -42,6 +42,6 @@ buildPythonPackage rec {
     description = "Controller library that allows applications to interact with Tor";
     homepage = "https://github.com/onionshare/cepa";
     license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ lourkeur ];
+    maintainers = with maintainers; [ bbjubjub ];
   };
 }
diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix
index 0689319840e6..8cda81ec6d30 100644
--- a/pkgs/development/python-modules/certbot/default.nix
+++ b/pkgs/development/python-modules/certbot/default.nix
@@ -27,18 +27,22 @@
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "2.7.4";
-  format = "setuptools";
+  version = "2.9.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "certbot";
+    repo = "certbot";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BZ7JqAciwbmkpbzR/qZHAraLJWWXNRN3Er4XvfU5kYs=";
+    hash = "sha256-yYB9Y0wniRgzNk5XatkjKayIPj7ienXsqOboKPwzIfk=";
   };
 
   sourceRoot = "${src.name}/${pname}";
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     configargparse
     acme
@@ -48,12 +52,7 @@ buildPythonPackage rec {
     josepy
     parsedatetime
     pyrfc3339
-    pyopenssl
     pytz
-    requests
-    six
-    zope-component
-    zope-interface
     setuptools # for pkg_resources
   ];
 
@@ -67,13 +66,8 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     "-o cache_dir=$(mktemp -d)"
-    # See https://github.com/certbot/certbot/issues/8746
-    "-W ignore::ResourceWarning"
-    "-W ignore::DeprecationWarning"
   ];
 
-  doCheck = true;
-
   makeWrapperArgs = [ "--prefix PATH : ${dialog}/bin" ];
 
   # certbot.withPlugins has a similar calling convention as python*.withPackages
@@ -92,9 +86,11 @@ buildPythonPackage rec {
     '';
 
   meta = with lib; {
-    homepage = src.meta.homepage;
+    homepage = "https://github.com/certbot/certbot";
+    changelog = "https://github.com/certbot/certbot/blob/${src.rev}/certbot/CHANGELOG.md";
     description = "ACME client that can obtain certs and extensibly update server configurations";
     platforms = platforms.unix;
+    mainProgram = "certbot";
     maintainers = with maintainers; [ domenkozar ];
     license = with licenses; [ asl20 ];
   };
diff --git a/pkgs/development/python-modules/cffi/darwin-use-libffi-closures.diff b/pkgs/development/python-modules/cffi/darwin-use-libffi-closures.diff
index fdbec4f6fe4a..4ef51274aa28 100644
--- a/pkgs/development/python-modules/cffi/darwin-use-libffi-closures.diff
+++ b/pkgs/development/python-modules/cffi/darwin-use-libffi-closures.diff
@@ -2,15 +2,22 @@ diff --git a/src/c/_cffi_backend.c b/src/c/_cffi_backend.c
 index 537271f..9c3bf94 100644
 --- a/src/c/_cffi_backend.c
 +++ b/src/c/_cffi_backend.c
-@@ -103,7 +103,7 @@
+@@ -103,11 +103,11 @@
  # define CFFI_CHECK_FFI_PREP_CIF_VAR 0
  # define CFFI_CHECK_FFI_PREP_CIF_VAR_MAYBE 0
  
 -#elif defined(__APPLE__) && defined(FFI_AVAILABLE_APPLE)
 +#elif defined(__APPLE__)
  
- # define CFFI_CHECK_FFI_CLOSURE_ALLOC __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)
+-# define CFFI_CHECK_FFI_CLOSURE_ALLOC __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)
++# define CFFI_CHECK_FFI_CLOSURE_ALLOC 1
  # define CFFI_CHECK_FFI_CLOSURE_ALLOC_MAYBE 1
+-# define CFFI_CHECK_FFI_PREP_CLOSURE_LOC __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)
++# define CFFI_CHECK_FFI_PREP_CLOSURE_LOC 1
+ # define CFFI_CHECK_FFI_PREP_CLOSURE_LOC_MAYBE 1
+-# define CFFI_CHECK_FFI_PREP_CIF_VAR __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)
++# define CFFI_CHECK_FFI_PREP_CIF_VAR 1
+ # define CFFI_CHECK_FFI_PREP_CIF_VAR_MAYBE 1
 @@ -6422,7 +6422,7 @@ static PyObject *b_callback(PyObject *self, PyObject *args)
      else
  #endif
diff --git a/pkgs/development/python-modules/cfn-lint/default.nix b/pkgs/development/python-modules/cfn-lint/default.nix
index 98f8208335e9..c98715f9ab02 100644
--- a/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/pkgs/development/python-modules/cfn-lint/default.nix
@@ -20,16 +20,16 @@
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.83.3";
+  version = "0.84.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "aws-cloudformation";
     repo = "cfn-lint";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0NHD8P+lKsrsEX/ypUS5dIwHOLudQcqkH8zG5RxANxE=";
+    hash = "sha256-N1bMJdPgl3Ohe4MhmFB5KH2FK4Vp2jB0RUscLFDvi2k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/clarifai-grpc/default.nix b/pkgs/development/python-modules/clarifai-grpc/default.nix
index ea3bf5c530d3..92008f65d9be 100644
--- a/pkgs/development/python-modules/clarifai-grpc/default.nix
+++ b/pkgs/development/python-modules/clarifai-grpc/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "clarifai-grpc";
-  version = "10.0.10";
+  version = "10.1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python-grpc";
     rev = "refs/tags/${version}";
-    hash = "sha256-IcMnzfkq4eSXh2KsxSog64RQbJhXkEWjma6LNkzDX0Y=";
+    hash = "sha256-VRI4mAYWJUP9kxf+xOlcys07Jsa7Zy9bP8BDKDEYli4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/click-default-group/default.nix b/pkgs/development/python-modules/click-default-group/default.nix
index 043627b0501e..49422099ad78 100644
--- a/pkgs/development/python-modules/click-default-group/default.nix
+++ b/pkgs/development/python-modules/click-default-group/default.nix
@@ -1,41 +1,45 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
 , click
+, fetchFromGitHub
 , pytestCheckHook
+, pythonOlder
+, flit-core
 }:
 
 buildPythonPackage rec {
   pname = "click-default-group";
-  version = "1.2.2";
-  format = "setuptools";
+  version = "1.2.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
-  # No tests in Pypi tarball
   src = fetchFromGitHub {
     owner = "click-contrib";
     repo = "click-default-group";
-    rev = "v${version}";
-    sha256 = "0nk39lmkn208w8kvq6f4h3a6qzxrrvxixahpips6ik3zflbkss86";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-9Vk4LdgLDAWG2YCQPLKR6PIVnULmpOoe7RtS8DgWARo=";
   };
 
-  patches = [
-    # make tests compatible with click 8
-    (fetchpatch {
-      url = "https://github.com/click-contrib/click-default-group/commit/9415c77d05cf7d16876e7d70a49a41a6189983b4.patch";
-      sha256 = "1czzma8nmwyxhwhnr8rfw5bjw6d46b3s5r5bfb8ly3sjwqjlwhw2";
-    })
+  nativeBuildInputs = [
+    flit-core
   ];
 
-  propagatedBuildInputs = [ click ];
+  propagatedBuildInputs = [
+    click
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  pythonImportsCheck = [ "click_default_group" ];
+  pythonImportsCheck = [
+    "click_default_group"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/click-contrib/click-default-group";
     description = "Group to invoke a command without explicit subcommand name";
+    homepage = "https://github.com/click-contrib/click-default-group";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jakewaksbaum ];
   };
diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix
index dc8eafe6326f..1bfdafaba5a4 100644
--- a/pkgs/development/python-modules/cloudflare/default.nix
+++ b/pkgs/development/python-modules/cloudflare/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "cloudflare";
-  version = "2.18.1";
+  version = "2.19.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dTD9HO26elFdfNMJxlyK1jKf4xWcz98/XrKI3EpUSsc=";
+    hash = "sha256-ENS5ayrd7gffo2meChZ9930qjVq3+G5lkOqm6ofW3Bg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cloudsmith-api/default.nix b/pkgs/development/python-modules/cloudsmith-api/default.nix
index 5e6aac6ff13b..0bc6b500fbca 100644
--- a/pkgs/development/python-modules/cloudsmith-api/default.nix
+++ b/pkgs/development/python-modules/cloudsmith-api/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "cloudsmith-api";
-  version = "2.0.7";
+  version = "2.0.9";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cloudsmith_api";
     inherit format version;
-    hash = "sha256-Vw5ifMJ+gwXecYjSe8QKkq+RtrBWxx3B/LdA80ZxuxU=";
+    hash = "sha256-i/1Z4W/cwrrgo3h85OWfz2X3Y7Odz9mJdRuXokuky/Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/coffea/default.nix b/pkgs/development/python-modules/coffea/default.nix
index b990801ab564..633b2d2c9847 100644
--- a/pkgs/development/python-modules/coffea/default.nix
+++ b/pkgs/development/python-modules/coffea/default.nix
@@ -1,29 +1,30 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchFromGitHub
 , hatchling
 , hatch-vcs
 , awkward
-, uproot
+, cachetools
+, cloudpickle
+, correctionlib
 , dask
 , dask-awkward
 , dask-histogram
-, correctionlib
-, pyarrow
-, fsspec
+, fsspec-xrootd
+, hist
+, lz4
 , matplotlib
+, mplhep
 , numba
 , numpy
-, scipy
-, tqdm
-, lz4
-, cloudpickle
-, toml
-, mplhep
 , packaging
 , pandas
-, hist
-, cachetools
+, pyarrow
+, scipy
+, toml
+, tqdm
+, uproot
 , distributed
 , pyinstrument
 , pytestCheckHook
@@ -31,19 +32,21 @@
 
 buildPythonPackage rec {
   pname = "coffea";
-  version = "2024.1.0";
+  version = "2024.2.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "CoffeaTeam";
     repo = "coffea";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jw8ACKXJZhj4fE7oppTxLUR4mhi+gh2ZD7lnUT3pcwc=";
+    hash = "sha256-TQ0aC2iFPWh24ce1WoVRluPvnwvBscLtFl8/wcW/Clg=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "numba>=0.58.1" "numba"
+      --replace-fail "numba>=0.58.1" "numba"
   '';
 
   nativeBuildInputs = [
@@ -53,28 +56,27 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     awkward
-    uproot
+    cachetools
+    cloudpickle
+    correctionlib
     dask
-    dask.optional-dependencies.array
     dask-awkward
     dask-histogram
-    correctionlib
-    pyarrow
-    fsspec
+    fsspec-xrootd
+    hist
+    lz4
     matplotlib
+    mplhep
     numba
     numpy
-    scipy
-    tqdm
-    lz4
-    cloudpickle
-    toml
-    mplhep
     packaging
     pandas
-    hist
-    cachetools
-  ];
+    pyarrow
+    scipy
+    toml
+    tqdm
+    uproot
+  ] ++ dask.optional-dependencies.array;
 
   nativeCheckInputs = [
     distributed
@@ -89,6 +91,7 @@ buildPythonPackage rec {
   meta = with lib; {
     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 ];
   };
diff --git a/pkgs/development/python-modules/cohere/default.nix b/pkgs/development/python-modules/cohere/default.nix
index 133721ca4d74..d6140a3f6d2c 100644
--- a/pkgs/development/python-modules/cohere/default.nix
+++ b/pkgs/development/python-modules/cohere/default.nix
@@ -14,25 +14,16 @@
 
 buildPythonPackage rec {
   pname = "cohere";
-  version = "4.37";
-  format = "pyproject";
+  version = "4.47";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eIAh2dmSxsMdGYXZXMyyd8cmWILErNekmz5H2ne0vsg=";
+    hash = "sha256-1okhIHnBpUW9SXsUPP96pWMoMfps9Bv3rMk7Sm7/uDk=";
   };
 
-  patches = [
-    # https://github.com/cohere-ai/cohere-python/pull/289
-    (fetchpatch {
-      name = "replace-poetry-with-poetry-core.patch";
-      url = "https://github.com/cohere-ai/cohere-python/commit/e86480336331c0cf6f67e26b0825467dfca5b277.patch";
-      hash = "sha256-P1Ioq5ypzT3tx6cxrI3ep34Fi4cUx88YkfJ5ErN3VHk=";
-    })
-  ];
-
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/pkgs/development/python-modules/coinmetrics-api-client/default.nix b/pkgs/development/python-modules/coinmetrics-api-client/default.nix
index 8c0a04f59cd2..5085489127ba 100644
--- a/pkgs/development/python-modules/coinmetrics-api-client/default.nix
+++ b/pkgs/development/python-modules/coinmetrics-api-client/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "coinmetrics-api-client";
-  version = "2024.1.17.17";
+  version = "2024.2.6.16";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "coinmetrics_api_client";
-    hash = "sha256-mYA67oiWWvEdNU2MrjtOPyDW3LbxH/mgh+MOuZg2ljo=";
+    hash = "sha256-rCj8nG7iQFJKs3Mic2wRZKBqx9T0lCPH5Po8k0nLppg=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/concurrent-log-handler/default.nix b/pkgs/development/python-modules/concurrent-log-handler/default.nix
index 7890eda6b465..85ee8bda114e 100644
--- a/pkgs/development/python-modules/concurrent-log-handler/default.nix
+++ b/pkgs/development/python-modules/concurrent-log-handler/default.nix
@@ -28,6 +28,6 @@ buildPythonPackage rec {
     description = "Python logging handler that allows multiple processes to safely write to the same log file concurrently";
     homepage = "https://pypi.org/project/concurrent-log-handler";
     license = licenses.asl20;
-    maintainers = [ maintainers.lourkeur ];
+    maintainers = [ maintainers.bbjubjub ];
   };
 }
diff --git a/pkgs/development/python-modules/connexion/default.nix b/pkgs/development/python-modules/connexion/default.nix
index 40a166c14be4..aa5b58570478 100644
--- a/pkgs/development/python-modules/connexion/default.nix
+++ b/pkgs/development/python-modules/connexion/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "connexion";
-  version = "3.0.5";
+  version = "3.0.6";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "spec-first";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-VaHdUxZ72JCm9zFMSEg3EW1uwfn+IIYy3yrtW9qC6rA=";
+    hash = "sha256-0EaJwxT80qLqlrxYk4H7Pf/UKq2pA/8HGL8OiqNA/2s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/correctionlib/default.nix b/pkgs/development/python-modules/correctionlib/default.nix
index 81a9a1fdb972..e378b71b43b8 100644
--- a/pkgs/development/python-modules/correctionlib/default.nix
+++ b/pkgs/development/python-modules/correctionlib/default.nix
@@ -7,6 +7,7 @@
 , setuptools
 , setuptools-scm
 , wheel
+, packaging
 , pybind11
 , pydantic
 , rich
@@ -28,11 +29,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     cmake
-    numpy
     scikit-build
     setuptools
     setuptools-scm
-    wheel
     pybind11
   ];
 
@@ -41,6 +40,8 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    numpy
+    packaging
     pydantic
     rich
   ];
diff --git a/pkgs/development/python-modules/courlan/default.nix b/pkgs/development/python-modules/courlan/default.nix
index d906f44c0f16..f6676d4b6896 100644
--- a/pkgs/development/python-modules/courlan/default.nix
+++ b/pkgs/development/python-modules/courlan/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "courlan";
-  version = "0.9.5";
+  version = "1.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ONw1suO/H11RbQDVGsEuveVD40F8a+b2oic8D8W1s1M=";
+    hash = "sha256-PDVRHDZSXLL5Qc1nCbejp0LtlfC55WyX7sDBb9wDUYM=";
   };
 
   propagatedBuildInputs = [
@@ -35,11 +35,12 @@ buildPythonPackage rec {
     "test_urlcheck"
   ];
 
-  # nixify path to the courlan binary in the test suite
+  # 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 "courlan_bin = \"courlan\"" "courlan_bin = \"$out/bin/courlan\"" \
+      --replace "/tmp" "$TMPDIR"
   '';
 
   pythonImportsCheck = [ "courlan" ];
@@ -48,7 +49,7 @@ buildPythonPackage rec {
     description = "Clean, filter and sample URLs to optimize data collection";
     homepage = "https://github.com/adbar/courlan";
     changelog = "https://github.com/adbar/courlan/blob/v${version}/HISTORY.md";
-    license = licenses.gpl3Plus;
+    license = licenses.asl20;
     maintainers = with maintainers; [ jokatzke ];
   };
 }
diff --git a/pkgs/development/python-modules/crc/default.nix b/pkgs/development/python-modules/crc/default.nix
index 6caabb97b6e5..2ff39e63981b 100644
--- a/pkgs/development/python-modules/crc/default.nix
+++ b/pkgs/development/python-modules/crc/default.nix
@@ -8,16 +8,16 @@
 
 buildPythonPackage rec {
   pname = "crc";
-  version = "6.1.0";
-  format = "pyproject";
+  version = "6.1.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Nicoretti";
-    repo = pname;
+    repo = "crc";
     rev = "refs/tags/${version}";
-    hash = "sha256-NfJGiVxvFPlecDB72/Dfe0yafBH9dghGQh/TAnbPzOA=";
+    hash = "sha256-GlXDDG8NZ3Lp0IwYKS0+fZG85uVdo4V8mZnCa+za02U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dask-awkward/default.nix b/pkgs/development/python-modules/dask-awkward/default.nix
index 0875430cc383..c1a944414f6d 100644
--- a/pkgs/development/python-modules/dask-awkward/default.nix
+++ b/pkgs/development/python-modules/dask-awkward/default.nix
@@ -2,13 +2,19 @@
 , awkward
 , buildPythonPackage
 , dask
+, dask-histogram
+, distributed
 , fetchFromGitHub
 , hatch-vcs
 , hatchling
+, hist
+, pandas
 , pyarrow
 , pytestCheckHook
 , pythonOlder
 , pythonRelaxDepsHook
+, typing-extensions
+, uproot
 }:
 
 buildPythonPackage rec {
@@ -38,12 +44,23 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     awkward
     dask
+    typing-extensions
   ];
 
+  passthru.optional-dependencies = {
+    io = [
+      pyarrow
+    ];
+  };
+
   checkInputs = [
+    dask-histogram
+    distributed
+    hist
+    pandas
     pytestCheckHook
-    pyarrow
-  ];
+    uproot
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   pythonImportsCheck = [
     "dask_awkward"
@@ -54,6 +71,8 @@ buildPythonPackage rec {
     "test_remote_double"
     "test_remote_single"
     "test_from_text"
+    # ValueError: not a ROOT file: first four bytes...
+    "test_basic_root_works"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/dask-jobqueue/default.nix b/pkgs/development/python-modules/dask-jobqueue/default.nix
index e403545839fd..dc668ea2639a 100644
--- a/pkgs/development/python-modules/dask-jobqueue/default.nix
+++ b/pkgs/development/python-modules/dask-jobqueue/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "dask-jobqueue";
-  version = "0.8.2";
+  version = "0.8.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-01QHoFoFNDR8XZWK50m5+FNb7FKYV9ATtuVknN5DkUo=";
+    hash = "sha256-9pI/nX/4lLlu+/cGEYss03/Td1HVZ+kcIt/T4uqpMgI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index 77f702506136..5fa73cea10f7 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -98,7 +98,9 @@ buildPythonPackage rec {
     # from panda[test]
     hypothesis
     pytest-asyncio
-  ] ++ lib.optionals (!arrow-cpp.meta.broken) [ # support is sparse on aarch64
+  ]
+  ++ passthru.optional-dependencies.dataframe
+  ++ lib.optionals (!arrow-cpp.meta.broken) [ # support is sparse on aarch64
     pyarrow
   ];
 
diff --git a/pkgs/development/python-modules/datapoint/default.nix b/pkgs/development/python-modules/datapoint/default.nix
index e93651be1625..9f9c0b55c235 100644
--- a/pkgs/development/python-modules/datapoint/default.nix
+++ b/pkgs/development/python-modules/datapoint/default.nix
@@ -1,25 +1,42 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch2
 , appdirs
 , pytz
 , requests
 , pytestCheckHook
 , requests-mock
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "datapoint";
-  version = "0.9.8";
-  format = "setuptools";
+  version = "0.9.9";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ejep";
     repo = "datapoint-python";
-    rev = "v${version}";
-    hash = "sha256-YC8KFTv6lnCqMfDw1LSova7XBgmKbR3TpPDAAbH9imw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-zUvwfBwJe8SaB96/Jz7Qeanz1mHmLVp2JW9qkR2dRnY=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # Hardcode version (instead of using versioneer)
+      url = "https://github.com/EJEP/datapoint-python/commit/57e649b26ecf39fb11f507eb920b1d059d433721.patch";
+      hash = "sha256-trOPtwlaJDeA4Kau4fwZCxqJiw96+T/le461t09O8io=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     appdirs
     pytz
@@ -38,6 +55,7 @@ buildPythonPackage rec {
   meta = {
     description = "Python interface to the Met Office's Datapoint API";
     homepage = "https://github.com/ejep/datapoint-python";
+    changelog = "https://github.com/EJEP/datapoint-python/blob/v${version}/CHANGELOG.md";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/dateutil/default.nix b/pkgs/development/python-modules/dateutil/default.nix
index d1dcac893a46..fb7280fd2a16 100644
--- a/pkgs/development/python-modules/dateutil/default.nix
+++ b/pkgs/development/python-modules/dateutil/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , setuptools-scm
 , six
 }:
@@ -14,6 +15,15 @@ buildPythonPackage rec {
     hash = "sha256-ASPKzBYnrhnd88J6XeW9Z+5FhvvdZEDZdI+Ku0g9PoY=";
   };
 
+  patches = [
+    # https://github.com/dateutil/dateutil/pull/1285
+    (fetchpatch {
+      url = "https://github.com/dateutil/dateutil/commit/f2293200747fb03d56c6c5997bfebeabe703576f.patch";
+      relative = "src";
+      hash = "sha256-BVEFGV/WGUz9H/8q+l62jnyN9VDnoSR71DdL+LIkb0o=";
+    })
+  ];
+
   nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/dazl/default.nix b/pkgs/development/python-modules/dazl/default.nix
new file mode 100644
index 000000000000..f913501e0da5
--- /dev/null
+++ b/pkgs/development/python-modules/dazl/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+
+, poetry-core
+
+, aiohttp
+, googleapis-common-protos
+, grpcio
+, protobuf
+, requests
+, semver
+, toposort
+
+#, async_exit_stack
+#, dataclasses
+, google-auth
+, oauthlib
+, prometheus-client
+, pygments
+, pyopenssl
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "dazl";
+  version = "7.11.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-IErym/Fd8G75NOa+xOyV87UNmEaB31XPvg8GWCSP7k8=";
+  };
+
+  patches = [
+    # Merged, remove this next release
+    (fetchpatch {
+      url = "https://github.com/digital-asset/dazl-client/pull/428.patch";
+      sha256 = "sha256-Gx9W1XkvMPg8FAOAXijDF5QnMbntk5mR0q5+o5i2KAE=";
+    })
+  ];
+
+  format = "pyproject";
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    googleapis-common-protos
+    grpcio
+    protobuf
+    requests
+    semver
+    toposort
+
+    # optional
+
+    #async-exit-stack
+    #dataclasses
+    google-auth
+    oauthlib
+    prometheus-client
+    pygments
+    pyopenssl
+    typing-extensions
+  ];
+
+  meta = with lib; {
+    description = "High-level Ledger API client for Daml ledgers";
+    license = licenses.apsl20;
+  };
+}
diff --git a/pkgs/development/python-modules/dbt-bigquery/default.nix b/pkgs/development/python-modules/dbt-bigquery/default.nix
index 9e276cf143f2..cb1d12bca703 100644
--- a/pkgs/development/python-modules/dbt-bigquery/default.nix
+++ b/pkgs/development/python-modules/dbt-bigquery/default.nix
@@ -1,29 +1,35 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
 , agate
+, buildPythonPackage
 , dbt-core
+, fetchFromGitHub
 , google-cloud-bigquery
-, google-cloud-storage
 , google-cloud-dataproc
+, google-cloud-storage
 , pytestCheckHook
+, pythonOlder
 , pythonRelaxDepsHook
+, setuptools
+, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "dbt-bigquery";
-  version = "1.7.2";
-  format = "setuptools";
+  version = "1.7.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "dbt-labs";
-    repo = pname;
+    repo = "dbt-bigquery";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CzRcnS/aECBq/9L8U+mLuHYo00HyBtKK6jmU8S03feM=";
+    hash = "sha256-bF2++Bs4pvqA3GW2xJkRNa1HkqnHBbMnKHHjo1TWboM=";
   };
 
   nativeBuildInputs = [
     pythonRelaxDepsHook
+    setuptools
   ];
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/dbt-core/default.nix b/pkgs/development/python-modules/dbt-core/default.nix
index 3eb4ff8b2927..e114d678b145 100644
--- a/pkgs/development/python-modules/dbt-core/default.nix
+++ b/pkgs/development/python-modules/dbt-core/default.nix
@@ -1,13 +1,12 @@
 { lib
-, python3
-, buildPythonPackage
-, fetchFromGitHub
 , agate
+, buildPythonPackage
 , cffi
 , click
 , colorama
 , dbt-extractor
 , dbt-semantic-interfaces
+, fetchFromGitHub
 , hologram
 , idna
 , isodate
@@ -19,10 +18,13 @@
 , packaging
 , pathspec
 , protobuf
+, python3
+, pythonOlder
 , pythonRelaxDepsHook
 , pytz
 , pyyaml
 , requests
+, setuptools
 , sqlparse
 , typing-extensions
 , urllib3
@@ -31,20 +33,23 @@
 
 buildPythonPackage rec {
   pname = "dbt-core";
-  version = "1.7.4";
-  format = "setuptools";
+  version = "1.7.8";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "dbt-labs";
-    repo = pname;
+    repo = "dbt-core";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+2tmLclBZrY9SDCKvQ4QNbI4665BtsrEI1sBSY3GVGM=";
+    hash = "sha256-EpKZiSDU5fivG3TIarirPgxRGQ3Sf1hwNvCKdQx25c0=";
   };
 
   sourceRoot = "${src.name}/core";
 
   nativeBuildInputs = [
     pythonRelaxDepsHook
+    setuptools
   ];
 
   pythonRelaxDeps = [
@@ -53,6 +58,7 @@ buildPythonPackage rec {
     "mashumaro"
     "networkx"
     "logbook"
+    "urllib3"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dbt-extractor/Cargo.lock b/pkgs/development/python-modules/dbt-extractor/Cargo.lock
index 8b297123703a..1d8c77883f24 100644
--- a/pkgs/development/python-modules/dbt-extractor/Cargo.lock
+++ b/pkgs/development/python-modules/dbt-extractor/Cargo.lock
@@ -4,18 +4,18 @@ version = 3
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.18"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "autocfg"
-version = "1.0.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "bitflags"
@@ -25,9 +25,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "cc"
-version = "1.0.69"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
 
 [[package]]
 name = "cfg-if"
@@ -37,9 +37,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.1"
+version = "0.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
 dependencies = [
  "cfg-if",
  "crossbeam-utils",
@@ -47,9 +47,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.1"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 dependencies = [
  "cfg-if",
  "crossbeam-epoch",
@@ -58,30 +58,29 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.5"
+version = "0.9.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
 dependencies = [
+ "autocfg",
  "cfg-if",
  "crossbeam-utils",
- "lazy_static",
  "memoffset",
  "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.5"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
 dependencies = [
  "cfg-if",
- "lazy_static",
 ]
 
 [[package]]
 name = "dbt-extractor"
-version = "0.4.1"
+version = "0.5.1"
 dependencies = [
  "pyo3",
  "quickcheck",
@@ -94,9 +93,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.6.1"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
 
 [[package]]
 name = "env_logger"
@@ -110,9 +109,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.3"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
@@ -121,95 +120,58 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
 
 [[package]]
 name = "indoc"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
-dependencies = [
- "indoc-impl",
- "proc-macro-hack",
-]
-
-[[package]]
-name = "indoc-impl"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
-dependencies = [
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "syn",
- "unindent",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
 
 [[package]]
 name = "libc"
-version = "0.2.101"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
 name = "lock_api"
-version = "0.4.4"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
 dependencies = [
+ "autocfg",
  "scopeguard",
 ]
 
 [[package]]
 name = "log"
-version = "0.4.14"
+version = "0.4.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-dependencies = [
- "cfg-if",
-]
+checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
 
 [[package]]
 name = "memchr"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 
 [[package]]
 name = "memoffset"
-version = "0.6.4"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.13.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
  "hermit-abi",
  "libc",
@@ -217,115 +179,100 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.9.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "parking_lot"
-version = "0.11.1"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
- "instant",
  "lock_api",
  "parking_lot_core",
 ]
 
 [[package]]
 name = "parking_lot_core"
-version = "0.8.3"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
+checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
 dependencies = [
  "cfg-if",
- "instant",
  "libc",
  "redox_syscall",
  "smallvec",
- "winapi",
-]
-
-[[package]]
-name = "paste"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
-dependencies = [
- "paste-impl",
- "proc-macro-hack",
-]
-
-[[package]]
-name = "paste-impl"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
-dependencies = [
- "proc-macro-hack",
+ "windows-targets",
 ]
 
 [[package]]
-name = "proc-macro-hack"
-version = "0.5.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.28"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "pyo3"
-version = "0.15.1"
+version = "0.19.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cf01dbf1c05af0a14c7779ed6f3aa9deac9c3419606ac9de537a2d649005720"
+checksum = "ffb88ae05f306b4bfcde40ac4a51dc0b05936a9207a4b75b798c7729c4258a59"
 dependencies = [
  "cfg-if",
  "indoc",
  "libc",
+ "memoffset",
  "parking_lot",
- "paste",
  "pyo3-build-config",
+ "pyo3-ffi",
  "pyo3-macros",
  "unindent",
 ]
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.15.1"
+version = "0.19.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf9e4d128bfbddc898ad3409900080d8d5095c379632fbbfbb9c8cfb1fb852b"
+checksum = "554db24f0b3c180a9c0b1268f91287ab3f17c162e15b54caaae5a6b3773396b0"
 dependencies = [
  "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-ffi"
+version = "0.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "922ede8759e8600ad4da3195ae41259654b9c55da4f7eec84a0ccc7d067a70a4"
+dependencies = [
+ "libc",
+ "pyo3-build-config",
 ]
 
 [[package]]
 name = "pyo3-macros"
-version = "0.15.1"
+version = "0.19.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67701eb32b1f9a9722b4bc54b548ff9d7ebfded011c12daece7b9063be1fd755"
+checksum = "8a5caec6a1dd355964a841fcbeeb1b89fe4146c87295573f94228911af3cc5a2"
 dependencies = [
+ "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.15.1"
+version = "0.19.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f44f09e825ee49a105f2c7b23ebee50886a9aee0746f4dd5a704138a64b0218a"
+checksum = "e0b78ccbb160db1556cdb6fd96c50334c5d4ec44dc5e0a968d0a1208fa0efa8b"
 dependencies = [
  "proc-macro2",
- "pyo3-build-config",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -347,75 +294,84 @@ checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.9"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "rand"
-version = "0.8.4"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "rand_core",
 ]
 
 [[package]]
 name = "rand_core"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
  "getrandom",
 ]
 
 [[package]]
 name = "rayon"
-version = "1.5.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
+checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
 dependencies = [
- "autocfg",
- "crossbeam-deque",
  "either",
  "rayon-core",
 ]
 
 [[package]]
 name = "rayon-core"
-version = "1.9.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
+checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
 dependencies = [
  "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "lazy_static",
  "num_cpus",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.10"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
 dependencies = [
  "bitflags",
 ]
 
 [[package]]
 name = "regex"
-version = "1.5.4"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
+checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -424,58 +380,75 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.25"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "smallvec"
-version = "1.6.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
 
 [[package]]
 name = "syn"
-version = "1.0.75"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7f58f7e8eaa0009c5fec437aabf511bd9933e4b2d7407bd05273c01a8906ea7"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
+name = "syn"
+version = "2.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d2faeef5759ab89935255b1a4cd98e0baf99d1085e37d36599c625dac49ae8e"
+
+[[package]]
 name = "thiserror"
-version = "1.0.26"
+version = "1.0.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2"
+checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.26"
+version = "1.0.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745"
+checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.26",
 ]
 
 [[package]]
 name = "tree-sitter"
-version = "0.19.5"
+version = "0.20.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad726ec26496bf4c083fff0f43d4eb3a2ad1bba305323af5ff91383c0b6ecac0"
+checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d"
 dependencies = [
  "cc",
  "regex",
@@ -483,49 +456,84 @@ dependencies = [
 
 [[package]]
 name = "tree-sitter-jinja2"
-version = "0.1.0"
-source = "git+https://github.com/dbt-labs/tree-sitter-jinja2?tag=v0.1.0#52da7b0b1480b23381ea84cf5ea3bf058dd6d8c4"
+version = "0.2.0"
+source = "git+https://github.com/dbt-labs/tree-sitter-jinja2?tag=v0.2.0#c9b092eff38bd6943254ad0373006d83c100a8c0"
 dependencies = [
  "cc",
  "tree-sitter",
 ]
 
 [[package]]
-name = "unicode-xid"
-version = "0.2.2"
+name = "unicode-ident"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "unindent"
-version = "0.1.7"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7"
+checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
 
 [[package]]
 name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
+version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
-name = "winapi"
-version = "0.3.9"
+name = "windows-targets"
+version = "0.48.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
 dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
 ]
 
 [[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
 
 [[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "windows_x86_64_msvc"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/pkgs/development/python-modules/dbt-extractor/default.nix b/pkgs/development/python-modules/dbt-extractor/default.nix
index 2656be91086d..74b1bb4d3d24 100644
--- a/pkgs/development/python-modules/dbt-extractor/default.nix
+++ b/pkgs/development/python-modules/dbt-extractor/default.nix
@@ -1,26 +1,29 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
-, rustPlatform
 , libiconv
+, pythonOlder
+, rustPlatform
 }:
 
 buildPythonPackage rec {
   pname = "dbt-extractor";
-  version = "0.4.1";
-  format = "setuptools";
+  version = "0.5.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "dbt_extractor";
     inherit version;
-    hash = "sha256-dbHGZWmewPH/zhuj13b3386AIVbyLnCnucjwtNfoD0I=";
+    hash = "sha256-zV2VV2qN6kGQJAqvmTajf9dLS3kTymmjw2j8RHK7fhM=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "tree-sitter-jinja2-0.1.0" = "sha256-lzA2iq4AK0iNwkLvbIt7Jm5WGFbMPFDi6i4AFDm0FOU=";
+      "tree-sitter-jinja2-0.2.0" = "sha256-Hfw85IcxwqFDKjkUxU+Zd9vyL7gaE0u5TZGKol2I9qg=";
     };
   };
 
@@ -43,6 +46,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A 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 ];
   };
diff --git a/pkgs/development/python-modules/dbt-postgres/default.nix b/pkgs/development/python-modules/dbt-postgres/default.nix
index 0478e748f1c6..b2852ce6d214 100644
--- a/pkgs/development/python-modules/dbt-postgres/default.nix
+++ b/pkgs/development/python-modules/dbt-postgres/default.nix
@@ -1,20 +1,28 @@
 { lib
-, buildPythonPackage
 , agate
+, buildPythonPackage
 , dbt-core
 , psycopg2
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage {
   pname = "dbt-postgres";
-  format = "setuptools";
+  pyproject = true;
 
   inherit (dbt-core) version src;
 
+  disabled = pythonOlder "3.7";
+
   sourceRoot = "${dbt-core.src.name}/plugins/postgres";
 
   env.DBT_PSYCOPG2_NAME = "psycopg2";
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     agate
     dbt-core
diff --git a/pkgs/development/python-modules/dbt-redshift/default.nix b/pkgs/development/python-modules/dbt-redshift/default.nix
index 186e0f1e0546..1ab2143953b7 100644
--- a/pkgs/development/python-modules/dbt-redshift/default.nix
+++ b/pkgs/development/python-modules/dbt-redshift/default.nix
@@ -1,29 +1,31 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
 , agate
 , boto3
+, buildPythonPackage
 , dbt-core
 , dbt-postgres
+, fetchFromGitHub
 , pytestCheckHook
 , pythonRelaxDepsHook
 , redshift-connector
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "dbt-redshift";
-  version = "1.7.1";
-  format = "setuptools";
+  version = "1.7.3";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "dbt-labs";
-    repo = pname;
+    repo = "dbt-redshift";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ONXrA8ABTYxkBm56TdFPhzjF/nngUQyecdgr2WO/5mE=";
+    hash = "sha256-3zj3wA1wxUjKSm1n7QE2g/VUuH3UuWlXCC68mOb2eso=";
   };
 
   nativeBuildInputs = [
     pythonRelaxDepsHook
+    setuptools
   ];
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix b/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
index 6dc4c6155adf..f569f24757a2 100644
--- a/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
+++ b/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
@@ -1,33 +1,40 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
 , click
 , dateutils
+, dbt-postgres
+, fetchFromGitHub
 , hatchling
+, hypothesis
 , importlib-metadata
 , jinja2
 , jsonschema
 , more-itertools
 , pydantic
+, pytestCheckHook
+, pythonOlder
 , pyyaml
 , typing-extensions
-, hypothesis
-, dbt-postgres
 }:
 
 buildPythonPackage rec {
   pname = "dbt-semantic-interfaces";
-  version = "0.4.2";
+  version = "0.4.3";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "dbt-labs";
-    repo = pname;
+    repo = "dbt-semantic-interfaces";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Q3aKUyXB+HzPCpwbJ66zDv92n04Gb0w7ivWfga3UX3s=";
+    hash = "sha256-mYAOAi0Qb89zp4o7vRdR7fw7vrlXt1TFVqGR09QcRSA=";
   };
 
+  nativeBuildInputs = [
+    hatchling
+  ];
+
   propagatedBuildInputs = [
     click
     dateutils
@@ -40,10 +47,6 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeBuildInputs = [
-    hatchling
-  ];
-
   nativeCheckInputs = [
     pytestCheckHook
     hypothesis
@@ -59,7 +62,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/dbt-labs/dbt-semantic-interfaces";
     license = licenses.asl20;
     maintainers = with maintainers; [ pbsds ];
-    # https://github.com/dbt-labs/dbt-semantic-interfaces/issues/134
-    broken = versionAtLeast pydantic.version "2";
   };
 }
diff --git a/pkgs/development/python-modules/dbt-snowflake/default.nix b/pkgs/development/python-modules/dbt-snowflake/default.nix
index 028050eea7c1..ef3cb866c2b2 100644
--- a/pkgs/development/python-modules/dbt-snowflake/default.nix
+++ b/pkgs/development/python-modules/dbt-snowflake/default.nix
@@ -1,23 +1,31 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
 , dbt-core
+, fetchFromGitHub
 , pytestCheckHook
+, pythonOlder
+, setuptools
 , snowflake-connector-python
 }:
 
 buildPythonPackage rec {
   pname = "dbt-snowflake";
-  version = "1.7.0";
-  format = "setuptools";
+  version = "1.7.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "dbt-labs";
-    repo = pname;
+    repo = "dbt-snowflake";
     rev = "refs/tags/v${version}";
-    hash = "sha256-v+9uxHeROZU7vZvvB7UYUFNM6ez97qiZmgDiunUKf04=";
+    hash = "sha256-OyUBqSNHMedCDsY280O8VAmxeyeF5J0snk5o6XhE2V4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     dbt-core
     snowflake-connector-python
diff --git a/pkgs/development/python-modules/dbus-fast/default.nix b/pkgs/development/python-modules/dbus-fast/default.nix
index c7b9d6e2b295..014e7ad01f72 100644
--- a/pkgs/development/python-modules/dbus-fast/default.nix
+++ b/pkgs/development/python-modules/dbus-fast/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "dbus-fast";
-  version = "2.21.0";
+  version = "2.21.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-P2Czo7XRJLDnR62eLb2lYn97nS5x6LsnYHs47+mvktQ=";
+    hash = "sha256-L3PZjxbcVfqWktWuN5l8JxfR1GyxuA+1ZtO/W2YqFZA=";
   };
 
   # The project can build both an optimized cython version and an unoptimized
diff --git a/pkgs/development/python-modules/deebot-client/default.nix b/pkgs/development/python-modules/deebot-client/default.nix
index f3fdbef18782..8a96602dcc83 100644
--- a/pkgs/development/python-modules/deebot-client/default.nix
+++ b/pkgs/development/python-modules/deebot-client/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "deebot-client";
-  version = "5.1.1";
+  version = "5.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "DeebotUniverse";
     repo = "client.py";
     rev = "refs/tags/${version}";
-    hash = "sha256-axz31GboqaWAcBU8DtG700Se6rX7VV7eBrQBDazG+Ig=";
+    hash = "sha256-ybZ8f3tqhj0SPbwjtgTB45y4Tx/lIyNZ5vShYsbIrfU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/deluge-client/default.nix b/pkgs/development/python-modules/deluge-client/default.nix
index 3b812d671c9d..219ebf5143b5 100644
--- a/pkgs/development/python-modules/deluge-client/default.nix
+++ b/pkgs/development/python-modules/deluge-client/default.nix
@@ -1,21 +1,37 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "deluge-client";
-  version = "1.9.0";
-  format = "setuptools";
+  version = "1.10.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d2f12108a147d44590c8df63997fcb32f8b2fbc18f8cbb221f0136e2e372b85";
+    hash = "sha256-OIGu48Tgyp3YpWtxAEe4N+HQh6g+QhY2oHR3H5Kp8bU=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # it will try to connect to a running instance
   doCheck = false;
 
+  pythonImportsCheck = [
+    "deluge_client"
+  ];
+
   meta = with lib; {
     description = "Lightweight pure-python rpc client for deluge";
     homepage = "https://github.com/JohnDoee/deluge-client";
+    changelog = "https://github.com/JohnDoee/deluge-client/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
   };
diff --git a/pkgs/development/python-modules/denonavr/default.nix b/pkgs/development/python-modules/denonavr/default.nix
index acfa4dc0eb5c..61930b92818c 100644
--- a/pkgs/development/python-modules/denonavr/default.nix
+++ b/pkgs/development/python-modules/denonavr/default.nix
@@ -5,6 +5,7 @@
 , buildPythonPackage
 , defusedxml
 , fetchFromGitHub
+, ftfy
 , httpx
 , netifaces
 , pytest-asyncio
@@ -17,16 +18,16 @@
 
 buildPythonPackage rec {
   pname = "denonavr";
-  version = "0.11.4";
-  format = "pyproject";
+  version = "0.11.6";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ol-iver";
-    repo = pname;
+    repo = "denonavr";
     rev = "refs/tags/${version}";
-    hash = "sha256-0+BjakGGnCbmiSHSipRifPkasfP1vvAWGvzyRufpsOk=";
+    hash = "sha256-VxoRK1qeGrIunsiCzeZJUHxW/sxk+PFpntInL+G/yI8=";
   };
 
   nativeBuildInputs = [
@@ -37,6 +38,7 @@ buildPythonPackage rec {
     asyncstdlib
     attrs
     defusedxml
+    ftfy
     httpx
     netifaces
   ] ++ lib.optionals (pythonOlder "3.11") [
diff --git a/pkgs/development/python-modules/dep-logic/default.nix b/pkgs/development/python-modules/dep-logic/default.nix
index 122862e8c29e..b8c27334a868 100644
--- a/pkgs/development/python-modules/dep-logic/default.nix
+++ b/pkgs/development/python-modules/dep-logic/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "dep-logic";
-  version = "0.0.4";
+  version = "0.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pdm-project";
     repo = "dep-logic";
-    rev = version;
-    hash = "sha256-AFiCNzHlo3BADqbjRBruA80cfM6Ytdb+gReEg5hUmro=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-NB0TR7fCtjSm4cAl+Fy+6c+z1ZBDiRw7nXux/s6ON/c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/diffsync/default.nix b/pkgs/development/python-modules/diffsync/default.nix
index 8d4a71e89098..877322259c42 100644
--- a/pkgs/development/python-modules/diffsync/default.nix
+++ b/pkgs/development/python-modules/diffsync/default.nix
@@ -5,24 +5,26 @@
 , packaging
 , poetry-core
 , pydantic
+, pythonRelaxDepsHook
 , redis
 , structlog
 }:
 
 buildPythonPackage rec {
   pname = "diffsync";
-  version = "1.10.0";
+  version = "2.0.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "networktocode";
     repo = "diffsync";
     rev = "refs/tags/v${version}";
-    hash = "sha256-p7aML6dTDkF4hx67bwI29nhEHi7LIEZ5RlHPgtyQMbo=";
+    hash = "sha256-4LS18FPrnGE1tM0pFzAw0+ajDaw9g7MCgIwS2ptrX9c=";
   };
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -33,6 +35,10 @@ buildPythonPackage rec {
     structlog
   ];
 
+  pythonRelaxDeps = [
+    "structlog"
+  ];
+
   pythonImportsCheck = [
     "diffsync"
   ];
diff --git a/pkgs/development/python-modules/diffusers/default.nix b/pkgs/development/python-modules/diffusers/default.nix
index 2150fdabe66e..8cfe8e361184 100644
--- a/pkgs/development/python-modules/diffusers/default.nix
+++ b/pkgs/development/python-modules/diffusers/default.nix
@@ -39,7 +39,7 @@
 
 buildPythonPackage rec {
   pname = "diffusers";
-  version = "0.25.1";
+  version = "0.26.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -48,7 +48,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "diffusers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AvD/kiwKGojsLlJ0n/U6tTu7ON8Ujl0lZd1e/fDY+CM=";
+    hash = "sha256-1pIe1OU+vIrHM6KIZtHRMXklBZrugDV+I/OBNQYqvXI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/django-bootstrap4/default.nix b/pkgs/development/python-modules/django-bootstrap4/default.nix
index 66cff8029757..b0a11d9044d3 100644
--- a/pkgs/development/python-modules/django-bootstrap4/default.nix
+++ b/pkgs/development/python-modules/django-bootstrap4/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "django-bootstrap4";
-  version = "23.4";
+  version = "24.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "zostera";
     repo = "django-bootstrap4";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ccZ/73u4c6E6pfRv+f3Pu8SorF/d7zQBexGAlFcIwTo=";
+    hash = "sha256-TCHie5h/VRJ9NSg7wKnWotFHm328kxIp+xFXEa8wL1c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/django-pattern-library/default.nix b/pkgs/development/python-modules/django-pattern-library/default.nix
index 89f998c058b9..12a229ce9da8 100644
--- a/pkgs/development/python-modules/django-pattern-library/default.nix
+++ b/pkgs/development/python-modules/django-pattern-library/default.nix
@@ -19,24 +19,16 @@
 
 buildPythonPackage rec {
   pname = "django-pattern-library";
-  version = "1.1.0";
-  format = "pyproject";
+  version = "1.2.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "torchbox";
     repo = "django-pattern-library";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9uuLYwG0/NYGouncuaN8S+3CBABSxSOkcrP59p5v84U=";
+    hash = "sha256-hrdJYVioY6y9D29DuKPMZjdWj92GcbHXANWiEHadimI=";
   };
 
-  patches = [
-    (fetchpatch {
-      # https://github.com/torchbox/django-pattern-library/pull/232
-      url = "https://github.com/torchbox/django-pattern-library/commit/e7a9a8928a885941391fb584eba81578a292ee7d.patch";
-      hash = "sha256-3uUoxdVYEiF+to88qZRhOkh1++RfmsqCzO9JNMDqz6g=";
-    })
-  ];
-
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/pkgs/development/python-modules/django-simple-history/default.nix b/pkgs/development/python-modules/django-simple-history/default.nix
index a38671d97c0f..4c31b8725763 100644
--- a/pkgs/development/python-modules/django-simple-history/default.nix
+++ b/pkgs/development/python-modules/django-simple-history/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "django-simple-history";
-  version = "3.4.0";
+  version = "3.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "jazzband";
     repo = "django-simple-history";
     rev = "refs/tags/${version}";
-    hash = "sha256-XY6YNajwX5z3AXkYYGFtrURDqxub9EQwu52jQ7CZwrI=";
+    hash = "sha256-BW/F+RBf1KvwGRY9IK00+n69Jtx/ndEuvpHSi8/odSE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/docstr-coverage/default.nix b/pkgs/development/python-modules/docstr-coverage/default.nix
new file mode 100644
index 000000000000..2c3289c0f393
--- /dev/null
+++ b/pkgs/development/python-modules/docstr-coverage/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, click
+, pyyaml
+, tqdm
+, pytestCheckHook
+, pytest-mock
+}:
+let
+  version = "2.3.0";
+in
+buildPythonPackage {
+  pname = "docstr-coverage";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "HunterMcGushion";
+    repo = "docstr_coverage";
+    rev = "v${version}";
+    hash = "sha256-eYHhE5zs3hYzK3aAimF0Gx/Kyk1Ot1F/lKf1poR2er0=";
+  };
+
+  propagatedBuildInputs = [ click pyyaml tqdm ];
+
+  nativeCheckInputs = [ pytestCheckHook pytest-mock ];
+
+  disabledTests = [
+    # AssertionError: assert 'docstr_coverage' in '/build/source/tests'
+    "test_set_config_defaults_with_ignore_patterns"
+  ];
+
+  meta = with lib; {
+    description = "Docstring coverage analysis and rating for Python";
+    homepage = "https://github.com/HunterMcGushion/docstr_coverage";
+    changelog = "https://github.com/HunterMcGushion/docstr_coverage/blob/master/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ augustebaum ];
+  };
+}
diff --git a/pkgs/development/python-modules/dvc-ssh/default.nix b/pkgs/development/python-modules/dvc-ssh/default.nix
index 3dd39273307f..3a1ef111c0cd 100644
--- a/pkgs/development/python-modules/dvc-ssh/default.nix
+++ b/pkgs/development/python-modules/dvc-ssh/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "dvc-ssh";
-  version = "4.0.0";
+  version = "4.1.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WaWcoWKXauNHZRFDt+MnqpFWjxzya+yAo0TRNQURViA=";
+    hash = "sha256-lvC6oAXQR4u7s+11n6NgQExPc9yrq3JAmmXtuOw22tI=";
   };
 
   pythonRemoveDeps = [
diff --git a/pkgs/development/python-modules/dvc/default.nix b/pkgs/development/python-modules/dvc/default.nix
index c469ffcb9754..d05a37f7ad79 100644
--- a/pkgs/development/python-modules/dvc/default.nix
+++ b/pkgs/development/python-modules/dvc/default.nix
@@ -18,7 +18,7 @@
 , dvc-task
 , fetchFromGitHub
 , flatten-dict
-, flufl_lock
+, flufl-lock
 , funcy
 , grandalf
 , gto
@@ -98,7 +98,7 @@ buildPythonPackage rec {
     dvc-studio-client
     dvc-task
     flatten-dict
-    flufl_lock
+    flufl-lock
     funcy
     grandalf
     gto
diff --git a/pkgs/development/python-modules/editorconfig/default.nix b/pkgs/development/python-modules/editorconfig/default.nix
index eaca75178474..f55442b2f584 100644
--- a/pkgs/development/python-modules/editorconfig/default.nix
+++ b/pkgs/development/python-modules/editorconfig/default.nix
@@ -1,35 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , cmake
 }:
 
-let
-  tests = fetchFromGitHub {
-    owner = "editorconfig";
-    repo = "editorconfig-core-test";
-    rev = "e407c1592df0f8e91664835324dea85146f20189";
-    hash = "sha256-9WSEkMJOewPqJjB6f7J6Ir0L+U712hkaN+GszjnGw7c=";
-  };
-in
 buildPythonPackage rec {
   pname = "editorconfig";
-  version = "0.12.3";
-  format = "setuptools";
+  version = "0.12.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "editorconfig";
     repo = "editorconfig-core-py";
     rev = "v${version}";
-    hash = "sha256-ZwoTMgk18+BpPNtXKQUMXGcl2Lp+1RQVyPHgk6gHWh8=";
-    # workaround until https://github.com/editorconfig/editorconfig-core-py/pull/40 is merged
-    # fetchSubmodules = true;
+    hash = "sha256-+m674bLj6xs7MWU+8BMixEwy7/TjyES0lvCLLogTDHQ=";
+    fetchSubmodules = true;
   };
 
-  postUnpack = ''
-    cp -r ${tests}/* source/tests
-    chmod +w -R source/tests
-  '';
+  nativeBuildInputs = [
+    setuptools
+  ];
 
   nativeCheckInputs = [
     cmake
@@ -38,9 +29,12 @@ buildPythonPackage rec {
   dontUseCmakeConfigure = true;
 
   checkPhase = ''
+    runHook preCheck
+
     cmake .
-    # utf_8_char fails with Python 3
-    ctest -E "utf_8_char" .
+    ctest .
+
+    runHook postCheck
   '';
 
   pythonImportsCheck = [ "editorconfig" ];
diff --git a/pkgs/development/python-modules/edk2-pytool-library/default.nix b/pkgs/development/python-modules/edk2-pytool-library/default.nix
index cdfb91d72042..577fddc3087b 100644
--- a/pkgs/development/python-modules/edk2-pytool-library/default.nix
+++ b/pkgs/development/python-modules/edk2-pytool-library/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "edk2-pytool-library";
-  version = "0.21.2";
+  version = "0.21.3";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "tianocore";
     repo = "edk2-pytool-library";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xJ5OuQXvccgEjzuMqa75+mv3MipgdsiHc9yjrZYoCow=";
+    hash = "sha256-tyDRHw3c5Kn9IXm5K7Qpn1xfmu5c3pb9D1mpeqo6SHg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/elasticsearch8/default.nix b/pkgs/development/python-modules/elasticsearch8/default.nix
index 84376cdbdb19..c83de92d03bf 100644
--- a/pkgs/development/python-modules/elasticsearch8/default.nix
+++ b/pkgs/development/python-modules/elasticsearch8/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "elasticsearch8";
-  version = "8.12.0";
+  version = "8.12.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YFsrdsAAelOest7Pw3+Zl3lV+Q/e7YMELmL3TodBKSM=";
+    hash = "sha256-RuL1zYmEZEaaXb2LEW+BUmo7TcdGHH/5fjgesxXtbls=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/elementpath/default.nix b/pkgs/development/python-modules/elementpath/default.nix
index b9efe304226f..79389d56fc70 100644
--- a/pkgs/development/python-modules/elementpath/default.nix
+++ b/pkgs/development/python-modules/elementpath/default.nix
@@ -2,12 +2,13 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "elementpath";
-  version = "4.1.5";
-  format = "setuptools";
+  version = "4.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -15,9 +16,13 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "elementpath";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5K2xcnTo3/A6/pCxQn5qZqni7C64p/yNAWWJlhQeKe4=";
+    hash = "sha256-DE8XAZwYzbYaTJoBNqHR0x4Wigmke+/zgj562X391qM=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # avoid circular dependency with xmlschema which directly depends on this
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/envs/default.nix b/pkgs/development/python-modules/envs/default.nix
index 307c7dfaa614..ce1a07dda3f2 100644
--- a/pkgs/development/python-modules/envs/default.nix
+++ b/pkgs/development/python-modules/envs/default.nix
@@ -4,7 +4,7 @@
 , fetchPypi
 , jinja2
 , mock
-, nose
+, pynose
 , poetry-core
 , pythonOlder
 , terminaltables
@@ -13,7 +13,7 @@
 buildPythonPackage rec {
   pname = "envs";
   version = "1.4";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     mock
-    nose
+    pynose
   ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/essentials-openapi/default.nix b/pkgs/development/python-modules/essentials-openapi/default.nix
new file mode 100644
index 000000000000..5fc825147656
--- /dev/null
+++ b/pkgs/development/python-modules/essentials-openapi/default.nix
@@ -0,0 +1,65 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  click,
+  essentials,
+  flask,
+  hatchling,
+  httpx,
+  jinja2,
+  markupsafe,
+  pydantic,
+  pytestCheckHook,
+  pythonImportsCheckHook,
+  pyyaml,
+  rich,
+  setuptools
+}:
+buildPythonPackage rec {
+  pname = "essentials-openapi";
+  version = "1.0.9";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Neoteroi";
+    repo = "essentials-openapi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/NYv0NrE8+0kQg5G3Qf2DtesMHlmKQYczNT8pFlNFZE=";
+  };
+
+  nativeBuildInputs = [
+    hatchling
+  ];
+
+  nativeCheckInputs = [
+    flask
+    httpx
+    pydantic
+    pytestCheckHook
+    rich
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pyyaml
+    essentials
+    markupsafe
+  ];
+
+  passthru.optional-dependencies = {
+    full = [ click jinja2 rich httpx ];
+  };
+
+  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];
+  };
+}
diff --git a/pkgs/development/python-modules/essentials/default.nix b/pkgs/development/python-modules/essentials/default.nix
new file mode 100644
index 000000000000..69a494a0eb5d
--- /dev/null
+++ b/pkgs/development/python-modules/essentials/default.nix
@@ -0,0 +1,38 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonImportsCheckHook,
+  lib,
+}:
+buildPythonPackage rec {
+  pname = "essentials";
+  version = "1.1.5";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Neoteroi";
+    repo = "essentials";
+    rev = "v${version}";
+    hash = "sha256-WMHjBVkeSoQ4Naj1U7Bg9j2hcoErH1dx00BPKiom9T4=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  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];
+  };
+}
diff --git a/pkgs/development/python-modules/eth-typing/default.nix b/pkgs/development/python-modules/eth-typing/default.nix
index 434fc6d8c10d..60bafffaea2a 100644
--- a/pkgs/development/python-modules/eth-typing/default.nix
+++ b/pkgs/development/python-modules/eth-typing/default.nix
@@ -3,12 +3,13 @@
 , buildPythonPackage
 , pythonOlder
 , pytestCheckHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "eth-typing";
-  version = "3.2.0";
-  format = "setuptools";
+  version = "4.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -16,9 +17,13 @@ buildPythonPackage rec {
     owner = "ethereum";
     repo = "eth-typing";
     rev = "refs/tags/v${version}";
-    hash = "sha256-klN38pIQ9ZOFV7dzXNvylPGfifR8pXRLTJ3VE579AY0=";
+    hash = "sha256-JT/2bCPYFSRNt3V7QnHSAJR7HrZ1JpRKdU7gQpoYIn0=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/eth-utils/default.nix b/pkgs/development/python-modules/eth-utils/default.nix
index 6d4cbf930f56..8686da98d92a 100644
--- a/pkgs/development/python-modules/eth-utils/default.nix
+++ b/pkgs/development/python-modules/eth-utils/default.nix
@@ -8,22 +8,27 @@
 , isPyPy
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , toolz
 }:
 
 buildPythonPackage rec {
   pname = "eth-utils";
-  version = "2.1.1";
-  format = "setuptools";
+  version = "4.0.0";
+  pyproject = true;
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "ethereum";
-    repo = pname;
+    repo = "eth-utils";
     rev = "v${version}";
-    hash = "sha256-Ogp4o99smw5qVwDec6zd/xVqqKMyNk41iBfRNzrwuvE=";
+    hash = "sha256-k2pHM1eKPzoGxZlU6yT7bZMv4CCWGaZaSnFHSbT76Zo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     eth-hash
     eth-typing
@@ -44,6 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "eth_utils" ];
 
   meta = {
+    changelog = "https://github.com/ethereum/eth-utils/blob/${src.rev}/docs/release_notes.rst";
     description = "Common utility functions for codebases which interact with ethereum";
     homepage = "https://github.com/ethereum/eth-utils";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix
index 07f19e3493d9..f9f4649db3f1 100644
--- a/pkgs/development/python-modules/eventlet/default.nix
+++ b/pkgs/development/python-modules/eventlet/default.nix
@@ -42,6 +42,12 @@ buildPythonPackage rec {
       url = "https://src.fedoraproject.org/rpms/python-eventlet/raw/rawhide/f/python3.12.patch";
       hash = "sha256-MxzprFaVcV1uamjjTeIz+2gPvfPy+Y1QaA20znMdwoA=";
     })
+    # fix tests running on kernel 6.6 or newer
+    # https://github.com/eventlet/eventlet/pull/905
+    (fetchpatch {
+      url = "https://github.com/eventlet/eventlet/commit/413327b229c80a97e9c89c52f7714224942701b4.patch";
+      hash = "sha256-rbYPd5cg3ElSYWYaZJrS7bb4nMJkTMO0ScvNnXRXzE0=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/evohome-async/default.nix b/pkgs/development/python-modules/evohome-async/default.nix
index 03a0bcb210bb..b2f512ea973c 100644
--- a/pkgs/development/python-modules/evohome-async/default.nix
+++ b/pkgs/development/python-modules/evohome-async/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "evohome-async";
-  version = "0.4.18";
+  version = "0.4.19";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "zxdavb";
     repo = "evohome-async";
     rev = "refs/tags/${version}";
-    hash = "sha256-EXgq74/RfQ9AHlyZlDLfXtKFgYg37WA1Q3x3g+W9lz0=";
+    hash = "sha256-B7LvGXAZO1pd9iCuZjW/bRWdB5PEzfcQjZWokGzMN70=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/explorerscript/default.nix b/pkgs/development/python-modules/explorerscript/default.nix
index 41521f096290..014fa1057d56 100644
--- a/pkgs/development/python-modules/explorerscript/default.nix
+++ b/pkgs/development/python-modules/explorerscript/default.nix
@@ -7,23 +7,25 @@
 , pygments
 , pytestCheckHook
 , pythonRelaxDepsHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "explorerscript";
-  version = "0.1.4";
-  format = "setuptools";
+  version = "0.1.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "SkyTemple";
     repo = pname;
     rev = version;
-    hash = "sha256-oa9q5k3OREGn6pQiyLy22MNJTiY6Pm+xrwA4DBUhxp0=";
+    hash = "sha256-dGbzZYEFEWE5bUz+647pPzP4Z/XmrJU82jNT4ZBRNHk=";
   };
 
   nativeBuildInputs = [
     antlr4
     pythonRelaxDepsHook
+    setuptools
   ];
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/fakeredis/default.nix b/pkgs/development/python-modules/fakeredis/default.nix
index b39241bc9058..a63c257fc680 100644
--- a/pkgs/development/python-modules/fakeredis/default.nix
+++ b/pkgs/development/python-modules/fakeredis/default.nix
@@ -6,19 +6,19 @@
 , lupa
 , poetry-core
 , pybloom-live
+, pyprobables
 , pytest-asyncio
 , pytest-mock
 , pytestCheckHook
 , pythonOlder
 , redis
-, six
 , sortedcontainers
 }:
 
 buildPythonPackage rec {
   pname = "fakeredis";
-  version = "2.20.1";
-  format = "pyproject";
+  version = "2.21.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "dsoftwareinc";
     repo = "fakeredis-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TmgHAskR5MF/lzF0NHgXKecLsSCoc7xsm7gRgupm0Ws=";
+    hash = "sha256-2+ZZTWhUb6rj7oWPnDP0PJUHj0CJpOD8iZxmtO4xSbo=";
   };
 
   nativeBuildInputs = [
@@ -35,7 +35,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     redis
-    six
     sortedcontainers
   ];
 
@@ -54,7 +53,13 @@ buildPythonPackage rec {
       aioredis
     ];
     bf = [
-      pybloom-live
+      pyprobables
+    ];
+    cf = [
+      pyprobables
+    ];
+    probabilistic = [
+      pyprobables
     ];
   };
 
@@ -66,7 +71,7 @@ buildPythonPackage rec {
     description = "Fake implementation of Redis API";
     homepage = "https://github.com/dsoftwareinc/fakeredis-py";
     changelog = "https://github.com/cunla/fakeredis-py/releases/tag/v${version}";
-    license = with licenses; [ mit ];
+    license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/fastapi-sso/default.nix b/pkgs/development/python-modules/fastapi-sso/default.nix
new file mode 100644
index 000000000000..bde53ac71325
--- /dev/null
+++ b/pkgs/development/python-modules/fastapi-sso/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, buildPythonPackage
+, email-validator
+, fastapi
+, fetchFromGitHub
+, httpx
+, oauthlib
+, poetry-core
+, pydantic
+, pylint
+, pytest-asyncio
+, pytest-xdist
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "fastapi-sso";
+  version = "0.12.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "tomasvotava";
+    repo = "fastapi-sso";
+    rev = "refs/tags/${version}";
+    hash = "sha256-/Mt0pmZYsWp/n9YHCy/bFKUPzmoRFB0cHKCNxEfxMLs=";
+  };
+
+  postPatch = ''
+    sed -i "/--cov/d" pyproject.toml
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    fastapi
+    httpx
+    oauthlib
+    pydantic
+    pylint
+  ];
+
+  nativeCheckInputs = [
+    email-validator
+    pytest-asyncio
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "fastapi_sso"
+  ];
+
+  meta = with lib; {
+    description = "FastAPI plugin to enable SSO to most common providers (such as Facebook login, Google login and login via Microsoft Office 365 Account";
+    homepage = "https://github.com/tomasvotava/fastapi-sso";
+    changelog = "https://github.com/tomasvotava/fastapi-sso/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/fastecdsa/default.nix b/pkgs/development/python-modules/fastecdsa/default.nix
index bd1a8c673e42..d46bf58d861c 100644
--- a/pkgs/development/python-modules/fastecdsa/default.nix
+++ b/pkgs/development/python-modules/fastecdsa/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "fastecdsa";
-  version = "2.3.1";
+  version = "2.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8ZjORPaUbKuwKYip9J0U78QQ26XiEemDIbqdhzeyP/g=";
+    hash = "sha256-81JVptPkEQkWa11LCIZtWsu5ny4eZNOn50x3RmTNqEI=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/fastembed/default.nix b/pkgs/development/python-modules/fastembed/default.nix
index 65536d16151b..0302770761ed 100644
--- a/pkgs/development/python-modules/fastembed/default.nix
+++ b/pkgs/development/python-modules/fastembed/default.nix
@@ -1,8 +1,11 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, huggingface-hub
 , pythonOlder
+, pythonRelaxDepsHook
 , poetry-core
+, onnx
 , onnxruntime
 , requests
 , tokenizers
@@ -13,7 +16,7 @@
 buildPythonPackage rec {
   pname = "fastembed";
   version = "0.1.2";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -26,16 +29,25 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
+    huggingface-hub
+    onnx
     onnxruntime
     requests
     tokenizers
     tqdm
   ];
 
-  pythonImportsCheck = [ "fastembed" ];
+  pythonImportsCheck = [
+    "fastembed"
+  ];
+
+  pythonRelaxDeps = [
+    "huggingface-hub"
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/ffmpy/default.nix b/pkgs/development/python-modules/ffmpy/default.nix
index c3b0c6078f42..8e00a4678ebf 100644
--- a/pkgs/development/python-modules/ffmpy/default.nix
+++ b/pkgs/development/python-modules/ffmpy/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 , pytestCheckHook
 , go
 , ffmpeg-headless
@@ -9,8 +10,8 @@
 
 buildPythonPackage rec {
   pname = "ffmpy";
-  version = "0.3.1";
-  format = "setuptools";
+  version = "0.3.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     owner = "Ch00k";
     repo = "ffmpy";
     rev = "refs/tags/${version}";
-    hash = "sha256-kuLhmCG80BmXdqpW67UanBnuYiL2Oh1jKt7IgmVNEAM=";
+    hash = "sha256-q41JjAWcIiD2nJck5Zzb/lhfIZ3xJGU1I2crsMN0T8Q=";
   };
 
   postPatch = ''
@@ -34,6 +35,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "ffmpy" ];
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
     go
diff --git a/pkgs/development/python-modules/filedepot/default.nix b/pkgs/development/python-modules/filedepot/default.nix
index b347a1a6bd19..b567a3d8322a 100644
--- a/pkgs/development/python-modules/filedepot/default.nix
+++ b/pkgs/development/python-modules/filedepot/default.nix
@@ -2,7 +2,6 @@
 , anyascii
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , flaky
 , google-cloud-storage
 , mock
@@ -11,13 +10,14 @@
 , pytestCheckHook
 , pythonOlder
 , requests
+, setuptools
 , sqlalchemy
 }:
 
 buildPythonPackage rec {
   pname = "filedepot";
-  version = "0.10.0";
-  format = "setuptools";
+  version = "0.11.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -25,16 +25,11 @@ buildPythonPackage rec {
     owner = "amol-";
     repo = "depot";
     rev = "refs/tags/${version}";
-    hash = "sha256-vPceky5cvmy3MooWz7dRdy68VoAHN7i3a7egBs4dPE8=";
+    hash = "sha256-693H/u+Wg2G9sdoUkC6DQo9WkmIlKnh8NKv3ufK/eyQ=";
   };
 
-  patches = [
-    # Add support for Pillow 10, https://github.com/amol-/depot/pull/84
-    (fetchpatch {
-      name = "support-pillow-10.patch";
-      url = "https://github.com/amol-/depot/commit/bdb73d1b3898279068b421bc061ecc18c5108fa4.patch";
-      hash = "sha256-7+VGrdJstkiy0bYAqA9FjF1NftZiurgyPd8Wlz6GUy8=";
-    })
+  nativeBuildInputs = [
+    setuptools
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flake8/default.nix b/pkgs/development/python-modules/flake8/default.nix
index 7a3bd82a5145..9efb1fab948c 100644
--- a/pkgs/development/python-modules/flake8/default.nix
+++ b/pkgs/development/python-modules/flake8/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, setuptools
 , mccabe
 , pycodestyle
 , pyflakes
@@ -10,19 +11,23 @@
 
 buildPythonPackage rec {
   pname = "flake8";
-  version = "6.1.0";
+  version = "7.0.0";
 
   disabled = pythonOlder "3.8";
 
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = "flake8";
     rev = version;
-    hash = "sha256-N8bufkn1CUREHusVc2mQ1YlNr7lrESEZGmlN68bhgbE=";
+    hash = "sha256-2oVvchDhH3cX90RTIquYLyr+rzHxzQgYA4k4ReTxpH8=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     mccabe
     pycodestyle
@@ -34,8 +39,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Flake8 is a wrapper around pyflakes, pycodestyle and mccabe.";
-    homepage = "https://github.com/pycqa/flake8";
+    description = "The modular source code checker: pep8, pyflakes and co";
+    homepage = "https://github.com/PyCQA/flake8";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
     mainProgram = "flake8";
diff --git a/pkgs/development/python-modules/flet-core/default.nix b/pkgs/development/python-modules/flet-core/default.nix
index 2b84348f36f5..9b1a00107a67 100644
--- a/pkgs/development/python-modules/flet-core/default.nix
+++ b/pkgs/development/python-modules/flet-core/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "flet-core";
-  version = "0.19.0";
+  version = "0.20.2";
   pyproject = true;
 
   src = fetchPypi {
     pname = "flet_core";
     inherit version;
-    hash = "sha256-JRV56SwIhrsJHX/fzQKI0R2o/I+H5xXCXVu7uBiyIP8=";
+    hash = "sha256-czkboJD/PjJA3F/z42qClErxNbQUgMt7QtbLd7yxhhw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/flet-runtime/default.nix b/pkgs/development/python-modules/flet-runtime/default.nix
index 9f2a9a68de3d..9e643fa81289 100644
--- a/pkgs/development/python-modules/flet-runtime/default.nix
+++ b/pkgs/development/python-modules/flet-runtime/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "flet-runtime";
-  version = "0.19.0";
+  version = "0.20.2";
   pyproject = true;
 
   src = fetchPypi {
     pname = "flet_runtime";
     inherit version;
-    hash = "sha256-no2oDGZG1svrOZLNAao279qeHwyk5SGibDG4UqpriiU=";
+    hash = "sha256-92gyaMME2R7k3AAFKsl7kIv8mVwi8pwQsGLD0ml82Q0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/flet/default.nix b/pkgs/development/python-modules/flet/default.nix
index 1730e0515ce2..961267915d4b 100644
--- a/pkgs/development/python-modules/flet/default.nix
+++ b/pkgs/development/python-modules/flet/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "flet";
-  version = "0.19.0";
+  version = "0.20.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YpML/NIUiL1WYg6zR6l60nJ6KRBfjMOjRbPDdjhR3/Q=";
+    hash = "sha256-3LhQI/hjenTxG/1DZP/zn2zs00rT5BviDAQYb2vucBM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/flufl/bounce.nix b/pkgs/development/python-modules/flufl/bounce.nix
index 81d2d4840cf1..7c6738bc3cd6 100644
--- a/pkgs/development/python-modules/flufl/bounce.nix
+++ b/pkgs/development/python-modules/flufl/bounce.nix
@@ -1,14 +1,49 @@
-{ buildPythonPackage, fetchPypi, atpublic, zope-interface, nose2 }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, atpublic
+, zope-interface
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
-  pname = "flufl.bounce";
+  pname = "flufl-bounce";
   version = "4.0";
-
-  buildInputs = [ nose2 ];
-  propagatedBuildInputs = [ atpublic zope-interface ];
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "flufl.bounce";
+    inherit version;
     hash = "sha256-JVBK65duwP5aGc1sQTo0EMtRT9zb3Kn5tdjTQ6hgODE=";
   };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    atpublic
+    zope-interface
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "flufl.bounce"
+  ];
+
+  pythonNamespaces = [
+    "flufl"
+  ];
+
+  meta = with lib; {
+    description = "Email bounce detectors";
+    homepage = "https://gitlab.com/warsaw/flufl.bounce";
+    changelog = "https://gitlab.com/warsaw/flufl.bounce/-/blob/${version}/flufl/bounce/NEWS.rst";
+    maintainers = with maintainers; [ ];
+    license = licenses.asl20;
+  };
 }
diff --git a/pkgs/development/python-modules/flufl/i18n.nix b/pkgs/development/python-modules/flufl/i18n.nix
index 57a33e233cf6..bd5bcb62fe6c 100644
--- a/pkgs/development/python-modules/flufl/i18n.nix
+++ b/pkgs/development/python-modules/flufl/i18n.nix
@@ -1,26 +1,45 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , atpublic
 , pdm-pep517
+, pytestCheckHook
+, sybil
 }:
 
 buildPythonPackage rec {
-  pname = "flufl.i18n";
+  pname = "flufl-i18n";
   version = "4.1.1";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    pname = "flufl.i18n";
+    inherit version;
+    hash = "sha256-wKz6aggkJ9YBJ+o75XjC4Ddnn+Zi9hlYDnliwTc7DNs=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "--cov=flufl --cov-report=term --cov-report=xml" ""
+  '';
 
   nativeBuildInputs = [ pdm-pep517 ];
-  propagatedBuildInputs = [ atpublic ];
 
-  doCheck = false;
+  propagatedBuildInputs = [ atpublic ];
 
   pythonImportsCheck = [ "flufl.i18n" ];
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-wKz6aggkJ9YBJ+o75XjC4Ddnn+Zi9hlYDnliwTc7DNs=";
-  };
+  nativeCheckInputs = [
+    pytestCheckHook
+    sybil
+  ];
+
+  pythonNamespaces = [
+    "flufl"
+  ];
 
   meta = with lib; {
     description = "A high level API for internationalizing Python libraries and applications";
diff --git a/pkgs/development/python-modules/flufl/lock.nix b/pkgs/development/python-modules/flufl/lock.nix
index 1b4a575e760a..8a3e391fee15 100644
--- a/pkgs/development/python-modules/flufl/lock.nix
+++ b/pkgs/development/python-modules/flufl/lock.nix
@@ -1,15 +1,18 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
 , atpublic, psutil, pytest-cov, sybil
 , pdm-pep517
 }:
 
 buildPythonPackage rec {
-  pname = "flufl.lock";
+  pname = "flufl-lock";
   version = "7.1.1";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "flufl.lock";
+    inherit version;
     hash = "sha256-rxQXKzW7xYaHvQa3DRaT/Y1Iy/D/3n5RphjBSK4kBC0=";
   };
 
@@ -22,11 +25,19 @@ buildPythonPackage rec {
   # relevant to the user.
   pytestFlagsArray = [ "--no-cov" ];
 
+  pythonImportsCheck = [
+    "flufl.lock"
+  ];
+
+  pythonNamespaces = [
+    "flufl"
+  ];
+
   meta = with lib; {
     homepage = "https://flufllock.readthedocs.io/";
     description = "NFS-safe file locking with timeouts for POSIX and Windows";
+    changelog = "https://gitlab.com/warsaw/flufl.lock/-/blob/${version}/docs/NEWS.rst";
     maintainers = with maintainers; [ qyliss ];
     license = licenses.asl20;
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/fpyutils/default.nix b/pkgs/development/python-modules/fpyutils/default.nix
index 3ad71f9a2617..a81067e1ffb3 100644
--- a/pkgs/development/python-modules/fpyutils/default.nix
+++ b/pkgs/development/python-modules/fpyutils/default.nix
@@ -5,22 +5,27 @@
 , pytestCheckHook
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "fpyutils";
-  version = "3.0.1";
-  format = "setuptools";
+  version = "4.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "frnmst";
-    repo = pname;
+    repo = "fpyutils";
     rev = "refs/tags/${version}";
-    hash = "sha256-cmCD8uKPX/7Ak6jAqzCvDqR1FgH09GaLfLTZdBQB+bs=";
+    hash = "sha256-VVR1zsejO6kHlMjqqlftDKu3/SyDzgPov9f48HYL/Bk=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     atomicwrites
     requests
diff --git a/pkgs/development/python-modules/frigidaire/default.nix b/pkgs/development/python-modules/frigidaire/default.nix
index d8ddff87463b..e33581ed0ac5 100644
--- a/pkgs/development/python-modules/frigidaire/default.nix
+++ b/pkgs/development/python-modules/frigidaire/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "frigidaire";
-  version = "0.18.15";
+  version = "0.18.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "bm1549";
     repo = "frigidaire";
     rev = "refs/tags/${version}";
-    hash = "sha256-5+epdQyeTGJp8iTrX6vyp4JgM45Fl5cb67Z8trNBe+8=";
+    hash = "sha256-PQrQM9AuudDmmsmMcZJjBm+rLA/juDgr3+SORuVurqQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/frozenlist/default.nix b/pkgs/development/python-modules/frozenlist/default.nix
index 06ff0d1c7dcc..7e2646045518 100644
--- a/pkgs/development/python-modules/frozenlist/default.nix
+++ b/pkgs/development/python-modules/frozenlist/default.nix
@@ -1,7 +1,9 @@
 { lib
 , buildPythonPackage
-, cython
+, cython_3
+, expandvars
 , fetchFromGitHub
+, pep517
 , pytestCheckHook
 , pythonOlder
 , setuptools
@@ -10,27 +12,33 @@
 
 buildPythonPackage rec {
   pname = "frozenlist";
-  version = "1.4.0";
-  format = "pyproject";
+  version = "1.4.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aio-libs";
-    repo = pname;
+    repo = "frozenlist";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sI6jnrTxDbW0sNVodpCjBnA31VAAmunwMp9s8GkoHGI=";
+    hash = "sha256-ICPJKN6P9ezTiDVoEVBQvJlXqF7aHE6aXFx0jzntdEA=";
   };
 
+  postPatch = ''
+    rm pytest.ini
+  '';
+
   nativeBuildInputs = [
-    cython
+    expandvars
+    cython_3
+    pep517
     setuptools
     wheel
   ];
 
-  postPatch = ''
-    sed -i "/addopts =/d" pytest.ini
-  '';
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   preBuild = ''
     cython frozenlist/_frozenlist.pyx
@@ -40,13 +48,10 @@ buildPythonPackage rec {
     "frozenlist"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
   meta = with lib; {
     description = "Python module for list-like structure";
     homepage = "https://github.com/aio-libs/frozenlist";
+    changelog = "https://github.com/aio-libs/frozenlist/blob/v${version}/CHANGES.rst";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/fschat/default.nix b/pkgs/development/python-modules/fschat/default.nix
index 1d99fcd3e4cc..5f9c4b3532b4 100644
--- a/pkgs/development/python-modules/fschat/default.nix
+++ b/pkgs/development/python-modules/fschat/default.nix
@@ -29,7 +29,7 @@
 , protobuf
 }:
 let
-  version = "0.2.34";
+  version = "0.2.36";
 in
 buildPythonPackage {
   pname = "fschat";
@@ -40,7 +40,7 @@ buildPythonPackage {
     owner = "lm-sys";
     repo = "FastChat";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4dnKrLQYkd2uQh2K2yaQ7EgrkgX8bO4QXfjIOqpzCE8=";
+    hash = "sha256-tQuvQXzQbQjU16DfS1o55VHW6eklngEvIigzZGgrKB8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/fsspec-xrootd/default.nix b/pkgs/development/python-modules/fsspec-xrootd/default.nix
new file mode 100644
index 000000000000..f601c9b86ce2
--- /dev/null
+++ b/pkgs/development/python-modules/fsspec-xrootd/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, fsspec
+, xrootd
+, pkgs
+, pytestCheckHook
+, stdenv
+}:
+
+buildPythonPackage rec {
+  pname = "fsspec-xrootd";
+  version = "0.2.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "CoffeaTeam";
+    repo = "fsspec-xrootd";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-8TT+49SF/3i2OMIDcDD0AXEn0J9UkNX2q/SBkfoMXso=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    fsspec
+    xrootd
+  ];
+
+  pythonImportsCheck = [
+    "fsspec_xrootd"
+  ];
+
+  nativeCheckInputs = [
+    pkgs.xrootd
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Fails (on aarch64-linux) as it runs sleep, touch, stat and makes assumptions about the
+    # scheduler and the filesystem.
+    "test_touch_modified"
+  ];
+
+  # Timeout related tests hang indifinetely
+  disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [
+    "tests/test_basicio.py"
+  ];
+
+  meta = with lib; {
+    description = "An 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;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/furo/default.nix b/pkgs/development/python-modules/furo/default.nix
index ff74cbd6c9b0..fb024e18c4f6 100644
--- a/pkgs/development/python-modules/furo/default.nix
+++ b/pkgs/development/python-modules/furo/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "furo";
-  version = "2023.9.10";
+  version = "2024.1.29";
   format = "wheel";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    hash = "sha256-UTCSU4U33FxZZpHaBuPDcHFOyZvEOGgO3B3r/7c+W/w=";
+    hash = "sha256-NUi+LO9Foy+M3AJy1BX8s+X6ag603f4h3z7PH+RaE88=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/fx2/default.nix b/pkgs/development/python-modules/fx2/default.nix
index f89334f8f60e..6991c3f4ab1b 100644
--- a/pkgs/development/python-modules/fx2/default.nix
+++ b/pkgs/development/python-modules/fx2/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "fx2";
-  version = "unstable-2023-09-20";
+  version = "0.13";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "whitequark";
     repo = "libfx2";
-    rev = "73fa811818d56a86b82c12e07327946aeddd2b3e";
-    hash = "sha256-AGQPOVTdaUCUeVVNQTBmoNvz5CGxcBOK7+oL+X8AcIw=";
+    rev = "v${version}";
+    hash = "sha256-PtWxjT+97+EeNMN36zOT1+ost/w3lRRkaON3Cl3dpp4=";
   };
 
   nativeBuildInputs = [ sdcc ];
diff --git a/pkgs/development/python-modules/fypp/default.nix b/pkgs/development/python-modules/fypp/default.nix
deleted file mode 100644
index 0303f517cad5..000000000000
--- a/pkgs/development/python-modules/fypp/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, buildPythonApplication }:
-
-buildPythonApplication rec {
-  pname = "fypp";
-  version = "3.2";
-  format = "setuptools";
-
-  src = fetchFromGitHub {
-    owner = "aradi";
-    repo = pname;
-    rev = version;
-    hash = "sha256-MgGVlOqOIrIVoDfBMVpFLT26mhYndxans2hfo/+jdoA=";
-  };
-
-  meta = with lib; {
-    description = "Python powered Fortran preprocessor";
-    homepage = "https://github.com/aradi/fypp";
-    license = licenses.gpl3Only;
-    maintainers = [ maintainers.sheepforce ];
-  };
-}
diff --git a/pkgs/development/python-modules/gerbonara/default.nix b/pkgs/development/python-modules/gerbonara/default.nix
new file mode 100644
index 000000000000..2e79e8aa3d43
--- /dev/null
+++ b/pkgs/development/python-modules/gerbonara/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pytest
+, click
+, numpy
+, scipy
+, rtree
+}:
+
+buildPythonPackage rec {
+  pname = "gerbonara";
+  version = "1.2.0";
+  src = fetchFromGitHub {
+    owner = "jaseg";
+    repo = "gerbonara";
+    rev = "v${version}";
+    hash = "sha256-VU4Of90YUPoLuiUpIDwSUfxQOoKChNbZE0klHkHEmaY=";
+  };
+
+  format = "setuptools";
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    click
+    numpy
+    scipy
+    rtree
+  ];
+
+  preConfigure = ''
+    # setup.py tries to execute a call to git in a subprocess, this avoids it.
+    substituteInPlace setup.py \
+      --replace "version=version()," \
+                "version='${version}',"
+  '';
+
+  pythonImportsCheck = [ "gerbonara" ];
+
+  # Test environment is exceptionally tricky to get set up, so skip for now.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Pythonic library for reading/modifying/writing Gerber/Excellon/IPC-356 files";
+    homepage = "https://github.com/jaseg/gerbonara";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ wulfsta ];
+  };
+}
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index 0acb958de47a..26387b876018 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -8,22 +8,22 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.3.0";
-  format = "pyproject";
+  version = "0.3.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "marcelblijleven";
-    repo = pname;
+    repo = "goodwe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5wUGbXAmpdHHgM3HLCKPauIkbp4GDqky3I5T2hN3Pvk=";
+    hash = "sha256-6KCIfCyViiBU/cez9m34FMPkTUTkmEYc/e/xYqOyJLY=";
   };
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "'marcelblijleven@gmail.com" "marcelblijleven@gmail.com" \
-      --replace "version: file: VERSION" "version = ${version}"
+      --replace-fail "'marcelblijleven@gmail.com" "marcelblijleven@gmail.com" \
+      --replace-fail "version: file: VERSION" "version = ${version}"
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-ai-generativelanguage/default.nix b/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
index 05aff6781769..59994f85ed96 100644
--- a/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
+++ b/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-ai-generativelanguage";
-  version = "0.5.1";
+  version = "0.5.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Nf5XTdQbfkA28hd0E0VAexZXCQR6MR9oQnsG7Ipz7h8=";
+    hash = "sha256-s1RcPVKt99sX3kS12mRf3G3Q2Sg7Z3rvANZMFKyvceM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-api-core/default.nix b/pkgs/development/python-modules/google-api-core/default.nix
index 76fbdf7fa425..8627942d3a1d 100644
--- a/pkgs/development/python-modules/google-api-core/default.nix
+++ b/pkgs/development/python-modules/google-api-core/default.nix
@@ -13,20 +13,25 @@
 , pytestCheckHook
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "2.14.0";
-  format = "setuptools";
+  version = "2.17.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-U2ikUCt5PZu/gSpZEuE+Tmn5vYf277UIRgxD9bvRzkE=";
+    hash = "sha256-nfGKH4fuDfC8TuoncOvEIoOS2MxAZmVbMg4s/MsV25U=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     googleapis-common-protos
     google-auth
diff --git a/pkgs/development/python-modules/google-auth-oauthlib/default.nix b/pkgs/development/python-modules/google-auth-oauthlib/default.nix
index 2a24f4c04b03..84693b839de9 100644
--- a/pkgs/development/python-modules/google-auth-oauthlib/default.nix
+++ b/pkgs/development/python-modules/google-auth-oauthlib/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
+, setuptools
 , click
 , mock
 , pytestCheckHook
@@ -12,28 +13,38 @@
 
 buildPythonPackage rec {
   pname = "google-auth-oauthlib";
-  version = "1.1.0";
-  format = "setuptools";
+  version = "1.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-g+qMOwiB5FN5C6/0RI6KYRKsh3jR3p2gtoAQuEOTevs=";
+    hash = "sha256-KS0tN4M0nysHNKCgIHseHjIqwZPCwJ2PfGE/t8xQHqg=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-auth
     requests-oauthlib
   ];
 
+  passthru.optional-dependencies = {
+    tool = [ click ];
+  };
+
   nativeCheckInputs = [
-    click
     mock
     pytestCheckHook
-  ];
+  ] ++ passthru.optional-dependencies.tool;
 
-  disabledTests = lib.optionals stdenv.isDarwin [
+  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"
   ];
@@ -43,9 +54,11 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
+    changelog = "https://github.com/googleapis/google-auth-library-python-oauthlib/blob/v${version}/CHANGELOG.md";
     description = "Google Authentication Library: oauthlib integration";
     homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib";
     license = licenses.asl20;
+    mainProgram = "google-oauthlib-tool";
     maintainers = with maintainers; [ terlar ];
   };
 }
diff --git a/pkgs/development/python-modules/google-auth/default.nix b/pkgs/development/python-modules/google-auth/default.nix
index 4785bed59fb3..905f301c2cc8 100644
--- a/pkgs/development/python-modules/google-auth/default.nix
+++ b/pkgs/development/python-modules/google-auth/default.nix
@@ -5,7 +5,6 @@
 , buildPythonPackage
 , cachetools
 , cryptography
-, fetchpatch
 , fetchPypi
 , flask
 , freezegun
@@ -22,40 +21,29 @@
 , requests
 , responses
 , rsa
-, six
-, urllib3
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "2.21.0";
-  format = "setuptools";
+  version = "2.27.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-so6ASOV3J+fPDlvY5ydrISrvR2ZUoJURNUqoJ1O0XGY=";
+    hash = "sha256-6GOlbMwtjvqD33qAJyYB5DSH+ppyijdiBchsJqrvqCE=";
   };
 
-  patches = [
-    # Although the migration to urllib3-2.0.0 is incomplete,
-    # the discussion in the following PR has addressed the concerns.
-    # https://github.com/googleapis/google-auth-library-python/pull/1290
-    (fetchpatch {
-      name = "support-urllib3_2.patch";
-      url = "https://github.com/googleapis/google-auth-library-python/commit/9ed006d02d7c9de3e6898ee819648c2fd3367c1d.patch";
-      hash = "sha256-64g0GzZeyO8l/s1jqfsogr8pTOBbG9xfp/UeVZNA4q8=";
-      includes = [ "google/auth/transport/urllib3.py" ];
-    })
+  nativeBuildInputs = [
+    setuptools
   ];
 
   propagatedBuildInputs = [
     cachetools
     pyasn1-modules
     rsa
-    six
-    urllib3
   ];
 
   passthru.optional-dependencies = {
@@ -68,6 +56,7 @@ buildPythonPackage rec {
       pyopenssl
     ];
     pyopenssl = [
+      cryptography
       pyopenssl
     ];
     reauth = [
@@ -90,8 +79,7 @@ buildPythonPackage rec {
     pytestCheckHook
     responses
   ] ++ passthru.optional-dependencies.aiohttp
-  # `cryptography` is still required on `aarch64-darwin` for `tests/crypt/*`
-  ++ (if (stdenv.isDarwin && stdenv.isAarch64) then [ cryptography ] else passthru.optional-dependencies.enterprise_cert)
+  ++ passthru.optional-dependencies.enterprise_cert
   ++ passthru.optional-dependencies.reauth;
 
   pythonImportsCheck = [
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 1e37e3a9552d..409cfc2bc4a4 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
@@ -4,20 +4,25 @@
 , google-api-core
 , pythonOlder
 , protobuf
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-access-context-manager";
-  version = "0.1.16";
-  format = "setuptools";
+  version = "0.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+L5Rre6LHpSlc+yzdQpMLSvURLHd412apDes5zwzdgc=";
+    hash = "sha256-pbQkMSwISwK2+Ywev7avKBMvwB5dcZgX+kmeeMh+BLc=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     protobuf
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 2754c32c3c97..5c053874435b 100644
--- a/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-appengine-logging";
-  version = "1.4.1";
+  version = "1.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mQXHwww8K77dCxMuKycfyCRzM+vJMdLSOvG7vRG0Nf4=";
+    hash = "sha256-E03mSoQBfP4mpLOjJbzJtKLboF+cnTkC7iS0sfo+KK8=";
   };
 
   nativeBuildInputs = [
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 38210fe9990b..71075ad7f60d 100644
--- a/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix
+++ b/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-artifact-registry";
-  version = "1.10.0";
+  version = "1.11.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JrW6lkaRiVsisuOCHLNTxh6LF44PO/RhRfTkORDSIt4=";
+    hash = "sha256-EjwBVYq7V39ab/VQEmysfiuwEbMkjCXq5o+jM31NrwI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-asset/default.nix b/pkgs/development/python-modules/google-cloud-asset/default.nix
index ab2ae150eb3d..86cfdb0f7076 100644
--- a/pkgs/development/python-modules/google-cloud-asset/default.nix
+++ b/pkgs/development/python-modules/google-cloud-asset/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-asset";
-  version = "3.24.1";
+  version = "3.24.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aNTCDqj/0/qm4gwZrIKrn2yhgKshv1XwGlHd4zhzMgI=";
+    hash = "sha256-/sRsJZDbwTxFXGQI/s8fKwWPGTdS5vSQ+bl8znKp7fI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-automl/default.nix b/pkgs/development/python-modules/google-cloud-automl/default.nix
index 2768a79005a8..e5944306dac7 100644
--- a/pkgs/development/python-modules/google-cloud-automl/default.nix
+++ b/pkgs/development/python-modules/google-cloud-automl/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-automl";
-  version = "2.12.0";
+  version = "2.13.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IvemHgS0qbA9UE7y22aD30YqAy2lP+P7ssNvUlB0q7U=";
+    hash = "sha256-2QJzq4t0oo18gbI3zFz5KxidOkfSuQ2sjNNnIlJ7ok4=";
   };
 
   nativeBuildInputs = [
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 c975700ce1ef..50346213b253 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "3.14.0";
+  version = "3.14.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DZDp/aRhIe2bBcn8BVA8jwmDaUrbHAMMRG0LixuvGl0=";
+    hash = "sha256-v9gBSb9TYvaqF1/g7dJshSkJ2RlCAWXGdf7yPlne0I4=";
   };
 
   propagatedBuildInputs = [
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 85e60259a6c5..185f451babe6 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-logging";
-  version = "1.4.1";
+  version = "1.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HryKL26J6H2xW/EEPVceWd0ZATP7QAuolU77sw3QrWM=";
+    hash = "sha256-e9jlI/utitWKBZ/IMEtrFBw5k6FGdIxtmoujUFBcwPs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigtable/default.nix b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
index 1f0695a1770f..1bdec9f84b15 100644
--- a/pkgs/development/python-modules/google-cloud-bigtable/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
@@ -11,20 +11,25 @@
 , protobuf
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "2.22.0";
-  format = "setuptools";
+  version = "2.23.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Y6HO3Q5JZC4lSBJDbJxMlAHWnF3LzIDLY2ZpK1Abv6E=";
+    hash = "sha256-w8q7Zhn18u6hGz23JzHoTSixaAVcnMF8LS2v8Vy4I3k=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     google-cloud-core
diff --git a/pkgs/development/python-modules/google-cloud-compute/default.nix b/pkgs/development/python-modules/google-cloud-compute/default.nix
index 2f58338113a9..ffe81f753aa7 100644
--- a/pkgs/development/python-modules/google-cloud-compute/default.nix
+++ b/pkgs/development/python-modules/google-cloud-compute/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-compute";
-  version = "1.15.0";
+  version = "1.16.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+mda6vBMYnpELNMDIZbW82rWhEO6MnyXZ6a/vECkKyE=";
+    hash = "sha256-P/A08nd3ZP4GsySd3Q6TM+kuXRabcnnI1aFd+svMz5E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-container/default.nix b/pkgs/development/python-modules/google-cloud-container/default.nix
index 014d68c19168..8dc787ddf0cd 100644
--- a/pkgs/development/python-modules/google-cloud-container/default.nix
+++ b/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "2.40.0";
+  version = "2.41.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4yTrV0OtvCmd9+5rNaTOJBAS/s52hyjwA7O1/lLyFtE=";
+    hash = "sha256-5DUFaQqzIvN/8Vo7MJNBrsMaB4HANO7Eb2nuzx3nDJc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
index 018eb4a26cb4..734e9e7dc649 100644
--- a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
+++ b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-datacatalog";
-  version = "3.18.1";
+  version = "3.18.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xjf6yWXgfJFEHw1lYSryfe86UMsM1Y4fGRffDTne20U=";
+    hash = "sha256-USo8ldUbfsArvjw5+MOubFDOlXkV4GPowHYVsRHBHrk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-dlp/default.nix b/pkgs/development/python-modules/google-cloud-dlp/default.nix
index 4fe3dddd3001..f9f7d3a1282c 100644
--- a/pkgs/development/python-modules/google-cloud-dlp/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dlp/default.nix
@@ -9,20 +9,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "3.13.0";
-  format = "setuptools";
+  version = "3.15.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mFqptqEvHQAKNevzawDOfQsH0SCn9EanJ2js4vIpCGo=";
+    hash = "sha256-Ttza6UuVCUJUmoH9hFVWVzTfX4kTMS9EQ+ixoYm9xOg=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     proto-plus
diff --git a/pkgs/development/python-modules/google-cloud-firestore/default.nix b/pkgs/development/python-modules/google-cloud-firestore/default.nix
index 81de0310b126..8f987bf238c0 100644
--- a/pkgs/development/python-modules/google-cloud-firestore/default.nix
+++ b/pkgs/development/python-modules/google-cloud-firestore/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "2.14.0";
+  version = "2.15.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mr+3U+s89wB2uc/whvcdOYwJfAsbD9ll1a8n1a5K5AE=";
+    hash = "sha256-WJzknGuNcxWiSDJ+ShJKRBQ/WlMU6naPfIUWYMIeYyE=";
   };
 
   nativeBuildInputs = [
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 aac30f35757d..e94dc4086ded 100644
--- a/pkgs/development/python-modules/google-cloud-iam-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-iam-logging/default.nix
@@ -9,20 +9,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-iam-logging";
-  version = "1.3.0";
-  format = "setuptools";
+  version = "1.3.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oLqRmxNPbb+nUMN70kGlAtBCji4wXrbRv2DhNMcZV5c=";
+    hash = "sha256-qJcZHghAWG04PogbCY2JHsoPEoifHVOzsfUbemo5pi4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     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 e04591791d3c..993cc62ac19c 100644
--- a/pkgs/development/python-modules/google-cloud-language/default.nix
+++ b/pkgs/development/python-modules/google-cloud-language/default.nix
@@ -7,20 +7,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-language";
-  version = "2.12.0";
-  format = "setuptools";
+  version = "2.13.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-efuO/hWDM+aMBXR+nqhrWYsvQpoS83FJ2DrG+hhFlio=";
+    hash = "sha256-gTrT3dypeJBxAJjnatSMN+pj6joUoPbX9CRsb7FcsqU=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     proto-plus
diff --git a/pkgs/development/python-modules/google-cloud-monitoring/default.nix b/pkgs/development/python-modules/google-cloud-monitoring/default.nix
index 9fecd41cec58..4d6731221a7a 100644
--- a/pkgs/development/python-modules/google-cloud-monitoring/default.nix
+++ b/pkgs/development/python-modules/google-cloud-monitoring/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-monitoring";
-  version = "2.19.1";
+  version = "2.19.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-P4vdD1zCDzDn0ydEXCw2C/aEFnJYR13knOM91eDFcZw=";
+    hash = "sha256-OIGwJiBOBkhwdGGpeD736ExscWvQZ6OGSxyz1Mn13HM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-netapp/default.nix b/pkgs/development/python-modules/google-cloud-netapp/default.nix
new file mode 100644
index 000000000000..d411b64baa11
--- /dev/null
+++ b/pkgs/development/python-modules/google-cloud-netapp/default.nix
@@ -0,0 +1,56 @@
+{ 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.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-rWsR95I4lXf/xEJ/0HLhTR6V8g46NzmU/PmkAi797rM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    google-api-core
+    google-auth
+    proto-plus
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  nativeCheckInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.netapp"
+    "google.cloud.netapp_v1"
+  ];
+
+  meta = with lib; {
+    description = "Python Client for NetApp API";
+    homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-netapp";
+    changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-netapp-v${version}/packages/google-cloud-netapp/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ];
+  };
+}
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 085603f01ab4..d825a8880279 100644
--- a/pkgs/development/python-modules/google-cloud-os-config/default.nix
+++ b/pkgs/development/python-modules/google-cloud-os-config/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-os-config";
-  version = "1.17.0";
+  version = "1.17.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SrLT/0pYAjGpp+6Pi4d/ICCJoUsbXYe0Wht63s4UwOE=";
+    hash = "sha256-d6LvrMM+n0PKd751zafDHrtUZUBpip/Nf+PcD6MuEsg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 47e0373d65df..8d0d27a77f69 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -12,20 +12,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.19.1";
-  format = "setuptools";
+  version = "2.19.6";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wQ2V66+QP5I7FKqOxbfICRYTjt8pnGWhwalDH9VmXSU=";
+    hash = "sha256-Tq5LyYRj29rq11l/dmb/4U/GKqvtEOPjIslcsFD6fb4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     grpc-google-iam-v1
diff --git a/pkgs/development/python-modules/google-cloud-redis/default.nix b/pkgs/development/python-modules/google-cloud-redis/default.nix
index 351acb618101..48750d2ed5c8 100644
--- a/pkgs/development/python-modules/google-cloud-redis/default.nix
+++ b/pkgs/development/python-modules/google-cloud-redis/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-redis";
-  version = "2.15.1";
+  version = "2.15.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RTDYMmkRjkP5VhN74Adlvm/vpqXd9lnu3ckjmItIi+Y=";
+    hash = "sha256-uq+TEU5Ky3Uuaga19Y58UL9oPrDhOGRf7OduCgFZwYg=";
   };
 
   nativeBuildInputs = [
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 a7fde2b8c359..8c1f92159b7b 100644
--- a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-resource-manager";
-  version = "1.12.0";
+  version = "1.12.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wsSuU+X5/2EuTPlh8brD+RAK5UpRIsGxzUI26ITREsU=";
+    hash = "sha256-Lt5EalCHsjbw4fs5zKN5G66X6w2RJQV0AUVLGQ1Vcu4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index 6901c9dc3107..32304fad221f 100644
--- a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -8,20 +8,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.18.0";
-  format = "setuptools";
+  version = "2.18.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Tkmb0z/3rv8nG9Z0h+IdVAQpeobcSHPuhh1jewGzC04=";
+    hash = "sha256-MQVV88jLl39KRtRFTsosg/7WoJ88SzW4T2+h+P71UCQ=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     grpc-google-iam-v1
diff --git a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
index f2975d3dd854..1e0c86b61a73 100644
--- a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
+++ b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "1.26.0";
+  version = "1.26.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wZKuMeXio7CINEm752+2QYd8TONejQ7RNi4ij0LtFVY=";
+    hash = "sha256-oZWY7n/8638/WkIG9s/9LN4NKWSfhnrQp+9Pydq103E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-shell/default.nix b/pkgs/development/python-modules/google-cloud-shell/default.nix
new file mode 100644
index 000000000000..09fa7ceb2c28
--- /dev/null
+++ b/pkgs/development/python-modules/google-cloud-shell/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-auth
+, mock
+, proto-plus
+, protobuf
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-shell";
+  version = "1.9.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-JLQea7+qWjomlQ1cbYJMou7u1eGwHNKgzqiUIUT0otY=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    google-api-core
+    google-auth
+    proto-plus
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  nativeCheckInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.shell"
+    "google.cloud.shell_v1"
+  ];
+
+  meta = with lib; {
+    description = "Python Client for Cloud Shell";
+    homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-shell";
+    changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-shell-v${version}/packages/google-cloud-shell/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-cloud-speech/default.nix b/pkgs/development/python-modules/google-cloud-speech/default.nix
index a4f2ab9ae4b3..f0e3fe9dbdbc 100644
--- a/pkgs/development/python-modules/google-cloud-speech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-speech";
-  version = "2.24.0";
+  version = "2.25.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Z7x4xfCbeRPoCbinCrTwIAp9JIvfavFvA1c4/a5UbHQ=";
+    hash = "sha256-Bwt6c3Ndhxzc9VkCOOnE/1m7X1JBcodrpVZGtcXrhrg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-storage/default.nix b/pkgs/development/python-modules/google-cloud-storage/default.nix
index 42ffe46a97b7..525af0451f1c 100644
--- a/pkgs/development/python-modules/google-cloud-storage/default.nix
+++ b/pkgs/development/python-modules/google-cloud-storage/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "2.13.0";
+  version = "2.14.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9i3Ex7bNQ2DQcuPesoA1+9rUkaw9mwsYFaEtrqEPN8c=";
+    hash = "sha256-LSP89ZtV57RTNnKcFIuxxGRGjGnV77ruMPcgHdkOuX4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-tasks/default.nix b/pkgs/development/python-modules/google-cloud-tasks/default.nix
index bc6cf42b27c7..55d8957f632a 100644
--- a/pkgs/development/python-modules/google-cloud-tasks/default.nix
+++ b/pkgs/development/python-modules/google-cloud-tasks/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "2.16.0";
+  version = "2.16.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oybkbzeqE4sW6RN5P7AFJV3rahTCykwJndQ8uAmhiCE=";
+    hash = "sha256-L1wVxYEVHZE9hA/KNI3JpfvRzBbsUR4/ZrL8agHwbjg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-testutils/default.nix b/pkgs/development/python-modules/google-cloud-testutils/default.nix
index 55577e6fef96..72d95a9410d6 100644
--- a/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-testutils";
-  version = "1.3.3";
+  version = "1.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bRjvNNmvsBy0sR4C0DoC/n7A9ez6AfXUJrXZiHKkz0g=";
+    hash = "sha256-1oocIuKssoUA1p2dxhqFy+nJjJtp4phwQnHN/L88C8s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
index 09237f9afbcd..58b16639fcab 100644
--- a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
@@ -8,20 +8,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "2.16.0";
-  format = "setuptools";
+  version = "2.16.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-flG/fsyx8DH/w49EF5ddckPZoVDvkPsz/SFI16CVWR8=";
+    hash = "sha256-6qyAnZp9B8XJ61hhORZULLL6UsFPnzHaf/SYn3F/jgw=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     proto-plus
diff --git a/pkgs/development/python-modules/google-cloud-trace/default.nix b/pkgs/development/python-modules/google-cloud-trace/default.nix
index bca3d89819f0..ad8f2998a7bc 100644
--- a/pkgs/development/python-modules/google-cloud-trace/default.nix
+++ b/pkgs/development/python-modules/google-cloud-trace/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-trace";
-  version = "1.13.1";
+  version = "1.13.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KJpHnWbmrFVcixfvKQ/nvDWLy4Sn1lVDVsjkS/2+p5w=";
+    hash = "sha256-3Iy7ke+2sH+S/xkjjfD4snLRt9B0Zew52qcwSryyDNU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-translate/default.nix b/pkgs/development/python-modules/google-cloud-translate/default.nix
index bc5ab67b018c..4f9eb02b5606 100644
--- a/pkgs/development/python-modules/google-cloud-translate/default.nix
+++ b/pkgs/development/python-modules/google-cloud-translate/default.nix
@@ -10,20 +10,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-translate";
-  version = "3.12.1";
-  format = "setuptools";
+  version = "3.15.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Zhy4h5qjxjovclo+po+QGZvTVMlcoWnMLoOlEFmH0p4=";
+    hash = "sha256-bUwkR7wviOxeDTpneMPYX6s22iFLk4SxBlmyno259ZQ=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     google-cloud-core
@@ -34,8 +39,8 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     google-cloud-testutils
     mock
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   preCheck = ''
@@ -50,6 +55,11 @@ buildPythonPackage rec {
     "google.cloud.translate_v3beta1"
   ];
 
+  disabledTests = [
+    # Tests require PROJECT_ID
+    "test_list_glossaries"
+  ];
+
   meta = with lib; {
     description = "Google Cloud Translation API client library";
     homepage = "https://github.com/googleapis/python-translate";
diff --git a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
index e8ac6fa628f5..8e06398a0ec1 100644
--- a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
+++ b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
@@ -9,20 +9,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "2.13.0";
-  format = "setuptools";
+  version = "2.13.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ODRF08xxjUrj6PMzfTlcYLqGrgV71OA0VHT44ktQZ4k=";
+    hash = "sha256-wHfiVZmhB/GMfgV8pmHzdgCxtxxl2Q1s9cQgQ9rcjbE=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     proto-plus
diff --git a/pkgs/development/python-modules/google-cloud-vision/default.nix b/pkgs/development/python-modules/google-cloud-vision/default.nix
index 071543ae3caf..6662d79e181d 100644
--- a/pkgs/development/python-modules/google-cloud-vision/default.nix
+++ b/pkgs/development/python-modules/google-cloud-vision/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "3.6.0";
+  version = "3.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-uaaL/CbR4RM4YFU0xd/naGn3xSiLuRqI0/qyZNLKJ3Q=";
+    hash = "sha256-hovm31u1SRxvMb7fYAryNmHAJ3bKVkwVHELGPgs0Zds=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-vpc-access/default.nix b/pkgs/development/python-modules/google-cloud-vpc-access/default.nix
new file mode 100644
index 000000000000..dd4ee94f8dff
--- /dev/null
+++ b/pkgs/development/python-modules/google-cloud-vpc-access/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-auth
+, mock
+, proto-plus
+, protobuf
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-vpc-access";
+  version = "1.10.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-KFOyq/vpfNWaFpKJ0AAupVn3XiTP3V95x/5M6LkJtAQ=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    google-api-core
+    google-auth
+    proto-plus
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  nativeCheckInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.vpcaccess"
+    "google.cloud.vpcaccess_v1"
+  ];
+
+  meta = with lib; {
+    description = "Python Client for Virtual Private Cloud";
+    homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-vpc-access";
+    changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-vpc-access-v${version}/packages/google-cloud-vpc-access/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-cloud-webrisk/default.nix b/pkgs/development/python-modules/google-cloud-webrisk/default.nix
new file mode 100644
index 000000000000..02d9baddd699
--- /dev/null
+++ b/pkgs/development/python-modules/google-cloud-webrisk/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-auth
+, mock
+, proto-plus
+, protobuf
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-webrisk";
+  version = "1.14.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-5bRZRPVN6PtAI3yX5ogtxkDeHmz8mSE8ofz8k+VRLkY=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    google-api-core
+    google-auth
+    proto-plus
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  nativeCheckInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.webrisk"
+    "google.cloud.webrisk_v1"
+    "google.cloud.webrisk_v1beta1"
+  ];
+
+  meta = with lib; {
+    description = "Python Client for Web Risk";
+    homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-webrisk";
+    changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-webrisk-v${version}/packages/google-cloud-webrisk/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
index 1f9b27f06f28..3188af54d1de 100644
--- a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
+++ b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "1.14.1";
+  version = "1.14.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+RupyR6W5fYR1n28anASGIXI6J53CU4WG1QC+HIZi/Y=";
+    hash = "sha256-loiKMV7guByukm9XBohVbCDsV607i8PXiQaJ8GZS6Go=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-workflows/default.nix b/pkgs/development/python-modules/google-cloud-workflows/default.nix
new file mode 100644
index 000000000000..cf8c0bb3886f
--- /dev/null
+++ b/pkgs/development/python-modules/google-cloud-workflows/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, mock
+, proto-plus
+, protobuf
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-workflows";
+  version = "1.14.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-L1gL3r+HzywvsbfWk28Rthwm8lqz0S9ekTcWUh8FcLM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    google-api-core
+    proto-plus
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  nativeCheckInputs = [
+    mock
+    pytestCheckHook
+    pytest-asyncio
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.workflows"
+    "google.cloud.workflows_v1"
+    "google.cloud.workflows_v1beta"
+  ];
+
+  meta = with lib; {
+    description = "Python Client for Cloud Workflows";
+    homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-workflows";
+    changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-workflows-v${version}/packages/google-cloud-workflows/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-cloud-workstations/default.nix b/pkgs/development/python-modules/google-cloud-workstations/default.nix
new file mode 100644
index 000000000000..02d92c08e638
--- /dev/null
+++ b/pkgs/development/python-modules/google-cloud-workstations/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, google-auth
+, grpc-google-iam-v1
+, mock
+, proto-plus
+, protobuf
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-workstations";
+  version = "0.5.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-N6A+dpgQpVhCTor4FbjPAafyDsgB8pRrJcVGABpJCuE=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    google-api-core
+    google-auth
+    grpc-google-iam-v1
+    proto-plus
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  nativeCheckInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.workstations"
+    "google.cloud.workstations_v1"
+    "google.cloud.workstations_v1beta"
+  ];
+
+  meta = with lib; {
+    description = "Python Client for Cloud Workstations";
+    homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-workstations";
+    changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-workstations-v${version}/packages/google-cloud-workstations/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/govee-local-api/default.nix b/pkgs/development/python-modules/govee-local-api/default.nix
new file mode 100644
index 000000000000..03501fa0cbcf
--- /dev/null
+++ b/pkgs/development/python-modules/govee-local-api/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, poetry-dynamic-versioning
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "govee-local-api";
+  version = "1.4.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "Galorhallen";
+    repo = "govee-local-api";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-J4SG4n6LIZ/G6pEXAzliV7uTWzqsH7rtFe3Y7BJ2dWE=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+    poetry-dynamic-versioning
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "govee_local_api"
+  ];
+
+  meta = with lib; {
+    description = "";
+    homepage = "https://github.com/Galorhallen/govee-local-api";
+    changelog = "https://github.com/Galorhallen/govee-local-api/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/gpaw/default.nix b/pkgs/development/python-modules/gpaw/default.nix
index be43eb55857d..37b12c6f5ed4 100644
--- a/pkgs/development/python-modules/gpaw/default.nix
+++ b/pkgs/development/python-modules/gpaw/default.nix
@@ -29,8 +29,8 @@ let
     text = ''
       # Compiler
       compiler = 'gcc'
-      mpicompiler = '${mpi}/bin/mpicc'
-      mpilinker = '${mpi}/bin/mpicc'
+      mpicompiler = '${lib.getDev mpi}/bin/mpicc'
+      mpilinker = '${lib.getDev mpi}/bin/mpicc'
 
       # BLAS
       libraries += ['blas']
diff --git a/pkgs/development/python-modules/gradio-pdf/default.nix b/pkgs/development/python-modules/gradio-pdf/default.nix
index f1758be6a76f..a029f427ca2e 100644
--- a/pkgs/development/python-modules/gradio-pdf/default.nix
+++ b/pkgs/development/python-modules/gradio-pdf/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "gradio-pdf";
-  version = "0.0.4";
+  version = "0.0.5";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "gradio_pdf";
     inherit version;
-    hash = "sha256-lyZd8tH3SaTmE/7ooNaQJUYZRvjSOLx3+doWTCTXk9U=";
+    hash = "sha256-yHISYpkZ5YgUBxCfu2rw3R+g9t4h1WogXXCuBiV92Vk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/greeneye-monitor/default.nix b/pkgs/development/python-modules/greeneye-monitor/default.nix
index 3b6e9f6f0f23..aa206825e7f6 100644
--- a/pkgs/development/python-modules/greeneye-monitor/default.nix
+++ b/pkgs/development/python-modules/greeneye-monitor/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "greeneye-monitor";
-  version = "5.0.1";
+  version = "5.0.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "jkeljo";
     repo = "greeneye-monitor";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zNGizNOuZuPRdz82y8IaVvwrTos4lZSqTP5FwOlnRao=";
+    hash = "sha256-7EDuQ+wECcTzxkEufMpg3WSzosWeiwfxcVIVtQi+0BI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/grip/default.nix b/pkgs/development/python-modules/grip/default.nix
index 0236886af98d..37319e1ede7b 100644
--- a/pkgs/development/python-modules/grip/default.nix
+++ b/pkgs/development/python-modules/grip/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 # Python bits:
 , buildPythonPackage
 , pytest
@@ -25,6 +26,15 @@ buildPythonPackage rec {
     hash = "sha256-CHL2dy0H/i0pLo653F7aUHFvZHTeZA6jC/rwn1KrEW4=";
   };
 
+  patches = [
+    # https://github.com/NixOS/nixpkgs/issues/288478
+    (fetchpatch {
+      name = "set-default-encoding.patch";
+      url = "https://github.com/joeyespo/grip/commit/2784eb2c1515f1cdb1554d049d48b3bff0f42085.patch";
+      hash = "sha256-veVJKJtt8mP1jmseRD7pNR3JgIxX1alYHyQok/rBpiQ=";
+    })
+  ];
+
   nativeCheckInputs = [ pytest responses ];
 
   propagatedBuildInputs = [ docopt flask markdown path-and-address pygments requests tabulate ];
diff --git a/pkgs/development/python-modules/growattserver/default.nix b/pkgs/development/python-modules/growattserver/default.nix
index 1c7e12fab2e7..1cd8d8e735d4 100644
--- a/pkgs/development/python-modules/growattserver/default.nix
+++ b/pkgs/development/python-modules/growattserver/default.nix
@@ -3,12 +3,13 @@
 , fetchFromGitHub
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "growattserver";
-  version = "1.4.0";
-  format = "setuptools";
+  version = "1.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -16,9 +17,13 @@ buildPythonPackage rec {
     owner = "indykoning";
     repo = "PyPi_GrowattServer";
     rev = "refs/tags/${version}";
-    hash = "sha256-V0EW3I0FIDx9urbxX/zh3A51B/BiDqUfsrKbKU9FKiE=";
+    hash = "sha256-ATxXjIF5QRsdLuXZCOWMwvbBzawrhlYZ+wodITz36sE=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     requests
   ];
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 e94278fec310..98f550a047f6 100644
--- a/pkgs/development/python-modules/grpc-google-iam-v1/default.nix
+++ b/pkgs/development/python-modules/grpc-google-iam-v1/default.nix
@@ -1,19 +1,22 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, setuptools
-, grpcio
+, fetchFromGitHub
 , googleapis-common-protos
+, grpcio
+, pytestCheckHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "grpc-google-iam-v1";
-  version = "0.12.7";
+  version = "0.13.0";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-AJGXp/HqqiIUnJbl4FSsWTS6ckGXTpJmPY01KKISA9E=";
+  src = fetchFromGitHub {
+    owner = "googleapis";
+    repo = "python-grpc-google-iam-v1";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-pmwHDzOaXrgqXZiaxIn01CtiAG+XRBGr8BgzbG/F1uw=";
   };
 
   nativeBuildInputs = [
@@ -25,17 +28,24 @@ buildPythonPackage rec {
     googleapis-common-protos
   ];
 
-  # no tests run
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [
     "google.iam"
     "google.iam.v1"
   ];
 
+  pytestFlagsArray = [
+    "-W"
+    "ignore::DeprecationWarning"
+  ];
+
   meta = with lib; {
     description = "GRPC library for the google-iam-v1 service";
-    homepage = "https://github.com/googleapis/googleapis";
+    homepage = "https://github.com/googleapis/python-grpc-google-iam-v1";
+    changelog = "https://github.com/googleapis/python-grpc-google-iam-v1/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/grpcio-channelz/default.nix b/pkgs/development/python-modules/grpcio-channelz/default.nix
index 522bf49fafd9..7e62bf091b38 100644
--- a/pkgs/development/python-modules/grpcio-channelz/default.nix
+++ b/pkgs/development/python-modules/grpcio-channelz/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-channelz";
-  version = "1.60.1";
+  version = "1.62.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eAYWHTlyThrJ9vTumXPDeEcyk5OC8tfI12K073heF6A=";
+    hash = "sha256-MjL6BjQx2G3TpQ4Pe8uB3zIgGrykLtI/6eLLQ8AyKnk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-health-checking/default.nix b/pkgs/development/python-modules/grpcio-health-checking/default.nix
index 7873404d6514..a6c76e8bfea6 100644
--- a/pkgs/development/python-modules/grpcio-health-checking/default.nix
+++ b/pkgs/development/python-modules/grpcio-health-checking/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-health-checking";
-  version = "1.60.1";
+  version = "1.62.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fC5Izp1b2xmtV7er40ONR+verVB4ZpORQHILPijGJbM=";
+    hash = "sha256-f8JjBFMP2KwGukvtvcGUpWPFXiGKv/QJy68d5xkUk3s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-reflection/default.nix b/pkgs/development/python-modules/grpcio-reflection/default.nix
index 713fec8af4cd..365c7beabf2b 100644
--- a/pkgs/development/python-modules/grpcio-reflection/default.nix
+++ b/pkgs/development/python-modules/grpcio-reflection/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-reflection";
-  version = "1.60.1";
+  version = "1.62.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-v+1JYUE4IcEbTfECyesFWsjENUYm2dyxEKJz79TPfZg=";
+    hash = "sha256-rxcHOZ7yghx5Xss3lVC/Wnb7ZAmxSeuzRjEM/QHaKYo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix
index 03062ea264be..7b557a605a5b 100644
--- a/pkgs/development/python-modules/gst-python/default.nix
+++ b/pkgs/development/python-modules/gst-python/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "gst-python";
-  version = "1.22.8";
+  version = "1.22.9";
 
   format = "other";
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/gst-python/${pname}-${version}.tar.xz";
-    hash = "sha256-1cuPFEBUoqEQ5mcr1RLksV1bG42YecGSuXI1Ne+3C48=";
+    hash = "sha256-P51cb/79omhwN0S1kqazmDqmcjJzsSIOy8tiwqWAAAk=";
   };
 
   # Python 2.x is not supported.
diff --git a/pkgs/development/python-modules/gvm-tools/default.nix b/pkgs/development/python-modules/gvm-tools/default.nix
index 6f273d09a62b..cd6a4bfcd25b 100644
--- a/pkgs/development/python-modules/gvm-tools/default.nix
+++ b/pkgs/development/python-modules/gvm-tools/default.nix
@@ -11,17 +11,19 @@
 buildPythonPackage rec {
   pname = "gvm-tools";
   version = "24.1.0";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "greenbone";
-    repo = pname;
+    repo = "gvm-tools";
     rev = "refs/tags/v${version}";
     hash = "sha256-4uYOhsnprYybt5EB/b4LW8/9cn0Nahc1lYQ+DwPNlOU=";
   };
 
+  __darwinAllowLocalNetworking = true;
+
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/pkgs/development/python-modules/h5io/default.nix b/pkgs/development/python-modules/h5io/default.nix
new file mode 100644
index 000000000000..e9f8af129f1c
--- /dev/null
+++ b/pkgs/development/python-modules/h5io/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+, numpy
+, h5py
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "h5io";
+  version = "0.2.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "h5io";
+    repo = "h5io";
+    rev = "refs/tags/h5io-${version}";
+    hash = "sha256-3mrHIkfaXq06mMzUwudRO81DWTk0TO/e15IQA5fxxNc=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml  \
+      --replace "--cov-report=" ""  \
+      --replace "--cov-branch" ""  \
+      --replace "--cov=h5io" ""
+  '';
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    numpy
+    h5py
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "h5io" ];
+
+  meta = with lib; {
+    description = "Read and write simple Python objects using HDF5";
+    homepage = "https://github.com/h5io/h5io";
+    changelog = "https://github.com/h5io/h5io/releases/tag/${src.rev}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ mbalatsko ];
+  };
+}
diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix
index fc30a7536a33..a11578f832ba 100644
--- a/pkgs/development/python-modules/h5py/default.nix
+++ b/pkgs/development/python-modules/h5py/default.nix
@@ -47,7 +47,7 @@ in buildPythonPackage rec {
     ${lib.optionalString mpiSupport "export OMPI_MCA_rmaps_base_oversubscribe=yes"}
   '';
 
-  preBuild = lib.optionalString mpiSupport "export CC=${mpi}/bin/mpicc";
+  preBuild = lib.optionalString mpiSupport "export CC=${lib.getDev mpi}/bin/mpicc";
 
   nativeBuildInputs = [
     cython
diff --git a/pkgs/development/python-modules/habluetooth/default.nix b/pkgs/development/python-modules/habluetooth/default.nix
index 9e347d9a1553..e37c6a680742 100644
--- a/pkgs/development/python-modules/habluetooth/default.nix
+++ b/pkgs/development/python-modules/habluetooth/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "habluetooth";
-  version = "2.1.0";
+  version = "2.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "habluetooth";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oPdKmaj2wKgOQw7QYwOQc8efcNtQiGryZgNJ+bbB6L8=";
+    hash = "sha256-bZtcvidjUhlb9ML1UIP00yqJ+KnJig5i0j/tAZSK7+Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index 72e8595ddb5c..93a38ab9346c 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2024.2.1";
+  version = "2024.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -27,15 +27,15 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = "hahomematic";
     rev = "refs/tags/${version}";
-    hash = "sha256-Q9cuazn07LCzCMkhnNl/h6QxrFBv4fybMaDi8zN7jy0=";
+    hash = "sha256-p1LUF57wH8zWCwPo4pYeOGRBEYCNUv8CnYBGNYzKCgE=";
   };
 
   __darwinAllowLocalNetworking = true;
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "setuptools~=68.2" "setuptools" \
-      --replace "wheel~=0.41.2" "wheel"
+      --replace-fail "setuptools~=69.1.0" "setuptools" \
+      --replace-fail "wheel~=0.42.0" "wheel"
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index 61b1fdf58a1a..3730f653ead1 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.75.1";
+  version = "0.78.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "nabucasa";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-VQ5nxkrHt6xp+bk/wqAPJ+srTuf9WyamoLXawW1mKWo=";
+    hash = "sha256-ZqBYmh+MA4ZuhnUQPn/C8d7CVPrwp6mirsWnoB/ZMFw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/hassil/default.nix b/pkgs/development/python-modules/hassil/default.nix
index 65b97fd7c485..229abe5f4a52 100644
--- a/pkgs/development/python-modules/hassil/default.nix
+++ b/pkgs/development/python-modules/hassil/default.nix
@@ -13,7 +13,7 @@
 
 let
   pname = "hassil";
-  version = "1.5.1";
+  version = "1.6.1";
 in
 buildPythonPackage {
   inherit pname version;
@@ -23,7 +23,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GLvDT8BUBvEzgiqKaXokF912g3fOH+KsXnmeOXIwe9U=";
+    hash = "sha256-jkPo02Jy6UqyC5YvwMw+DDkT8rG5Xe4EiNVED/JHzKc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hid/default.nix b/pkgs/development/python-modules/hid/default.nix
index c87d63feb1bb..deb4006dfe78 100644
--- a/pkgs/development/python-modules/hid/default.nix
+++ b/pkgs/development/python-modules/hid/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "hid";
-  version = "1.0.5";
+  version = "1.0.6";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HpVOf3q5t8nfx421lQRpLBfbO3EklJK5drFSW5fbsOg=";
+    hash = "sha256-SNdk166XRroSO5bb9FeJPKgCaLd5HEsdLgUTEO64OGA=";
   };
 
   propagatedBuildInputs = [ hidapi ];
diff --git a/pkgs/development/python-modules/hishel/default.nix b/pkgs/development/python-modules/hishel/default.nix
index de75f1e46b17..4f8dae862c55 100644
--- a/pkgs/development/python-modules/hishel/default.nix
+++ b/pkgs/development/python-modules/hishel/default.nix
@@ -1,10 +1,12 @@
 { lib
 , anysqlite
+, boto3
 , buildPythonPackage
 , fetchFromGitHub
 , hatch-fancy-pypi-readme
 , hatchling
 , httpx
+, moto
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
@@ -15,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "hishel";
-  version = "0.0.22";
+  version = "0.0.24";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +26,7 @@ buildPythonPackage rec {
     owner = "karpetrosyan";
     repo = "hishel";
     rev = "refs/tags/${version}";
-    hash = "sha256-2GboU1J0jvZUz20+KpDYnfDqc+qi0tmlypbWeOoYjX0=";
+    hash = "sha256-wup1rQ5MHjsBaTdfueP9y7QhutoO0xYeexZPDQpUEJk=";
   };
 
   nativeBuildInputs = [
@@ -40,6 +42,9 @@ buildPythonPackage rec {
     redis = [
       redis
     ];
+    s3 = [
+      boto3
+    ];
     sqlite = [
       anysqlite
     ];
@@ -49,6 +54,7 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [
+    moto
     pytest-asyncio
     pytestCheckHook
     trio
diff --git a/pkgs/development/python-modules/holidays/default.nix b/pkgs/development/python-modules/holidays/default.nix
index 8e3918fe02a4..539caf7083d8 100644
--- a/pkgs/development/python-modules/holidays/default.nix
+++ b/pkgs/development/python-modules/holidays/default.nix
@@ -21,16 +21,16 @@
 
 buildPythonPackage rec {
   pname = "holidays";
-  version = "0.40";
+  version = "0.42";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = "dr-prodigy";
+    owner = "vacanza";
     repo = "python-holidays";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rFitLHUgXSWNd59VzG01ggaTHfVzI50OAi7Gxr6pMug=";
+    hash = "sha256-oVuzX/H5jj/c4dbPGmXUnZeDbgSd9v9qP2dXe6+PaUQ=";
   };
 
   nativeBuildInputs = [
@@ -75,8 +75,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generate and work with holidays in Python";
-    homepage = "https://github.com/dr-prodigy/python-holidays";
-    changelog = "https://github.com/dr-prodigy/python-holidays/releases/tag/v${version}";
+    homepage = "https://github.com/vacanza/python-holidays";
+    changelog = "https://github.com/vacanza/python-holidays/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab jluttine ];
   };
diff --git a/pkgs/development/python-modules/home-assistant-bluetooth/default.nix b/pkgs/development/python-modules/home-assistant-bluetooth/default.nix
index 8d58ea765509..de204e5fb425 100644
--- a/pkgs/development/python-modules/home-assistant-bluetooth/default.nix
+++ b/pkgs/development/python-modules/home-assistant-bluetooth/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "home-assistant-bluetooth";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1Bp43TaJkrT9lZsBu4yiuOD4tE7vv6bYRlcgTfNwOuA=";
+    hash = "sha256-KTaZ3xbZpBIN5zP73YdJW6QeCQThGdqejnfWwvL+0R8=";
   };
 
   postPatch = ''
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 8787a8da31e8..44fb32e25c2d 100644
--- a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-clusters";
-  version = "2023.12.0";
+  version = "2024.1.0";
   format = "wheel";
 
   src = fetchPypi {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     pname = "home_assistant_chip_clusters";
     dist = "py3";
     python = "py3";
-    hash = "sha256-4yAfbQBqHMEXWMwJ0kSDs0We/AsHweJ+Tc8aZiWi90w=";
+    hash = "sha256-4btkqAHbwAsyGV1LjngEoeTT5qyI8dtqFVTp0lIFwmg=";
   };
 
   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 5f437a150d82..a983bdd0a2cf 100644
--- a/pkgs/development/python-modules/home-assistant-chip-core/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-core/default.nix
@@ -8,6 +8,7 @@
 , autoPatchelfHook
 
 # runtime
+, glib
 , libnl
 , openssl_1_1
 
@@ -28,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-core";
-  version = "2023.12.0";
+  version = "2024.1.0";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
@@ -37,13 +38,13 @@ buildPythonPackage rec {
     system = {
       "aarch64-linux" = {
         name = "aarch64";
-        hash = "sha256-mWJ3/IKm/kcNztr7+Q9Rhjka9niGOshLvGShS3ugR6g=";
+        hash = "sha256-UiikZ2DVhTqX6WYfiE8sp2e52BMlyoQnDjLap/efmNc=";
       };
       "x86_64-linux" = {
         name = "x86_64";
-        hash = "sha256-wRJWgT+uycCwNKMgHaiACv1y+AvOLrPOpcm2I8hVAxk=";
+        hash = "sha256-/+gegUMd2n7MpJvdilS5VWefXc0tuRcLrXBBXSH35b0=";
       };
-    }.${stdenv.system} or (throw "Unsupported system");
+    }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
   in fetchPypi {
     pname = "home_assistant_chip_core";
     inherit version format;
@@ -59,6 +60,7 @@ buildPythonPackage rec {
   ];
 
   buildInputs = [
+    glib
     libnl
     openssl_1_1
   ];
diff --git a/pkgs/development/python-modules/homeassistant-bring-api/default.nix b/pkgs/development/python-modules/homeassistant-bring-api/default.nix
new file mode 100644
index 000000000000..47730748ae1a
--- /dev/null
+++ b/pkgs/development/python-modules/homeassistant-bring-api/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "homeassistant-bring-api";
+  version = "0.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "miaucl";
+    repo = "homeassistant-bring-api";
+    rev = "refs/tags/${version}";
+    hash = "sha256-EQ1Qv4B7axwERKvuMnLizpfA6jRNf/SyB6ktQ2BjFtM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "homeassistant_bring_api"
+  ];
+
+  meta = with lib; {
+    description = "Module to access the Bring! shopping lists API with Home Assistant";
+    homepage = "https://github.com/miaucl/homeassistant-bring-api";
+    changelog = "https://github.com/miaucl/homeassistant-bring-api/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/http-message-signatures/default.nix b/pkgs/development/python-modules/http-message-signatures/default.nix
index bc3351feb3d8..b9ccede6714e 100644
--- a/pkgs/development/python-modules/http-message-signatures/default.nix
+++ b/pkgs/development/python-modules/http-message-signatures/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "http-message-signatures";
-  version = "0.4.4";
+  version = "0.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pyauth";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-acTziJM5H5Td+eG/LNrlNwgpVvFDyl/tf6//YuE1XZk=";
+    hash = "sha256-Jsivw4lNA/2oqsOGGx8D4gUPftzuys877A9RXyapnSQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/httpx-auth/default.nix b/pkgs/development/python-modules/httpx-auth/default.nix
index 5c099d91d436..a21e05a567ef 100644
--- a/pkgs/development/python-modules/httpx-auth/default.nix
+++ b/pkgs/development/python-modules/httpx-auth/default.nix
@@ -1,19 +1,20 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
-, setuptools
-, setuptools-scm
-, wheel
 , httpx
 , pyjwt
+, pytest-asyncio
 , pytest-httpx
 , pytestCheckHook
+, pythonOlder
+, setuptools
+, setuptools-scm
+, time-machine
 }:
 
 buildPythonPackage rec {
   pname = "httpx-auth";
-  version = "0.18.0";
+  version = "0.21.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,13 +23,12 @@ buildPythonPackage rec {
     owner = "Colin-b";
     repo = "httpx_auth";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kK31jpS9Ax5kNkvUSbWWIC6CKdZKVJ28kLS0iuntWqg=";
+    hash = "sha256-tKEYFoIHxiBG18JWyCHzQEwUvrWk/zuCWqj1uYsmh84=";
   };
 
   nativeBuildInputs = [
     setuptools
     setuptools-scm
-    wheel
   ];
 
   propagatedBuildInputs = [
@@ -37,11 +37,15 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pyjwt
+    pytest-asyncio
     pytest-httpx
     pytestCheckHook
+    time-machine
   ];
 
-  pythonImportsCheck = [ "httpx_auth" ];
+  pythonImportsCheck = [
+    "httpx_auth"
+  ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/httpx-socks/default.nix b/pkgs/development/python-modules/httpx-socks/default.nix
index 75be71df04f7..1daf600f4d84 100644
--- a/pkgs/development/python-modules/httpx-socks/default.nix
+++ b/pkgs/development/python-modules/httpx-socks/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "httpx-socks";
-  version = "0.8.0";
+  version = "0.8.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "romis2012";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-3Dj+rrH5Pil5xQE6sAAD5RTycwlKq+TVsAeB2NVqGjY=";
+    hash = "sha256-L2nyVADDjPrHwhZRm+RAvfBdpP9sIvc9cakDiLVA7xw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index f2ce179d65bd..ba8b8b67ec93 100644
--- a/pkgs/development/python-modules/identify/default.nix
+++ b/pkgs/development/python-modules/identify/default.nix
@@ -4,23 +4,28 @@
 , fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , ukkonen
 }:
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "2.5.33";
-  format = "setuptools";
+  version = "2.5.35";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pre-commit";
-    repo = pname;
+    repo = "identify";
     rev = "refs/tags/v${version}";
-    hash = "sha256-v0k+N/E1xzhL2iWM0HQzYCxHfzuP8Za4eupkofN7bAA=";
+    hash = "sha256-kUBAq9ttIdTLApJ0yW8Yk/NIXpmllApQGpR24wm0PHA=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     editdistance-s
     pytestCheckHook
diff --git a/pkgs/development/python-modules/igraph/default.nix b/pkgs/development/python-modules/igraph/default.nix
index 4aebfc1cecd1..e2f555121f93 100644
--- a/pkgs/development/python-modules/igraph/default.nix
+++ b/pkgs/development/python-modules/igraph/default.nix
@@ -3,24 +3,28 @@
 , pythonOlder
 , fetchFromGitHub
 , pkg-config
+, setuptools
 , igraph
 , texttable
-, unittestCheckHook
+, cairocffi
+, matplotlib
+, plotly
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "igraph";
-  version = "0.11.3";
+  version = "0.11.4";
 
   disabled = pythonOlder "3.8";
 
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = "python-igraph";
     rev = "refs/tags/${version}";
-    hash = "sha256-Pki0ygcQeuC5E4SwhzGX7oIe9LUSgoBKiXbtcpjL3ng=";
+    hash = "sha256-sR9OqsBxP2DvcYz1dhIP29rrQ56CRKW02oNAXUNttio=";
   };
 
   postPatch = ''
@@ -29,6 +33,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     pkg-config
+    setuptools
   ];
 
   buildInputs = [
@@ -39,13 +44,25 @@ buildPythonPackage rec {
     texttable
   ];
 
+  passthru.optional-dependencies = {
+    cairo = [ cairocffi ];
+    matplotlib = [ matplotlib ];
+    plotly = [ plotly ];
+    plotting = [ cairocffi ];
+  };
+
   # NB: We want to use our igraph, not vendored igraph, but even with
   # pkg-config on the PATH, their custom setup.py still needs to be explicitly
   # told to do it. ~ C.
-  setupPyGlobalFlags = [ "--use-pkg-config" ];
+  env.IGRAPH_USE_PKG_CONFIG = true;
 
   nativeCheckInputs = [
-    unittestCheckHook
+    pytestCheckHook
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+
+  disabledTests = [
+    "testAuthorityScore"
+    "test_labels"
   ];
 
   pythonImportsCheck = [ "igraph" ];
diff --git a/pkgs/development/python-modules/ihm/default.nix b/pkgs/development/python-modules/ihm/default.nix
index 1dfcec78bbda..2cfb69178b10 100644
--- a/pkgs/development/python-modules/ihm/default.nix
+++ b/pkgs/development/python-modules/ihm/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "ihm";
-  version = "0.43";
+  version = "1.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ihmwg";
     repo = "python-ihm";
     rev = "refs/tags/${version}";
-    hash = "sha256-6tjIxe3JYvtWG5z4ltrkUSTxh1q2BDq2I2siYt7dCF8=";
+    hash = "sha256-a1M3YihN71M9TnkldAzN6N1UuPksDk6SPiBgr4HyC8g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ilua/default.nix b/pkgs/development/python-modules/ilua/default.nix
index 9c6a7f6cb337..9eba6781a413 100644
--- a/pkgs/development/python-modules/ilua/default.nix
+++ b/pkgs/development/python-modules/ilua/default.nix
@@ -4,6 +4,7 @@
 , jupyter-console
 , jupyter-core
 , pygments
+, setuptools
 , termcolor
 , txzmq
 }:
@@ -18,6 +19,10 @@ buildPythonPackage rec {
     hash = "sha256-YxV6xC7GS5NXyMPRZN9YIJxamgP2etwrZUAZjk5PjtU=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     jupyter-console
     jupyter-core
diff --git a/pkgs/development/python-modules/imagededup/default.nix b/pkgs/development/python-modules/imagededup/default.nix
index 94d06f6becbd..7b5be6e31709 100644
--- a/pkgs/development/python-modules/imagededup/default.nix
+++ b/pkgs/development/python-modules/imagededup/default.nix
@@ -1,17 +1,19 @@
 { lib
 , buildPythonPackage
+, cython
 , fetchFromGitHub
 , fetchurl
-, cython
+, matplotlib
+, pillow
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, pywavelets
+, scikit-learn
+, setuptools
 , torch
 , torchvision
-, pillow
 , tqdm
-, scikit-learn
-, pywavelets
-, matplotlib
-, pytestCheckHook
-, pytest-mock
 }:
 let
   MobileNetV3 = fetchurl {
@@ -23,50 +25,57 @@ let
     hash = "sha256-msG1N42ZJ71sg3TODNVX74Dhs/j7wYWd8zLE3J0P2CU=";
   };
   EfficientNet = fetchurl {
-    url = "https://download.pytorch.org/models/efficientnet_b4_rwightman-7eb33cd5.pth";
+    url = "https://download.pytorch.org/models/efficientnet_b4_rwightman-23ab8bcd.pth";
     hash = "sha256-I6uLzVvb72GnpDuRrcrYH2Iv1/NvtJNaVpgo13iIxE4=";
   };
 in
 buildPythonPackage rec {
   pname = "imagededup";
   version = "0.3.2";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "idealo";
-    repo = pname;
-    rev = "v${version}";
+    repo = "imagededup";
+    rev = "refs/tags/v${version}";
     hash = "sha256-B2IuNMTZnzBi6IxrHBoMDsmIcqGQpznd/2f1XKo1Oa4=";
   };
 
   nativeBuildInputs = [
     cython
+    setuptools
   ];
 
   propagatedBuildInputs = [
+    matplotlib
+    pillow
+    pywavelets
+    scikit-learn
     torch
     torchvision
-    pillow
     tqdm
-    scikit-learn
-    pywavelets
-    matplotlib
   ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-mock ];
+  nativeCheckInputs = [
+    pytest-mock
+    pytestCheckHook
+  ];
 
   preCheck = ''
-    # checks fail with: error: [Errno 13] Permission denied: '/homeless-shelter'
     export HOME=$(mktemp -d)
 
-    # checks with CNN are preloaded to avoid downloads in check-phase
+    # Checks with CNN are preloaded to avoid downloads in the check phase
     mkdir -p $HOME/.cache/torch/hub/checkpoints/
     ln -s ${MobileNetV3} $HOME/.cache/torch/hub/checkpoints/${MobileNetV3.name}
     ln -s ${ViT} $HOME/.cache/torch/hub/checkpoints/${ViT.name}
     ln -s ${EfficientNet} $HOME/.cache/torch/hub/checkpoints/${EfficientNet.name}
   '';
 
-  pythonImportsCheck = [ "imagededup" ];
+  pythonImportsCheck = [
+    "imagededup"
+  ];
 
   meta = with lib; {
     homepage = "https://idealo.github.io/imagededup/";
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index cb291c1577e8..1817429600a3 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -31,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "2.33.1";
+  version = "2.34.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     owner = "imageio";
     repo = "imageio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1Q1KKQmla/iHb5KbJZZmkpBT2j9uIwy8YDAJ7qDDC4Q=";
+    hash = "sha256-+I5KmKSLi8ARbDH06em71LWhmqziAaDfaBp4hU67/jg=";
   };
 
   patches = lib.optionals (!stdenv.isDarwin) [
diff --git a/pkgs/development/python-modules/iminuit/default.nix b/pkgs/development/python-modules/iminuit/default.nix
index 1028512694b7..113d19928d10 100644
--- a/pkgs/development/python-modules/iminuit/default.nix
+++ b/pkgs/development/python-modules/iminuit/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "iminuit";
-  version = "2.25.1";
+  version = "2.25.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-uCn/wdte1nHc0aSeBFk3duZXXPOmbMfOdHf8ZkI/hj4=";
+    hash = "sha256-O/ihuWhlpgzt8pE19P6uCfp8ZiN9KfaN7WTpeoI6mz4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/import-expression/default.nix b/pkgs/development/python-modules/import-expression/default.nix
new file mode 100644
index 000000000000..42182cadc081
--- /dev/null
+++ b/pkgs/development/python-modules/import-expression/default.nix
@@ -0,0 +1,45 @@
+{ lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  astunparse,
+  setuptools
+}:
+buildPythonPackage rec {
+  pname = "import-expression";
+  version = "1.1.4";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "ioistired";
+    repo = "import-expression-parser";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-mll2NePB7fthzltLOk6D9BgaDpH6GaW4psqcGun/0qM=";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/ioistired/import-expression-parser/commit/3daf968c3163b64685aa529740e132f0df5ab262.patch";
+      hash = "sha256-2Ubv3onor2D26udZbDDMb3iNLopEIRnIcO/X6WUVmJU=";
+    })
+  ];
+
+  nativeBuildInputs = [ setuptools ];
+  propagatedBuildInputs = [ astunparse ];
+  nativeCheckInputs = [ pytestCheckHook ];
+  pytestFlagsArray = [ "tests.py" ];
+
+  pythonImportsCheck = [
+    "import_expression"
+    "import_expression._codec"
+  ];
+
+  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 ];
+    mainProgram = "import-expression";
+    maintainers = with lib.maintainers; [ lychee ];
+  };
+}
diff --git a/pkgs/development/python-modules/intbitset/default.nix b/pkgs/development/python-modules/intbitset/default.nix
index 620ead1afe2e..96e1698002f0 100644
--- a/pkgs/development/python-modules/intbitset/default.nix
+++ b/pkgs/development/python-modules/intbitset/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "intbitset";
-  version = "3.0.2";
+  version = "3.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-owCy1aSYmFf/HQw5cWJHZqiadR4xWqCAwHhlAxrmN6c=";
+    hash = "sha256-boPFun/aJSCqhWVCi7r4Qt63KT1mXzzYKByzklTS/3E=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/iodata/default.nix b/pkgs/development/python-modules/iodata/default.nix
index 748b7a14570c..64021cc051b1 100644
--- a/pkgs/development/python-modules/iodata/default.nix
+++ b/pkgs/development/python-modules/iodata/default.nix
@@ -2,22 +2,20 @@
 
 buildPythonPackage rec {
   pname = "iodata";
-  version = "0.1.7";
+  version = "1.0.0a2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "theochem";
     repo = pname;
     rev = version;
-    hash = "sha256-Qn2xWFxdS12K92DhdHVzYrBjPRV+vYo7Cs27vkeCaxM=";
+    hash = "sha256-GFTCYE19Re7WLhV8eU+0i8OMp/Tsms/Xj9DRTcgjcz4=";
   };
 
-  leaveDotGit = true;
-
   nativeBuildInputs = [ cython nose ];
   propagatedBuildInputs = [ numpy scipy attrs ];
 
-  pythonImportsCheck = [ "iodata" "iodata.overlap_accel" ];
+  pythonImportsCheck = [ "iodata" ];
   doCheck = false; # Requires roberto or nose and a lenghtly setup to find the cython modules
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index 317f8a7fc2eb..ff10be0092ca 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "6.29.0";
+  version = "6.29.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-td0wE8q3szDfcSiRyWzRq4aMJ6cVnmBvdiAV6b+M6z8=";
+    hash = "sha256-O63igATj/2JO1Xl0lIEWZwYErF9nbRIzlpPzFCF20/A=";
   };
 
   # debugpy is optional, see https://github.com/ipython/ipykernel/pull/767
diff --git a/pkgs/development/python-modules/ipywidgets/default.nix b/pkgs/development/python-modules/ipywidgets/default.nix
index 0de6db55b941..4e8377a9bd54 100644
--- a/pkgs/development/python-modules/ipywidgets/default.nix
+++ b/pkgs/development/python-modules/ipywidgets/default.nix
@@ -1,10 +1,13 @@
 { buildPythonPackage
 , fetchPypi
+, setuptools
+, wheel
+, comm
 , ipykernel
 , ipython
+, jsonschema
 , jupyterlab-widgets
 , lib
-, nbformat
 , pytestCheckHook
 , pytz
 , traitlets
@@ -13,29 +16,37 @@
 
 buildPythonPackage rec {
   pname = "ipywidgets";
-  version = "8.1.1";
-  format = "setuptools";
+  version = "8.1.2";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QCEe+1Vq3sb6RQzMKnfVnKRKBg9PnxNoM99ZyfU45ug=";
+    hash = "sha256-0Lm0Hkm66SaoZuYTo5sPAJd0XSufHz3UBmQbSlfsQsk=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
   propagatedBuildInputs = [
+    comm
     ipython
-    ipykernel
     jupyterlab-widgets
     traitlets
-    nbformat
-    pytz
     widgetsnbextension
   ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    ipykernel
+    jsonschema
+    pytestCheckHook
+    pytz
+  ];
 
   meta = {
     description = "IPython HTML widgets for Jupyter";
-    homepage = "https://ipython.org/";
+    homepage = "https://github.com/jupyter-widgets/ipywidgets";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ fridh ];
   };
diff --git a/pkgs/development/python-modules/jax/default.nix b/pkgs/development/python-modules/jax/default.nix
index f60310bdef14..0450f73e639b 100644
--- a/pkgs/development/python-modules/jax/default.nix
+++ b/pkgs/development/python-modules/jax/default.nix
@@ -28,7 +28,7 @@ let
 in
 buildPythonPackage rec {
   pname = "jax";
-  version = "0.4.23";
+  version = "0.4.24";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     repo = "jax";
     # google/jax contains tags for jax and jaxlib. Only use jax tags!
     rev = "refs/tags/${pname}-v${version}";
-    hash = "sha256-PDa3yVH/sszGbWkVkJ+19FdOr3oqdYk+OdbeUTMTDuU=";
+    hash = "sha256-hmx7eo3pephc6BQfoJ3U0QwWBWmhkAc+7S4QmW32qQs=";
   };
 
   nativeBuildInputs = [
@@ -89,6 +89,9 @@ buildPythonPackage rec {
     "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
diff --git a/pkgs/development/python-modules/jaxlib/bin.nix b/pkgs/development/python-modules/jaxlib/bin.nix
index 5e27c0f605b8..0bcf055a8766 100644
--- a/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/pkgs/development/python-modules/jaxlib/bin.nix
@@ -14,7 +14,6 @@
 #   * https://github.com/google/jax/issues/5723#issuecomment-913038780
 
 { absl-py
-, addOpenGLRunpath
 , autoPatchelfHook
 , buildPythonPackage
 , config
@@ -33,9 +32,9 @@
 }:
 
 let
-  inherit (cudaPackagesGoogle) cudatoolkit cudnn cudaVersion;
+  inherit (cudaPackagesGoogle) autoAddOpenGLRunpathHook cudatoolkit cudnn cudaVersion;
 
-  version = "0.4.23";
+  version = "0.4.24";
 
   inherit (python) pythonVersion;
 
@@ -56,65 +55,65 @@ let
       "3.9-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp39";
-        hash = "sha256-maN9RzK6/hYIuPRd8n8n5qa/HyPgAf6UD+mlqzZ1/Xc=";
+        hash = "sha256-6P5ArMoLZiUkHUoQ/mJccbNj5/7el/op+Qo6cGQ33xE=";
       };
       "3.9-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp39";
-        hash = "sha256-gdb07c12HCfK5VXT2C+9lYKSiIpPgD8sNmd4eG2M6M4=";
+        hash = "sha256-23JQZRwMLtt7sK/JlCBqqRyfTVIAVJFN2sL+nAkQgvU=";
       };
       "3.9-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp39";
-        hash = "sha256-TdU4wEoqEhsDq18MuLEpmKqpU51+xUYp/reZqEDJK1U=";
+        hash = "sha256-OgMedn9GHGs5THZf3pkP3Aw/jJ0vL5qK1b+Lzf634Ik=";
       };
 
       "3.10-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp310";
-        hash = "sha256-cnX75aSJxoPFUCYD1V5QgyPNovS9lSGqg4PGdPsKsvM=";
+        hash = "sha256-/VwUIIa7mTs/wLz0ArsEfNrz2pGriVVT5GX9XRFRxfY=";
       };
       "3.10-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp310";
-        hash = "sha256-H9sbeR4+4XytREYLP0LJphqGkQqHcinTC9NlT0Rj1aA=";
+        hash = "sha256-LgICOyDGts840SQQJh+yOMobMASb62llvJjpGvhzrSw=";
       };
       "3.10-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp310";
-        hash = "sha256-43VuBgGvdjauWPQtJK9w5GBI/++JvV4FwwO4maIXfDY=";
+        hash = "sha256-vhyULw+zBpz1UEi2tqgBMQEzY9a6YBgEIg6A4PPh3bQ=";
       };
 
       "3.11-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp311";
-        hash = "sha256-mEdm0wmyHKg4RlA7q9/e1OOu+BfGcPKBCSvLwXfFhJI=";
+        hash = "sha256-VJO/VVwBFkOEtq4y/sLVgAV8Cung01JULiuT6W96E/8=";
       };
       "3.11-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp311";
-        hash = "sha256-1kb/m8DODrtXO2drIfpttCLC72oNVszADbSDspllQVs=";
+        hash = "sha256-VtuwXxurpSp1KI8ty1bizs5cdy8GEBN2MgS227sOCmE=";
       };
       "3.11-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp311";
-        hash = "sha256-jhLX4ps+EtU1sku722v51mz2SSamo4/dkdRWX3zFcRE=";
+        hash = "sha256-4Dj5dEGKb9hpg3HlVogNO1Gc9UibJhy1eym2mjivxAQ=";
       };
 
       "3.12-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp312";
-        hash = "sha256-oimiuQopgN1oKhbDc7SsRJPnA6JiEI9UieikWR2qpVk=";
+        hash = "sha256-TlrGVtb3NTLmhnILWPLJR+jISCZ5SUV4wxNFpSfkCBo=";
       };
       "3.12-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp312";
-        hash = "sha256-J4zaKcx0c0Bgk7w/n6klqDlgY9IqTNINfg6g033LUDk=";
+        hash = "sha256-FIwK5CGykQjteuWzLZnbtAggIxLQeGV96bXlZGEytN0=";
       };
       "3.12-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp312";
-        hash = "sha256-UFEE/mBitEOVUoijhUfphyy24QfWPZ+FQPsQ0cjY79A=";
+        hash = "sha256-9/jw/wr6oUD9pOadVAaMRL086iVMUXwVgnUMcG1UNvE=";
       };
     };
 
@@ -130,31 +129,35 @@ 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-our2mSwHPdjVoDAZP+9aNUkJ+vxv1Tq7G5UqA9HvhNI=";
+      hash = "sha256-xdJKLPtx+CIza2CrWKM3M0cZJzyNFVTTTsvlgh38bfM=";
     };
     "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-jkIABnJZnn7A6n9VGs/MldzdDiKwWh0fEvl7Vqn85Kg=";
+      hash = "sha256-QCjrOczD2mp+CDwVXBc0/4rJnAizeV62AK0Dpx9X6TE=";
     };
     "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-dMUcRnHjl8NyUeO3P1x7CNgF0iAHFKIzUtHh+/CNkow=";
+      hash = "sha256-Ipy3vk1yUplpNzECAFt63aOIhgEWgXG7hkoeTIk9bQQ=";
     };
     "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-kXJ6bUwX+QybqYPV9Kpwv+lhdoGEFRr4+1T0vfXoWRo=";
+      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-m2Y5p12gF3OaADu+aGw5RjcKFrj9RB8xzNWnKNpSz60=";
+      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-aQ7iX3o0kQ4liPexv7dkBVWVTUpaty83L083MybGkf0=";
+      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-uIEyjEmv0HBaiYVl5PuICTI9XnH4zAfQ1l9tjALRcP4=";
+      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=";
     };
   };
 
@@ -177,7 +180,7 @@ buildPythonPackage {
   # Prebuilt wheels are dynamically linked against things that nix can't find.
   # Run `autoPatchelfHook` to automagically fix them.
   nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]
-    ++ lib.optionals cudaSupport [ addOpenGLRunpath ];
+    ++ lib.optionals cudaSupport [ autoAddOpenGLRunpathHook ];
   # Dynamic link dependencies
   buildInputs = [ stdenv.cc.cc.lib ];
 
@@ -193,8 +196,6 @@ buildPythonPackage {
   preInstallCheck = lib.optional cudaSupport ''
     shopt -s globstar
 
-    addOpenGLRunpath $out/**/*.so
-
     for file in $out/**/*.so; do
       rpath=$(patchelf --print-rpath $file)
       # For some reason `makeLibraryPath` on `cudatoolkit_11` maps to
diff --git a/pkgs/development/python-modules/jaxlib/default.nix b/pkgs/development/python-modules/jaxlib/default.nix
index aadb9673dc6a..657a6e52c084 100644
--- a/pkgs/development/python-modules/jaxlib/default.nix
+++ b/pkgs/development/python-modules/jaxlib/default.nix
@@ -12,6 +12,7 @@
 , curl
 , cython
 , fetchFromGitHub
+, fetchpatch
 , git
 , IOKit
 , jsoncpp
@@ -47,13 +48,18 @@
 
   # MKL:
 , mklSupport ? true
-}:
+}@inputs:
 
 let
-  inherit (cudaPackagesGoogle) backendStdenv cudatoolkit cudaFlags cudnn nccl;
+  inherit (cudaPackagesGoogle) autoAddOpenGLRunpathHook cudaFlags cudaVersion cudnn nccl;
 
   pname = "jaxlib";
-  version = "0.4.23";
+  version = "0.4.24";
+
+  # 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;
 
   meta = with lib; {
     description = "JAX is Autograd and XLA, brought together for high-performance machine learning research.";
@@ -65,25 +71,51 @@ let
     # however even with that fix applied, it doesn't work for everyone:
     # https://github.com/NixOS/nixpkgs/pull/184395#issuecomment-1207287129
     # NOTE: We always build with NCCL; if it is unsupported, then our build is broken.
-    broken = stdenv.isDarwin || nccl.meta.unsupported;
+    broken = effectiveStdenv.isDarwin || nccl.meta.unsupported;
   };
 
-  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}"
+  # These are necessary at build time and run time.
+  cuda_libs_joined = symlinkJoin {
+    name = "cuda-joined";
+    paths = with cudaPackagesGoogle; [
+      cuda_cudart.lib # libcudart.so
+      cuda_cudart.static # libcudart_static.a
+      cuda_cupti.lib # libcupti.so
+      libcublas.lib # libcublas.so
+      libcufft.lib # libcufft.so
+      libcurand.lib # libcurand.so
+      libcusolver.lib # libcusolver.so
+      libcusparse.lib # libcusparse.so
+    ];
+  };
+  # These are only necessary at build time.
+  cuda_build_deps_joined = symlinkJoin {
+    name = "cuda-build-deps-joined";
+    paths = with cudaPackagesGoogle; [
+      cuda_libs_joined
+
+      # Binaries
+      cudaPackagesGoogle.cuda_nvcc.bin # nvcc
+
+      # Headers
+      cuda_cccl.dev # block_load.cuh
+      cuda_cudart.dev # cuda.h
+      cuda_cupti.dev # cupti.h
+      cuda_nvcc.dev # See https://github.com/google/jax/issues/19811
+      cuda_nvml_dev # nvml.h
+      cuda_nvtx.dev # nvToolsExt.h
+      libcublas.dev # cublas_api.h
+      libcufft.dev # cufft.h
+      libcurand.dev # curand.h
+      libcusolver.dev # cusolver_common.h
+      libcusparse.dev # cusparse.h
     ];
   };
 
-  cudatoolkit_cc_joined = symlinkJoin {
-    name = "${cudatoolkit.cc.name}-merged";
+  backend_cc_joined = symlinkJoin {
+    name = "cuda-cc-joined";
     paths = [
-      backendStdenv.cc
+      effectiveStdenv.cc
       binutils.bintools # for ar, dwp, nm, objcopy, objdump, strip
     ];
   };
@@ -137,8 +169,44 @@ let
 
   arch =
     # KeyError: ('Linux', 'arm64')
-    if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.linuxArch == "arm64" then "aarch64"
-    else stdenv.hostPlatform.linuxArch;
+    if effectiveStdenv.hostPlatform.isLinux && effectiveStdenv.hostPlatform.linuxArch == "arm64" then "aarch64"
+    else effectiveStdenv.hostPlatform.linuxArch;
+
+  xla = effectiveStdenv.mkDerivation {
+    pname = "xla-src";
+    version = "unstable";
+
+    src = fetchFromGitHub {
+      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=";
+    };
+
+    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.
+    nativeBuildInputs = [ python ];
+
+    # Main culprits we're targeting are third_party/tsl/third_party/gpus/crosstool/clang/bin/*.tpl
+    postPatch = ''
+      patchShebangs .
+    '';
+
+    installPhase = ''
+      cp -r . $out
+    '';
+  };
 
   bazel-build = buildBazelPackage rec {
     name = "bazel-build-${pname}-${version}";
@@ -151,7 +219,7 @@ let
       repo = "jax";
       # google/jax contains tags for jax and jaxlib. Only use jaxlib tags!
       rev = "refs/tags/${pname}-v${version}";
-      hash = "sha256-PDa3yVH/sszGbWkVkJ+19FdOr3oqdYk+OdbeUTMTDuU=";
+      hash = "sha256-hmx7eo3pephc6BQfoJ3U0QwWBWmhkAc+7S4QmW32qQs=";
     };
 
     nativeBuildInputs = [
@@ -162,7 +230,7 @@ let
       wheel
       build
       which
-    ] ++ lib.optionals stdenv.isDarwin [
+    ] ++ lib.optionals effectiveStdenv.isDarwin [
       cctools
     ];
 
@@ -181,68 +249,101 @@ let
       six
       snappy
       zlib
-    ] ++ lib.optionals cudaSupport [
-      cudatoolkit
-      cudnn
-    ] ++ lib.optionals stdenv.isDarwin [
+    ] ++ lib.optionals effectiveStdenv.isDarwin [
       IOKit
-    ] ++ lib.optionals (!stdenv.isDarwin) [
+    ] ++ lib.optionals (!effectiveStdenv.isDarwin) [
       nsync
     ];
 
+    # We don't want to be quite so picky regarding bazel version
     postPatch = ''
       rm -f .bazelversion
     '';
 
     bazelRunTarget = "//jaxlib/tools:build_wheel";
-    runTargetFlags = [ "--output_path=$out" "--cpu=${arch}" ];
+    runTargetFlags = [
+      "--output_path=$out"
+      "--cpu=${arch}"
+      # This has no impact whatsoever...
+      "--jaxlib_git_hash='12345678'"
+    ];
 
     removeRulesCC = false;
 
-    GCC_HOST_COMPILER_PREFIX = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin";
-    GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin/gcc";
+    GCC_HOST_COMPILER_PREFIX = lib.optionalString cudaSupport "${backend_cc_joined}/bin";
+    GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${backend_cc_joined}/bin/gcc";
 
     # The version is automatically set to ".dev" if this variable is not set.
     # https://github.com/google/jax/commit/e01f2617b85c5bdffc5ffb60b3d8d8ca9519a1f3
     JAXLIB_RELEASE = "1";
 
-    preConfigure = ''
-      # dummy ldconfig
-      mkdir dummy-ldconfig
-      echo "#!${stdenv.shell}" > dummy-ldconfig/ldconfig
-      chmod +x dummy-ldconfig/ldconfig
-      export PATH="$PWD/dummy-ldconfig:$PATH"
-      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 (stdenv.hostPlatform.avxSupport && stdenv.hostPlatform.isUnix) ''
-      build --config=avx_posix
-    '' + lib.optionalString mklSupport ''
-      build --config=mkl_open_source_only
-    '' + lib.optionalString cudaSupport ''
-      build --action_env CUDA_TOOLKIT_PATH="${cudatoolkit_joined}"
-      build --action_env CUDNN_INSTALL_PATH="${cudnn}"
-      build --action_env TF_CUDA_PATHS="${cudatoolkit_joined},${cudnn},${nccl}"
-      build --action_env TF_CUDA_VERSION="${lib.versions.majorMinor cudatoolkit.version}"
-      build --action_env TF_CUDNN_VERSION="${lib.versions.major cudnn.version}"
-      build:cuda --action_env TF_CUDA_COMPUTE_CAPABILITIES="${builtins.concatStringsSep "," cudaFlags.realArches}"
-    '' + ''
-      CFG
-    '';
+    preConfigure =
+      # Dummy ldconfig to work around "Can't open cache file /nix/store/<hash>-glibc-2.38-44/etc/ld.so.cache" error
+      ''
+        mkdir dummy-ldconfig
+        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 ''
+        build --config=cuda
+        build --action_env CUDA_TOOLKIT_PATH="${cuda_build_deps_joined}"
+        build --action_env CUDNN_INSTALL_PATH="${cudnn}"
+        build --action_env TF_CUDA_PATHS="${cuda_build_deps_joined},${cudnn},${nccl}"
+        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 ''
+        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"
-    ] ++ lib.optionals stdenv.cc.isClang [
+      # 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++"
+      "--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
@@ -252,40 +353,34 @@ let
       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"
-      ] ++ [
-        "--config=mkl_open_source_only"
       ];
 
       sha256 = (if cudaSupport then {
-        x86_64-linux = "sha256-q2wRaoCGnISEdtF6jDMk9Wccy/wTmLusVBI7dDATwi4=";
+        x86_64-linux = "sha256-IEKoHjCOtKZKvU/DUUjbvXldORFJuyO1R3F6CZZDXxM=";
       } else {
-        x86_64-linux = "sha256-0cDJ27HCi3J5xeT6TkTtfUzF/yESBYmEVG1r14kPdRs=";
-        aarch64-linux = "sha256-WbaN8VYjeW0mDthmtoSTttqd4K/Z8dP5+VkTo10pLtU=";
-      }).${stdenv.system} or (throw "jaxlib: unsupported system: ${stdenv.system}");
+        x86_64-linux = "sha256-IE4+Tk4llo85u3NjakvY04tPw4R1bidyecPpQ4gknR8=";
+        aarch64-linux = "sha256-NehnpA4m+Fynvh0S6WKy/v9ab81487NE9ahvbS70wjY=";
+      }).${effectiveStdenv.system} or (throw "jaxlib: unsupported system: ${effectiveStdenv.system}");
     };
 
     buildAttrs = {
       outputs = [ "out" ];
 
-      TF_SYSTEM_LIBS = lib.concatStringsSep "," (tf_system_libs ++ lib.optionals (!stdenv.isDarwin) [
+      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.
-      # 1) Link protobuf from nixpkgs (through TF_SYSTEM_LIBS when using gcc) to prevent crashes on
-      #    loading multiple extensions in the same python program due to duplicate protobuf DBs.
-      # 2) Patch python path in the compiler driver.
-      preBuild = lib.optionalString cudaSupport ''
-        patchShebangs ../output/external/xla/third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc.tpl
-      '' + lib.optionalString stdenv.isDarwin ''
-        # Framework search paths aren't added by bintools hook
-        # https://github.com/NixOS/nixpkgs/pull/41914
+      # 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
+      # hook. See https://github.com/NixOS/nixpkgs/pull/41914.
+      preBuild = lib.optionalString effectiveStdenv.isDarwin ''
         export NIX_LDFLAGS+=" -F${IOKit}/Library/Frameworks"
         substituteInPlace ../output/external/rules_cc/cc/private/toolchain/osx_cc_wrapper.sh.tpl \
           --replace "/usr/bin/install_name_tool" "${cctools}/bin/install_name_tool"
@@ -297,13 +392,13 @@ let
     inherit meta;
   };
   platformTag =
-    if stdenv.hostPlatform.isLinux then
+    if effectiveStdenv.hostPlatform.isLinux then
       "manylinux2014_${arch}"
-    else if stdenv.system == "x86_64-darwin" then
+    else if effectiveStdenv.system == "x86_64-darwin" then
       "macosx_10_9_${arch}"
-    else if stdenv.system == "aarch64-darwin" then
+    else if effectiveStdenv.system == "aarch64-darwin" then
       "macosx_11_0_${arch}"
-    else throw "Unsupported target platform: ${stdenv.hostPlatform}";
+    else throw "Unsupported target platform: ${effectiveStdenv.hostPlatform}";
 
 in
 buildPythonPackage {
@@ -314,20 +409,18 @@ buildPythonPackage {
     let cp = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
     in "${bazel-build}/jaxlib-${version}-${cp}-${cp}-${platformTag}.whl";
 
-  # Note that cudatoolkit is necessary since jaxlib looks for "ptxas" in $PATH.
-  # See https://github.com/NixOS/nixpkgs/pull/164176#discussion_r828801621 for
-  # more info.
+  # 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 ${cudatoolkit}/bin/ptxas $out/bin/ptxas
+    ln -s ${cudaPackagesGoogle.cuda_nvcc.bin}/bin/ptxas $out/bin/ptxas
 
     find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
-      addOpenGLRunpath "$lib"
-      patchelf --set-rpath "${cudatoolkit}/lib:${cudatoolkit.lib}/lib:${cudnn}/lib:${nccl}/lib:$(patchelf --print-rpath "$lib")" "$lib"
+      patchelf --add-rpath "${lib.makeLibraryPath [cuda_libs_joined cudnn nccl]}" "$lib"
     done
   '';
 
-  nativeBuildInputs = lib.optional cudaSupport addOpenGLRunpath;
+  nativeBuildInputs = lib.optionals cudaSupport [ autoAddOpenGLRunpathHook ];
 
   propagatedBuildInputs = [
     absl-py
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index cbc548151a15..deb56a2a3e9f 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.25.0";
+  version = "1.25.1";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "kellyjonbrazil";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-viB/avMED5xllmkrF+WpsQbF/b7pyr3p3p+8vJk72+k=";
+    hash = "sha256-A9bmnamoRwDG/HFDjdBvnfGB+XqpAdLVnHeHtSf07zg=";
   };
 
   propagatedBuildInputs = [ ruamel-yaml xmltodict pygments ];
diff --git a/pkgs/development/python-modules/jishaku/default.nix b/pkgs/development/python-modules/jishaku/default.nix
new file mode 100644
index 000000000000..e758f4c691eb
--- /dev/null
+++ b/pkgs/development/python-modules/jishaku/default.nix
@@ -0,0 +1,66 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  discordpy,
+  click,
+  braceexpand,
+  import-expression,
+  tabulate,
+  pytestCheckHook,
+  pytest-asyncio,
+  youtube-dl
+}:
+buildPythonPackage rec {
+  pname = "jishaku";
+  version = "2.5.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Gorialis";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-BWnuk6h80cKwRECyTuRvnYnTC78219oraeTNoqWDd1c=";
+  };
+
+  patches = [
+    (fetchpatch {
+      # add entrypoint for install script
+      url = "https://github.com/Gorialis/jishaku/commit/b96cd55a1c2fd154c548f08019ccd6f7be9c7f90.patch";
+      hash = "sha256-laPoupwCC1Zthib8G+c1BXqTwZK0Z6up1DKVkhFicJ0=";
+    })
+  ];
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    discordpy
+    click
+    braceexpand
+    tabulate
+    import-expression
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-asyncio
+    youtube-dl
+  ];
+
+  pythonImportsCheck = [
+    "jishaku"
+    "jishaku.repl"
+    "jishaku.features"
+  ];
+
+  meta = {
+    description = "A 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 ];
+    mainProgram = "jishaku";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/jsonargparse/default.nix b/pkgs/development/python-modules/jsonargparse/default.nix
index f52b6412a617..23a4200500a4 100644
--- a/pkgs/development/python-modules/jsonargparse/default.nix
+++ b/pkgs/development/python-modules/jsonargparse/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "jsonargparse";
-  version = "4.27.4";
+  version = "4.27.5";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "omni-us";
     repo = "jsonargparse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MzcFsH1PyDAnPBEELHLRKfD3TR01INDFIvHc1y3dbng=";
+    hash = "sha256-MSvgOF/5X78HSSRvv1TBmaYZgcUVMKGaHfzXu3lIGVY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/julius/default.nix b/pkgs/development/python-modules/julius/default.nix
new file mode 100644
index 000000000000..a261b43454d6
--- /dev/null
+++ b/pkgs/development/python-modules/julius/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, wheel
+, torch
+}:
+
+buildPythonPackage rec {
+  pname = "julius";
+  version = "0.2.7";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-PA9fUwbX1gFvzJUZaydMrm8H4slZbu0xTk52QVVPuwg=";
+  };
+
+  propagatedBuildInputs = [
+    torch
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [ "julius" ];
+
+  meta = with lib; {
+    description = "Nice DSP sweets: resampling, FFT Convolutions. All with PyTorch, differentiable and with CUDA support";
+    homepage = "https://pypi.org/project/julius/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyter-collaboration/default.nix b/pkgs/development/python-modules/jupyter-collaboration/default.nix
index 7d0fdb300558..b131e347393c 100644
--- a/pkgs/development/python-modules/jupyter-collaboration/default.nix
+++ b/pkgs/development/python-modules/jupyter-collaboration/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "jupyter-collaboration";
-  version = "2.0.1";
+  version = "2.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "jupyter_collaboration";
     inherit version;
-    hash = "sha256-Uc57kxhaj/DQi5cX+kjV4PGRcFbxWmzc+B248+1VAYI=";
+    hash = "sha256-EpWFsVWCi/6IOuM/zgPIer3arMDGjPPxhm/tZC4aji4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jupyterlab-lsp/default.nix b/pkgs/development/python-modules/jupyterlab-lsp/default.nix
index 71012f747e47..eba16194d69c 100644
--- a/pkgs/development/python-modules/jupyterlab-lsp/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-lsp/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-lsp";
-  version = "5.0.2";
+  version = "5.0.3";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JmiGhOkHUPjvikFimgpAUOc26IFVWqFBP7Xah54GNfE=";
+    hash = "sha256-qcijpkZJS+SE1+MXSrHSQV7WD0dzzshHmqW6N+XwS8k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterlab-widgets/default.nix b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
index 747556206a19..85ec4d6d48f9 100644
--- a/pkgs/development/python-modules/jupyterlab-widgets/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
@@ -4,15 +4,21 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-widgets";
-  version = "3.0.9";
-  format = "setuptools";
+  version = "3.0.10";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "jupyterlab_widgets";
     inherit version;
-    hash = "sha256-YAWk6XTHvu6EBg/fujQaMhhJUEbeiuPsZIiOX+Gf20w=";
+    hash = "sha256-BPKsBJdnJ+T50PqRzcLxq4YPll5QTCnb1qZciCydBMA=";
   };
 
+  # jupyterlab is required to build from source but we use the pre-build package
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace '"jupyterlab~=4.0"' ""
+  '';
+
   nativeBuildInputs = [
     jupyter-packaging
   ];
diff --git a/pkgs/development/python-modules/jwcrypto/default.nix b/pkgs/development/python-modules/jwcrypto/default.nix
index 7bd3126b093e..4a10cd9fad2a 100644
--- a/pkgs/development/python-modules/jwcrypto/default.nix
+++ b/pkgs/development/python-modules/jwcrypto/default.nix
@@ -3,26 +3,36 @@
 , fetchPypi
 , cryptography
 , deprecated
+, pytestCheckHook
 , pythonOlder
+, setuptools
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "jwcrypto";
-  version = "1.5.1";
-  format = "setuptools";
+  version = "1.5.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SLub9DN3cTYlNXnlK3X/4PmkpyHRM9AfRaC5HtX08a4=";
+    hash = "sha256-CBX7q2E9uZuthWkdpfE2+IYEIzlmZ3KKJkvPpuHbNrA=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     cryptography
     deprecated
+    typing-extensions
   ];
 
+  nativeCheckInputs = [ pytestCheckHook ];
+
   pythonImportsCheck = [
     "jwcrypto"
   ];
diff --git a/pkgs/development/python-modules/kaggle/default.nix b/pkgs/development/python-modules/kaggle/default.nix
index 58098b37bf79..1de5eff46285 100644
--- a/pkgs/development/python-modules/kaggle/default.nix
+++ b/pkgs/development/python-modules/kaggle/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "kaggle";
-  version = "1.6.3";
+  version = "1.6.6";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-J2FOzXJhO59Ya4cjE68WOK2MChfQx4rZ1KcYeb7NcuQ=";
+    sha256 = "sha256-24hxXMBhivJTtq/eIYga6ejm9ksxCs+yc/0T9KV1Igc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/keyrings-cryptfile/default.nix b/pkgs/development/python-modules/keyrings-cryptfile/default.nix
index f15e65a32b57..6265ef7bb756 100644
--- a/pkgs/development/python-modules/keyrings-cryptfile/default.nix
+++ b/pkgs/development/python-modules/keyrings-cryptfile/default.nix
@@ -50,6 +50,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/frispete/keyrings.cryptfile";
     changelog = "https://github.com/frispete/keyrings.cryptfile/blob/v${version}/CHANGES.md";
     license = licenses.mit;
-    maintainers = [ maintainers.lourkeur ];
+    maintainers = [ maintainers.bbjubjub ];
   };
 }
diff --git a/pkgs/development/python-modules/knx-frontend/default.nix b/pkgs/development/python-modules/knx-frontend/default.nix
index 47b9fa4d8357..6b6a1cff6700 100644
--- a/pkgs/development/python-modules/knx-frontend/default.nix
+++ b/pkgs/development/python-modules/knx-frontend/default.nix
@@ -1,35 +1,23 @@
 { lib
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 , setuptools
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "knx-frontend";
-  version = "2023.6.23.191712";
+  version = "2024.1.20.105944";
   format = "pyproject";
 
   # TODO: source build, uses yarn.lock
   src = fetchPypi {
     pname = "knx_frontend";
     inherit version;
-    hash = "sha256-MeurZ6731qjeBK6HTwXYLVs6+nXF9Hf1p8/NNwxmae4=";
+    hash = "sha256-5u+BaZjbGpIpQd3k+u5NC099TQuiwGKdE/EoIWny01I=";
   };
 
-  patches = [
-    # https://github.com/XKNX/knx-frontend/pull/96
-    (fetchpatch {
-      name = "relax-setuptools-dependency.patch";
-      url = "https://github.com/XKNX/knx-frontend/commit/72ac6dc42eeeb488992b0709ee58ea4a79287817.patch";
-      hash = "sha256-EpfgEq4pIx7ahqJZalzo30ruj8NlZYHcKHxFXCGL98w=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
-    wheel
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/laces/default.nix b/pkgs/development/python-modules/laces/default.nix
new file mode 100644
index 000000000000..d29396658150
--- /dev/null
+++ b/pkgs/development/python-modules/laces/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, django
+, fetchFromGitHub
+, flit-core
+, python3
+}:
+
+buildPythonPackage rec {
+  pname = "laces";
+  version = "0.1.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tbrlpld";
+    repo = "laces";
+    rev = "v${version}";
+    hash = "sha256-N3UUJomlihdM+6w9jmn9t10Q2meIqEOjW/rf3ZLrD78=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    django
+  ];
+
+  pythonImportsCheck = [ "laces" ];
+
+  meta = with lib; {
+    description = "Django components that know how to render themselves";
+    homepage = "https://github.com/tbrlpld/laces";
+    changelog = "https://github.com/tbrlpld/laces/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ sephi ];
+  };
+}
diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix
index 0d0046b216ee..1790e26f585d 100644
--- a/pkgs/development/python-modules/langchain-community/default.nix
+++ b/pkgs/development/python-modules/langchain-community/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.16";
+  version = "0.0.24";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_community";
     inherit version;
-    hash = "sha256-wGUSqTAToG+6dnnNWhJU/4uSfN3S0fvgzERL97vfC4w=";
+    hash = "sha256-/WCfbJYsykt7dfIVnx+/dLFP3UUBHuK+U+ldtOZ4g38=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix
index 8e8309874f1e..9196aef28b5d 100644
--- a/pkgs/development/python-modules/langchain-core/default.nix
+++ b/pkgs/development/python-modules/langchain-core/default.nix
@@ -8,6 +8,7 @@
 , langsmith
 , packaging
 , pydantic
+, pythonRelaxDepsHook
 , pyyaml
 , requests
 , tenacity
@@ -15,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.16";
+  version = "0.1.26";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,11 +24,16 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_core";
     inherit version;
-    hash = "sha256-jLVG7tMYAJ7hqKOB0QgHTt3wOVrmHrJD2wDXbh4mXok=";
+    hash = "sha256-YYZ1jWIBVyOqxn7xogVWldA+gsTdQHQheXWwxi+vSxc=";
   };
 
+  pythonRelaxDeps = [
+    "langsmith"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -41,7 +47,9 @@ buildPythonPackage rec {
     tenacity
   ];
 
-  pythonImportsCheck = [ "langchain_core" ];
+  pythonImportsCheck = [
+    "langchain_core"
+  ];
 
   # PyPI source does not have tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix
index 18936f7a9ca5..a8da3cce93cd 100644
--- a/pkgs/development/python-modules/langchain/default.nix
+++ b/pkgs/development/python-modules/langchain/default.nix
@@ -3,7 +3,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
-, pythonRelaxDepsHook
 , poetry-core
 , aiohttp
 , async-timeout
@@ -52,7 +51,7 @@
 
 buildPythonPackage rec {
   pname = "langchain";
-  version = "0.1.1";
+  version = "0.1.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -61,14 +60,13 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langchain";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cQz4u6FeVZLNbix4pyc6ulfj+nb/tARMJniusy7Q46A=";
+    hash = "sha256-AgEze4JUo3i6HCg541tz/gV6g+zrueyOljy/TXUYBV4=";
   };
 
   sourceRoot = "${src.name}/libs/langchain";
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   buildInputs = [
@@ -76,18 +74,18 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    langchain-core
+    aiohttp
+    dataclasses-json
+    jsonpatch
     langchain-community
+    langchain-core
+    langsmith
+    numpy
     pydantic
-    sqlalchemy
-    requests
     pyyaml
-    numpy
-    aiohttp
+    requests
+    sqlalchemy
     tenacity
-    jsonpatch
-    dataclasses-json
-    langsmith
   ] ++ lib.optionals (pythonOlder "3.11") [
     async-timeout
   ];
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index 21ee2b4ac871..919e64a3cf44 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -1,18 +1,21 @@
 { lib
+, attr
 , buildPythonPackage
 , fetchFromGitHub
 , freezegun
+, orjson
 , poetry-core
 , pydantic
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.0.83";
+  version = "0.1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,21 +24,28 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WRrwekh4pcn3I0U/A2Q91ePrRx2RUC3XX+z4bez0BzU=";
+    hash = "sha256-IjKlyfYA7HH+fXPsV5lWd8BOXooJFZy0WxkUy2lm4bI=";
   };
 
   sourceRoot = "${src.name}/python";
 
+  pythonRelaxDeps = [
+    "orjson"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
+    orjson
     pydantic
     requests
   ];
 
   nativeCheckInputs = [
+    attr
     freezegun
     pytest-asyncio
     pytestCheckHook
@@ -51,11 +61,17 @@ buildPythonPackage rec {
     "test_as_runnable_async_batch"
     # requires git repo
     "test_git_info"
+    # Tests require OpenAI API key
+    "test_chat_async_api"
+    "test_chat_sync_api"
+    "test_completions_async_api"
+    "test_completions_sync_api"
   ];
 
   disabledTestPaths = [
     # due to circular import
     "tests/integration_tests/test_client.py"
+    "tests/unit_tests/test_client.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/ledger-bitcoin/default.nix b/pkgs/development/python-modules/ledger-bitcoin/default.nix
index c2ad7b47f6c1..8298da004ccf 100644
--- a/pkgs/development/python-modules/ledger-bitcoin/default.nix
+++ b/pkgs/development/python-modules/ledger-bitcoin/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "ledger-bitcoin";
-  version = "0.2.2";
+  version = "0.3.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit version;
     pname = "ledger_bitcoin";
-    hash = "sha256-MEZuwIthIOwBkRdR7dEsEznO+GVBeOf7/5xmwNW1SvI=";
+    hash = "sha256-rZzerzOkVWK71brmdRAluGmi+B1usCZ90GKgH1klpNU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/levenshtein/default.nix b/pkgs/development/python-modules/levenshtein/default.nix
index 2a297571b3f1..9b4d9caaf699 100644
--- a/pkgs/development/python-modules/levenshtein/default.nix
+++ b/pkgs/development/python-modules/levenshtein/default.nix
@@ -1,11 +1,11 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
 , cmake
 , cython_3
+, fetchFromGitHub
 , pytestCheckHook
+, pythonOlder
 , rapidfuzz
 , rapidfuzz-cpp
 , scikit-build
@@ -13,16 +13,16 @@
 
 buildPythonPackage rec {
   pname = "levenshtein";
-  version = "0.23.0";
-  format = "pyproject";
+  version = "0.25.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "maxbachmann";
     repo = "Levenshtein";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xQimslz/G6nf2uYerLSaRAK5gvmfDmWTzEx/fh+nqg0=";
+    hash = "sha256-MkzIwTZU8hqPDOlfN4qADCKjGJIQrNhhOmVRAnAfNK0=";
     fetchSubmodules = true; ## for vendored `rapidfuzz-cpp`
   };
 
diff --git a/pkgs/development/python-modules/lexilang/default.nix b/pkgs/development/python-modules/lexilang/default.nix
new file mode 100644
index 000000000000..8577cb521196
--- /dev/null
+++ b/pkgs/development/python-modules/lexilang/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pytestCheckHook
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "lexilang";
+  version = "1.0.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "LibreTranslate";
+    repo = "LexiLang";
+    rev = "v${version}";
+    hash = "sha256-TLkaqCE9NDjN2XuYOUkeeWIRcqkxrdg31fS4mEnlcEo=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} test.py
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Simple, fast dictionary-based language detector for short texts";
+    homepage = "https://github.com/LibreTranslate/LexiLang";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ izorkin ];
+  };
+}
diff --git a/pkgs/development/python-modules/limits/default.nix b/pkgs/development/python-modules/limits/default.nix
index f55fd087cad9..e0c1fcf9a14c 100644
--- a/pkgs/development/python-modules/limits/default.nix
+++ b/pkgs/development/python-modules/limits/default.nix
@@ -1,10 +1,13 @@
 { lib
+, aetcd
 , buildPythonPackage
+, coredis
 , deprecated
-, fetchFromGitHub
 , etcd3
+, fetchFromGitHub
 , hiro
 , importlib-resources
+, motor
 , packaging
 , pymemcache
 , pymongo
@@ -20,13 +23,13 @@
 buildPythonPackage rec {
   pname = "limits";
   version = "3.7.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "alisaifee";
-    repo = pname;
+    repo = "limits";
     rev = "refs/tags/${version}";
     # Upstream uses versioneer, which relies on git attributes substitution.
     # This leads to non-reproducible archives on github. Remove the substituted
@@ -37,36 +40,65 @@ buildPythonPackage rec {
     hash = "sha256-0h3ofungHkjycUvNJ3jf+VB/GSrshgUDECN2YoPGzzg=";
   };
 
+  postPatch = ''
+    substituteInPlace pytest.ini \
+      --replace-fail "--cov=limits" "" \
+      --replace-fail "-K" ""
+
+    substituteInPlace setup.py \
+      --replace-fail "versioneer.get_version()" "'${version}'"
+
+    # Recreate _version.py, deleted at fetch time due to non-reproducibility.
+    echo 'def get_versions(): return {"version": "${version}"}' > limits/_version.py
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     deprecated
     importlib-resources
     packaging
-    setuptools
     typing-extensions
   ];
 
+  passthru.optional-dependencies = {
+    redis = [
+      redis
+    ];
+    rediscluster = [
+      redis
+    ];
+    memcached = [
+      pymemcache
+    ];
+    mongodb = [
+      pymongo
+    ];
+    etcd = [
+      etcd3
+    ];
+    async-redis = [
+      coredis
+    ];
+    # async-memcached = [
+    #   emcache  # Missing module
+    # ];
+    async-mongodb = [
+      motor
+    ];
+    async-etcd = [
+      aetcd
+    ];
+  };
+
   nativeCheckInputs = [
-    etcd3
     hiro
-    pymemcache
-    pymongo
     pytest-asyncio
     pytest-lazy-fixture
     pytestCheckHook
-    redis
-  ];
-
-  postPatch = ''
-    substituteInPlace pytest.ini \
-      --replace "--cov=limits" "" \
-      --replace "-K" ""
-
-    substituteInPlace setup.py \
-      --replace "versioneer.get_version()" "'${version}'"
-
-    # Recreate _version.py, deleted at fetch time due to non-reproducibility.
-    echo 'def get_versions(): return {"version": "${version}"}' > limits/_version.py
-  '';
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   pythonImportsCheck = [
     "limits"
@@ -82,6 +114,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Rate limiting using various strategies and storage backends such as redis & memcached";
     homepage = "https://github.com/alisaifee/limits";
+    changelog = "https://github.com/alisaifee/limits/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/linear-garage-door/default.nix b/pkgs/development/python-modules/linear-garage-door/default.nix
new file mode 100644
index 000000000000..b57f8b0e47af
--- /dev/null
+++ b/pkgs/development/python-modules/linear-garage-door/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, dnspython
+, fetchFromGitHub
+, poetry-core
+, pythonOlder
+, tenacity
+}:
+
+buildPythonPackage rec {
+  pname = "linear-garage-door";
+  version = "0.2.9";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "IceBotYT";
+    repo = "linear-garage-door";
+    rev = "refs/tags/${version}";
+    hash = "sha256-hWWJgZnEItYaSxka7zBHPeVlTEiOqRnA2vg6/MvpJGE=";
+  };
+
+  postPatch = ''
+    sed -i pyproject.toml \
+      -e "/--cov/d" \
+      -e "/--no-cov/d"
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    dnspython
+    tenacity
+  ];
+
+  # Module doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "linear_garage_door"
+  ];
+
+  meta = with lib; {
+    description = "Control Linear Garage Doors with Python";
+    homepage = "https://github.com/IceBotYT/linear-garage-door";
+    changelog = "https://github.com/IceBotYT/linear-garage-door/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/liquidctl/default.nix b/pkgs/development/python-modules/liquidctl/default.nix
index 70d4fc1862f0..94a232ef5659 100644
--- a/pkgs/development/python-modules/liquidctl/default.nix
+++ b/pkgs/development/python-modules/liquidctl/default.nix
@@ -15,6 +15,7 @@
 , colorlog
 , crcmod
 , pillow
+, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -31,6 +32,14 @@ buildPythonPackage rec {
     hash = "sha256-LU8rQmXrEIoOBTTFotGvMeHqksYGrtNo2YSl2l2e/UI=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "tests-pillow-10.2.0-compat.patch";
+      url = "https://github.com/liquidctl/liquidctl/commit/c50afa4e610bd2e268e85c347e2644794c817a78.diff";
+      hash = "sha256-1cKk3drl3RybHmnPXdlJoeYK6UDz25jHSS2YS/XLHIY=";
+    })
+  ];
+
   nativeBuildInputs = [
     installShellFiles
     setuptools
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index d34dece547a9..4f7349ea30f5 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -1,31 +1,48 @@
 { lib
+, aiohttp
+, apscheduler
+, azure-identity
+, azure-keyvault-secrets
+, backoff
 , buildPythonPackage
+, click
+, fastapi
+, fastapi-sso
 , fetchFromGitHub
-, poetry-core
+, 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
-, click
-, jinja2
-, certifi
-, appdirs
-, aiohttp
+, uvicorn
 }:
-let
-  version = "1.23.0";
-in
-buildPythonPackage {
+
+buildPythonPackage rec {
   pname = "litellm";
-  inherit version;
+  version = "1.26.8";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Pl3Fet0TvGrNHNw4ssUMqa+UhzBYgqTydNfD96TeY7I=";
+    hash = "sha256-w2d33mYNgQ+S+000ZswyqXE8RxOUQaH89R7M6PHe020=";
   };
 
   postPatch = ''
@@ -37,18 +54,41 @@ buildPythonPackage {
   ];
 
   propagatedBuildInputs = [
+    aiohttp
+    click
+    importlib-metadata
+    jinja2
     openai
+    requests
     python-dotenv
     tiktoken
-    importlib-metadata
     tokenizers
-    click
-    jinja2
-    certifi
-    appdirs
-    aiohttp
   ];
 
+  passthru.optional-dependencies = {
+    proxy = [
+      apscheduler
+      backoff
+      fastapi
+      fastapi-sso
+      gunicorn
+      orjson
+      pyjwt
+      python-multipart
+      pyyaml
+      rq
+      uvicorn
+    ];
+    extra_proxy = [
+      azure-identity
+      azure-keyvault-secrets
+      google-cloud-kms
+      prisma
+      resend
+      streamlit
+    ];
+  };
+
   # the import check phase fails trying to do a network request to openai
   # pythonImportsCheck = [ "litellm" ];
 
@@ -58,8 +98,8 @@ buildPythonPackage {
   meta = with lib; {
     description = "Use any LLM as a drop in replacement for gpt-3.5-turbo. Use Azure, OpenAI, Cohere, Anthropic, Ollama, VLLM, Sagemaker, HuggingFace, Replicate (100+ LLMs)";
     homepage = "https://github.com/BerriAI/litellm";
-    license = licenses.mit;
     changelog = "https://github.com/BerriAI/litellm/releases/tag/v${version}";
+    license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/livereload/default.nix b/pkgs/development/python-modules/livereload/default.nix
index 2b99995f91cc..5943671d6fc2 100644
--- a/pkgs/development/python-modules/livereload/default.nix
+++ b/pkgs/development/python-modules/livereload/default.nix
@@ -1,8 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, nose
 , django
+, pytestCheckHook
 , tornado
 , six
 }:
@@ -23,13 +23,16 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ tornado six ];
 
-  nativeCheckInputs = [ nose ];
-  # TODO: retry running all tests after v2.6.1
-  checkPhase = "NOSE_EXCLUDE=test_watch_multiple_dirs nosetests -s";
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    "test_watch_multiple_dirs"
+  ];
 
   meta = {
     description = "Runs a local server that reloads as you develop";
     homepage = "https://github.com/lepture/python-livereload";
     license = lib.licenses.bsd3;
+    maintainers = with lib; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/llm/default.nix b/pkgs/development/python-modules/llm/default.nix
index 318f67353308..5626da5e3858 100644
--- a/pkgs/development/python-modules/llm/default.nix
+++ b/pkgs/development/python-modules/llm/default.nix
@@ -1,27 +1,27 @@
-{
-  buildPythonApplication,
-  buildPythonPackage,
-  fetchFromGitHub,
-  lib,
-  makeWrapper,
-  pytestCheckHook,
-  python3,
-  pythonOlder,
-  ruff,
-  setuptools,
-}: let
+{ lib
+, buildPythonApplication
+, buildPythonPackage
+, fetchFromGitHub
+, makeWrapper
+, pytestCheckHook
+, python3
+, pythonOlder
+, ruff
+, setuptools
+}:
+let
   llm = buildPythonPackage rec {
     pname = "llm";
-    version = "0.12";
+    version = "0.13.1";
     pyproject = true;
 
     disabled = pythonOlder "3.8";
 
     src = fetchFromGitHub {
       owner = "simonw";
-      repo = pname;
+      repo = "llm";
       rev = "refs/tags/${version}";
-      hash = "sha256-aCqdw2co/cXrBwVY/k/aSLl3C22nlH5LvU2yir1/NnQ=";
+      hash = "sha256-Nq6pduzl8IK+nA3pctst/W4ux7+P6mBFTEHMF+vtBQw=";
     };
 
     patches = [
@@ -36,6 +36,7 @@
       click-default-group
       numpy
       openai
+      pip
       pluggy
       pydantic
       python-ulid
@@ -48,8 +49,8 @@
     nativeCheckInputs = with python3.pkgs; [
       cogapp
       numpy
+      pytest-httpx
       pytestCheckHook
-      requests-mock
     ];
 
     doCheck = true;
diff --git a/pkgs/development/python-modules/llvmlite/default.nix b/pkgs/development/python-modules/llvmlite/default.nix
index ac74a6e3403b..2184236130ed 100644
--- a/pkgs/development/python-modules/llvmlite/default.nix
+++ b/pkgs/development/python-modules/llvmlite/default.nix
@@ -15,17 +15,16 @@
 
 buildPythonPackage rec {
   pname = "llvmlite";
-  version = "0.41.1";
+  version = "0.42.0";
   pyproject = true;
 
-  # uses distutils in setup.py
-  disabled = isPyPy || pythonAtLeast "3.12";
+  disabled = isPyPy || pythonAtLeast "3.13";
 
   src = fetchFromGitHub {
     owner = "numba";
     repo = "llvmlite";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RBgs8L5kOJ8BhEDLB8r8/iVhwuVIPT/rUSmwmBWm4D0=";
+    hash = "sha256-vN2npyAyN6C340l69YSRtRJrAe4EHSqh4SCgWfeSQaQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/lttng/default.nix b/pkgs/development/python-modules/lttng/default.nix
new file mode 100644
index 000000000000..9cdb580fc474
--- /dev/null
+++ b/pkgs/development/python-modules/lttng/default.nix
@@ -0,0 +1,29 @@
+{ toPythonModule
+, python
+, lttng-tools
+, swig2
+}:
+
+toPythonModule (lttng-tools.overrideAttrs ({ nativeBuildInputs ? [ ], configureFlags ? [ ], ... }: {
+  pname = "lttng";
+
+  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"
+  ];
+
+  # 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/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index 7cfef1d56cfd..e6d7234a59ce 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -1,5 +1,13 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub
-, cython
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# build-system
+, cython_3
+, setuptools
+
+# native dependencies
 , libxml2
 , libxslt
 , zlib
@@ -8,25 +16,30 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.9.4";
-  format = "setuptools";
+  version = "5.1.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "lxml";
+    repo = "lxml";
     rev = "refs/tags/lxml-${version}";
-    hash = "sha256-qS20wb83eFapiPZe25BViHpYkjgvnCIZpiYkPNIPHZg=";
+    hash = "sha256-eWLYzZWatYDmhuBTZynsdytlNFKKmtWQ1XIyzVD8sDY=";
   };
 
-  patches = [
-    # fix compile error with libxml 2.12
-    # backport of: https://github.com/lxml/lxml/commit/b0861bea17769584a85f57eb00235ce0ca9811af
-    ./libxml-2.12.patch
-  ];
-
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
-  nativeBuildInputs = [ libxml2.dev libxslt.dev cython ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
-  buildInputs = [ libxml2 libxslt zlib ];
+  nativeBuildInputs = [
+    libxml2.dev
+    libxslt.dev
+    cython_3
+    setuptools
+   ] ++ lib.optionals stdenv.isDarwin [
+    xcodebuild
+  ];
+  buildInputs = [
+    libxml2
+    libxslt
+    zlib
+  ];
 
   env = lib.optionalAttrs stdenv.cc.isClang {
     NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-function-pointer-types";
@@ -35,9 +48,13 @@ buildPythonPackage rec {
   # tests are meant to be ran "in-place" in the same directory as src
   doCheck = false;
 
-  pythonImportsCheck = [ "lxml" "lxml.etree" ];
+  pythonImportsCheck = [
+    "lxml"
+    "lxml.etree"
+  ];
 
   meta = with lib; {
+    changelog = "https://github.com/lxml/lxml/blob/lxml-${version}/CHANGES.txt";
     description = "Pythonic binding for the libxml2 and libxslt libraries";
     homepage = "https://lxml.de";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/markdown/default.nix b/pkgs/development/python-modules/markdown/default.nix
index 4041a1aa3035..d7be3fabfab7 100644
--- a/pkgs/development/python-modules/markdown/default.nix
+++ b/pkgs/development/python-modules/markdown/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "markdown";
-  version = "3.5.1";
+  version = "3.5.2";
 
   disabled = pythonOlder "3.8";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Python-Markdown";
     repo = "markdown";
     rev = "refs/tags/${version}";
-    hash = "sha256-OeCr72N3ygYYJnI+bIXCt63tSLDFLKznYekTk1sYHZI=";
+    hash = "sha256-YLOLDiS93zpjJWzkWXcutjZw9iB/FfbjxQXjau2B+JQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/markupsafe/default.nix b/pkgs/development/python-modules/markupsafe/default.nix
index e63af344a3a0..17f8ce118e5b 100644
--- a/pkgs/development/python-modules/markupsafe/default.nix
+++ b/pkgs/development/python-modules/markupsafe/default.nix
@@ -1,28 +1,54 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchPypi
+, pythonOlder
+
+# build-system
+, setuptools
+
+# tests
 , pytestCheckHook
+
+# reverse dependencies
+, jinja2
+, mkdocs
+, quart
+, werkzeug
 }:
 
 buildPythonPackage rec {
   pname = "markupsafe";
-  version = "2.1.3";
-  format = "setuptools";
+  version = "2.1.5";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "MarkupSafe";
     inherit version;
-    hash = "sha256-r1mO0y1q6G8bdHuCeDlYsaSrj2F7Bv5oeVx/Amq73K0=";
+    hash = "sha256-0oPTeokLpMGuc/+t+ARkNcdue8Ike7tjwAvRpwnGVEs=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "markupsafe" ];
+  pythonImportsCheck = [
+    "markupsafe"
+  ];
+
+  passthru.tests = {
+    inherit
+      jinja2
+      mkdocs
+      quart
+      werkzeug
+    ;
+  };
 
   meta = with lib; {
     changelog = "https://markupsafe.palletsprojects.com/en/${versions.majorMinor version}.x/changes/#version-${replaceStrings [ "." ] [ "-" ] version}";
diff --git a/pkgs/development/python-modules/matrix-nio/default.nix b/pkgs/development/python-modules/matrix-nio/default.nix
index db6b13b0fcc3..38daf62a635b 100644
--- a/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/pkgs/development/python-modules/matrix-nio/default.nix
@@ -1,54 +1,57 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, logbook
+
+# build-system
+, poetry-core
+
+# dependencies
 , aiofiles
 , aiohttp
 , aiohttp-socks
-, aioresponses
-, atomicwrites
-, attrs
-, cachetools
-, faker
-, future
-, git
 , h11
 , h2
-, hypothesis
 , jsonschema
-, peewee
-, poetry-core
-, py
 , pycryptodome
+, unpaddedbase64
+
+# optional-dependencies
+, atomicwrites
+, cachetools
+, peewee
+, python-olm
+
+# tests
+, aioresponses
+, faker
+, hpack
+, hyperframe
+, hypothesis
 , pytest-aiohttp
 , pytest-benchmark
 , pytestCheckHook
-, python-olm
-, unpaddedbase64
+
+# passthru tests
+, nixosTests
+, opsdroid
+, pantalaimon
+, weechatScripts
+, zulip
 }:
 
 buildPythonPackage rec {
   pname = "matrix-nio";
-  version = "0.22.1";
+  version = "0.24.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "poljar";
     repo = "matrix-nio";
     rev = version;
-    hash = "sha256-hFSS2Nys95YJgBNED8SBan24iRo2q/UOr6pqUPAF5Ms=";
+    hash = "sha256-XlswVHLvKOi1qr+I7Mbm4IBjn1DG7glgDsNY48NA5Ew=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'aiofiles = "^0.6.0"' 'aiofiles = "*"' \
-      --replace 'h11 = "^0.12.0"' 'h11 = "*"' \
-      --replace 'cachetools = { version = "^4.2.1", optional = true }' 'cachetools = { version = "*", optional = true }' \
-      --replace 'aiohttp-socks = "^0.7.0"' 'aiohttp-socks = "*"'
-  '';
-
   nativeBuildInputs = [
-    git
     poetry-core
   ];
 
@@ -56,12 +59,9 @@ buildPythonPackage rec {
     aiofiles
     aiohttp
     aiohttp-socks
-    attrs
-    future
     h11
     h2
     jsonschema
-    logbook
     pycryptodome
     unpaddedbase64
   ];
@@ -78,8 +78,9 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     aioresponses
     faker
+    hpack
+    hyperframe
     hypothesis
-    py
     pytest-aiohttp
     pytest-benchmark
     pytestCheckHook
@@ -96,6 +97,23 @@ buildPythonPackage rec {
     "test_transfer_monitor_callbacks"
   ];
 
+  passthru.tests = {
+    inherit (nixosTests)
+      dendrite
+      matrix-appservice-irc
+      matrix-conduit
+      mjolnir
+    ;
+    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";
diff --git a/pkgs/development/python-modules/md-toc/default.nix b/pkgs/development/python-modules/md-toc/default.nix
index 18aeac19b3ca..7789104db892 100644
--- a/pkgs/development/python-modules/md-toc/default.nix
+++ b/pkgs/development/python-modules/md-toc/default.nix
@@ -5,22 +5,27 @@
 , pyfakefs
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "md-toc";
-  version = "8.2.2";
-  format = "setuptools";
+  version = "8.2.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "frnmst";
-    repo = pname;
-    rev = version;
-    hash = "sha256-fL3JlZWTEEinYILNeHw0cuvVza27atLLxjrBZkVLRiU=";
+    repo = "md-toc";
+    rev = "refs/tags/${version}";
+    hash = "sha256-nKkKtLEW0pohXiMtjWl2Kzh7SRwZJ/yzhXpDyluLodc=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     fpyutils
   ];
diff --git a/pkgs/development/python-modules/mdformat-admon/default.nix b/pkgs/development/python-modules/mdformat-admon/default.nix
index a7fd0f940373..3db893042d88 100644
--- a/pkgs/development/python-modules/mdformat-admon/default.nix
+++ b/pkgs/development/python-modules/mdformat-admon/default.nix
@@ -1,54 +1,42 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, flit-core
 , mdformat
-, python3
+, mdit-py-plugins
+, pytestCheckHook
 , pythonOlder
 }:
 
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      mdit-py-plugins = super.mdit-py-plugins.overridePythonAttrs (_prev: rec {
-      version = "0.4.0";
-      doCheck = false;
-      src = fetchFromGitHub {
-        owner = "executablebooks";
-        repo = "mdit-py-plugins";
-        rev = "refs/tags/v${version}";
-        hash = "sha256-YBJu0vIOD747DrJLcqiZMHq34+gHdXeGLCw1OxxzIJ0=";
-      };
-    });
-    };
-  };
-in python.pkgs.buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "mdformat-admon";
   version = "1.0.2";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "KyleKing";
-    repo = pname;
+    repo = "mdformat-admon";
     rev = "v${version}";
     hash = "sha256-33Q3Re/axnoOHZ9XYA32mmK+efsSelJXW8sD7C1M/jU=";
   };
 
-  nativeBuildInputs = with python.pkgs; [
+  nativeBuildInputs = [
     flit-core
   ];
 
-  buildInputs = with python.pkgs; [
+  propagatedBuildInputs = [
     mdformat
+    mdit-py-plugins
   ];
 
-  propagatedBuildInputs = with python.pkgs; [
-    mdit-py-plugins
+  nativeCheckInputs = [
+    pytestCheckHook
   ];
 
   meta = with lib; {
-    description = "mdformat plugin for admonitions";
+    description = "Mdformat plugin for admonitions";
     homepage = "https://github.com/KyleKing/mdformat-admon";
     license = licenses.mit;
     maintainers = with maintainers; [ aldoborrero ];
diff --git a/pkgs/development/python-modules/mdformat-beautysh/default.nix b/pkgs/development/python-modules/mdformat-beautysh/default.nix
index a117fea936eb..940e4754c270 100644
--- a/pkgs/development/python-modules/mdformat-beautysh/default.nix
+++ b/pkgs/development/python-modules/mdformat-beautysh/default.nix
@@ -13,7 +13,7 @@
 buildPythonPackage rec {
   pname = "mdformat-beautysh";
   version = "0.1.1";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -28,16 +28,13 @@ buildPythonPackage rec {
     poetry-core
   ];
 
-  buildInputs = [
+  propagatedBuildInputs = [
+    beautysh
     mdformat
     mdformat-gfm
     mdit-py-plugins
   ];
 
-  propagatedBuildInputs = [
-    beautysh
-  ];
-
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/mdformat-footnote/default.nix b/pkgs/development/python-modules/mdformat-footnote/default.nix
index 4d7b56f0c2fa..4d452ce5e452 100644
--- a/pkgs/development/python-modules/mdformat-footnote/default.nix
+++ b/pkgs/development/python-modules/mdformat-footnote/default.nix
@@ -12,7 +12,7 @@
 buildPythonPackage rec {
   pname = "mdformat-footnote";
   version = "0.1.1";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     flit-core
   ];
 
-  buildInputs = [
+  propagatedBuildInputs = [
     mdformat
     mdit-py-plugins
   ];
diff --git a/pkgs/development/python-modules/mdformat-frontmatter/default.nix b/pkgs/development/python-modules/mdformat-frontmatter/default.nix
index 333cb5651130..ee2fe29693b2 100644
--- a/pkgs/development/python-modules/mdformat-frontmatter/default.nix
+++ b/pkgs/development/python-modules/mdformat-frontmatter/default.nix
@@ -28,12 +28,9 @@ buildPythonPackage rec {
     flit-core
   ];
 
-  buildInputs = [
+  propagatedBuildInputs = [
     mdformat
     mdit-py-plugins
-  ];
-
-  propagatedBuildInputs = [
     ruamel-yaml
   ];
 
@@ -42,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "mdformat plugin to ensure frontmatter is respected";
+    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;
diff --git a/pkgs/development/python-modules/mdformat-gfm/default.nix b/pkgs/development/python-modules/mdformat-gfm/default.nix
index 90cb3b357841..15a79eb0f4ca 100644
--- a/pkgs/development/python-modules/mdformat-gfm/default.nix
+++ b/pkgs/development/python-modules/mdformat-gfm/default.nix
@@ -29,14 +29,11 @@ buildPythonPackage rec {
     poetry-core
   ];
 
-  buildInputs = [
-    mdformat
-    markdown-it-py
-    mdit-py-plugins
-  ];
-
   propagatedBuildInputs = [
+    markdown-it-py
+    mdformat
     mdformat-tables
+    mdit-py-plugins
     linkify-it-py
   ];
 
diff --git a/pkgs/development/python-modules/mdformat-mkdocs/default.nix b/pkgs/development/python-modules/mdformat-mkdocs/default.nix
index b35a1eb348b5..52ad5f97b20e 100644
--- a/pkgs/development/python-modules/mdformat-mkdocs/default.nix
+++ b/pkgs/development/python-modules/mdformat-mkdocs/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     flit-core
   ];
 
-  buildInputs = [
+  propagatedBuildInputs = [
     mdformat
     mdformat-gfm
     mdit-py-plugins
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "mdformat plugin for MkDocs";
+    description = "Mdformat plugin for MkDocs";
     homepage = "https://github.com/KyleKing/mdformat-mkdocs";
     changelog = "https://github.com/KyleKing/mdformat-mkdocs/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mdformat-nix-alejandra/default.nix b/pkgs/development/python-modules/mdformat-nix-alejandra/default.nix
index 6323312072ff..d59e09f999e0 100644
--- a/pkgs/development/python-modules/mdformat-nix-alejandra/default.nix
+++ b/pkgs/development/python-modules/mdformat-nix-alejandra/default.nix
@@ -1,30 +1,37 @@
 { lib
+, alejandra
 , buildPythonPackage
 , fetchFromGitHub
 , mdformat
 , poetry-core
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "mdformat-nix-alejandra";
   version = "0.1.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aldoborrero";
-    repo = pname;
-    rev = "${version}";
+    repo = "mdformat-nix-alejandra";
+    rev = "refs/tags/${version}";
     hash = "sha256-jUXApGsxCA+pRm4m4ZiHWlxmVkqCPx3A46oQdtyKz5g=";
   };
 
+  postPatch = ''
+    substituteInPlace mdformat_nix_alejandra/__init__.py \
+      --replace-fail '"alejandra"' '"${lib.getExe alejandra}"'
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
 
-  buildInputs = [
+  propagatedBuildInputs = [
     mdformat
   ];
 
@@ -32,6 +39,10 @@ buildPythonPackage rec {
     "mdformat_nix_alejandra"
   ];
 
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
   meta = with lib; {
     description = "Mdformat plugin format Nix code blocks with alejandra";
     homepage = "https://github.com/aldoborrero/mdformat-nix-alejandra";
diff --git a/pkgs/development/python-modules/mdformat-simple-breaks/default.nix b/pkgs/development/python-modules/mdformat-simple-breaks/default.nix
index c5bbeeb46de9..9bff43e4d402 100644
--- a/pkgs/development/python-modules/mdformat-simple-breaks/default.nix
+++ b/pkgs/development/python-modules/mdformat-simple-breaks/default.nix
@@ -10,7 +10,7 @@
 buildPythonPackage rec {
   pname = "mdformat-simple-breaks";
   version = "0.0.1";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     flit-core
   ];
 
-  buildInputs = [
+  propagatedBuildInputs = [
     mdformat
   ];
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "mdformat plugin to render thematic breaks using three dashes";
+    description = "Mdformat plugin to render thematic breaks using three dashes";
     homepage = "https://github.com/csala/mdformat-simple-breaks";
     license = licenses.mit;
     maintainers = with maintainers; [ aldoborrero ];
diff --git a/pkgs/development/python-modules/mdformat-tables/default.nix b/pkgs/development/python-modules/mdformat-tables/default.nix
index 018371ada82f..cfd468d9cc6e 100644
--- a/pkgs/development/python-modules/mdformat-tables/default.nix
+++ b/pkgs/development/python-modules/mdformat-tables/default.nix
@@ -11,7 +11,7 @@
 buildPythonPackage rec {
   pname = "mdformat-tables";
   version = "0.4.1";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     flit-core
   ];
 
-  buildInputs = [
+  propagatedBuildInputs = [
     mdformat
   ];
 
diff --git a/pkgs/development/python-modules/mdformat-toc/default.nix b/pkgs/development/python-modules/mdformat-toc/default.nix
index 56d7ce69a0d4..1597dcec197a 100644
--- a/pkgs/development/python-modules/mdformat-toc/default.nix
+++ b/pkgs/development/python-modules/mdformat-toc/default.nix
@@ -11,7 +11,7 @@
 buildPythonPackage rec {
   pname = "mdformat-toc";
   version = "0.3.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     poetry-core
   ];
 
-  buildInputs = [
+  propagatedBuildInputs = [
     mdformat
   ];
 
diff --git a/pkgs/development/python-modules/mdformat/default.nix b/pkgs/development/python-modules/mdformat/default.nix
index a25a632f5150..eec56ee47944 100644
--- a/pkgs/development/python-modules/mdformat/default.nix
+++ b/pkgs/development/python-modules/mdformat/default.nix
@@ -5,99 +5,57 @@
 , importlib-metadata
 , makeWrapper
 , markdown-it-py
-, poetry-core
 , pytestCheckHook
-, python3
 , pythonOlder
 , setuptools
 , tomli
 , typing-extensions
 }:
 
-let
-  withPlugins = plugins: buildPythonApplication {
-    pname = "${package.pname}";
-    inherit (package) version;
-    format = "other";
+buildPythonPackage rec {
+  pname = "mdformat";
+  version = "0.7.17";
+  pyproject = true;
 
-    disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
-    dontUnpack = true;
-    dontBuild = true;
-    doCheck = false;
-
-    nativeBuildInputs = [
-      makeWrapper
-    ];
-
-    installPhase = ''
-      makeWrapper ${package}/bin/mdformat $out/bin/mdformat \
-        --prefix PYTHONPATH : "${package}/${python3.sitePackages}:$PYTHONPATH"
-      ln -sfv ${package}/lib $out/lib
-    '';
-
-    propagatedBuildInputs = package.propagatedBuildInputs ++ plugins;
-
-    passthru = package.passthru // {
-      withPlugins = morePlugins: withPlugins (morePlugins ++ plugins);
-    };
-
-    meta.mainProgram = "mdformat";
+  src = fetchFromGitHub {
+    owner = "executablebooks";
+    repo = "mdformat";
+    rev = "refs/tags/${version}";
+    hash = "sha256-umtfbhN6sDR/rFr1LwmJ21Ph9bK1Qq43bmMVzGCPD5s=";
   };
 
-  package = buildPythonPackage rec {
-    pname = "mdformat";
-    version = "0.7.17";
-    format = "pyproject";
+  nativeBuildInputs = [
+    setuptools
+  ];
 
-    disabled = pythonOlder "3.7";
+  propagatedBuildInputs = [
+    markdown-it-py
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    tomli
+  ] ++ lib.optionals (pythonOlder "3.10") [
+    importlib-metadata
+  ];
 
-    src = fetchFromGitHub {
-      owner = "executablebooks";
-      repo = pname;
-      rev = "refs/tags/${version}";
-      hash = "sha256-umtfbhN6sDR/rFr1LwmJ21Ph9bK1Qq43bmMVzGCPD5s=";
-    };
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-    nativeBuildInputs = [
-      poetry-core
-      setuptools
-    ];
+  pythonImportsCheck = [
+    "mdformat"
+  ];
 
-    propagatedBuildInputs = [
-      markdown-it-py
-      tomli
-    ] ++ lib.optionals (pythonOlder "3.10") [
-      importlib-metadata
-    ] ++ lib.optionals (pythonOlder "3.7") [
-      typing-extensions
-    ];
-
-    nativeCheckInputs = [
-      pytestCheckHook
-    ];
-
-    disabledTests = [
-      # AssertionError
-      "test_no_codeblock_trailing_newline"
-      # Issue with upper/lower case
-      "default_style.md-options0"
-    ];
-
-    pythonImportsCheck = [
-      "mdformat"
-    ];
-
-    passthru = { inherit withPlugins; };
+  passthru = {
+    withPlugins = throw "Use pkgs.mdformat.withPlugins, i.e. the top-level attribute.";
+  };
 
-    meta = with lib; {
-      description = "CommonMark compliant Markdown formatter";
-      homepage = "https://mdformat.rtfd.io/";
-      changelog = "https://github.com/executablebooks/mdformat/blob/${version}/docs/users/changelog.md";
-      license = with licenses; [ mit ];
-      maintainers = with maintainers; [ fab aldoborrero ];
-      mainProgram = "mdformat";
-    };
+  meta = with lib; {
+    description = "CommonMark compliant Markdown formatter";
+    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 ];
+    mainProgram = "mdformat";
   };
-in
-package
+}
diff --git a/pkgs/development/python-modules/medpy/default.nix b/pkgs/development/python-modules/medpy/default.nix
new file mode 100644
index 000000000000..6fc6242c155c
--- /dev/null
+++ b/pkgs/development/python-modules/medpy/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, setuptools
+, unittestCheckHook
+, boost
+, numpy
+, scipy
+, simpleitk
+}:
+
+buildPythonPackage rec {
+  pname = "medpy";
+  version = "0.5.0rc1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "loli";
+    repo = "medpy";
+    rev = "refs/tags/${version}";
+    hash = "sha256-W62LjstH42OzNG+vMkuApUWczTNugJGKuuoeeS5ok4U=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    boost
+    numpy
+    scipy
+    simpleitk
+  ];
+
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+  preCheck = ''
+    rm -r medpy/  # prevent importing from build directory at test time
+    rm -r tests/graphcut_  # SIGILL at test time
+  '';
+
+  pythonImportsCheck = [
+    "medpy"
+    "medpy.core"
+    "medpy.features"
+    "medpy.filter"
+    "medpy.graphcut"
+    "medpy.io"
+    "medpy.metric"
+    "medpy.utilities"
+  ];
+
+  meta = with lib; {
+    description = "Medical image processing library";
+    homepage = "https://loli.github.io/medpy";
+    changelog = "https://github.com/loli/medpy/releases/tag/${version}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/meross-iot/default.nix b/pkgs/development/python-modules/meross-iot/default.nix
index 7947ca1f6021..d77237c172f4 100644
--- a/pkgs/development/python-modules/meross-iot/default.nix
+++ b/pkgs/development/python-modules/meross-iot/default.nix
@@ -7,12 +7,13 @@
 , pythonOlder
 , requests
 , retrying
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "meross-iot";
-  version = "0.4.6.0";
-  format = "setuptools";
+  version = "0.4.6.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -20,9 +21,13 @@ buildPythonPackage rec {
     owner = "albertogeniola";
     repo = "MerossIot";
     rev = "refs/tags/${version}";
-    hash = "sha256-8DnzTwW4fQQIGAHZJbu2aKkqOUU6a6IGgif5tIZCing=";
+    hash = "sha256-fekiN4AHb/RNEMibQqV7By0FAyTcERZmmi0+qCG4NzQ=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     paho-mqtt
diff --git a/pkgs/development/python-modules/meshtastic/default.nix b/pkgs/development/python-modules/meshtastic/default.nix
index 534623abccdd..bbc125443e3a 100644
--- a/pkgs/development/python-modules/meshtastic/default.nix
+++ b/pkgs/development/python-modules/meshtastic/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "meshtastic";
-  version = "2.2.20";
+  version = "2.2.22";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "meshtastic";
     repo = "Meshtastic-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-0q8omX306iM3p52u39Dc7m6oxAPo9Fs6CEVicYdIMT4=";
+    hash = "sha256-bAg7Rr17Q+a+S0ZuHcFmmTM0sRcX2w0zRClKdFwix30=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix
index 62fe35f10390..4dd3baeb614c 100644
--- a/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/pkgs/development/python-modules/mitmproxy/default.nix
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [
     "aioquic"
+    "cryptography"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mizani/default.nix b/pkgs/development/python-modules/mizani/default.nix
index d87d5af94e25..f54c01821240 100644
--- a/pkgs/development/python-modules/mizani/default.nix
+++ b/pkgs/development/python-modules/mizani/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mizani";
-  version = "0.9.3";
+  version = "0.11.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "has2k1";
     repo = "mizani";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gZwM8/9ipcA73m1sPCz9oxD7cndli+qX9+gLILdbq1A=";
+    hash = "sha256-4xk8FCUiNOp5n512asYKcjAS7fsyExyMQiWg14XWwHY=";
   };
 
   nativeBuildInputs = [
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 d386b1cb05da..c885727a2538 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
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, babel
 , gitpython
 , mkdocs
 , pytz
@@ -11,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-git-revision-date-localized-plugin";
-  version = "1.2.2";
+  version = "1.2.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,10 +21,11 @@ buildPythonPackage rec {
     owner = "timvink";
     repo = "mkdocs-git-revision-date-localized-plugin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6qLVmmJzMTrvuoeSVUjWqmI6f5MbAFWAj36v2l3ZeD8=";
+    hash = "sha256-sN3cuRjB3zkwp0xYoH20IJ8edXqi5rw66e3N4DuNqVU=";
   };
 
   propagatedBuildInputs = [
+    babel
     gitpython
     mkdocs
     pytz
diff --git a/pkgs/development/python-modules/mkl-service/default.nix b/pkgs/development/python-modules/mkl-service/default.nix
index b6d308ee2135..991c6e8813c3 100644
--- a/pkgs/development/python-modules/mkl-service/default.nix
+++ b/pkgs/development/python-modules/mkl-service/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "mkl-service";
-  version = "2.4.0.post1";
+  version = "2.4.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "IntelPython";
     repo = "mkl-service";
-    rev = "v${version}";
-    sha256 = "0ysjn8z1hkscb4cycbrvcb93r04w5793yylsy40h5dvjd04ns5jc";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-4UPiQt1hVVlPFZnuKlMK3FLv2cIEXToHKxnyYLXR/sY=";
   };
 
   MKLROOT = mkl;
diff --git a/pkgs/development/python-modules/mlflow/default.nix b/pkgs/development/python-modules/mlflow/default.nix
index d13831de3301..1ec7760eaeb7 100644
--- a/pkgs/development/python-modules/mlflow/default.nix
+++ b/pkgs/development/python-modules/mlflow/default.nix
@@ -38,14 +38,14 @@
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "2.8.1";
+  version = "2.10.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5OW90tnvsLOG7Lzi335D8ExGoyCAIIQU3FO1/XFVlng=";
+    hash = "sha256-Pd8yuiwB2seeTQd9S7ntRtgqCC3JkiMgfVYsfua+5nE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mne-python/default.nix b/pkgs/development/python-modules/mne-python/default.nix
index 8a85f487d2d2..4e93aaf3311c 100644
--- a/pkgs/development/python-modules/mne-python/default.nix
+++ b/pkgs/development/python-modules/mne-python/default.nix
@@ -1,66 +1,84 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
+, setuptools-scm
 , numpy
 , scipy
 , pytestCheckHook
 , pytest-timeout
-, h5py
+, pytest-harvest
 , matplotlib
-, nibabel
-, pandas
-, scikit-learn
 , decorator
 , jinja2
 , pooch
 , tqdm
-, setuptools
+, packaging
+, importlib-resources
+, lazy-loader
+, h5io
+, pymatreader
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "mne-python";
-  version = "1.6.0";
-  format = "setuptools";
+  version = "1.6.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "mne-tools";
-    repo = pname;
+    repo = "mne-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OoaXNHGL2svOpNL5GHcVRfQc9GxIRpZRhpZ5Hi1JTzM=";
+    hash = "sha256-U1aMqcUZ3BcwqwOYh/qfG5PhacwBVioAgNc52uaoJL0";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml  \
+      --replace "--cov-report=" ""  \
+      --replace "--cov-branch" ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
-    decorator
-    jinja2
-    matplotlib
     numpy
-    pooch
     scipy
-    setuptools
+    matplotlib
     tqdm
+    pooch
+    decorator
+    packaging
+    jinja2
+    lazy-loader
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
   ];
 
+  passthru.optional-dependencies = {
+    hdf5 = [
+      h5io
+      pymatreader
+    ];
+  };
+
   nativeCheckInputs = [
-    h5py
-    nibabel
-    pandas
     pytestCheckHook
-    scikit-learn
     pytest-timeout
-  ];
+    pytest-harvest
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   preCheck = ''
-    export HOME=$TMP
+    export HOME=$(mktemp -d)
     export MNE_SKIP_TESTING_DATASET_TESTS=true
     export MNE_SKIP_NETWORK_TESTS=1
   '';
 
-  # All tests pass, but Pytest hangs afterwards - probably some thread hasn't terminated
-  doCheck = false;
-
   pythonImportsCheck = [
     "mne"
   ];
@@ -68,7 +86,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Magnetoencephelography and electroencephalography in Python";
     homepage = "https://mne.tools";
+    changelog = "https://mne.tools/stable/changes/v${version}.html";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ bcdarwin ];
+    maintainers = with maintainers; [ bcdarwin mbalatsko ];
   };
 }
diff --git a/pkgs/development/python-modules/mobi/default.nix b/pkgs/development/python-modules/mobi/default.nix
index fae5b97bb114..3241eab8cafc 100644
--- a/pkgs/development/python-modules/mobi/default.nix
+++ b/pkgs/development/python-modules/mobi/default.nix
@@ -1,10 +1,10 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchFromGitHub
-
 , loguru
 , poetry-core
+, pythonOlder
+, pythonRelaxDepsHook
 , setuptools
 }:
 
@@ -18,13 +18,18 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "iscc";
     repo = "mobi";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-g1L72MkJdrKQRsEdew+Qsn8LfCn8+cmj2pmY6s4nv2U=";
   };
 
+  pythonRelaxDeps = [
+    "loguru"
+  ];
+
   nativeBuildInputs = [
-    setuptools
     poetry-core
+    pythonRelaxDepsHook
+    setuptools
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/molecule/default.nix b/pkgs/development/python-modules/molecule/default.nix
index da881f658675..6b46ae62258c 100644
--- a/pkgs/development/python-modules/molecule/default.nix
+++ b/pkgs/development/python-modules/molecule/default.nix
@@ -1,11 +1,13 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, testers
 , ansible-compat
 , ansible-core
 , click-help-colors
 , enrich
 , jsonschema
+, molecule
 , withPlugins ? true, molecule-plugins
 , packaging
 , pluggy
@@ -19,12 +21,12 @@
 
 buildPythonPackage rec {
   pname = "molecule";
-  version = "6.0.3";
+  version = "24.2.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0qiBBi/MXvHgjB5RJ8BDVNLJUXGVXicL2Cs/v+9y07A=";
+    hash = "sha256-R8mCp9Bdt4Rtp3/nFZ3rlG8myvsuOI/HGBK+AImkF3Y=";
   };
 
   nativeBuildInputs = [
@@ -51,6 +53,14 @@ buildPythonPackage rec {
   # tests can't be easily run without installing things from ansible-galaxy
   doCheck = false;
 
+  passthru.tests.version = (testers.testVersion {
+    package = molecule;
+    command = "PY_COLORS=0 ${pname} --version";
+  }).overrideAttrs (old: {
+    # workaround the error: Permission denied: '/homeless-shelter'
+    HOME = "$(mktemp -d)";
+  });
+
   meta = with lib; {
     description = "Molecule aids in the development and testing of Ansible roles";
     homepage = "https://github.com/ansible-community/molecule";
diff --git a/pkgs/development/python-modules/motionblinds/default.nix b/pkgs/development/python-modules/motionblinds/default.nix
index 6e0d245f0f07..7d8aa5a78400 100644
--- a/pkgs/development/python-modules/motionblinds/default.nix
+++ b/pkgs/development/python-modules/motionblinds/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "motionblinds";
-  version = "0.6.20";
+  version = "0.6.23";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "starkillerOG";
     repo = "motion-blinds";
     rev = "refs/tags/${version}";
-    hash = "sha256-Ri14GwRpORk+8RdpPnrOOfDD+sqdQp9ESlYDnaS9ln8=";
+    hash = "sha256-f5R58p6tMVqmXAjybae8qjeNI3vxtGJ7qxZOl9H5iKw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index 7f5b42e4d2f0..071b7f3ddb64 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -43,14 +43,14 @@
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "4.2.11";
+  version = "4.2.13";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LaYtUuqnZd/idiySDwqIpY86CeBFgckduWfZL67ISPE=";
+    hash = "sha256-Aa72pImnJcjXJb09xvcP8b7a7j4mQXUuS0cf8O3ktNc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix
index deb54ab149be..b5f4e403ab38 100644
--- a/pkgs/development/python-modules/mpi4py/default.nix
+++ b/pkgs/development/python-modules/mpi4py/default.nix
@@ -38,8 +38,6 @@ buildPythonPackage rec {
     # work as expected
   '';
 
-  setupPyBuildFlags = ["--mpicc=${mpi}/bin/mpicc"];
-
   nativeBuildInputs = [ mpi ];
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/mplhep/default.nix b/pkgs/development/python-modules/mplhep/default.nix
index e550285ccaac..64e58c97e2b8 100644
--- a/pkgs/development/python-modules/mplhep/default.nix
+++ b/pkgs/development/python-modules/mplhep/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "mplhep";
-  version = "0.3.32";
+  version = "0.3.34";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xwlrMZLJKRW6iqMsDKS5BDqejADSk/qGOAnQDZ2fTPc=";
+    hash = "sha256-B7pCC3n5b/cDBRDcg+p53RTad8N8iwqsLyxFA4Pm5fM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/msprime/default.nix b/pkgs/development/python-modules/msprime/default.nix
index cf0f8abb22be..c09b3b8d7609 100644
--- a/pkgs/development/python-modules/msprime/default.nix
+++ b/pkgs/development/python-modules/msprime/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "msprime";
-  version = "1.3.0";
+  version = "1.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eYjGHvlJXDZ+gu/J+52AI8PbKiB6ZEXUORlTrzxCbCk=";
+    hash = "sha256-s/Ys1RatLkPIQS6h8kKsrRvJOTkc/pyqGWJYdOLjSDU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/multidict/default.nix b/pkgs/development/python-modules/multidict/default.nix
index 79646183fa18..5588fcbdc5b0 100644
--- a/pkgs/development/python-modules/multidict/default.nix
+++ b/pkgs/development/python-modules/multidict/default.nix
@@ -1,35 +1,44 @@
 { lib
-, stdenv
 , fetchPypi
 , buildPythonPackage
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "multidict";
-  version = "6.0.4";
+  version = "6.0.5";
 
   disabled = pythonOlder "3.7";
 
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NmaQZJLvt2RTwOe5fyz0WbBoLnQCwEialUhJZdvB2kk=";
+    hash = "sha256-9+MBB17a9QUA8LNBVDxBGU2N865cr0cC8glfPKc92No=";
   };
 
   postPatch = ''
-    sed -i '/^addopts/d' setup.cfg
+    substituteInPlace pytest.ini \
+      --replace-fail "-p pytest_cov" ""
+    sed -i '/--cov/d' pytest.ini
+    # `python3 -I -c "import multidict"` fails with ModuleNotFoundError
+    substituteInPlace tests/test_circular_imports.py \
+      --replace-fail '"-I",' ""
   '';
 
-  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isClang [
-    # error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *'
-    "-Wno-error=int-conversion"
+  nativeBuildInputs = [
+    setuptools
   ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
+  preCheck = ''
+    # import from $out
+    rm -r multidict
+  '';
+
   pythonImportsCheck = [ "multidict" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index 0ee96a6d690d..ba8b5a276197 100644
--- a/pkgs/development/python-modules/mypy/default.nix
+++ b/pkgs/development/python-modules/mypy/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
+, pythonAtLeast
 , pythonOlder
 
 # build-system
@@ -100,6 +101,11 @@ buildPythonPackage rec {
     tomli
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # requires distutils
+    "test_c_unit_test"
+  ];
+
   disabledTestPaths = [
     # fails to find tyoing_extensions
     "mypy/test/testcmdline.py"
@@ -118,6 +124,6 @@ buildPythonPackage rec {
     homepage = "https://www.mypy-lang.org";
     license = licenses.mit;
     mainProgram = "mypy";
-    maintainers = with maintainers; [ martingms lnl7 ];
+    maintainers = with maintainers; [ lnl7 ];
   };
 }
diff --git a/pkgs/development/python-modules/mypy/extensions.nix b/pkgs/development/python-modules/mypy/extensions.nix
index bdd6c63da6fc..e8622b84eb7c 100644
--- a/pkgs/development/python-modules/mypy/extensions.nix
+++ b/pkgs/development/python-modules/mypy/extensions.nix
@@ -42,6 +42,6 @@ buildPythonPackage rec {
     description = "Experimental type system extensions for programs checked with the mypy typechecker";
     homepage = "https://www.mypy-lang.org";
     license = licenses.mit;
-    maintainers = with maintainers; [ martingms lnl7 ];
+    maintainers = with maintainers; [ lnl7 ];
   };
 }
diff --git a/pkgs/development/python-modules/myuplink/default.nix b/pkgs/development/python-modules/myuplink/default.nix
new file mode 100644
index 000000000000..7ab0e32e231f
--- /dev/null
+++ b/pkgs/development/python-modules/myuplink/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "myuplink";
+  version = "0.4.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "pajzo";
+    repo = "myuplink";
+    rev = "refs/tags/${version}";
+    hash = "sha256-zd1ZTLwgPD1m4SR5QVZWUvkjZtlB+VEfCZDsRELuYzE=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "%%VERSION_NO%%" "${version}"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  pythonImportsCheck = [
+    "myuplink"
+  ];
+
+  meta = with lib; {
+    description = "Module to interact with the myUplink API";
+    homepage = "https://github.com/pajzo/myuplink";
+    changelog = "https://github.com/pajzo/myuplink/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/nbconvert/default.nix b/pkgs/development/python-modules/nbconvert/default.nix
index f816abc1d740..27d977173e3e 100644
--- a/pkgs/development/python-modules/nbconvert/default.nix
+++ b/pkgs/development/python-modules/nbconvert/default.nix
@@ -20,6 +20,7 @@
 , traitlets
 , importlib-metadata
 , flaky
+, ipykernel
 , ipywidgets
 , pytestCheckHook
 }:
@@ -32,14 +33,14 @@ let
   };
 in buildPythonPackage rec {
   pname = "nbconvert";
-  version = "7.14.2";
+  version = "7.16.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-p/iAj9TggkMWc6xThAAhjdRe/QdvvrB8xuWqWjpOlJ4=";
+    hash = "sha256-gT5lU3ljYkia5XLjm6G/+XhTYZL7UY4QgmsOjK3wPsg=";
   };
 
   # Add $out/share/jupyter to the list of paths that are used to search for
@@ -84,6 +85,7 @@ in buildPythonPackage rec {
 
   nativeCheckInputs = [
     flaky
+    ipykernel
     ipywidgets
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/neoteroi-mkdocs/default.nix b/pkgs/development/python-modules/neoteroi-mkdocs/default.nix
new file mode 100644
index 000000000000..ee4c4a172359
--- /dev/null
+++ b/pkgs/development/python-modules/neoteroi-mkdocs/default.nix
@@ -0,0 +1,63 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  click,
+  essentials-openapi,
+  flask,
+  hatchling,
+  httpx,
+  jinja2,
+  mkdocs,
+  pytestCheckHook,
+  pythonImportsCheckHook,
+  rich,
+  setuptools,
+}:
+buildPythonPackage rec {
+  pname = "neoteroi-mkdocs";
+  version = "1.0.5";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Neoteroi";
+    repo = "mkdocs-plugins";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-gpU3G1PeZTKO4fWr4x8Ek0GIBEP3oRAgu7OFn2OZbRE=";
+  };
+
+  buildInputs = [
+    hatchling
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    flask
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    essentials-openapi
+    click
+    jinja2
+    httpx
+    mkdocs
+    rich
+  ];
+
+  disabledTests = [
+    "test_contribs" # checks against its own git repository
+  ];
+
+  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];
+  };
+}
diff --git a/pkgs/development/python-modules/niaaml/default.nix b/pkgs/development/python-modules/niaaml/default.nix
index bc5d712913b8..855908721490 100644
--- a/pkgs/development/python-modules/niaaml/default.nix
+++ b/pkgs/development/python-modules/niaaml/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "niaaml";
-  version = "1.1.12";
+  version = "1.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "lukapecnik";
     repo = "NiaAML";
     rev = "refs/tags/${version}";
-    hash = "sha256-GAUXEkUOD04DQtRG/RAeeeLmenBd25h18Lmrxbm4X3A=";
+    hash = "sha256-jGbsxYlRJ81g74LqSKpquciPsLP+KSoNBTJPEaD/CHM=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/niaarm/default.nix b/pkgs/development/python-modules/niaarm/default.nix
index e69bdd6169f7..c3343f842a99 100644
--- a/pkgs/development/python-modules/niaarm/default.nix
+++ b/pkgs/development/python-modules/niaarm/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "niaarm";
-  version = "0.3.6";
+  version = "0.3.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "firefly-cpp";
     repo = "NiaARM";
     rev = "refs/tags/${version}";
-    hash = "sha256-DOTeo5ZPZQR56E78pAKQ3DXarIUHhxXoZu0fISDr6fw=";
+    hash = "sha256-0YBjYpeu1eagy9hp/EuXN1cfHztEjR/i4/YFKXS33Co=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/nix-prefetch-github/default.nix b/pkgs/development/python-modules/nix-prefetch-github/default.nix
index ca2183e82a4c..6424c5a7bc0f 100644
--- a/pkgs/development/python-modules/nix-prefetch-github/default.nix
+++ b/pkgs/development/python-modules/nix-prefetch-github/default.nix
@@ -5,23 +5,32 @@
 , which
 , pythonOlder
 , unittestCheckHook
+, sphinxHook
+, sphinx-argparse
+, parameterized
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "nix-prefetch-github";
-  version = "7.0.0";
-  format = "setuptools";
+  version = "7.1.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  outputs = [ "out" "man" ];
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "seppeljordan";
     repo = "nix-prefetch-github";
     rev = "v${version}";
-    hash = "sha256-oIR2iEiOBQ1VKouJTLqEiWWNzrMSJcnxK+m/j9Ia/m8=";
+    hash = "sha256-eQd/MNlnuzXzgFzvwUMchvHoIvkIrbpGKV7iknO14Cc=";
   };
 
-  nativeCheckInputs = [ unittestCheckHook git which ];
+  nativeBuildInputs = [ sphinxHook sphinx-argparse setuptools ];
+  nativeCheckInputs = [ unittestCheckHook git which parameterized ];
+
+  sphinxBuilders = [ "man" ];
+  sphinxRoot = "docs";
 
   # ignore tests which are impure
   DISABLED_TESTS = "network requires_nix_build";
diff --git a/pkgs/development/python-modules/nlpcloud/default.nix b/pkgs/development/python-modules/nlpcloud/default.nix
index 55e9233bb527..cbc28feb1577 100644
--- a/pkgs/development/python-modules/nlpcloud/default.nix
+++ b/pkgs/development/python-modules/nlpcloud/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "nlpcloud";
-  version = "1.1.45";
+  version = "1.1.46";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-W/O7GhZuACUFCSCCJUUB6UfMB9WSF8uU7Yd/tgPsE0Q=";
+    hash = "sha256-NmNu1Rf6mN+Q8FdpeNYQ508ksqkIV7oOp8CrlDN1qPU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nomadnet/default.nix b/pkgs/development/python-modules/nomadnet/default.nix
index 19488765269b..a722c4b6823c 100644
--- a/pkgs/development/python-modules/nomadnet/default.nix
+++ b/pkgs/development/python-modules/nomadnet/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "nomadnet";
-  version = "0.4.5";
+  version = "0.4.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "NomadNet";
     rev = "refs/tags/${version}";
-    hash = "sha256-+w/Earu76mMJFp8ALvaDEkZOGJqlKbO7jfpW/xxvd1o=";
+    hash = "sha256-23TIBSWOYgo7xEilB4raNMbEWIyPFHAh9jsVzh40S8I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index 10b02d1bb620..f10bbe9dc1fa 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "7.0.7";
+  version = "7.0.8";
   disabled = pythonOlder "3.8";
 
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-O8/wDBezrBQu9fQ21QY32TaydM+gtB9qwBdTY96bTgk=";
+    hash = "sha256-OVfs2VYFawAUZ3r8dtO7RMLS8pZJ+Hsk0TYG/x0Yk48=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix
index cbf8fa40d78c..ad72dca6cf51 100644
--- a/pkgs/development/python-modules/numba/default.nix
+++ b/pkgs/development/python-modules/numba/default.nix
@@ -28,11 +28,11 @@ let
 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.58.1";
+  version = "0.59.0";
   pname = "numba";
   pyproject = true;
 
-  disabled = pythonOlder "3.8" || pythonAtLeast "3.12";
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.13";
 
   src = fetchFromGitHub {
     owner = "numba";
@@ -50,7 +50,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-1Tj2GFoUwRRCWBFxhreF+0Mr+Tjyb7+X4peO+T0qGNs=";
+    hash = "sha256-wd4TujPhV2Jy/HUUXLHAlcbVFm4gfQNWxWFXD+jeZC4=";
   };
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 039e571695f8..d25d436d9fdd 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -53,20 +53,17 @@ let
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.26.2";
+  version = "1.26.4";
   pyproject = true;
   disabled = pythonOlder "3.9" || pythonAtLeast "3.13";
 
   src = fetchPypi {
     inherit pname version;
     extension = "tar.gz";
-    hash = "sha256-9lc4RHZ2q1d38R5ru9uM4Rt4XhBfaQvEWWZXSBa20+o=";
+    hash = "sha256-KgKrqe0S5KxOs+qUIcQgMBoMZGDZgw10qd+H76SRIBA=";
   };
 
   patches = [
-    # Remove last usage of distutils to enable numpy on Python 3.12
-    ./0001-BLD-remove-last-usage-of-distutils-in-_core-code_gen.patch
-
     # 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.
@@ -167,6 +164,9 @@ in buildPythonPackage rec {
     "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 = {
diff --git a/pkgs/development/python-modules/numpyro/default.nix b/pkgs/development/python-modules/numpyro/default.nix
index 612be673dbc1..90c0db931e4c 100644
--- a/pkgs/development/python-modules/numpyro/default.nix
+++ b/pkgs/development/python-modules/numpyro/default.nix
@@ -62,6 +62,9 @@ buildPythonPackage rec {
     "test_zero_inflated_logits_probs_agree"
     # NameError: unbound axis name: _provenance
     "test_model_transformation"
+    # Using deprecated (removed in jax==0.4.24) jax.core.safe_map
+    # https://github.com/pyro-ppl/numpyro/issues/1733
+    "test_beta_bernoulli"
   ];
 
   # TODO: remove when tensorflow-probability gets fixed.
diff --git a/pkgs/development/python-modules/nvchecker/default.nix b/pkgs/development/python-modules/nvchecker/default.nix
index ca327c3e54e0..b375d6111ae0 100644
--- a/pkgs/development/python-modules/nvchecker/default.nix
+++ b/pkgs/development/python-modules/nvchecker/default.nix
@@ -1,12 +1,10 @@
 { lib
-, aiohttp
 , platformdirs
 , buildPythonPackage
 , docutils
 , fetchFromGitHub
 , flaky
 , installShellFiles
-, packaging
 , pycurl
 , pytest-asyncio
 , pytest-httpbin
@@ -20,31 +18,29 @@
 
 buildPythonPackage rec {
   pname = "nvchecker";
-  version = "2.12";
-  format = "pyproject";
+  version = "2.13.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "lilydjwg";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6mhVDC2jpIIOZeoKz4AxxU7jj8dqPVBKRWupbuY/T7E=";
+    hash = "sha256-q+az9oaxxIOv/vLFpkT3cF5GDJsa0Cid4oPWEKg5s7M=";
   };
 
   nativeBuildInputs = [
+    setuptools
     docutils
     installShellFiles
   ];
 
   propagatedBuildInputs = [
-    aiohttp
-    platformdirs
-    packaging
-    pycurl
-    setuptools
     structlog
+    platformdirs
     tornado
+    pycurl
   ] ++ lib.optionals (pythonOlder "3.11") [
     tomli
   ];
diff --git a/pkgs/development/python-modules/oauthlib/default.nix b/pkgs/development/python-modules/oauthlib/default.nix
index 424e35c5d3a9..9f240535256a 100644
--- a/pkgs/development/python-modules/oauthlib/default.nix
+++ b/pkgs/development/python-modules/oauthlib/default.nix
@@ -7,6 +7,7 @@
 , pyjwt
 , pytestCheckHook
 , pythonOlder
+, setuptools
 
 # for passthru.tests
 , django-allauth
@@ -18,27 +19,31 @@
 buildPythonPackage rec {
   pname = "oauthlib";
   version = "3.2.2";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "oauthlib";
+    repo = "oauthlib";
     rev = "v${version}";
     hash = "sha256-KADS1pEaLYi86LEt2VVuz8FVTBANzxC8EeQLgGMxuBU=";
   };
 
-  propagatedBuildInputs = [
-    blinker
-    cryptography
-    pyjwt
+  nativeBuildInputs = [
+    setuptools
   ];
 
+  passthru.optional-dependencies = {
+    rsa = [ cryptography ];
+    signedtoken = [ cryptography pyjwt ];
+    signals = [ blinker ];
+  };
+
   nativeCheckInputs = [
     mock
     pytestCheckHook
-  ];
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   pythonImportsCheck = [
     "oauthlib"
@@ -53,8 +58,9 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
+    changelog = "https://github.com/oauthlib/oauthlib/blob/${src.rev}/CHANGELOG.rst";
     description = "Generic, spec-compliant, thorough implementation of the OAuth request-signing logic";
-    homepage = "https://github.com/idan/oauthlib";
+    homepage = "https://github.com/oauthlib/oauthlib";
     license = licenses.bsd3;
     maintainers = with maintainers; [ prikhi ];
   };
diff --git a/pkgs/development/python-modules/objax/default.nix b/pkgs/development/python-modules/objax/default.nix
index 24a14b37f98c..7f2725e9d286 100644
--- a/pkgs/development/python-modules/objax/default.nix
+++ b/pkgs/development/python-modules/objax/default.nix
@@ -2,22 +2,26 @@
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
-, jaxlib
 , jax
+, jaxlib
+, keras
 , numpy
 , parameterized
 , pillow
+, pytestCheckHook
+, pythonOlder
 , scipy
+, setuptools
 , tensorboard
-, keras
-, pytestCheckHook
 , tensorflow
 }:
 
 buildPythonPackage rec {
   pname = "objax";
   version = "1.8.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "google";
@@ -26,6 +30,10 @@ buildPythonPackage rec {
     hash = "sha256-WD+pmR8cEay4iziRXqF3sHUzCMBjmLJ3wZ3iYOD+hzk=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Avoid propagating the dependency on `jaxlib`, see
   # https://github.com/NixOS/nixpkgs/issues/156767
   buildInputs = [
@@ -62,11 +70,14 @@ buildPythonPackage rec {
   disabledTests = [
     # Test requires internet access for prefetching some weights
     "test_pretrained_keras_weight_0_ResNet50V2"
+    # ModuleNotFoundError: No module named 'tree'
+    "TestResNetV2Pretrained"
   ];
 
   meta = with lib; {
-    description = "Objax is a machine learning framework that provides an Object Oriented layer for JAX.";
+    description = "Machine learning framework that provides an Object Oriented layer for JAX";
     homepage = "https://github.com/google/objax";
+    changelog = "https://github.com/google/objax/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
   };
diff --git a/pkgs/development/python-modules/oci/default.nix b/pkgs/development/python-modules/oci/default.nix
index 0e5d643c7d96..15d4ec26e0a3 100644
--- a/pkgs/development/python-modules/oci/default.nix
+++ b/pkgs/development/python-modules/oci/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "oci";
-  version = "2.120.0";
+  version = "2.121.1";
   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-KUiv0cNkkvaouhR2UgdMVBwrZoqCxVif71/eiyjpskI=";
+    hash = "sha256-oOy0gOTekPXv557dl0A0b8TJVGSUYPq38h2Fu8PN03o=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index 9b4e1d0287eb..3d73d3d19497 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -30,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "16.0.4";
+  version = "16.1.1";
 
   disabled = pythonOlder "3.10";
 
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-1Bg1R8c5VtJsd8NHd+WWdJRA39Jjgv9JUMcijZm942o=";
+    hash = "sha256-XCYNz1QQodUEidz1+A79yleqOnOCK3zJ8mBIPU5JEQg=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/odp-amsterdam/default.nix b/pkgs/development/python-modules/odp-amsterdam/default.nix
index 9f8f810b4be9..e847982f9b65 100644
--- a/pkgs/development/python-modules/odp-amsterdam/default.nix
+++ b/pkgs/development/python-modules/odp-amsterdam/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "odp-amsterdam";
-  version = "6.0.0";
+  version = "6.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "klaasnicolaas";
     repo = "python-odp-amsterdam";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dAyKypc8bMWkXhYa7BlGGAGqPaPJHFHwXd/UK80BGoE=";
+    hash = "sha256-teLjiclkbjlG226gMUgqc2IUEWqKcSm6xIekw+AQPU4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/oelint-parser/default.nix b/pkgs/development/python-modules/oelint-parser/default.nix
index eb3e76a5e518..daf2a58fc5ed 100644
--- a/pkgs/development/python-modules/oelint-parser/default.nix
+++ b/pkgs/development/python-modules/oelint-parser/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "oelint-parser";
-  version = "3.1.0";
+  version = "3.2.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "oelint_parser";
-    hash = "sha256-uR90Af/3E8YVZ2ALSVFOkTr59iVw5NkLOnQBm4Us1vk=";
+    hash = "sha256-pjdPiM23jITqYW5dklJJN5X8C8OmetIDvpN/RCLMWoE=";
   };
 
   buildInputs = [ pip ];
diff --git a/pkgs/development/python-modules/openai-triton/0001-ptxas-disable-version-key-for-non-cuda-targets.patch b/pkgs/development/python-modules/openai-triton/0001-ptxas-disable-version-key-for-non-cuda-targets.patch
new file mode 100644
index 000000000000..3941d54b8b37
--- /dev/null
+++ b/pkgs/development/python-modules/openai-triton/0001-ptxas-disable-version-key-for-non-cuda-targets.patch
@@ -0,0 +1,27 @@
+From 10f3d49aa6084d1b9b9624017cce7df106b9fb7e Mon Sep 17 00:00:00 2001
+From: Yaroslav Bolyukin <iam@lach.pw>
+Date: Tue, 6 Feb 2024 13:51:28 +0100
+Subject: [PATCH] ptxas: disable version key for non-cuda targets
+
+---
+ python/triton/runtime/jit.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/python/triton/runtime/jit.py b/python/triton/runtime/jit.py
+index d55972b4b..bd875a701 100644
+--- a/python/triton/runtime/jit.py
++++ b/python/triton/runtime/jit.py
+@@ -117,8 +117,8 @@ def version_key():
+         with open(lib.module_finder.find_spec(lib.name).origin, "rb") as f:
+             contents += [hashlib.md5(f.read()).hexdigest()]
+     # ptxas version
+-    ptxas = path_to_ptxas()[0]
+-    ptxas_version = hashlib.md5(subprocess.check_output([ptxas, "--version"])).hexdigest()
++    # ptxas = path_to_ptxas()[0]
++    ptxas_version = "noptxas"
+     return '-'.join(TRITON_VERSION) + '-' + ptxas_version + '-' + '-'.join(contents)
+ 
+ 
+-- 
+2.43.0
+
diff --git a/pkgs/development/python-modules/openai-triton/default.nix b/pkgs/development/python-modules/openai-triton/default.nix
index 46f1e6de5684..018852bdc743 100644
--- a/pkgs/development/python-modules/openai-triton/default.nix
+++ b/pkgs/development/python-modules/openai-triton/default.nix
@@ -19,6 +19,9 @@
 , filelock
 , torchWithRocm
 , python
+
+, runCommand
+
 , cudaPackages
 , cudaSupport ? config.cudaSupport
 }:
@@ -46,6 +49,9 @@ buildPythonPackage rec {
     })
   ] ++ 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 = [
@@ -71,7 +77,12 @@ buildPythonPackage rec {
     zlib
   ];
 
-  propagatedBuildInputs = [ filelock ];
+  propagatedBuildInputs = [
+    filelock
+    # openai-triton uses setuptools at runtime:
+    # https://github.com/NixOS/nixpkgs/pull/286763/#discussion_r1480392652
+    setuptools
+  ];
 
   postPatch = let
     # Bash was getting weird without linting,
@@ -150,7 +161,18 @@ buildPythonPackage rec {
   # ];
 
   # Ultimately, torch is our test suite:
-  passthru.tests = { inherit torchWithRocm; };
+  passthru.tests = {
+    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"
+    '';
+  };
 
   pythonRemoveDeps = [
     # Circular dependency, cf. https://github.com/openai/triton/issues/1374
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index fcd9620cdf4a..78ace71a3575 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "1.11.1";
+  version = "1.13.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7.1";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PtxKQQfcM4aOlqU0qIJDpB/24Wkt/omx+uDk4mRZU4s=";
+    hash = "sha256-3otPmMVV/Wx7k/oec5c1r6GcZGzhMSKifJB8S5nBSZw=";
   };
 
   nativeBuildInputs = [
@@ -74,13 +74,18 @@ buildPythonPackage rec {
     dirty-equals
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::DeprecationWarning"
+  ];
+
   disabledTests = [
-    # makes network requests
+    # Tests make network requests
     "test_streaming_response"
+    "test_copy_build_request"
   ];
 
   disabledTestPaths = [
-    # makes network requests
+    # Test makes network requests
     "tests/api_resources"
   ];
 
diff --git a/pkgs/development/python-modules/openaiauth/default.nix b/pkgs/development/python-modules/openaiauth/default.nix
index da10f6ffbe55..1b33438e070f 100644
--- a/pkgs/development/python-modules/openaiauth/default.nix
+++ b/pkgs/development/python-modules/openaiauth/default.nix
@@ -2,13 +2,14 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, requests
+, setuptools
+, tls-client
 }:
 
 buildPythonPackage rec {
   pname = "openaiauth";
   version = "3.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -18,8 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-9SrptiheiM5s9YI6Ht68ahDGMFADWfBQgAWUBY3EEJ8=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
-    requests
+    tls-client
   ];
 
   # Module has no tests
diff --git a/pkgs/development/python-modules/openbabel-bindings/default.nix b/pkgs/development/python-modules/openbabel-bindings/default.nix
index fad677987bf4..6cac1fb385b2 100644
--- a/pkgs/development/python-modules/openbabel-bindings/default.nix
+++ b/pkgs/development/python-modules/openbabel-bindings/default.nix
@@ -1,8 +1,7 @@
 { lib, openbabel, python, buildPythonPackage }:
 
 buildPythonPackage rec {
-  pname = "openbabel";
-  version = "3.1.1";
+  inherit (openbabel) pname version;
 
   src = "${openbabel}/lib/python${python.sourceVersion.major}.${python.sourceVersion.minor}/site-packages";
 
diff --git a/pkgs/development/python-modules/openllm-client/default.nix b/pkgs/development/python-modules/openllm-client/default.nix
index a1cc4fcc921e..7c0c1d80fc5b 100644
--- a/pkgs/development/python-modules/openllm-client/default.nix
+++ b/pkgs/development/python-modules/openllm-client/default.nix
@@ -23,6 +23,12 @@ buildPythonPackage rec {
 
   sourceRoot = "source/openllm-client";
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "hatchling==1.18.0" "hatchling" \
+      --replace-fail "hatch-vcs==0.3.0" "hatch-vcs"
+  '';
+
   nativeBuildInputs = [
     hatch-fancy-pypi-readme
     hatch-vcs
diff --git a/pkgs/development/python-modules/openstacksdk/default.nix b/pkgs/development/python-modules/openstacksdk/default.nix
index 1dca33bba9e1..f6cc42e67f75 100644
--- a/pkgs/development/python-modules/openstacksdk/default.nix
+++ b/pkgs/development/python-modules/openstacksdk/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "openstacksdk";
-  version = "2.1.0";
+  version = "3.0.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dsm3QKLNYl/MbpJBYU7vKgk0y3I1SlxYcWj4+t7y5nQ=";
+    hash = "sha256-sMf5oCXV2pKtTHYpQeasxMtTkwoH/3OamuvMXlpySuY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/openstacksdk/tests.nix b/pkgs/development/python-modules/openstacksdk/tests.nix
index 148f76d03529..c3f16f7d9ef6 100644
--- a/pkgs/development/python-modules/openstacksdk/tests.nix
+++ b/pkgs/development/python-modules/openstacksdk/tests.nix
@@ -50,6 +50,7 @@ buildPythonPackage {
     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
diff --git a/pkgs/development/python-modules/openusd/default.nix b/pkgs/development/python-modules/openusd/default.nix
index f97a9f425ecd..590bae1823c9 100644
--- a/pkgs/development/python-modules/openusd/default.nix
+++ b/pkgs/development/python-modules/openusd/default.nix
@@ -28,6 +28,7 @@
 , bison
 , qt6
 , python
+, darwin
 }:
 let
   # Matches the pyside6-uic implementation
@@ -46,6 +47,11 @@ buildPythonPackage rec {
     hash = "sha256-5zQrfB14kXs75WbL3s4eyhxELglhLNxU2L2aVXiyVjg=";
   };
 
+  stdenv = if python.stdenv.isDarwin then
+    darwin.apple_sdk_11_0.stdenv
+  else
+    python.stdenv;
+
   outputs = ["out" "doc"];
 
   format = "other";
@@ -72,9 +78,9 @@ buildPythonPackage rec {
     "-DPXR_BUILD_PYTHON_DOCUMENTATION=ON"
     "-DPXR_BUILD_EMBREE_PLUGIN=ON"
     "-DPXR_BUILD_ALEMBIC_PLUGIN=ON"
-    "-DPXR_ENABLE_OSL_SUPPORT=ON"
     "-DPXR_BUILD_DRACO_PLUGIN=ON"
     "-DPXR_BUILD_MONOLITHIC=ON" # Seems to be commonly linked to monolithically
+    (lib.cmakeBool "PXR_ENABLE_OSL_SUPPORT" (!stdenv.isDarwin))
   ];
 
   nativeBuildInputs = [
@@ -100,8 +106,12 @@ buildPythonPackage rec {
     boost
     draco
     qt6.qtbase
-    qt6.qtwayland
-  ];
+  ]
+    ++ lib.optionals stdenv.isLinux [ qt6.qtwayland ]
+    ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [
+      Cocoa
+    ])
+  ;
 
   pythonImportsCheck = [ "pxr" "pxr.Usd" ];
 
diff --git a/pkgs/development/python-modules/openwebifpy/default.nix b/pkgs/development/python-modules/openwebifpy/default.nix
index 3d2da5207656..160a7708bdf6 100644
--- a/pkgs/development/python-modules/openwebifpy/default.nix
+++ b/pkgs/development/python-modules/openwebifpy/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "openwebifpy";
-  version = "4.2.1";
+  version = "4.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dCgbMyyVmYGPV8GyZUrMR+IO8nGoQ//dnmHmhFH2iJo=";
+    hash = "sha256-qL/H2F+/d/JWwmUbZhvoMlZZDGgEpRBmHabt1MWjGAs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/opower/default.nix b/pkgs/development/python-modules/opower/default.nix
index 6e5225d17337..650565f9c11b 100644
--- a/pkgs/development/python-modules/opower/default.nix
+++ b/pkgs/development/python-modules/opower/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "opower";
-  version = "0.3.0";
+  version = "0.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "tronikos";
     repo = "opower";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YqNHjGJ0BkF8/1LVDqbw9QoJgPgwbA1sIPJUuP4TTJY=";
+    hash = "sha256-aSzy1QLNGfEqHE2IQDdh9YfK+pC6j8X+5KviasSvYI8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/optimum/default.nix b/pkgs/development/python-modules/optimum/default.nix
index ad542017d1f0..7b6be6027a6e 100644
--- a/pkgs/development/python-modules/optimum/default.nix
+++ b/pkgs/development/python-modules/optimum/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "optimum";
-  version = "1.16.2";
+  version = "1.17.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "optimum";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bEwCUPZJT1UTD8mQJKg+Nwag6kpn4076uyKocKI/+/M=";
+    hash = "sha256-21y7pFRCZqwNaZR+TcXH2KIK5IZuLVq0wgIQqByyEf8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/oralb-ble/default.nix b/pkgs/development/python-modules/oralb-ble/default.nix
index 5eb5d0ce83fe..08b0abb2ded8 100644
--- a/pkgs/development/python-modules/oralb-ble/default.nix
+++ b/pkgs/development/python-modules/oralb-ble/default.nix
@@ -1,4 +1,5 @@
 { lib
+, bleak
 , bleak-retry-connector
 , bluetooth-data-tools
 , bluetooth-sensor-state-data
@@ -6,29 +7,36 @@
 , fetchFromGitHub
 , home-assistant-bluetooth
 , poetry-core
+, pytest-asyncio
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "oralb-ble";
-  version = "0.17.6";
-  format = "pyproject";
+  version = "0.18.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
-    repo = pname;
+    repo = "oralb-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6LnZ+Y68sl0uA5i764n4fFJnPeo+bAi/xgEvTK6LkXY=";
+    hash = "sha256-e6L8HXpqOAHnEktIJ1N1atC5QXno669W3c/S7cISa48=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov=oralb_ble --cov-report=term-missing:skip-covered" ""
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
 
   propagatedBuildInputs = [
+    bleak
     bleak-retry-connector
     bluetooth-data-tools
     bluetooth-sensor-state-data
@@ -36,18 +44,19 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    pytest-asyncio
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace " --cov=oralb_ble --cov-report=term-missing:skip-covered" ""
-  '';
-
   pythonImportsCheck = [
     "oralb_ble"
   ];
 
+  disabledTests = [
+    # Test is outdated, TypeError: BLEDevice.__init__() missing 2 required...
+    "test_async_poll"
+  ];
+
   meta = with lib; {
     description = "Library for Oral B BLE devices";
     homepage = "https://github.com/Bluetooth-Devices/oralb-ble";
diff --git a/pkgs/development/python-modules/orbax-checkpoint/default.nix b/pkgs/development/python-modules/orbax-checkpoint/default.nix
new file mode 100644
index 000000000000..0f9d467335ce
--- /dev/null
+++ b/pkgs/development/python-modules/orbax-checkpoint/default.nix
@@ -0,0 +1,78 @@
+{ lib
+, absl-py
+, buildPythonPackage
+, cached-property
+, etils
+, fetchPypi
+, flit-core
+, importlib-resources
+, jax
+, jaxlib
+, msgpack
+, nest-asyncio
+, numpy
+, protobuf
+, pytest-xdist
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, tensorstore
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "orbax-checkpoint";
+  version = "0.5.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    pname = "orbax_checkpoint";
+    inherit version;
+    hash = "sha256-FXKQTLv+hROSfg2A+AtzDg7y9oAzLTwoENhENTKTi0U=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    absl-py
+    cached-property
+    etils
+    importlib-resources
+    jax
+    jaxlib
+    msgpack
+    nest-asyncio
+    numpy
+    protobuf
+    pyyaml
+    tensorstore
+    typing-extensions
+  ];
+
+  nativeCheckInputs = [
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "orbax"
+  ];
+
+  disabledTestPaths = [
+    # Circular dependency flax
+    "orbax/checkpoint/transform_utils_test.py"
+    "orbax/checkpoint/utils_test.py"
+  ];
+
+  meta = with lib; {
+    description = "Orbax provides common utility libraries for JAX users";
+    homepage = "https://github.com/google/orbax/tree/main/checkpoint";
+    changelog = "https://github.com/google/orbax/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/orjson/default.nix b/pkgs/development/python-modules/orjson/default.nix
index fb81938bc091..b707a9e83ebb 100644
--- a/pkgs/development/python-modules/orjson/default.nix
+++ b/pkgs/development/python-modules/orjson/default.nix
@@ -1,39 +1,48 @@
 { lib
 , stdenv
+, buildPythonPackage
+, fetchFromGitHub
 , pythonOlder
+
+# build-system
 , rustPlatform
-, fetchFromGitHub
-, buildPythonPackage
 , cffi
+
+# native dependencies
 , libiconv
+
+# tests
 , numpy
 , psutil
 , pytestCheckHook
 , python-dateutil
 , pytz
 , xxhash
+, python
 }:
 
 buildPythonPackage rec {
   pname = "orjson";
-  version = "3.9.10";
-  format = "pyproject";
+  version = "3.9.13";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ijl";
-    repo = pname;
+    repo = "orjson";
     rev = "refs/tags/${version}";
-    hash = "sha256-MkcuayNDt7/GcswXoFTvzuaZzhQEQV+V7OfKqgJwVIQ=";
+    hash = "sha256-p6nkzEHFTKCBr7Wte2wvzh1TlzwweADZON8gm2pT224=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-2eRV+oZQvsWWJ4AUTeuE0CHtTHC6jNZiX/y5uXuwvns=";
+    hash = "sha256-2c8XgQILhAvR8HUqoEIOfYeiV1lR9UyIJXWDuNeVZsE=";
   };
 
+  maturinBuildFlags = [ "--interpreter ${python.executable}" ];
+
   nativeBuildInputs = [
     cffi
   ] ++ (with rustPlatform; [
diff --git a/pkgs/development/python-modules/osc-sdk-python/default.nix b/pkgs/development/python-modules/osc-sdk-python/default.nix
new file mode 100644
index 000000000000..74d617efe500
--- /dev/null
+++ b/pkgs/development/python-modules/osc-sdk-python/default.nix
@@ -0,0 +1,57 @@
+{
+  lib
+  , buildPythonPackage
+  , fetchFromGitHub
+  , pytestCheckHook
+  , requests
+  , ruamel-yaml
+  , setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "osc-sdk-python";
+  version = "0.27.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "outscale";
+    repo = "osc-sdk-python";
+    rev = "v${version}";
+    hash = "sha256-dp4yE8cTeXAPoixJ6ZtsvcTSKdYpDIebHkddUiqJe5Q=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    requests
+    ruamel-yaml
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "ruamel.yaml==0.17.32" "ruamel.yaml"
+  '';
+
+  # Only keep test not requiring access and secret keys
+  pytestFlagsArray = [
+    "tests/test_net.py"
+  ];
+
+  pythonImportsCheck = [
+    "osc_sdk_python"
+  ];
+
+  meta = with lib; {
+    description = "SDK to perform actions on Outscale API";
+    homepage = "http://github.com/outscale/osc-sdk-python";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ nicolas-goudry ];
+  };
+}
diff --git a/pkgs/development/python-modules/osc/default.nix b/pkgs/development/python-modules/osc/default.nix
index 4055fc176885..b2e50a316a37 100644
--- a/pkgs/development/python-modules/osc/default.nix
+++ b/pkgs/development/python-modules/osc/default.nix
@@ -7,6 +7,7 @@
 , lib
 , rpm
 , urllib3
+, keyring
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
 
   buildInputs = [ bashInteractive ]; # needed for bash-completion helper
   nativeCheckInputs = [ rpm diffstat ];
-  propagatedBuildInputs = [ urllib3 cryptography ];
+  propagatedBuildInputs = [ urllib3 cryptography keyring ];
 
   postInstall = ''
     install -D -m444 contrib/osc.fish $out/etc/fish/completions/osc.fish
diff --git a/pkgs/development/python-modules/oscscreen/default.nix b/pkgs/development/python-modules/oscscreen/default.nix
new file mode 100644
index 000000000000..c0eab771d148
--- /dev/null
+++ b/pkgs/development/python-modules/oscscreen/default.nix
@@ -0,0 +1,33 @@
+{
+  lib
+  , buildPythonPackage
+  , fetchFromGitHub
+  , setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "oscscreen";
+  version = "unstable-2023-03-23";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "outscale";
+    repo = "npyscreen";
+    rev = "e2a97e4a201e2d7d5de3ee033071a7f93592b422";
+    hash = "sha256-0Im1kVFa11AW+7Oe95XvkfxSlaux6bkKaHSQy6hJCN8=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  pythonImportsCheck = [ "oscscreen" ];
+
+  meta = with lib; {
+    description = "Framework for developing console applications using Python and curses";
+    homepage = "http://github.com/outscale/npyscreen";
+    changelog = "https://github.com/outscale/npyscreen/blob/${src.rev}/CHANGELOG";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ nicolas-goudry ];
+  };
+}
diff --git a/pkgs/development/python-modules/oslo-context/default.nix b/pkgs/development/python-modules/oslo-context/default.nix
index 902c244c488b..b9f831ce00e5 100644
--- a/pkgs/development/python-modules/oslo-context/default.nix
+++ b/pkgs/development/python-modules/oslo-context/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "oslo.context";
-  version = "5.3.0";
+  version = "5.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xRBxQcYotq5W1P62MiucSnAJL9ahgekfq+relKCeTjg=";
+    hash = "sha256-6WSRu91rUecqOoxUahKbhNI56OngtSEMi6fAoKVimRk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/oslo-log/default.nix b/pkgs/development/python-modules/oslo-log/default.nix
index 64df3dc82e47..d8904b0cdefc 100644
--- a/pkgs/development/python-modules/oslo-log/default.nix
+++ b/pkgs/development/python-modules/oslo-log/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "oslo-log";
-  version = "5.4.0";
+  version = "5.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "oslo.log";
     inherit version;
-    hash = "sha256-LrNVtYVw8lgR2nb6gUU7h1x8lEoZoj0sMFtKTf670iM=";
+    hash = "sha256-TO3RZpx94o2OZrZ6X21sb+g5KFNfqHzWm/ZhG1n1Z+c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/osmpythontools/default.nix b/pkgs/development/python-modules/osmpythontools/default.nix
index 2c8a557e6ef7..1e4f8fd9f822 100644
--- a/pkgs/development/python-modules/osmpythontools/default.nix
+++ b/pkgs/development/python-modules/osmpythontools/default.nix
@@ -56,6 +56,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/mocnik-science/osm-python-tools";
     license = licenses.gpl3Only;
     changelog = "https://raw.githubusercontent.com/mocnik-science/osm-python-tools/v${version}/version-history.md";
-    maintainers = with maintainers; [ das-g ];
+    maintainers = with maintainers; teams.geospatial.members ++ [ das-g ];
   };
 }
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
index 7351e6536416..30d35747ee62 100644
--- a/pkgs/development/python-modules/pandas/default.nix
+++ b/pkgs/development/python-modules/pandas/default.nix
@@ -6,7 +6,6 @@
 , pythonOlder
 
 # build-system
-, cython
 , cython_3
 , meson-python
 , meson
@@ -65,7 +64,7 @@
 
 let pandas = buildPythonPackage rec {
   pname = "pandas";
-  version = "2.1.3";
+  version = "2.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -74,19 +73,18 @@ let pandas = buildPythonPackage rec {
     owner = "pandas-dev";
     repo = "pandas";
     rev = "refs/tags/v${version}";
-    hash = "sha256-okGYzPJC3mpG+Sq4atjWwLlocUDnpjgGRPmQ+4ehQX0=";
+    hash = "sha256-PMrqniyyFYRnAeFBruPrTrGKzX2dRxMRct8AHeghstA=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "Cython>=0.29.33,<3" "Cython" \
-      --replace "meson-python==0.13.1" "meson-python>=0.13.1" \
-      --replace "meson==1.2.1" "meson>=1.2.1"
+      --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"
   '';
 
   nativeBuildInputs = [
-    # TODO: hack to support pandas on python3.12, remove with pandas 2.2.0
-    (if pythonAtLeast "3.12" then cython_3 else cython)
+    cython_3
     meson-python
     meson
     numpy
diff --git a/pkgs/development/python-modules/papermill/default.nix b/pkgs/development/python-modules/papermill/default.nix
index 65b5f7c0035d..28f5c9b6f9e1 100644
--- a/pkgs/development/python-modules/papermill/default.nix
+++ b/pkgs/development/python-modules/papermill/default.nix
@@ -1,13 +1,16 @@
 { lib
-, ansiwrap
+, stdenv
 , azure-datalake-store
+, azure-identity
 , azure-storage-blob
 , boto3
 , buildPythonPackage
 , click
 , entrypoints
-, fetchPypi
+, fetchFromGitHub
 , gcsfs
+, ipykernel
+, moto
 , nbclient
 , nbformat
 , pyarrow
@@ -17,6 +20,7 @@
 , pythonOlder
 , pyyaml
 , requests
+, setuptools
 , tenacity
 , tqdm
 }:
@@ -24,17 +28,22 @@
 buildPythonPackage rec {
   pname = "papermill";
   version = "2.5.0";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-6ntwwFU/Vv6RsPqcxeFwEs1pkyCosBU3PnhwxeYIbHI=";
+  src = fetchFromGitHub {
+    owner = "nteract";
+    repo = "papermill";
+    rev = "refs/tags/${version}";
+    hash = "sha256-x6f5hhTdOPDVFiBvRhfrXq1wd5keYiuUshXnT0IkjX0=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
-    ansiwrap
     click
     pyyaml
     nbformat
@@ -48,6 +57,7 @@ buildPythonPackage rec {
   passthru.optional-dependencies = {
     azure = [
       azure-datalake-store
+      azure-identity
       azure-storage-blob
     ];
     gcs = [
@@ -65,25 +75,34 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [
-    pytestCheckHook
+    ipykernel
+    moto
     pytest-mock
-  ];
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.azure
+    ++ passthru.optional-dependencies.s3
+    ++ passthru.optional-dependencies.gcs;
 
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  # The test suite depends on cloud resources azure/aws
-  doCheck = false;
-
   pythonImportsCheck = [
     "papermill"
   ];
 
+  disabledTests = lib.optionals stdenv.isDarwin [
+    # might fail due to the sandbox
+    "test_end2end_autosave_slow_notebook"
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Parametrize and run Jupyter and interact with notebooks";
     homepage = "https://github.com/nteract/papermill";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    mainProgram = "papermill";
   };
 }
diff --git a/pkgs/development/python-modules/param/default.nix b/pkgs/development/python-modules/param/default.nix
index f6bbbf3b78ff..638a3182ca1b 100644
--- a/pkgs/development/python-modules/param/default.nix
+++ b/pkgs/development/python-modules/param/default.nix
@@ -40,6 +40,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::DeprecationWarning"
+  ];
+
   pythonImportsCheck = [
     "param"
   ];
diff --git a/pkgs/development/python-modules/partd/default.nix b/pkgs/development/python-modules/partd/default.nix
index 728ed09b735c..b5f8afce9d3b 100644
--- a/pkgs/development/python-modules/partd/default.nix
+++ b/pkgs/development/python-modules/partd/default.nix
@@ -1,14 +1,24 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy27
+, fetchFromGitHub
+, fetchpatch2
+, pythonOlder
+
+# build-system
 , setuptools
-, pytest
+
+# dependencies
 , locket
+, toolz
+
+# optional-dependencies
+, blosc2
 , numpy
 , pandas
 , pyzmq
-, toolz
+
+# tests
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -16,25 +26,44 @@ buildPythonPackage rec {
   version = "1.4.1";
   pyproject = true;
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-VsJd1J5v6lcn5zEgPEZsbgkvMI2PACThmdAvaqIWf2c=";
+  src = fetchFromGitHub {
+    owner = "dask";
+    repo = "partd";
+    rev = "refs/tags/${version}";
+    hash = "sha256-EK+HNSPh2b7jwpc6jwH/n+6HDgHhRfBeaRuiDIWVG28=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # python 3.12 support; https://github.com/dask/partd/pull/70
+      url = "https://github.com/dask/partd/pull/70/commits/c96a034367cb9fee0a0900f758b802aeef8a8a41.patch";
+      hash = "sha256-QlSIrFQQQo9We/gf7WSgmWrxdt3rxXQcyvJnFm8R5cM=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools
   ];
 
-  nativeCheckInputs = [ pytest ];
+  propagatedBuildInputs = [
+    locket
+    toolz
+  ];
 
-  propagatedBuildInputs = [ locket numpy pandas pyzmq toolz ];
+  passthru.optional-dependencies = {
+    complete = [
+      blosc2
+      numpy
+      pandas
+      pyzmq
+    ];
+  };
 
-  checkPhase = ''
-    rm partd/tests/test_zmq.py # requires network & fails
-    py.test -k "not test_serialize"
-  '';
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   meta = {
     description = "Appendable key-value storage";
diff --git a/pkgs/development/python-modules/pdoc/default.nix b/pkgs/development/python-modules/pdoc/default.nix
index 0c570aa6165c..b87b76afdc04 100644
--- a/pkgs/development/python-modules/pdoc/default.nix
+++ b/pkgs/development/python-modules/pdoc/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pdoc";
-  version = "14.2.0";
+  version = "14.4.0";
   disabled = pythonOlder "3.8";
 
   pyproject = true;
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "mitmproxy";
     repo = "pdoc";
     rev = "v${version}";
-    hash = "sha256-Mmmq4jqRQow+1jn5ZDVMtP1uxrYgHJK/IQrwFWNw8ag=";
+    hash = "sha256-2k9uIK6TvoGtVqnh97g9f5QvjhyZlznRvYdw5sPaeVE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/peaqevcore/default.nix b/pkgs/development/python-modules/peaqevcore/default.nix
index 3312b88030ad..f0213c041ec2 100644
--- a/pkgs/development/python-modules/peaqevcore/default.nix
+++ b/pkgs/development/python-modules/peaqevcore/default.nix
@@ -2,24 +2,29 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "peaqevcore";
-  version = "19.6.6";
-  format = "setuptools";
+  version = "19.7.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4T30jiMRAbPDgGW8Zcolj1k3UpKN1/juXtYSHrjO804=";
+    hash = "sha256-BVUnSKmLOF6DKirAI2lv8/tpcSGus2XZTPn3WSJjwgg=";
   };
 
   postPatch = ''
     sed -i "/extras_require/d" setup.py
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Tests are not shipped and source is not tagged
   # https://github.com/elden1337/peaqev-core/issues/4
   doCheck = false;
diff --git a/pkgs/development/python-modules/pendulum/default.nix b/pkgs/development/python-modules/pendulum/default.nix
index cdc7ab035ed3..631494a1d9a3 100644
--- a/pkgs/development/python-modules/pendulum/default.nix
+++ b/pkgs/development/python-modules/pendulum/default.nix
@@ -20,8 +20,8 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  nativeBuildInputs = [ poetry-core ];
-  propagatedBuildInputs = [ python-dateutil pytzdata ]
+  build-system = [ poetry-core ];
+  dependencies = [ python-dateutil pytzdata ]
   ++ lib.optional (pythonOlder "3.5") typing
   ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
diff --git a/pkgs/development/python-modules/persistent/default.nix b/pkgs/development/python-modules/persistent/default.nix
index d2a5e6165760..5c7f27a5be31 100644
--- a/pkgs/development/python-modules/persistent/default.nix
+++ b/pkgs/development/python-modules/persistent/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "persistent";
-  version = "5.1";
+  version = "5.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l8zC+ibMm9zDvh/GWqT08or+UgTC1P0kpnRFkI23Rps=";
+    hash = "sha256-2+pdH/nbTkUco5vAtCqepTfmyskoKujAeA+4/64+yDQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index a5c5ff601bcd..dd00edd5b0e1 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.162";
+  version = "2.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XeAOEhmNEACr+KrIYaclDH7EW2XQeobIAQvm99hn24M=";
+    hash = "sha256-I63eX9BDn9RGitEFZiulsjEYVAsmYyvSNi3+2tIrGv8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/phonopy/default.nix b/pkgs/development/python-modules/phonopy/default.nix
index 24a3f54f6b46..6afa9e1f5ff6 100644
--- a/pkgs/development/python-modules/phonopy/default.nix
+++ b/pkgs/development/python-modules/phonopy/default.nix
@@ -9,20 +9,25 @@
 , spglib
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "phonopy";
-  version = "2.21.0";
-  format = "setuptools";
+  version = "2.21.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WAWxgLwChQrwutpRsJtDUoNnwek6RpZB+9JtUFdr/pw=";
+    hash = "sha256-3DCfMI41J/H9RjKj0376NnADp2VzHKnGcvgYoLnluTY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     h5py
     matplotlib
diff --git a/pkgs/development/python-modules/phx-class-registry/default.nix b/pkgs/development/python-modules/phx-class-registry/default.nix
index 0e14d34151a0..465197a15618 100644
--- a/pkgs/development/python-modules/phx-class-registry/default.nix
+++ b/pkgs/development/python-modules/phx-class-registry/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "class-registry";
-  version = "4.0.6";
+  version = "4.1.0";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "todofixthis";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-kSEHgzBgnAq5rMv2HbmGl+9CUzsmzUzPQWr+5q8mcsA=";
+    hash = "sha256-kJbyUzyklVSvW6bBxTTTrY+WhfcV0GUf/+Pzyv+7sEA=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index 386f64718eb0..81d981a5a103 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "8.11.2";
+  version = "8.12.0.post1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-mxUXXD7/ERC6mfmLLo+zdsVblIplrlcnzTNQ7YUk3Q4=";
+    hash = "sha256-zUTlMNGm7QrCFcGb02vvAlhUoeFQbp//HyhkKV69JWc=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pillow-heif/default.nix b/pkgs/development/python-modules/pillow-heif/default.nix
index 2496bd1b3609..33575ace5508 100644
--- a/pkgs/development/python-modules/pillow-heif/default.nix
+++ b/pkgs/development/python-modules/pillow-heif/default.nix
@@ -55,6 +55,9 @@ buildPythonPackage rec {
     x265
   ];
 
+  # clang-16: error: argument unused during compilation: '-fno-strict-overflow' [-Werror,-Wunused-command-line-argument]
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument";
+
   propagatedBuildInputs = [
     pillow
   ];
diff --git a/pkgs/development/python-modules/pinecone-client/default.nix b/pkgs/development/python-modules/pinecone-client/default.nix
index 2715e1748051..d3b3e4e66949 100644
--- a/pkgs/development/python-modules/pinecone-client/default.nix
+++ b/pkgs/development/python-modules/pinecone-client/default.nix
@@ -16,13 +16,13 @@
 }:
 buildPythonPackage rec {
   pname = "pinecone-client";
-  version = "3.0.2";
+  version = "3.0.3";
   pyproject = true;
 
   src = fetchPypi {
     pname = "pinecone_client";
     inherit version;
-    hash = "sha256-+aCDAzPuzhB7TvERneI9rWphv/q38jjmGEFtUcRtKcg=";
+    hash = "sha256-KtPvdiftxNnuJI2XgYYcQ0HW0noVvAX2vvU9lYg303Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pip-api/default.nix b/pkgs/development/python-modules/pip-api/default.nix
index c7819229ef16..16f1f074d044 100644
--- a/pkgs/development/python-modules/pip-api/default.nix
+++ b/pkgs/development/python-modules/pip-api/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pip-api";
-  version = "0.0.31";
+  version = "0.0.33";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "di";
     repo = "pip-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-WFyrEEfrGwsITYzQaukwmz5ml+I6zlMddINTkGeNUTM=";
+    hash = "sha256-bDM31YpVB0pZMqeGTCbnINSmJc03N0HuU8hcc8nnHgw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pipdeptree/default.nix b/pkgs/development/python-modules/pipdeptree/default.nix
index 46374623014f..0d2e5f1f2938 100644
--- a/pkgs/development/python-modules/pipdeptree/default.nix
+++ b/pkgs/development/python-modules/pipdeptree/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pipdeptree";
-  version = "2.13.2";
+  version = "2.15.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "tox-dev";
     repo = "pipdeptree";
     rev = "refs/tags/${version}";
-    hash = "sha256-eDgulAKq78HRW/7GhO40hxr+F1hOfgXqAzaCw5pFjD8=";
+    hash = "sha256-25KcmBHoKfJoTE/GSa//QlKCNrYGSAFzTuASRIv0b+w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index 388688c19f97..a49adbc2acbf 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "plaid-python";
-  version = "18.4.0";
+  version = "19.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bspTjaTATICk58YHxnq2ZM1N5PNS2o0nVQDWUeUvVAc=";
+    hash = "sha256-mwWE5AZjqoUkPzyvuARotcRU2mKnqkoBh6priXLzE/I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plantuml-markdown/default.nix b/pkgs/development/python-modules/plantuml-markdown/default.nix
index 7ba83b6b9fbc..600131e2f5ec 100644
--- a/pkgs/development/python-modules/plantuml-markdown/default.nix
+++ b/pkgs/development/python-modules/plantuml-markdown/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "plantuml-markdown";
-  version = "3.9.2";
+  version = "3.9.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "mikitex70";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-k4Xs1w/26QAfNdJY6P1gpJkBzg/tWi7vDFKZi7naVHo=";
+    hash = "sha256-2nZV/bYRN1SKI6OmpOhK7KUuBwmwhTt/ErTYqVQ9Dps=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plexapi/default.nix b/pkgs/development/python-modules/plexapi/default.nix
index 8628c0bf645c..8b2911222e37 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
-, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "plexapi";
-  version = "4.15.9";
-  format = "setuptools";
+  version = "4.15.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -18,9 +19,13 @@ buildPythonPackage rec {
     owner = "pkkid";
     repo = "python-plexapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-mKn2SLECtJwUdBS7u8NAyIq6wlk+0WNWnDv27AVcysY=";
+    hash = "sha256-3qvAf3oray3Fm3No6ixv/D1mY4lipt5pixgpyXNCRoc=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     requests
     tqdm
diff --git a/pkgs/development/python-modules/plotnine/default.nix b/pkgs/development/python-modules/plotnine/default.nix
index d1ac7b37a76f..fa44670965eb 100644
--- a/pkgs/development/python-modules/plotnine/default.nix
+++ b/pkgs/development/python-modules/plotnine/default.nix
@@ -16,16 +16,16 @@
 
 buildPythonPackage rec {
   pname = "plotnine";
-  version = "0.12.4";
+  version = "0.13.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "has2k1";
     repo = "plotnine";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bm7xMCFDFimINlUePqLYw5bZtI5B151QOtltajgSm2U=";
+    hash = "sha256-qhmo1Ckc4OUzWCnjCNQvwsExB98/BCKydMZdB/yfOY0=";
   };
 
   nativeBuildInputs = [
@@ -64,19 +64,24 @@ buildPythonPackage rec {
     # Assertion Errors:
     # Generated plot images do not exactly match the expected files.
     # After manually checking, this is caused by extremely subtle differences in label placement.
+    "tests/test_aes.py"
     "tests/test_annotation_logticks.py"
     "tests/test_coords.py"
-    "tests/test_facets.py"
     "tests/test_facet_labelling.py"
+    "tests/test_facets.py"
     "tests/test_geom_bar_col_histogram.py"
     "tests/test_geom_bin_2d.py"
     "tests/test_geom_boxplot.py"
+    "tests/test_geom_count.py"
+    "tests/test_geom_density_2d.py"
     "tests/test_geom_density.py"
     "tests/test_geom_dotplot.py"
+    "tests/test_geom_freqpoly.py"
     "tests/test_geom_map.py"
     "tests/test_geom_path_line_step.py"
     "tests/test_geom_point.py"
     "tests/test_geom_raster.py"
+    "tests/test_geom_rect_tile.py"
     "tests/test_geom_ribbon_area.py"
     "tests/test_geom_sina.py"
     "tests/test_geom_smooth.py"
@@ -87,6 +92,7 @@ buildPythonPackage rec {
     "tests/test_scale_internals.py"
     "tests/test_scale_labelling.py"
     "tests/test_stat_ecdf.py"
+    "tests/test_stat_function.py"
     "tests/test_stat_summary.py"
     "tests/test_theme.py"
 
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index 97b42974993a..7d8b5f666515 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.37.0";
+  version = "0.37.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "plugwise";
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-a/8GVHhVZsK2DD3+mM8UvwkgjMC403Mc9UJSO19AlXs=";
+    hash = "sha256-6o0g3il4GV6E8avp9V2YrkaVPf2z37asdJOxf6Phbmc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/polars/Cargo.lock b/pkgs/development/python-modules/polars/Cargo.lock
index b9ba1326cf62..505a370fb586 100644
--- a/pkgs/development/python-modules/polars/Cargo.lock
+++ b/pkgs/development/python-modules/polars/Cargo.lock
@@ -25,11 +25,12 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "ahash"
-version = "0.8.5"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7d5a2cecb58716e47d67d5703a249964b14c7be1ec3cad3affc295b2d1c35d"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
  "cfg-if",
+ "const-random",
  "getrandom",
  "once_cell",
  "version_check",
@@ -38,9 +39,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.5"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
@@ -82,6 +83,49 @@ dependencies = [
 ]
 
 [[package]]
+name = "anes"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
+
+[[package]]
+name = "anstyle"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2faccea4cc4ab4a667ce676a30e8ec13922a692c99bb8f5b11f1502c72e04220"
+
+[[package]]
+name = "anyhow"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+
+[[package]]
+name = "apache-avro"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ceb7c683b2f8f40970b70e39ff8be514c95b96fcb9c4af87e1ed2cb2e10801a0"
+dependencies = [
+ "crc32fast",
+ "digest",
+ "lazy_static",
+ "libflate 2.0.0",
+ "log",
+ "num-bigint",
+ "quad-rand",
+ "rand",
+ "regex-lite",
+ "serde",
+ "serde_json",
+ "snap",
+ "strum",
+ "strum_macros",
+ "thiserror",
+ "typed-builder",
+ "uuid",
+]
+
+[[package]]
 name = "argminmax"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -97,13 +141,68 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76"
 
 [[package]]
-name = "arrow-format"
-version = "0.8.1"
+name = "arrow-array"
+version = "50.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07884ea216994cdc32a2d5f8274a8bee979cfe90274b83f86f440866ee3132c7"
+checksum = "d390feeb7f21b78ec997a4081a025baef1e2e0d6069e181939b61864c9779609"
 dependencies = [
- "planus",
- "serde",
+ "ahash",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
+ "half",
+ "hashbrown 0.14.3",
+ "num",
+]
+
+[[package]]
+name = "arrow-buffer"
+version = "50.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69615b061701bcdffbc62756bc7e85c827d5290b472b580c972ebbbf690f5aa4"
+dependencies = [
+ "bytes",
+ "half",
+ "num",
+]
+
+[[package]]
+name = "arrow-data"
+version = "50.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67d644b91a162f3ad3135ce1184d0a31c28b816a581e08f29e8e9277a574c64e"
+dependencies = [
+ "arrow-buffer",
+ "arrow-schema",
+ "half",
+ "num",
+]
+
+[[package]]
+name = "arrow-schema"
+version = "50.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ff3e9c01f7cd169379d269f926892d0e622a704960350d09d331be3ec9e0029"
+
+[[package]]
+name = "arrow2"
+version = "0.17.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59c468daea140b747d781a1da9f7db5f0a8e6636d4af20cc539e43d05b0604fa"
+dependencies = [
+ "ahash",
+ "bytemuck",
+ "chrono",
+ "dyn-clone",
+ "either",
+ "ethnum",
+ "foreign_vec",
+ "getrandom",
+ "hash_hasher",
+ "num-traits",
+ "rustc_version",
+ "simdutf8",
 ]
 
 [[package]]
@@ -125,18 +224,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.73"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -149,6 +248,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "atoi_simd"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ae037714f313c1353189ead58ef9eec30a8e8dc101b2622d461418fd59e28a9"
+
+[[package]]
 name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -160,15 +265,379 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5281855b39aba9684d2f47bf96983fbfd8f1725f12fabb0513a8ab879647bbd"
 dependencies = [
+ "async-stream",
  "crc",
  "fallible-streaming-iterator",
- "libflate",
+ "futures",
+ "libflate 1.4.0",
  "serde",
  "serde_json",
  "snap",
 ]
 
 [[package]]
+name = "aws-config"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b30c39ebe61f75d1b3785362b1586b41991873c9ab3e317a9181c246fb71d82"
+dependencies = [
+ "aws-credential-types",
+ "aws-runtime",
+ "aws-sdk-sso",
+ "aws-sdk-ssooidc",
+ "aws-sdk-sts",
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-types",
+ "bytes",
+ "fastrand",
+ "hex",
+ "http 0.2.11",
+ "hyper",
+ "ring",
+ "time",
+ "tokio",
+ "tracing",
+ "zeroize",
+]
+
+[[package]]
+name = "aws-credential-types"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33cc49dcdd31c8b6e79850a179af4c367669150c7ac0135f176c61bec81a70f7"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "zeroize",
+]
+
+[[package]]
+name = "aws-runtime"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb031bff99877c26c28895766f7bb8484a05e24547e370768d6cc9db514662aa"
+dependencies = [
+ "aws-credential-types",
+ "aws-sigv4",
+ "aws-smithy-async",
+ "aws-smithy-eventstream",
+ "aws-smithy-http",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-types",
+ "bytes",
+ "fastrand",
+ "http 0.2.11",
+ "http-body",
+ "percent-encoding",
+ "pin-project-lite",
+ "tracing",
+ "uuid",
+]
+
+[[package]]
+name = "aws-sdk-s3"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "951f7730f51a2155c711c85c79f337fbc02a577fa99d2a0a8059acfce5392113"
+dependencies = [
+ "aws-credential-types",
+ "aws-runtime",
+ "aws-sigv4",
+ "aws-smithy-async",
+ "aws-smithy-checksums",
+ "aws-smithy-eventstream",
+ "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-smithy-xml",
+ "aws-types",
+ "bytes",
+ "http 0.2.11",
+ "http-body",
+ "once_cell",
+ "percent-encoding",
+ "regex-lite",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "aws-sdk-sso"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f486420a66caad72635bc2ce0ff6581646e0d32df02aa39dc983bfe794955a5b"
+dependencies = [
+ "aws-credential-types",
+ "aws-runtime",
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-types",
+ "bytes",
+ "http 0.2.11",
+ "once_cell",
+ "regex-lite",
+ "tracing",
+]
+
+[[package]]
+name = "aws-sdk-ssooidc"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39ddccf01d82fce9b4a15c8ae8608211ee7db8ed13a70b514bbfe41df3d24841"
+dependencies = [
+ "aws-credential-types",
+ "aws-runtime",
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-types",
+ "bytes",
+ "http 0.2.11",
+ "once_cell",
+ "regex-lite",
+ "tracing",
+]
+
+[[package]]
+name = "aws-sdk-sts"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a591f8c7e6a621a501b2b5d2e88e1697fcb6274264523a6ad4d5959889a41ce"
+dependencies = [
+ "aws-credential-types",
+ "aws-runtime",
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-query",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-smithy-xml",
+ "aws-types",
+ "http 0.2.11",
+ "once_cell",
+ "regex-lite",
+ "tracing",
+]
+
+[[package]]
+name = "aws-sigv4"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c371c6b0ac54d4605eb6f016624fb5c7c2925d315fdf600ac1bf21b19d5f1742"
+dependencies = [
+ "aws-credential-types",
+ "aws-smithy-eventstream",
+ "aws-smithy-http",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "bytes",
+ "crypto-bigint 0.5.5",
+ "form_urlencoded",
+ "hex",
+ "hmac",
+ "http 0.2.11",
+ "http 1.0.0",
+ "once_cell",
+ "p256",
+ "percent-encoding",
+ "ring",
+ "sha2",
+ "subtle",
+ "time",
+ "tracing",
+ "zeroize",
+]
+
+[[package]]
+name = "aws-smithy-async"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72ee2d09cce0ef3ae526679b522835d63e75fb427aca5413cd371e490d52dcc6"
+dependencies = [
+ "futures-util",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "aws-smithy-checksums"
+version = "0.60.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be2acd1b9c6ae5859999250ed5a62423aedc5cf69045b844432de15fa2f31f2b"
+dependencies = [
+ "aws-smithy-http",
+ "aws-smithy-types",
+ "bytes",
+ "crc32c",
+ "crc32fast",
+ "hex",
+ "http 0.2.11",
+ "http-body",
+ "md-5",
+ "pin-project-lite",
+ "sha1",
+ "sha2",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-eventstream"
+version = "0.60.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6363078f927f612b970edf9d1903ef5cef9a64d1e8423525ebb1f0a1633c858"
+dependencies = [
+ "aws-smithy-types",
+ "bytes",
+ "crc32fast",
+]
+
+[[package]]
+name = "aws-smithy-http"
+version = "0.60.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dab56aea3cd9e1101a0a999447fb346afb680ab1406cebc44b32346e25b4117d"
+dependencies = [
+ "aws-smithy-eventstream",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "bytes",
+ "bytes-utils",
+ "futures-core",
+ "http 0.2.11",
+ "http-body",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "pin-utils",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-json"
+version = "0.60.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd3898ca6518f9215f62678870064398f00031912390efd03f1f6ef56d83aa8e"
+dependencies = [
+ "aws-smithy-types",
+]
+
+[[package]]
+name = "aws-smithy-query"
+version = "0.60.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda4b1dfc9810e35fba8a620e900522cd1bd4f9578c446e82f49d1ce41d2e9f9"
+dependencies = [
+ "aws-smithy-types",
+ "urlencoding",
+]
+
+[[package]]
+name = "aws-smithy-runtime"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fafdab38f40ad7816e7da5dec279400dd505160780083759f01441af1bbb10ea"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "bytes",
+ "fastrand",
+ "h2",
+ "http 0.2.11",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "once_cell",
+ "pin-project-lite",
+ "pin-utils",
+ "rustls",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-runtime-api"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c18276dd28852f34b3bf501f4f3719781f4999a51c7bff1a5c6dc8c4529adc29"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-types",
+ "bytes",
+ "http 0.2.11",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+ "zeroize",
+]
+
+[[package]]
+name = "aws-smithy-types"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb3e134004170d3303718baa2a4eb4ca64ee0a1c0a7041dca31b38be0fb414f3"
+dependencies = [
+ "base64-simd",
+ "bytes",
+ "bytes-utils",
+ "futures-core",
+ "http 0.2.11",
+ "http-body",
+ "itoa",
+ "num-integer",
+ "pin-project-lite",
+ "pin-utils",
+ "ryu",
+ "serde",
+ "time",
+ "tokio",
+ "tokio-util",
+]
+
+[[package]]
+name = "aws-smithy-xml"
+version = "0.60.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8604a11b25e9ecaf32f9aa56b9fe253c5e2f606a3477f0071e96d3155a5ed218"
+dependencies = [
+ "xmlparser",
+]
+
+[[package]]
+name = "aws-types"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "789bbe008e65636fe1b6dbbb374c40c8960d1232b96af5ff4aec349f9c4accf4"
+dependencies = [
+ "aws-credential-types",
+ "aws-smithy-async",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "http 0.2.11",
+ "rustc_version",
+ "tracing",
+]
+
+[[package]]
 name = "backtrace"
 version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -184,10 +653,41 @@ dependencies = [
 ]
 
 [[package]]
+name = "base16ct"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
+
+[[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64-simd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195"
+dependencies = [
+ "outref",
+ "vsimd",
+]
+
+[[package]]
+name = "base64ct"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "bitflags"
@@ -197,18 +697,27 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
 
 [[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
 name = "brotli"
-version = "3.3.4"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
+checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -217,9 +726,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "2.3.4"
+version = "2.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -227,9 +736,9 @@ dependencies = [
 
 [[package]]
 name = "built"
-version = "0.6.1"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b99c4cdc7b2c2364182331055623bdf45254fcb679fea565c40c3c11c101889a"
+checksum = "38d17f4d6e4dc36d1a02fbedc2753a096848e7c1b0772f7654eab8e2c927dd53"
 dependencies = [
  "cargo-lock",
  "chrono",
@@ -244,9 +753,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9"
 dependencies = [
  "bytemuck_derive",
 ]
@@ -259,7 +768,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -269,6 +778,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
+name = "bytes-utils"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35"
+dependencies = [
+ "bytes",
+ "either",
+]
+
+[[package]]
 name = "cargo-lock"
 version = "9.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -281,6 +800,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "casey"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614586263949597dcc18675da12ef9b429135e13628d92eb8b8c6fa50ca5656b"
+dependencies = [
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "cast"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
+
+[[package]]
 name = "cc"
 version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -298,22 +832,22 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
  "serde",
- "windows-targets",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "chrono-tz"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1369bc6b9e9a7dfdae2055f6ec151fe9c554a9d23d357c0237cee2e25eaabb7"
+checksum = "91d7b79e99bfaa0d47da0687c43aa3b7381938a62ad3a6498599039321f660b7"
 dependencies = [
  "chrono",
  "chrono-tz-build",
@@ -322,9 +856,9 @@ dependencies = [
 
 [[package]]
 name = "chrono-tz-build"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2f5ebdc942f57ed96d560a6d1a459bae5851102a25d5bf89dc04ae453e31ecf"
+checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f"
 dependencies = [
  "parse-zoneinfo",
  "phf",
@@ -333,9 +867,9 @@ dependencies = [
 
 [[package]]
 name = "ciborium"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -344,21 +878,46 @@ dependencies = [
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 dependencies = [
  "ciborium-io",
  "half",
 ]
 
 [[package]]
+name = "clap"
+version = "4.4.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
+dependencies = [
+ "clap_builder",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.4.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
+dependencies = [
+ "anstyle",
+ "clap_lex",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+
+[[package]]
 name = "cmake"
 version = "0.1.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -369,21 +928,75 @@ dependencies = [
 
 [[package]]
 name = "comfy-table"
-version = "7.0.1"
+version = "7.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ab77dbd8adecaf3f0db40581631b995f312a8a5ae3aa9993188bb8f23d83a5b"
+checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686"
 dependencies = [
  "crossterm",
  "strum",
- "strum_macros 0.24.3",
+ "strum_macros",
  "unicode-width",
 ]
 
 [[package]]
+name = "const-oid"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
+name = "const-random"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a"
+dependencies = [
+ "const-random-macro",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "tiny-keccak",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "core2"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "crc"
@@ -401,6 +1014,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403"
 
 [[package]]
+name = "crc32c"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74"
+dependencies = [
+ "rustc_version",
+]
+
+[[package]]
 name = "crc32fast"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -410,71 +1032,94 @@ dependencies = [
 ]
 
 [[package]]
+name = "criterion"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
+dependencies = [
+ "anes",
+ "cast",
+ "ciborium",
+ "clap",
+ "criterion-plot",
+ "is-terminal",
+ "itertools 0.10.5",
+ "num-traits",
+ "once_cell",
+ "oorandom",
+ "plotters",
+ "rayon",
+ "regex",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tinytemplate",
+ "walkdir",
+]
+
+[[package]]
+name = "criterion-plot"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
+dependencies = [
+ "cast",
+ "itertools 0.10.5",
+]
+
+[[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-queue"
-version = "0.3.8"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crossterm"
-version = "0.26.1"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13"
+checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "crossterm_winapi",
  "libc",
- "mio",
  "parking_lot",
- "signal-hook",
- "signal-hook-mio",
  "winapi",
 ]
 
@@ -488,6 +1133,80 @@ dependencies = [
 ]
 
 [[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-bigint"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
+dependencies = [
+ "generic-array",
+ "rand_core",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto-bigint"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
+dependencies = [
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "dary_heap"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca"
+
+[[package]]
+name = "der"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
+dependencies = [
+ "const-oid",
+ "zeroize",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
 name = "doc-comment"
 version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -495,9 +1214,21 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
 name = "dyn-clone"
-version = "1.0.13"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+
+[[package]]
+name = "ecdsa"
+version = "0.14.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c"
+dependencies = [
+ "der",
+ "elliptic-curve",
+ "rfc6979",
+ "signature",
+]
 
 [[package]]
 name = "either"
@@ -506,6 +1237,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
+name = "elliptic-curve"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
+dependencies = [
+ "base16ct",
+ "crypto-bigint 0.4.9",
+ "der",
+ "digest",
+ "ff",
+ "generic-array",
+ "group",
+ "pkcs8",
+ "rand_core",
+ "sec1",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "encoding_rs"
 version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -523,7 +1274,17 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+dependencies = [
+ "log",
+ "regex",
 ]
 
 [[package]]
@@ -533,10 +1294,20 @@ 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 = "ethnum"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8ff382b2fa527fb7fb06eeebfc5bbb3f17e3cc6b9d70b006c41daa8824adac"
+checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c"
 
 [[package]]
 name = "fallible-streaming-iterator"
@@ -551,10 +1322,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c"
 
 [[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "ff"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
+dependencies = [
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "libz-ng-sys",
@@ -584,18 +1371,18 @@ checksum = "ee1b05cbd864bcaecbd3455d6d967862d446e4ebfc3c2e5e5b9841e53cba6673"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -608,9 +1395,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -618,15 +1405,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -635,38 +1422,38 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -681,10 +1468,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -695,17 +1492,17 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "git2"
-version = "0.17.2"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b989d6a7ca95a362cf2cfc5ad688b3a467be1f87e480b8dad07fee8c79b0044"
+checksum = "fbf97ba92db08df386e10c8ede66a2a0369bd277090afd8710e19e38de9ec0cd"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "libc",
  "libgit2-sys",
  "log",
@@ -719,18 +1516,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
+name = "group"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
+dependencies = [
+ "ff",
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
 name = "h2"
-version = "0.3.21"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
- "indexmap 1.9.3",
+ "http 0.2.11",
+ "indexmap",
  "slab",
  "tokio",
  "tokio-util",
@@ -739,9 +1547,14 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "1.8.2"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+ "num-traits",
+]
 
 [[package]]
 name = "halfbrown"
@@ -754,10 +1567,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "hashbrown"
-version = "0.12.3"
+name = "hash_hasher"
+version = "2.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "74721d007512d0cb3338cd20f0654ac913920061a4c4d0d8708edb3f2a698c0c"
 
 [[package]]
 name = "hashbrown"
@@ -770,9 +1583,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
  "ahash",
  "allocator-api2",
@@ -787,9 +1600,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -798,19 +1611,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
 name = "home"
-version = "0.5.5"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
 dependencies = [
  "bytes",
  "fnv",
@@ -819,12 +1652,12 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http",
+ "http 0.2.11",
  "pin-project-lite",
 ]
 
@@ -848,22 +1681,22 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
  "h2",
- "http",
+ "http 0.2.11",
  "http-body",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2",
  "tokio",
  "tower-service",
  "tracing",
@@ -872,30 +1705,32 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.24.1"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
- "http",
+ "http 0.2.11",
  "hyper",
+ "log",
  "rustls",
+ "rustls-native-certs",
  "tokio",
  "tokio-rustls",
 ]
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows",
+ "windows-core",
 ]
 
 [[package]]
@@ -909,9 +1744,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -919,22 +1754,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.0.0"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "serde",
 ]
 
@@ -946,15 +1771,26 @@ checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
 
 [[package]]
 name = "inventory"
-version = "0.3.12"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1be380c410bf0595e94992a648ea89db4dd3f3354ba54af206fd2a68cf5ac8e"
+checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767"
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "is-terminal"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
+dependencies = [
+ "hermit-abi",
+ "rustix",
+ "windows-sys 0.52.0",
+]
 
 [[package]]
 name = "itertools"
@@ -966,10 +1802,19 @@ dependencies = [
 ]
 
 [[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.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "itoap"
@@ -999,18 +1844,18 @@ dependencies = [
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1026,13 +1871,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "lexical"
-version = "6.1.1"
+name = "lazy_static"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6"
-dependencies = [
- "lexical-core",
-]
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "lexical-core"
@@ -1100,9 +1942,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libflate"
@@ -1112,7 +1954,20 @@ checksum = "5ff4ae71b685bbad2f2f391fe74f6b7659a34871c08b210fdc039e43bee07d18"
 dependencies = [
  "adler32",
  "crc32fast",
- "libflate_lz77",
+ "libflate_lz77 1.2.0",
+]
+
+[[package]]
+name = "libflate"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7d5654ae1795afc7ff76f4365c2c8791b0feb18e8996a96adad8ffd7c3b2bf"
+dependencies = [
+ "adler32",
+ "core2",
+ "crc32fast",
+ "dary_heap",
+ "libflate_lz77 2.0.0",
 ]
 
 [[package]]
@@ -1125,10 +1980,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "libflate_lz77"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be5f52fb8c451576ec6b79d3f4deb327398bc05bbdbd99021a6e77a4c855d524"
+dependencies = [
+ "core2",
+ "hashbrown 0.13.2",
+ "rle-decode-fast",
+]
+
+[[package]]
 name = "libgit2-sys"
-version = "0.15.2+1.6.4"
+version = "0.16.1+1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a80df2e11fb4a61f4ba2ab42dbe7f74468da143f1a75c74e11dee7c813f694fa"
+checksum = "f2a2bb3680b094add03bb3732ec520ece34da31a8cd2d633d1389d0f0fb60d0c"
 dependencies = [
  "cc",
  "libc",
@@ -1138,19 +2004,19 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
  "cfg-if",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "libm"
-version = "0.2.7"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libmimalloc-sys"
@@ -1164,9 +2030,9 @@ dependencies = [
 
 [[package]]
 name = "libz-ng-sys"
-version = "1.1.12"
+version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dd9f43e75536a46ee0f92b758f6b63846e594e86638c61a9251338a65baea63"
+checksum = "c6409efc61b12687963e602df8ecf70e8ddacf95bc6576bcf16e3ac6328083c5"
 dependencies = [
  "cmake",
  "libc",
@@ -1174,9 +2040,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
 dependencies = [
  "cc",
  "libc",
@@ -1185,10 +2051,16 @@ dependencies = [
 ]
 
 [[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.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1222,19 +2094,29 @@ dependencies = [
 
 [[package]]
 name = "matrixmultiply"
-version = "0.3.7"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77"
+checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
 dependencies = [
  "autocfg",
  "rawpointer",
 ]
 
 [[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if",
+ "digest",
+]
+
+[[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
@@ -1280,14 +2162,13 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
- "log",
  "wasi",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -1344,6 +2225,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "num"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
+dependencies = [
+ "num-bigint",
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
 name = "num-complex"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1353,6 +2259,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
 version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1363,10 +2275,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-iter"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
  "libm",
@@ -1399,18 +2334,18 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "object_store"
-version = "0.7.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d359e231e5451f4f9fa889d56e3ce34f8724f1a61db2107739359717cf2bbf08"
+checksum = "d139f545f64630e2e3688fd9f81c470888ab01edeb72d13b4e86c566f1130000"
 dependencies = [
  "async-trait",
  "base64",
@@ -1419,14 +2354,14 @@ dependencies = [
  "futures",
  "humantime",
  "hyper",
- "itertools",
+ "itertools 0.12.1",
  "parking_lot",
  "percent-encoding",
  "quick-xml",
  "rand",
  "reqwest",
  "ring",
- "rustls-pemfile",
+ "rustls-pemfile 2.0.0",
  "serde",
  "serde_json",
  "snafu",
@@ -1438,9 +2373,38 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "oorandom"
+version = "11.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "outref"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a"
+
+[[package]]
+name = "p256"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "sha2",
+]
 
 [[package]]
 name = "parking_lot"
@@ -1454,15 +2418,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -1486,9 +2450,9 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "phf"
@@ -1541,10 +2505,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "pkcs8"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
+dependencies = [
+ "der",
+ "spki",
+]
+
+[[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "planus"
@@ -1556,77 +2530,153 @@ dependencies = [
 ]
 
 [[package]]
+name = "plotters"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
+dependencies = [
+ "num-traits",
+ "plotters-backend",
+ "plotters-svg",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "plotters-backend"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
+
+[[package]]
+name = "plotters-svg"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
+dependencies = [
+ "plotters-backend",
+]
+
+[[package]]
 name = "polars"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
+ "ahash",
  "getrandom",
  "polars-core",
  "polars-io",
  "polars-lazy",
  "polars-ops",
+ "polars-plan",
  "polars-sql",
  "polars-time",
+ "rand",
  "version_check",
 ]
 
 [[package]]
-name = "polars-algo"
-version = "0.34.2"
-dependencies = [
- "polars-core",
- "polars-lazy",
- "polars-ops",
-]
-
-[[package]]
 name = "polars-arrow"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "ahash",
- "arrow-format",
+ "apache-avro",
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "async-stream",
  "atoi",
+ "atoi_simd",
  "avro-schema",
  "bytemuck",
  "chrono",
  "chrono-tz",
+ "criterion",
+ "crossbeam-channel",
+ "doc-comment",
  "dyn-clone",
  "either",
  "ethnum",
+ "fast-float",
+ "flate2",
  "foreign_vec",
  "futures",
  "getrandom",
- "hashbrown 0.14.0",
- "lexical-core",
+ "hashbrown 0.14.3",
+ "hex",
+ "indexmap",
+ "itoa",
+ "itoap",
  "lz4",
  "multiversion",
  "num-traits",
+ "polars-arrow-format",
  "polars-error",
- "rustc_version",
+ "polars-utils",
+ "proptest",
+ "rand",
+ "regex",
+ "regex-syntax 0.8.2",
+ "ryu",
+ "sample-arrow2",
+ "sample-std",
+ "sample-test",
  "serde",
  "simdutf8",
  "streaming-iterator",
  "strength_reduce",
+ "tokio",
+ "tokio-util",
+ "version_check",
  "zstd",
 ]
 
 [[package]]
+name = "polars-arrow-format"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b0ef2474af9396b19025b189d96e992311e6a47f90c53cd998b36c4c64b84c"
+dependencies = [
+ "planus",
+ "prost",
+ "prost-derive",
+ "serde",
+]
+
+[[package]]
+name = "polars-compute"
+version = "0.37.0"
+dependencies = [
+ "bytemuck",
+ "either",
+ "num-traits",
+ "polars-arrow",
+ "polars-error",
+ "polars-utils",
+ "strength_reduce",
+ "version_check",
+]
+
+[[package]]
 name = "polars-core"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "ahash",
- "bitflags 2.4.0",
+ "arrow-array",
+ "bincode",
+ "bitflags 2.4.2",
  "bytemuck",
  "chrono",
  "chrono-tz",
  "comfy-table",
  "either",
- "hashbrown 0.14.0",
- "indexmap 2.0.0",
- "itoap",
+ "hashbrown 0.14.3",
+ "indexmap",
  "ndarray",
  "num-traits",
  "once_cell",
  "polars-arrow",
+ "polars-compute",
  "polars-error",
  "polars-row",
  "polars-utils",
@@ -1643,12 +2693,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "polars-doc-examples"
+version = "0.37.0"
+dependencies = [
+ "aws-config",
+ "aws-sdk-s3",
+ "chrono",
+ "polars",
+ "rand",
+ "reqwest",
+ "tokio",
+]
+
+[[package]]
 name = "polars-error"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
- "arrow-format",
  "avro-schema",
  "object_store",
+ "polars-arrow-format",
  "regex",
  "simdutf8",
  "thiserror",
@@ -1656,7 +2719,7 @@ dependencies = [
 
 [[package]]
 name = "polars-ffi"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "polars-arrow",
  "polars-core",
@@ -1664,10 +2727,11 @@ dependencies = [
 
 [[package]]
 name = "polars-io"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "ahash",
  "async-trait",
+ "atoi_simd",
  "bytes",
  "chrono",
  "chrono-tz",
@@ -1676,8 +2740,6 @@ dependencies = [
  "futures",
  "home",
  "itoa",
- "lexical",
- "lexical-core",
  "memchr",
  "memmap2",
  "num-traits",
@@ -1700,20 +2762,22 @@ dependencies = [
  "simd-json",
  "simdutf8",
  "smartstring",
+ "tempfile",
  "tokio",
  "tokio-util",
  "url",
+ "zstd",
 ]
 
 [[package]]
 name = "polars-json"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "ahash",
  "chrono",
  "fallible-streaming-iterator",
- "hashbrown 0.14.0",
- "indexmap 2.0.0",
+ "hashbrown 0.14.3",
+ "indexmap",
  "itoa",
  "num-traits",
  "polars-arrow",
@@ -1726,10 +2790,10 @@ dependencies = [
 
 [[package]]
 name = "polars-lazy"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "ahash",
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "futures",
  "glob",
  "once_cell",
@@ -1744,6 +2808,7 @@ dependencies = [
  "polars-utils",
  "pyo3",
  "rayon",
+ "serde_json",
  "smartstring",
  "tokio",
  "version_check",
@@ -1751,22 +2816,24 @@ dependencies = [
 
 [[package]]
 name = "polars-ops"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "ahash",
+ "aho-corasick",
  "argminmax",
  "base64",
  "bytemuck",
  "chrono",
  "chrono-tz",
  "either",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "hex",
- "indexmap 2.0.0",
+ "indexmap",
  "jsonpath_lib",
  "memchr",
  "num-traits",
  "polars-arrow",
+ "polars-compute",
  "polars-core",
  "polars-error",
  "polars-json",
@@ -1778,18 +2845,20 @@ dependencies = [
  "serde",
  "serde_json",
  "smartstring",
+ "unicode-reverse",
  "version_check",
 ]
 
 [[package]]
 name = "polars-parquet"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "ahash",
  "async-stream",
  "base64",
  "brotli",
  "ethnum",
+ "fallible-streaming-iterator",
  "flate2",
  "futures",
  "lz4",
@@ -1799,22 +2868,26 @@ dependencies = [
  "polars-error",
  "polars-utils",
  "seq-macro",
+ "serde",
  "simdutf8",
  "snap",
  "streaming-decompression",
+ "xxhash-rust",
  "zstd",
 ]
 
 [[package]]
 name = "polars-pipe"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "crossbeam-channel",
  "crossbeam-queue",
  "enum_dispatch",
- "hashbrown 0.14.0",
+ "futures",
+ "hashbrown 0.14.3",
  "num-traits",
  "polars-arrow",
+ "polars-compute",
  "polars-core",
  "polars-io",
  "polars-ops",
@@ -1829,13 +2902,14 @@ dependencies = [
 
 [[package]]
 name = "polars-plan"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "ahash",
  "bytemuck",
  "chrono",
  "chrono-tz",
  "ciborium",
+ "futures",
  "libloading",
  "once_cell",
  "percent-encoding",
@@ -1843,6 +2917,7 @@ dependencies = [
  "polars-core",
  "polars-ffi",
  "polars-io",
+ "polars-json",
  "polars-ops",
  "polars-parquet",
  "polars-time",
@@ -1852,13 +2927,13 @@ dependencies = [
  "regex",
  "serde",
  "smartstring",
- "strum_macros 0.25.2",
+ "strum_macros",
  "version_check",
 ]
 
 [[package]]
 name = "polars-row"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "polars-arrow",
  "polars-error",
@@ -1867,8 +2942,9 @@ dependencies = [
 
 [[package]]
 name = "polars-sql"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
+ "hex",
  "polars-arrow",
  "polars-core",
  "polars-error",
@@ -1882,7 +2958,7 @@ dependencies = [
 
 [[package]]
 name = "polars-time"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "atoi",
  "chrono",
@@ -1901,12 +2977,12 @@ dependencies = [
 
 [[package]]
 name = "polars-utils"
-version = "0.34.2"
+version = "0.37.0"
 dependencies = [
  "ahash",
  "bytemuck",
- "hashbrown 0.14.0",
- "indexmap 2.0.0",
+ "hashbrown 0.14.3",
+ "indexmap",
  "num-traits",
  "once_cell",
  "polars-error",
@@ -1917,6 +2993,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1924,36 +3006,76 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
+name = "proptest"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
+dependencies = [
+ "bitflags 2.4.2",
+ "lazy_static",
+ "num-traits",
+ "rand",
+ "rand_chacha",
+ "rand_xorshift",
+ "regex-syntax 0.8.2",
+ "unarray",
+]
+
+[[package]]
+name = "prost"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
+dependencies = [
+ "bytes",
+ "prost-derive",
+]
+
+[[package]]
+name = "prost-derive"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
+dependencies = [
+ "anyhow",
+ "itertools 0.10.5",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "py-polars"
-version = "0.19.12"
+version = "0.20.7"
 dependencies = [
  "ahash",
  "built",
  "ciborium",
  "either",
+ "itoa",
  "jemallocator",
- "lexical-core",
  "libc",
  "mimalloc",
  "ndarray",
+ "num-traits",
  "numpy",
  "once_cell",
  "polars",
- "polars-algo",
  "polars-core",
  "polars-error",
  "polars-lazy",
  "polars-ops",
  "polars-parquet",
  "polars-plan",
+ "polars-utils",
  "pyo3",
  "pyo3-built",
  "serde_json",
@@ -1963,9 +3085,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3"
-version = "0.20.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04e8453b658fe480c3e70c8ed4e3d3ec33eb74988bd186561b0cc66b85c3bc4b"
+checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
 dependencies = [
  "cfg-if",
  "indoc",
@@ -1981,9 +3103,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.20.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a96fe70b176a89cff78f2fa7b3c930081e163d5379b4dcdf993e3ae29ca662e5"
+checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
 dependencies = [
  "once_cell",
  "target-lexicon",
@@ -1997,9 +3119,9 @@ checksum = "be6d574e0f8cab2cdd1eeeb640cbf845c974519fa9e9b62fa9c08ecece0ca5de"
 
 [[package]]
 name = "pyo3-ffi"
-version = "0.20.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "214929900fd25e6604661ed9cf349727c8920d47deff196c4e28165a6ef2a96b"
+checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
 dependencies = [
  "libc",
  "pyo3-build-config",
@@ -2007,43 +3129,60 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros"
-version = "0.20.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dac53072f717aa1bfa4db832b39de8c875b7c7af4f4a6fe93cdbf9264cf8383b"
+checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
 dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.20.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7774b5a8282bd4f25f803b1f0d945120be959a36c72e08e7cd031c792fdfd424"
+checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
+name = "quad-rand"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658fa1faf7a4cc5f057c9ee5ef560f717ad9d8dc66d975267f709624d6e1ab88"
+
+[[package]]
 name = "quick-xml"
-version = "0.28.2"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
  "serde",
 ]
 
 [[package]]
+name = "quickcheck"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+dependencies = [
+ "env_logger",
+ "log",
+ "rand",
+]
+
+[[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2089,6 +3228,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "rand_regex"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b2a9fe2d7d9eeaf3279d1780452a5bbd26b31b27938787ef1c3e930d1e9cfbd"
+dependencies = [
+ "rand",
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "rand_xorshift"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
 name = "rawpointer"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2096,9 +3254,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -2106,9 +3264,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -2116,47 +3274,79 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
+name = "ref-cast"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f"
+dependencies = [
+ "ref-cast-impl",
+]
+
+[[package]]
+name = "ref-cast-impl"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata",
- "regex-syntax",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
+name = "regex-lite"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
+
+[[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.20"
+version = "0.11.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
 dependencies = [
  "base64",
  "bytes",
@@ -2164,7 +3354,7 @@ dependencies = [
  "futures-core",
  "futures-util",
  "h2",
- "http",
+ "http 0.2.11",
  "http-body",
  "hyper",
  "hyper-rustls",
@@ -2176,10 +3366,13 @@ dependencies = [
  "percent-encoding",
  "pin-project-lite",
  "rustls",
- "rustls-pemfile",
+ "rustls-native-certs",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
  "tokio",
  "tokio-rustls",
  "tokio-util",
@@ -2189,23 +3382,32 @@ dependencies = [
  "wasm-bindgen-futures",
  "wasm-streams",
  "web-sys",
- "webpki-roots",
  "winreg",
 ]
 
 [[package]]
+name = "rfc6979"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb"
+dependencies = [
+ "crypto-bigint 0.4.9",
+ "hmac",
+ "zeroize",
+]
+
+[[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
+ "getrandom",
  "libc",
- "once_cell",
  "spin",
  "untrusted",
- "web-sys",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2236,10 +3438,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustix"
+version = "0.38.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "rustls"
-version = "0.21.7"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -2248,19 +3463,47 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-native-certs"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 1.0.4",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
 name = "rustls-pemfile"
-version = "1.0.3"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4"
 dependencies = [
  "base64",
+ "rustls-pki-types",
 ]
 
 [[package]]
+name = "rustls-pki-types"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e9d979b3ce68192e42760c7810125eb6cf2ea10efae545a156063e61f314e2a"
+
+[[package]]
 name = "rustls-webpki"
-version = "0.101.5"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
  "ring",
  "untrusted",
@@ -2274,9 +3517,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -2288,6 +3531,61 @@ dependencies = [
 ]
 
 [[package]]
+name = "sample-arrow2"
+version = "0.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "722050f91586506195398fd22d834eb8768716084f6ebf9f32b917ed422b6afb"
+dependencies = [
+ "arrow2",
+ "sample-std",
+]
+
+[[package]]
+name = "sample-std"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567a153dc3302ce838920fb095c025a6d0529fff0290d25deeec2136e41a57c8"
+dependencies = [
+ "casey",
+ "quickcheck",
+ "rand",
+ "rand_regex",
+ "regex",
+]
+
+[[package]]
+name = "sample-test"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "713e500947ff19fc1ae2805afa33ef45f3bb2ec656c77d92252d24cf9e3091b2"
+dependencies = [
+ "quickcheck",
+ "sample-std",
+ "sample-test-macros",
+]
+
+[[package]]
+name = "sample-test-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df1a2c832a259aae95b6ed1da3aa377111ffde38d4282fa734faa3fff356534e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "sample-std",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "scopeguard"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2295,19 +3593,56 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
  "ring",
  "untrusted",
 ]
 
 [[package]]
+name = "sec1"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
+dependencies = [
+ "base16ct",
+ "der",
+ "generic-array",
+ "pkcs8",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 dependencies = [
  "serde",
 ]
@@ -2320,31 +3655,31 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.113"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap",
  "itoa",
  "ryu",
  "serde",
@@ -2352,9 +3687,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -2372,24 +3707,25 @@ dependencies = [
 ]
 
 [[package]]
-name = "signal-hook"
-version = "0.3.17"
+name = "sha1"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
- "libc",
- "signal-hook-registry",
+ "cfg-if",
+ "cpufeatures",
+ "digest",
 ]
 
 [[package]]
-name = "signal-hook-mio"
-version = "0.2.3"
+name = "sha2"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
- "libc",
- "mio",
- "signal-hook",
+ "cfg-if",
+ "cpufeatures",
+ "digest",
 ]
 
 [[package]]
@@ -2402,16 +3738,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "signature"
+version = "1.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
+dependencies = [
+ "digest",
+ "rand_core",
+]
+
+[[package]]
 name = "simd-json"
-version = "0.12.0"
+version = "0.13.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0f07a84c7456b901b8dd2c1d44caca8b0fd2c2616206ee5acc9d9da61e8d9ec"
+checksum = "2faf8f101b9bc484337a6a6b0409cf76c139f2fb70a9e3aee6b6774be7bfbf76"
 dependencies = [
  "ahash",
  "getrandom",
  "halfbrown",
  "lexical-core",
  "once_cell",
+ "ref-cast",
  "serde",
  "serde_json",
  "simdutf8",
@@ -2441,9 +3788,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smartstring"
@@ -2481,41 +3828,41 @@ dependencies = [
 
 [[package]]
 name = "snap"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"
+checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "socket2"
-version = "0.5.4"
+name = "spin"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
-dependencies = [
- "libc",
- "windows-sys",
-]
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
-name = "spin"
-version = "0.5.2"
+name = "spki"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
+dependencies = [
+ "base64ct",
+ "der",
+]
 
 [[package]]
 name = "sqlparser"
-version = "0.38.0"
+version = "0.39.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0272b7bb0a225320170c99901b4b5fb3a4384e255a7f2cc228f61e2ba3893e75"
+checksum = "743b4dc2cbde11890ccb254a8fc9d537fa41b36da00de2a1c5e9848c9bc42bd7"
 dependencies = [
  "log",
 ]
@@ -2549,35 +3896,28 @@ checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82"
 
 [[package]]
 name = "strum"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
 
 [[package]]
 name = "strum_macros"
-version = "0.24.3"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "strum_macros"
-version = "0.25.2"
+name = "subtle"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn 2.0.36",
-]
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -2592,9 +3932,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.36"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e02e55d62894af2a08aca894c6577281f76769ba47c94d5756bec8ac6e7373"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2602,49 +3942,138 @@ dependencies = [
 ]
 
 [[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
 name = "sysinfo"
-version = "0.29.10"
+version = "0.30.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a18d114d420ada3a891e6bc8e96a2023402203296a47cdd65083377dad18ba5"
+checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
  "libc",
  "ntapi",
  "once_cell",
- "winapi",
+ "windows",
+]
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
 ]
 
 [[package]]
 name = "target-features"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06f6b473c37f9add4cf1df5b4d66a8ef58ab6c895f1a3b3f949cf3e21230140e"
+checksum = "cfb5fa503293557c5158bd215fdc225695e567a77e453f5d4452a50a193969bd"
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.11"
+version = "0.12.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+
+[[package]]
+name = "tempfile"
+version = "3.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "redox_syscall",
+ "rustix",
+ "windows-sys 0.52.0",
+]
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "time"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe80ced77cbfb4cb91a94bf72b378b4b6791a0d9b7f09d0be747d1bdff4e68bd"
+dependencies = [
+ "deranged",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tinytemplate"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
+dependencies = [
+ "serde",
+ "serde_json",
 ]
 
 [[package]]
@@ -2664,9 +4093,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "bytes",
@@ -2674,20 +4103,21 @@ dependencies = [
  "mio",
  "num_cpus",
  "pin-project-lite",
- "socket2 0.5.4",
+ "signal-hook-registry",
+ "socket2",
  "tokio-macros",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2702,12 +4132,13 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
+ "futures-io",
  "futures-sink",
  "pin-project-lite",
  "tokio",
@@ -2728,9 +4159,9 @@ dependencies = [
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
@@ -2741,7 +4172,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -2756,11 +4187,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "pin-project-lite",
  "tracing-attributes",
  "tracing-core",
@@ -2768,35 +4198,67 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
 ]
 
 [[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "typed-builder"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34085c17941e36627a879208083e25d357243812c30e7d7387c3b954f30ade16"
+dependencies = [
+ "typed-builder-macro",
+]
+
+[[package]]
+name = "typed-builder-macro"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unarray"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -2814,10 +4276,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "unicode-reverse"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bea5dacebb0d2d0a69a6700a05b59b3908bf801bf563a49bd27a1b60122962c"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+[[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unindent"
@@ -2827,15 +4304,15 @@ checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -2843,10 +4320,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "uuid"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "value-trait"
-version = "0.6.1"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09a5b6c8ceb01263b969cac48d4a6705134d490ded13d889e52c0cfc80c6945e"
+checksum = "dad8db98c1e677797df21ba03fca7d3bf9bec3ca38db930954e4fe6e1ea27eb4"
 dependencies = [
  "float-cmp",
  "halfbrown",
@@ -2867,6 +4359,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
+name = "vsimd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
+
+[[package]]
 name = "walkdir"
 version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2893,9 +4391,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -2903,24 +4401,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2930,9 +4428,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2940,28 +4438,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[package]]
 name = "wasm-streams"
-version = "0.3.0"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
 dependencies = [
  "futures-util",
  "js-sys",
@@ -2972,21 +4470,15 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "webpki-roots"
-version = "0.25.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
-
-[[package]]
 name = "winapi"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3004,9 +4496,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -3019,11 +4511,21 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
- "windows-targets",
+ "windows-core",
+ "windows-targets 0.52.0",
+]
+
+[[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.0",
 ]
 
 [[package]]
@@ -3032,7 +4534,16 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets",
+ "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.0",
 ]
 
 [[package]]
@@ -3041,13 +4552,28 @@ version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
 ]
 
 [[package]]
@@ -3057,46 +4583,88 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
 name = "winnow"
-version = "0.5.15"
+version = "0.5.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
+checksum = "818ce546a11a9986bc24f93d0cdf38a8a1a400f1473ea8c82e59f6e0ffab9249"
 dependencies = [
  "memchr",
 ]
@@ -3108,36 +4676,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
 dependencies = [
  "cfg-if",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
+name = "xmlparser"
+version = "0.13.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
+
+[[package]]
 name = "xxhash-rust"
-version = "0.8.7"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9828b178da53440fa9c766a3d2f73f7cf5d0ac1fe3980c1e5018d899fd19e07b"
+checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61"
 
 [[package]]
 name = "zerocopy"
-version = "0.7.11"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c19fae0c8a9efc6a8281f2e623db8af1db9e57852e04cde3e754dd2dc29340f"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.11"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc56589e9ddd1f1c28d4b4b5c773ce232910a6bb67a70133d61c9e347585efe9"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.36",
+ "syn 2.0.48",
 ]
 
 [[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
 name = "zstd"
 version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3157,11 +4737,10 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.9+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
 dependencies = [
  "cc",
- "libc",
  "pkg-config",
 ]
diff --git a/pkgs/development/python-modules/polars/default.nix b/pkgs/development/python-modules/polars/default.nix
index 6f66b024f28b..2dca53b7bb6c 100644
--- a/pkgs/development/python-modules/polars/default.nix
+++ b/pkgs/development/python-modules/polars/default.nix
@@ -13,12 +13,12 @@
 }:
 let
   pname = "polars";
-  version = "0.19.12";
+  version = "0.20.7";
   rootSource = fetchFromGitHub {
     owner = "pola-rs";
     repo = "polars";
     rev = "refs/tags/py-${version}";
-    hash = "sha256-6tn3Q6oZfMjgQ5l5xCFnGimLSDLOjTWCW5uEbi6yFZY=";
+    hash = "sha256-R3by/e28HE+1xq+HQd9wYy/iK+fDM6/IfKuc563atX4=";
   };
   rust-jemalloc-sys' = rust-jemalloc-sys.override {
     jemalloc = jemalloc.override {
@@ -48,7 +48,7 @@ buildPythonPackage {
     };
   };
 
-  sourceRoot = "source/py-polars";
+  buildAndTestSubdir = "py-polars";
 
   # Revisit this whenever package or Rust is upgraded
   RUSTC_BOOTSTRAP = 1;
@@ -57,6 +57,10 @@ buildPythonPackage {
     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" ];
+
   dontUseCmakeConfigure = true;
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pony/default.nix b/pkgs/development/python-modules/pony/default.nix
index 892cb0829baf..46a4daffe625 100644
--- a/pkgs/development/python-modules/pony/default.nix
+++ b/pkgs/development/python-modules/pony/default.nix
@@ -4,22 +4,27 @@
 , pytestCheckHook
 , pythonOlder
 , pythonAtLeast
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pony";
   version = "0.7.17";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "ponyorm";
-    repo = pname;
+    repo = "pony";
     rev = "refs/tags/v${version}";
     hash = "sha256-wBqw+YHKlxYplgsYL1pbkusHyPfCaVPcH/Yku6WDYbE=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -27,6 +32,14 @@ buildPythonPackage rec {
   disabledTests = [
     # Tests are outdated
     "test_method"
+    # https://github.com/ponyorm/pony/issues/704
+    "test_composite_param"
+    "test_equal_json"
+    "test_equal_list"
+    "test_len"
+    "test_ne"
+    "test_nonzero"
+    "test_query"
   ];
 
   pythonImportsCheck = [
@@ -36,6 +49,7 @@ buildPythonPackage rec {
   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 ];
   };
diff --git a/pkgs/development/python-modules/pook/default.nix b/pkgs/development/python-modules/pook/default.nix
index 1a96522844d4..fffca3cccaae 100644
--- a/pkgs/development/python-modules/pook/default.nix
+++ b/pkgs/development/python-modules/pook/default.nix
@@ -3,8 +3,9 @@
 , buildPythonPackage
 , fetchFromGitHub
 , furl
+, hatchling
 , jsonschema
-, nose
+, pytest-asyncio
 , pytestCheckHook
 , pythonOlder
 , requests
@@ -13,17 +14,22 @@
 
 buildPythonPackage rec {
   pname = "pook";
-  version = "1.1.1";
-  format = "setuptools";
-  disabled = pythonOlder "3.5";
+  version = "1.3.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "h2non";
-    repo = pname;
+    repo = "pook";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nLeJAAsJUKFAetZSAQmOtXP+3ZRHvCTFAzycSkK+kiI=";
+    hash = "sha256-0sS2QJcshMuxxCGlrcVHeIQnVMZbBoJfLsRIxpvl7pM=";
   };
 
+  nativeBuildInputs = [
+    hatchling
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     furl
@@ -33,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    nose
+    pytest-asyncio
     pytestCheckHook
   ];
 
@@ -41,8 +47,15 @@ buildPythonPackage rec {
     "pook"
   ];
 
+  disabledTestPaths = [
+    # Don't test integrations
+    "tests/integration/"
+    # Tests require network access
+    "tests/unit/interceptors/"
+  ];
+
   meta = with lib; {
-    description = "HTTP traffic mocking and testing made simple in Python";
+    description = "HTTP traffic mocking and testing";
     homepage = "https://github.com/h2non/pook";
     changelog = "https://github.com/h2non/pook/blob/v${version}/History.rst";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/posthog/default.nix b/pkgs/development/python-modules/posthog/default.nix
index c8ec15057915..6795ebf1f691 100644
--- a/pkgs/development/python-modules/posthog/default.nix
+++ b/pkgs/development/python-modules/posthog/default.nix
@@ -14,7 +14,7 @@
 }:
 let
   pname = "posthog";
-  version = "3.4.0";
+  version = "3.4.2";
 in
 buildPythonPackage {
   inherit pname version;
@@ -24,7 +24,7 @@ buildPythonPackage {
     owner = "PostHog";
     repo = "posthog-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ziqUXQdmzKdrwbk7iYwCbNg+jiXiB9l3QaosY5VA3YA=";
+    hash = "sha256-PhZBpcMwU7fjmE0g+l83zHm+95N60Sbd9pNNc4Roa2A=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/primepy/default.nix b/pkgs/development/python-modules/primepy/default.nix
new file mode 100644
index 000000000000..583aa3919dcf
--- /dev/null
+++ b/pkgs/development/python-modules/primepy/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, wheel
+}:
+
+buildPythonPackage rec {
+  pname = "primepy";
+  version = "1.3";
+  pyproject = true;
+
+  src = fetchPypi {
+    pname = "primePy";
+    inherit version;
+    hash = "sha256-Jf1+JTRLB4mlmEx12J8FT88fGAvvIMmY5L77rJLeRmk=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [ "primePy" ];
+
+  meta = with lib; {
+    description = "This module contains several useful functions to work with prime numbers. from primePy import primes";
+    homepage = "https://pypi.org/project/primePy/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/primer3/default.nix b/pkgs/development/python-modules/primer3/default.nix
index f4495d9b2c14..78d43a08b4ac 100644
--- a/pkgs/development/python-modules/primer3/default.nix
+++ b/pkgs/development/python-modules/primer3/default.nix
@@ -7,12 +7,13 @@
 , click
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "primer3";
-  version = "2.0.1";
-  format = "setuptools";
+  version = "2.0.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -20,11 +21,12 @@ buildPythonPackage rec {
     owner = "libnano";
     repo = "primer3-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WYn88Xv7WSc67TfYCq+i05tG8aKtWLUgc6axntvLF+8=";
+    hash = "sha256-O8BFjkjG9SfknSrK34s9EJnqTrtCf4zW9A+N+/MHl2w=";
   };
 
   nativeBuildInputs = [
     cython
+    setuptools
   ] ++ lib.optionals stdenv.isDarwin [
     gcc
   ];
diff --git a/pkgs/development/python-modules/prisma/default.nix b/pkgs/development/python-modules/prisma/default.nix
new file mode 100644
index 000000000000..7d1a74a7f5b9
--- /dev/null
+++ b/pkgs/development/python-modules/prisma/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, click
+, fetchFromGitHub
+, httpx
+, jinja2
+, nodeenv
+, pydantic
+, pytestCheckHook
+, python-dotenv
+, pythonOlder
+, setuptools
+, strenum
+, tomlkit
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "prisma";
+  version = "0.12.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "RobertCraigie";
+    repo = "prisma-client-py";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-vmcYBUPDhFbxgWyrF+AjoXwAAH2R/tJYttFD+41bPbA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    click
+    httpx
+    jinja2
+    nodeenv
+    pydantic
+    python-dotenv
+    tomlkit
+    typing-extensions
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    strenum
+  ];
+
+  # Building the client requires network access
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "prisma"
+  ];
+
+  meta = with lib; {
+    description = "Auto-generated and fully type-safe database client for prisma";
+    homepage = "https://github.com/RobertCraigie/prisma-client-py";
+    changelog = "https://github.com/RobertCraigie/prisma-client-py/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/protobuf/default.nix b/pkgs/development/python-modules/protobuf/default.nix
index f2d2d52f2c8f..610313302ad8 100644
--- a/pkgs/development/python-modules/protobuf/default.nix
+++ b/pkgs/development/python-modules/protobuf/default.nix
@@ -115,5 +115,8 @@ buildPythonPackage {
     homepage = "https://developers.google.com/protocol-buffers/";
     license = licenses.bsd3;
     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";
   };
 }
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 0906d2bd4248..ba8869e42daa 100644
--- a/pkgs/development/python-modules/proton-vpn-api-core/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-api-core/default.nix
@@ -11,16 +11,16 @@
 , pytestCheckHook
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "proton-vpn-api-core";
-  version = "0.20.1-unstable-2023-10-10";
+  version = "0.20.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ProtonVPN";
     repo = "python-proton-vpn-api-core";
-    rev = "9c03fc30d3ff08559cab3644eadde027b029375d";
-    hash = "sha256-vnz1+NazQceAs9KA3Jq0tsJditRoG/LoBR+0wuDzzHk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-acck0Nc/15soTJBC/4y83ID9fjF/q4vrYr6SsLAAVRY=";
   };
 
   nativeBuildInputs = [
@@ -38,7 +38,7 @@ buildPythonPackage {
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "--cov=proton/vpn/core/ --cov-report html --cov-report term" ""
+      --replace-fail "--cov=proton/vpn/core/ --cov-report html --cov-report term" ""
   '';
 
   pythonImportsCheck = [ "proton.vpn.core" ];
@@ -52,11 +52,6 @@ buildPythonPackage {
     export HOME=$(mktemp -d)
   '';
 
-  disabledTestPaths = [
-    # Has a single test failing with Permission denied: '/run'
-    "tests/test_session.py"
-  ];
-
   meta = with lib; {
     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";
diff --git a/pkgs/development/python-modules/proton-vpn-connection/default.nix b/pkgs/development/python-modules/proton-vpn-connection/default.nix
index 7acbb173e8b6..2257130c20e0 100644
--- a/pkgs/development/python-modules/proton-vpn-connection/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-connection/default.nix
@@ -9,16 +9,16 @@
 , pytestCheckHook
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "proton-vpn-connection";
-  version = "0.11.0-unstable-2023-09-05";
+  version = "0.11.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ProtonVPN";
     repo = "python-proton-vpn-connection";
-    rev = "747ccacb5350ad59f2a09953b8d20c5c161aab54";
-    hash = "sha256-WyMG0kmwBKoWc0mHnaop9E0upPAYHFwS/A9I1//WwlY=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-RuLnc/olI8S09WFG126N2xZgW4gf+DDpRstcelqMhs4=";
   };
 
   nativeBuildInputs = [
@@ -34,7 +34,7 @@ buildPythonPackage {
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "--cov=proton.vpn.connection --cov-report html --cov-report term" ""
+      --replace-fail "--cov=proton.vpn.connection --cov-report html --cov-report term" ""
   '';
 
   pythonImportsCheck = [ "proton.vpn.connection" ];
diff --git a/pkgs/development/python-modules/proton-vpn-logger/default.nix b/pkgs/development/python-modules/proton-vpn-logger/default.nix
index 6091c2b25a1e..9c581f400c73 100644
--- a/pkgs/development/python-modules/proton-vpn-logger/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-logger/default.nix
@@ -6,16 +6,16 @@
 , pytestCheckHook
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "proton-vpn-logger";
-  version = "0.2.1-unstable-2023-05-10";
+  version = "0.2.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ProtonVPN";
     repo = "python-proton-vpn-logger";
-    rev = "0acbc1ab41a65cbc9ceb340e3db011e6f89eb65a";
-    hash = "sha256-VIggBKopAAKiNdQ5ypG1qI74E2WMDwDSriSuka/DBKA=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/LfMjyTs/EusgnKEQugsdJzqDZBvaAhbsTUVLDCRw0I=";
   };
 
   nativeBuildInputs = [
@@ -28,7 +28,7 @@ buildPythonPackage {
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "--cov=proton/vpn/logging/ --cov-report html --cov-report term" ""
+      --replace-fail "--cov=proton/vpn/logging/ --cov-report html --cov-report term" ""
   '';
 
   pythonImportsCheck = [ "proton.vpn.logging" ];
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 f8874e1d0f3a..ccd84eda6698 100644
--- a/pkgs/development/python-modules/proton-vpn-network-manager/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-network-manager/default.nix
@@ -8,19 +8,20 @@
 , proton-vpn-connection
 , pycairo
 , pygobject3
+, pytest-asyncio
 , pytestCheckHook
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "proton-vpn-network-manager";
-  version = "0.3.0-unstable-2023-09-05";
+  version = "0.3.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ProtonVPN";
     repo = "python-proton-vpn-network-manager";
-    rev = "6ffd04fa0ae88a89d2b733443317066ef23b3ccd";
-    hash = "sha256-Bqlwo7U/mwodQarl30n3/BNETqit1MVQUJT+mAhC6AI=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-UEXoIFLB3/q3G3ASrgsXxF21iT5rCWm4knGezcmxmnk=";
   };
 
   nativeBuildInputs = [
@@ -40,12 +41,13 @@ buildPythonPackage {
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "--cov=proton/vpn/backend/linux/networkmanager --cov-report html --cov-report term" ""
+      --replace-fail "--cov=proton/vpn/backend/linux/networkmanager --cov-report html --cov-report term" ""
   '';
 
   pythonImportsCheck = [ "proton.vpn.backend.linux.networkmanager" ];
 
   nativeCheckInputs = [
+    pytest-asyncio
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/proton-vpn-session/default.nix b/pkgs/development/python-modules/proton-vpn-session/default.nix
index b61bed91682a..38d89bb6d3e0 100644
--- a/pkgs/development/python-modules/proton-vpn-session/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-session/default.nix
@@ -14,16 +14,16 @@
 , pytestCheckHook
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "proton-vpn-session";
-  version = "0.6.2-unstable-2023-10-24";
+  version = "0.6.5";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ProtonVPN";
     repo = "python-proton-vpn-session";
-    rev = "419b25bd1823f78d1219dc4cc441eeaf37646068";
-    hash = "sha256-YPyNxbKxw+670bNQZ7U5nljyUjsNJ+k7eL+HpGiSCLk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1oyCxBO9YqMopbw88UJF8k4BJFP4+m23NwSrqTYqcg8=";
   };
 
   nativeBuildInputs = [
@@ -40,7 +40,7 @@ buildPythonPackage {
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "--cov=proton.vpn.session --cov-report term" ""
+      --replace-fail "--cov=proton.vpn.session --cov-report term" ""
   '';
 
   pythonImportsCheck = [ "proton.vpn.session" ];
diff --git a/pkgs/development/python-modules/psycopg2/default.nix b/pkgs/development/python-modules/psycopg2/default.nix
index 88f3a8b24483..54d2ec749333 100644
--- a/pkgs/development/python-modules/psycopg2/default.nix
+++ b/pkgs/development/python-modules/psycopg2/default.nix
@@ -5,6 +5,7 @@
 , isPyPy
 , fetchPypi
 , postgresql
+, postgresqlTestHook
 , openssl
 , sphinxHook
 , sphinx-better-theme
@@ -48,9 +49,18 @@ buildPythonPackage rec {
 
   sphinxRoot = "doc/src";
 
-  # Requires setting up a PostgreSQL database
+  # test suite breaks at some point with:
+  #   current transaction is aborted, commands ignored until end of transaction block
   doCheck = false;
 
+  nativeCheckInputs = [
+    postgresqlTestHook
+  ];
+
+  env = {
+    PGDATABASE = "psycopg2_test";
+  };
+
   pythonImportsCheck = [
     "psycopg2"
   ];
diff --git a/pkgs/development/python-modules/psycopg2cffi/default.nix b/pkgs/development/python-modules/psycopg2cffi/default.nix
index 411630135acc..f791f953d3f0 100644
--- a/pkgs/development/python-modules/psycopg2cffi/default.nix
+++ b/pkgs/development/python-modules/psycopg2cffi/default.nix
@@ -1,4 +1,12 @@
-{ buildPythonPackage, cffi, fetchFromGitHub, lib, postgresql, pytestCheckHook, six }:
+{ buildPythonPackage
+, cffi
+, fetchFromGitHub
+, lib
+, postgresql
+, postgresqlTestHook
+, pytestCheckHook
+, six
+}:
 
 buildPythonPackage rec {
   pname = "psycopg2cffi";
@@ -22,12 +30,19 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ postgresql ];
+
   propagatedBuildInputs = [ six cffi ];
-  nativeCheckInputs = [ pytestCheckHook ];
 
-  # NB: The tests need a postgres instance running to test against, and so we
-  # disable them.
-  doCheck = false;
+  nativeCheckInputs = [ postgresqlTestHook pytestCheckHook ];
+
+  disabledTests = [
+    # AssertionError: '{}' != []
+    "testEmptyArray"
+  ];
+
+  env = {
+    PGDATABASE = "psycopg2_test";
+  };
 
   pythonImportsCheck = [ "psycopg2cffi" ];
 
diff --git a/pkgs/development/python-modules/ptyprocess/default.nix b/pkgs/development/python-modules/ptyprocess/default.nix
index a987db97d547..17a961620da5 100644
--- a/pkgs/development/python-modules/ptyprocess/default.nix
+++ b/pkgs/development/python-modules/ptyprocess/default.nix
@@ -2,16 +2,21 @@
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
+, flit-core
+, pythonOlder
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "ptyprocess";
   version = "0.7.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220";
+    hash = "sha256-XF0KO0jO7gtISF4MJgN8Cs19KXZco/u1yzgx00dCMiA=";
   };
 
   patches = [
@@ -22,9 +27,23 @@ buildPythonPackage rec {
     })
   ];
 
-  meta = {
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "ptyprocess"
+  ];
+
+  meta = with lib; {
     description = "Run a subprocess in a pseudo terminal";
     homepage = "https://github.com/pexpect/ptyprocess";
-    license = lib.licenses.isc;
+    changelog = "https://github.com/pexpect/ptyprocess/releases/tag/${version}";
+    license = licenses.isc;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index 7c438655963e..747fd171f3b3 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240210";
+  version = "0.10.0.20240214";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-U19eJmRDA1Ozz6f81IbXepsXScf7yJZQiaNecqdsYK4=";
+    hash = "sha256-RaIGxfnB7M8ThIEoDPsKZ8LMr8eC74nH/W3GxDViMP4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pure-pcapy3/default.nix b/pkgs/development/python-modules/pure-pcapy3/default.nix
index ad405c593853..8e07377723e0 100644
--- a/pkgs/development/python-modules/pure-pcapy3/default.nix
+++ b/pkgs/development/python-modules/pure-pcapy3/default.nix
@@ -16,6 +16,12 @@ buildPythonPackage rec {
     hash = "sha256-uZ5F8W1K1BDrXrvH1dOeNT1+2n6G8K1S5NxcRaez6pI=";
   };
 
+  # fixes: AttributeError: 'FixupTest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'?
+  postPatch = ''
+    substituteInPlace test/__init__.py \
+      --replace-fail "assertEquals" "assertEqual"
+  '';
+
   pythonImportsCheck = [
     "pure_pcapy"
   ];
diff --git a/pkgs/development/python-modules/puremagic/default.nix b/pkgs/development/python-modules/puremagic/default.nix
index 453cbd96cde6..72f0dfc4dde7 100644
--- a/pkgs/development/python-modules/puremagic/default.nix
+++ b/pkgs/development/python-modules/puremagic/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "puremagic";
-  version = "1.20";
+  version = "1.21";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "cdgriffith";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Iyf/Vf1uqdtHlaP9Petpp88aIGCGmHu//cH6bindL6c=";
+    hash = "sha256-ObJp3+gk1tf1+9wBpvzs0wwP7ptDlfGwX9b4wlCb1RI=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/py-ecc/default.nix b/pkgs/development/python-modules/py-ecc/default.nix
index 7845bfe17501..d7769ea4873d 100644
--- a/pkgs/development/python-modules/py-ecc/default.nix
+++ b/pkgs/development/python-modules/py-ecc/default.nix
@@ -4,38 +4,55 @@
 , cached-property
 , eth-typing
 , eth-utils
-, mypy-extensions
 , pytestCheckHook
+, pythonAtLeast
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "py-ecc";
-  version = "6.0.0";
-  format = "setuptools";
-  disabled = pythonOlder "3.6";
+  version = "7.0.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = "py_ecc";
     rev = "v${version}";
-    hash = "sha256-638otYA3e/Ld4mcM69yrqHQnGoK/Sfl/UA9FWnjgO/U=";
+    hash = "sha256-DKe+bI1GEzXg4Y4n5OA1/hWYz9L3X1AvaOFPEnCaAfs=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     cached-property
     eth-typing
     eth-utils
-    mypy-extensions
   ];
 
   nativeCheckInputs = [
     pytestCheckHook
   ];
 
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # https://github.com/ethereum/py_ecc/issues/133
+    "test_FQ2_object"
+    "test_pairing_bilinearity_on_G1"
+    "test_pairing_bilinearity_on_G2"
+    "test_pairing_composit_check"
+    "test_pairing_is_non_degenerate"
+    "test_pairing_negative_G1"
+    "test_pairing_negative_G2"
+    "test_pairing_output_order"
+  ];
+
   pythonImportsCheck = [ "py_ecc" ];
 
   meta = with lib; {
+    changelog = "https://github.com/ethereum/py_ecc/blob/${src.rev}/CHANGELOG.rst";
     description = "ECC pairing and bn_128 and bls12_381 curve operations";
     homepage = "https://github.com/ethereum/py_ecc";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/py-partiql-parser/default.nix b/pkgs/development/python-modules/py-partiql-parser/default.nix
index fd2fb808bb43..7cb4ab94761c 100644
--- a/pkgs/development/python-modules/py-partiql-parser/default.nix
+++ b/pkgs/development/python-modules/py-partiql-parser/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "py-partiql-parser";
-  version = "0.4.2";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "getmoto";
     repo = "py-partiql-parser";
     rev = "refs/tags/${version}";
-    hash = "sha256-EV5Md7dAkHcBbfF4DhmUHwKxjlXI4Jbb1VryeOwRTWo=";
+    hash = "sha256-b18PY5LCU2NOSmzOHh0NBFQFCJ2N9oAhusn6QTdlb7o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/py-serializable/default.nix b/pkgs/development/python-modules/py-serializable/default.nix
index 12bdef693e20..0954993ccd1f 100644
--- a/pkgs/development/python-modules/py-serializable/default.nix
+++ b/pkgs/development/python-modules/py-serializable/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "py-serializable";
-  version = "1.0.0";
+  version = "1.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "madpah";
     repo = "serializable";
     rev = "refs/tags/v${version}";
-    hash = "sha256-7WYe3X4wVUC7HyYoCVQYWm61C+J3r91Ci8IHNeWBTVE=";
+    hash = "sha256-OsgFzT5qGyszO4jFYWIAgGY41s0ZBEMwCbWZeY189h4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index 7e9e2c47d3b5..496ebc4e8fa7 100644
--- a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -5,6 +5,7 @@
 , coloredlogs
 , fastapi
 , fetchFromGitHub
+, hatchling
 , pillow
 , psutil
 , pytestCheckHook
@@ -18,8 +19,8 @@
 
 buildPythonPackage rec {
   pname = "pytelegrambotapi";
-  version = "4.15.2";
-  format = "setuptools";
+  version = "4.16.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,9 +28,13 @@ buildPythonPackage rec {
     owner = "eternnoir";
     repo = "pyTelegramBotAPI";
     rev = "refs/tags/${version}";
-    hash = "sha256-Xw+edPs2CKJdpgDp+JB3L2W4oAIAk/IpQAD7c2kF3gk=";
+    hash = "sha256-w039aPK+PdOiiOj5ZZAUfyHQ6QDrKySVIijcOw+GIOk=";
   };
 
+  nativeBuildInputs = [
+    hatchling
+  ];
+
   passthru.optional-dependencies = {
     json = [
       ujson
diff --git a/pkgs/development/python-modules/pyannote-audio/default.nix b/pkgs/development/python-modules/pyannote-audio/default.nix
new file mode 100644
index 000000000000..1a9403493eac
--- /dev/null
+++ b/pkgs/development/python-modules/pyannote-audio/default.nix
@@ -0,0 +1,87 @@
+{ 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";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pyannote";
+    repo = "pyannote-audio";
+    rev = version;
+    hash = "sha256-BxmEJE6v+QkEaAJ2oB2LwDQIoRajv6F9SRc8lP9iRLM=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    pyscaffold
+    setuptools
+    wheel
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "pyscaffold>=3.2a0,<3.3a0" "pyscaffold"
+    substituteInPlace requirements.txt \
+      --replace "lightning" "pytorch-lightning"
+  '';
+
+  propagatedBuildInputs = [
+    asteroid-filterbanks
+    einops
+    huggingface-hub
+    omegaconf
+    pyannote-core
+    pyannote-database
+    pyannote-metrics
+    pyannote-pipeline
+    pytorch-metric-learning
+    rich
+    semver
+    soundfile
+    speechbrain
+    tensorboardx
+    torch
+    torch-audiomentations
+    torchaudio
+    torchmetrics
+    numpy
+    pytorch-lightning
+  ];
+
+  pythonImportsCheck = [ "pyannote.audio" ];
+
+  meta = with lib; {
+    description = "Neural building blocks for speaker diarization: speech activity detection, speaker change detection, overlapped speech detection, speaker embedding";
+    homepage = "https://github.com/pyannote/pyannote-audio";
+    changelog = "https://github.com/pyannote/pyannote-audio/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyannote-core/default.nix b/pkgs/development/python-modules/pyannote-core/default.nix
new file mode 100644
index 000000000000..453bb0c4d60d
--- /dev/null
+++ b/pkgs/development/python-modules/pyannote-core/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, sortedcontainers
+, numpy
+, scipy
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "pyannote-core";
+  version = "5.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pyannote";
+    repo = "pyannote-core";
+    rev = version;
+    hash = "sha256-XQVEMy60LkfFr2TKXTeg6cGHRx5BUZ5qDgzIdKy/19Y=";
+  };
+
+  propagatedBuildInputs = [
+    sortedcontainers
+    numpy
+    scipy
+    typing-extensions
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [ "pyannote.core" ];
+
+  meta = with lib; {
+    description = "Advanced data structures for handling temporal segments with attached labels";
+    homepage = "https://github.com/pyannote/pyannote-core";
+    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
new file mode 100644
index 000000000000..0b90e9ce224b
--- /dev/null
+++ b/pkgs/development/python-modules/pyannote-database/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, pyannote-core
+, pyyaml
+, pandas
+, typer
+}:
+
+buildPythonPackage rec {
+  pname = "pyannote-database";
+  version = "5.0.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pyannote";
+    repo = "pyannote-database";
+    rev = version;
+    hash = "sha256-A7Xr24O8OvVAlURrR+SDCh8Uv9Yz3AUJSFDyDShVVjA=";
+  };
+
+  propagatedBuildInputs = [
+    pyannote-core
+    pyyaml
+    pandas
+    typer
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [ "pyannote.database" ];
+
+  meta = with lib; {
+    description = "Reproducible experimental protocols for multimedia (audio, video, text) database";
+    homepage = "https://github.com/pyannote/pyannote-database";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyannote-metrics/default.nix b/pkgs/development/python-modules/pyannote-metrics/default.nix
new file mode 100644
index 000000000000..e5c26d3d410a
--- /dev/null
+++ b/pkgs/development/python-modules/pyannote-metrics/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, pyannote-core
+, pyannote-database
+, pandas
+, scipy
+, scikit-learn
+, docopt
+, tabulate
+, matplotlib
+, sympy
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "pyannote-metrics";
+  version = "3.2.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pyannote";
+    repo = "pyannote-metrics";
+    rev = version;
+    hash = "sha256-V4qyaCaFsoikfFILm2sccf6m7lqJSDTdLxS1sr/LXAY=";
+  };
+
+  propagatedBuildInputs = [
+    pyannote-core
+    pyannote-database
+    pandas
+    scipy
+    scikit-learn
+    docopt
+    tabulate
+    matplotlib
+    sympy
+    numpy
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [ "pyannote.metrics" ];
+
+  meta = with lib; {
+    description = "A toolkit for reproducible evaluation, diagnostic, and error analysis of speaker diarization systems";
+    homepage = "https://github.com/pyannote/pyannote-metrics";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyannote-pipeline/default.nix b/pkgs/development/python-modules/pyannote-pipeline/default.nix
new file mode 100644
index 000000000000..52e96b05ed14
--- /dev/null
+++ b/pkgs/development/python-modules/pyannote-pipeline/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, pyannote-core
+, pyannote-database
+, pyyaml
+, optuna
+, tqdm
+, docopt
+, filelock
+, scikit-learn
+}:
+
+buildPythonPackage rec {
+  pname = "pyannote-pipeline";
+  version = "3.0.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pyannote";
+    repo = "pyannote-pipeline";
+    rev = version;
+    hash = "sha256-0wSgy6kbKi9Wa5dimOz34IV5/8fSwaHDMUpaBW7tm2Y=";
+  };
+
+  propagatedBuildInputs = [
+    pyannote-core
+    pyannote-database
+    pyyaml
+    optuna
+    tqdm
+    docopt
+    filelock
+    scikit-learn
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [ "pyannote.pipeline" ];
+
+  meta = with lib; {
+    description = "Tunable pipelines";
+    homepage = "https://github.com/pyannote/pyannote-pipeline";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/pybrowsers/default.nix b/pkgs/development/python-modules/pybrowsers/default.nix
new file mode 100644
index 000000000000..07b686d2df69
--- /dev/null
+++ b/pkgs/development/python-modules/pybrowsers/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pythonOlder
+, pyxdg
+}:
+
+buildPythonPackage rec {
+  pname = "pybrowsers";
+  version = "0.5.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "roniemartinez";
+    repo = "browsers";
+    rev = version;
+    hash = "sha256-bsmOUa33VzqWCv2jhu6oukdRhWfpkeAM3FBjiBBwjSQ=";
+  };
+
+  postPatch = ''
+    sed -i "/--cov/d" pyproject.toml
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    pyxdg
+  ];
+
+  # Tests want to interact with actual browsers
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "browsers"
+  ];
+
+  meta = with lib; {
+    description = "Python library for detecting and launching browsers";
+    homepage = "https://github.com/roniemartinez/browsers";
+    changelog = "https://github.com/roniemartinez/browsers/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycaption/default.nix b/pkgs/development/python-modules/pycaption/default.nix
index c6d65db362ae..3384ad516b5f 100644
--- a/pkgs/development/python-modules/pycaption/default.nix
+++ b/pkgs/development/python-modules/pycaption/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pycaption";
-  version = "2.2.4";
+  version = "2.2.5";
 
   disabled = pythonOlder "3.8";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pbs";
     repo = "pycaption";
     rev = "refs/tags/${version}";
-    hash = "sha256-aUhNvqeSNtbnRVp4yxsk4q3szNfR0m1zo0MpkBOCokY=";
+    hash = "sha256-zI5zRjvtsVgiIgWsQQgBQHhbYSGRBB6RLYgpbZWJQHs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pycfmodel/default.nix b/pkgs/development/python-modules/pycfmodel/default.nix
index cd847241f60c..e0d072684e26 100644
--- a/pkgs/development/python-modules/pycfmodel/default.nix
+++ b/pkgs/development/python-modules/pycfmodel/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , httpx
-, pydantic_1
+, pydantic
 , pytestCheckHook
 , pythonOlder
 , setuptools
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    pydantic_1
+    pydantic
   ];
 
   nativeCheckInputs = [
@@ -54,5 +54,6 @@ 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/pyctr/default.nix b/pkgs/development/python-modules/pyctr/default.nix
index ddb9937df356..0ce889fdb739 100644
--- a/pkgs/development/python-modules/pyctr/default.nix
+++ b/pkgs/development/python-modules/pyctr/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pyctr";
-  version = "0.7.3";
+  version = "0.7.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lpW2pcT5oG7tBUXRj7cTD9hCx51hVhVODq9RxP9GKIg=";
+    hash = "sha256-1nPP+rz/8BiFHu3nGcHuqCPwyyR55LUhoBprHFTudWQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pycyphal/default.nix b/pkgs/development/python-modules/pycyphal/default.nix
index fa95336d3b3f..9067a3f06ad5 100644
--- a/pkgs/development/python-modules/pycyphal/default.nix
+++ b/pkgs/development/python-modules/pycyphal/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pythonOlder
 , can
 , cobs
@@ -8,31 +8,80 @@
 , nunavut
 , numpy
 , pyserial
+, pytestCheckHook
+, pytest-asyncio
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pycyphal";
-  version = "1.15.4";
-  format = "pyproject";
+  version = "1.18.0";
+  format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-0Mp8d/rNOOPLg0gUPWdOgp/d5n148dxcLceW1VtjrkQ=";
+  src = fetchFromGitHub {
+    owner = "OpenCyphal";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-XkH0wss8ueh/Wwz0lhvQShOp3a4X9lNdosT/sMe7p4Q=";
+    fetchSubmodules = true;
   };
 
   propagatedBuildInputs = [
-    can
-    cobs
-    libpcap
     numpy
     nunavut
-    pyserial
   ];
 
-  # Can't seem to run the tests on nix
-  doCheck = false;
+  passthru.optional-dependencies = {
+    transport-can-pythoncan = [
+      can
+    ] ++ can.optional-dependencies.serial;
+    transport-serial = [
+      cobs
+      pyserial
+    ];
+    transport-udp = [
+      libpcap
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-asyncio
+  ] ++ builtins.foldl' (x: y: x ++ y) [ ]
+    (builtins.attrValues passthru.optional-dependencies)
+  ;
+
+  preCheck = ''
+    export HOME=$TMPDIR
+    export PYTHONASYNCIODEBUG=1
+    python -c ${lib.escapeShellArg ''
+      import pycyphal
+      pycyphal.dsdl.compile_all(
+        [
+          "demo/public_regulated_data_types/uavcan",
+          "demo/custom_data_types/sirius_cyber_corp",
+        ],
+        output_directory=".dsdl_compiled",
+      )
+    ''}
+    export PYTHONPATH="$(pwd)/.dsdl_compiled:$PYTHONPATH"
+  '';
+
+  # These require extra permissions and/or actual hardware connected
+  disabledTestPaths = [
+    "pycyphal/application/__init__.py"
+    "pycyphal/application/_transport_factory.py"
+    "pycyphal/transport/udp/_ip/_link_layer.py"
+    "pycyphal/transport/udp/_ip/_v4.py"
+    "tests/application"
+    "tests/demo"
+    "tests/dsdl"
+    "tests/presentation"
+    "tests/transport"
+  ];
+
   pythonImportsCheck = [
     "pycyphal"
   ];
@@ -43,6 +92,7 @@ buildPythonPackage rec {
       Cyphal is an open technology for real-time intravehicular distributed computing and communication based on modern networking standards (Ethernet, CAN FD, etc.).
     '';
     homepage = "https://opencyphal.org/";
+    changelog = "https://github.com/OpenCyphal/pycyphal/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = teams.ororatech.members;
   };
diff --git a/pkgs/development/python-modules/pydantic/1.nix b/pkgs/development/python-modules/pydantic/1.nix
index e1fc840f0ee1..42ce2745d727 100644
--- a/pkgs/development/python-modules/pydantic/1.nix
+++ b/pkgs/development/python-modules/pydantic/1.nix
@@ -6,6 +6,7 @@
 , pytest-mock
 , pytestCheckHook
 , python-dotenv
+, pythonAtLeast
 , pythonOlder
 , setuptools
 , typing-extensions
@@ -14,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "1.10.13";
+  version = "1.10.14";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     owner = "pydantic";
     repo = "pydantic";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ruDVcCLPVuwIkHOjYVuKOoP3hHHr7ItIY55Y6hUgR74=";
+    hash = "sha256-tcaHSPZggVwyzCgDmwOgcGqUmUrJOmkdSNudJTFQ3bc=";
   };
 
   nativeBuildInputs = [
@@ -62,6 +63,15 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # depends on distuils
+    "test_cython_function_untouched"
+    # AssertionError on exact types and wording
+    "test_model_subclassing_abstract_base_classes_without_implementation_raises_exception"
+    "test_partial_specification_name"
+    "test_secretfield"
+  ];
+
   enableParallelBuilding = true;
 
   pythonImportsCheck = [ "pydantic" ];
diff --git a/pkgs/development/python-modules/pydeck/default.nix b/pkgs/development/python-modules/pydeck/default.nix
index da009608b678..6edd7a379b3e 100644
--- a/pkgs/development/python-modules/pydeck/default.nix
+++ b/pkgs/development/python-modules/pydeck/default.nix
@@ -26,6 +26,12 @@ buildPythonPackage rec {
     hash = "sha256-B+3egz98/O9nSRJDURlap9zSRmPUkJ/XiY29C2+8Aew=";
   };
 
+  # upstream has an invalid pyproject.toml
+  # https://github.com/visgl/deck.gl/issues/8469
+  postPatch = ''
+    rm pyproject.toml
+  '';
+
   nativeBuildInputs = [
     jinja2
     jupyter
diff --git a/pkgs/development/python-modules/pydrawise/default.nix b/pkgs/development/python-modules/pydrawise/default.nix
index adddc92dbc1a..4ff553d1c392 100644
--- a/pkgs/development/python-modules/pydrawise/default.nix
+++ b/pkgs/development/python-modules/pydrawise/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pydrawise";
-  version = "2024.1.1";
+  version = "2024.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "dknowles2";
     repo = "pydrawise";
     rev = "refs/tags/${version}";
-    hash = "sha256-fMwWGE6WfgENti4H+WSfd8ZSHqxHyBVATUhng/o8qeY=";
+    hash = "sha256-eFjfO2lpRPgyTtzIutHqGIKC0SLKPBA4Pq0vhl9iCvs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyflakes/default.nix b/pkgs/development/python-modules/pyflakes/default.nix
index 2da0f2698685..c0ef2f45f2b7 100644
--- a/pkgs/development/python-modules/pyflakes/default.nix
+++ b/pkgs/development/python-modules/pyflakes/default.nix
@@ -1,23 +1,30 @@
 { lib
 , buildPythonPackage
 , pythonOlder
-, fetchPypi
+, fetchFromGitHub
+, setuptools
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pyflakes";
-  version = "3.1.0";
+  version = "3.2.0";
 
   disabled = pythonOlder "3.8";
 
-  format = "setuptools";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-oKrgNMRE2wBxqgd5crpHaNQMgw2VOf1Fv0zT+PaZLvw=";
+  src = fetchFromGitHub {
+    owner = "PyCQA";
+    repo = "pyflakes";
+    rev = version;
+    hash = "sha256-ouCkkm9OrYob00uLTilqgWsTWfHhzaiZp7sa2C5liqk=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -26,7 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/PyCQA/pyflakes";
-    changelog = "https://github.com/PyCQA/pyflakes/blob/${version}/NEWS.rst";
+    changelog = "https://github.com/PyCQA/pyflakes/blob/${src.rev}/NEWS.rst";
     description = "A simple program which checks Python source files for errors";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/pyformlang/default.nix b/pkgs/development/python-modules/pyformlang/default.nix
index 63bf98a0ea5f..9a76ec2a1dfa 100644
--- a/pkgs/development/python-modules/pyformlang/default.nix
+++ b/pkgs/development/python-modules/pyformlang/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "pyformlang";
-  version = "1.0.6";
+  version = "1.0.7";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LHQM+Vy8YVfTtpWaveYgBlp74AnS/IF3Y1EbgwVku7I=";
+    hash = "sha256-i4ib18Ktyc9pRu4P+tQIHoZ/IbAOk8Dn0MXJoxw8gAA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pygit2/default.nix b/pkgs/development/python-modules/pygit2/default.nix
index 0a2e73c3c18e..1e17f95e54a7 100644
--- a/pkgs/development/python-modules/pygit2/default.nix
+++ b/pkgs/development/python-modules/pygit2/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "pygit2";
-  version = "1.14.0";
+  version = "1.14.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9SntlmDtv5tiXMrn5RCY73NmLmFJZgkAl3LUYnqCaqg=";
+    hash = "sha256-7FlYVxuCpjUXhcpkXlOUwxrkXuxThLL6nE4F3eNZetY=";
   };
 
   preConfigure = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix
index 89d261d5f8de..cc2d41147bca 100644
--- a/pkgs/development/python-modules/pygobject/3.nix
+++ b/pkgs/development/python-modules/pygobject/3.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   buildInputs = [
-    # # .so files link to this
+    cairo
     glib
   ] ++ lib.optionals stdenv.isDarwin [
     ncurses
@@ -50,7 +50,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     pycairo
-    cairo
   ];
 
   mesonFlags = [
diff --git a/pkgs/development/python-modules/pykka/default.nix b/pkgs/development/python-modules/pykka/default.nix
index 5bc06fe17091..899fe46feb5d 100644
--- a/pkgs/development/python-modules/pykka/default.nix
+++ b/pkgs/development/python-modules/pykka/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pykka";
-  version = "4.0.1";
+  version = "4.0.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "jodal";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-SYgT69/AZX/JDm89PwFqrUL9Ll1iHRKEy78BN4QKz9Y=";
+    hash = "sha256-2baFwZPNuVU39Kt5B8QvGKu7jMbg+GZ3ROoTxzPOXac=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix b/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix
index a9ffc663fcaf..3872fa6b2417 100644
--- a/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix
+++ b/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix
@@ -3,14 +3,16 @@
 , fetchFromGitHub
 , pythonOlder
 , pytestCheckHook
-, cython
+, cython_3
+, poetry-core
+, setuptools
 , numpy
 }:
 
 buildPythonPackage rec {
   pname = "pylibjpeg-libjpeg";
-  version = "1.3.4";
-  format = "setuptools";
+  version = "2.02";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -18,12 +20,14 @@ buildPythonPackage rec {
     owner = "pydicom";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-VmqeoMU8riLpWyC+yKqq56TkruxOie6pjbg+ozivpBk=";
+    hash = "sha256-mGwku19Xe605fF3UU59712rYp+s/pP79lBRl79fhhTI=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
-    cython
+    cython_3
+    poetry-core
+    setuptools
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pylibjpeg/default.nix b/pkgs/development/python-modules/pylibjpeg/default.nix
index 65055d94280c..134b0ebdb993 100644
--- a/pkgs/development/python-modules/pylibjpeg/default.nix
+++ b/pkgs/development/python-modules/pylibjpeg/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , pythonOlder
 , pytestCheckHook
+, flit-core
 , setuptools
 , numpy
 , pydicom
@@ -31,7 +32,7 @@ in
 
 buildPythonPackage rec {
   pname = "pylibjpeg";
-  version = "1.4.0";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -40,10 +41,10 @@ buildPythonPackage rec {
     owner = "pydicom";
     repo = "pylibjpeg";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Px1DyYDkKAUdYo+ZxZ1w7TkPzWN++styiFl02iQOvyQ=";
+    hash = "sha256-qGtrphsBBVieGS/8rdymbsjLMU/QEd7zFNAANN8bD+k=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [ numpy ];
 
diff --git a/pkgs/development/python-modules/pylint-flask/default.nix b/pkgs/development/python-modules/pylint-flask/default.nix
index 4a26e256d803..0928e0bd07e1 100644
--- a/pkgs/development/python-modules/pylint-flask/default.nix
+++ b/pkgs/development/python-modules/pylint-flask/default.nix
@@ -1,37 +1,50 @@
-{ buildPythonPackage
+{ lib
+, astroid
+, buildPythonPackage
 , fetchPypi
-, isPy3k
-, lib
-
-# pythonPackages
+, pylint
 , pylint-plugin-utils
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pylint-flask";
   version = "0.6";
-  format = "setuptools";
-  disabled = !isPy3k;
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05qmwgkpvaa5k05abqjxfbrfk3wpdqb8ph690z7bzxvb47i7vngl";
+    hash = "sha256-9Nl94iFr97/OB8nAixZul4/p8nJd4qUKmEWpfefjFRc=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  buildInputs = [
+    pylint
+  ];
+
   propagatedBuildInputs = [
+    astroid
     pylint-plugin-utils
   ];
 
   # Tests require a very old version of pylint
-  #   also tests are only available at GitHub, with an old release tag
+  # also tests are only available at GitHub, with an old release tag
   doCheck = false;
 
+  pythonImportsCheck = [
+    "pylint_flask"
+  ];
+
   meta = with lib; {
     description = "A Pylint plugin to analyze Flask applications";
     homepage = "https://github.com/jschaf/pylint-flask";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    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 cdc29eb19621..83315aed22a0 100644
--- a/pkgs/development/python-modules/pylint-plugin-utils/default.nix
+++ b/pkgs/development/python-modules/pylint-plugin-utils/default.nix
@@ -39,9 +39,6 @@ buildPythonPackage rec {
     "pylint_plugin_utils"
   ];
 
-  # https://github.com/PyCQA/pylint-plugin-utils/issues/26
-  doCheck = false;
-
   meta = with lib; {
     description = "Utilities and helpers for writing Pylint plugins";
     homepage = "https://github.com/PyCQA/pylint-plugin-utils";
diff --git a/pkgs/development/python-modules/pylutron-caseta/default.nix b/pkgs/development/python-modules/pylutron-caseta/default.nix
index c95a36aa8eca..0abbd2eaa517 100644
--- a/pkgs/development/python-modules/pylutron-caseta/default.nix
+++ b/pkgs/development/python-modules/pylutron-caseta/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pylutron-caseta";
-  version = "0.19.0";
+  version = "0.20.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "gurumitts";
     repo = "pylutron-caseta";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/xTHtzXEFGL2/oP1oVxJj7GO3fSZ5CwjXDdp6OLhlzM=";
+    hash = "sha256-7uUNLlVrMEgah2YvTECC4S2WArAQjeAyfgDd62sQsYA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pylutron/default.nix b/pkgs/development/python-modules/pylutron/default.nix
index f217b46179f9..49ee5e278485 100644
--- a/pkgs/development/python-modules/pylutron/default.nix
+++ b/pkgs/development/python-modules/pylutron/default.nix
@@ -1,23 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pylutron";
-  version = "0.2.11";
-  format = "setuptools";
+  version = "0.2.12";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9M7bCZD3zGZM62ID0yB/neKkF+6UW8x5m2y5vj/mYes=";
+    hash = "sha256-UTn4HfyiyQAekIZD4I5lacYb7ySRhW8OUgiOg33JZtQ=";
   };
 
+  nativeBuildInputs = [
+    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";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/pymatreader/default.nix b/pkgs/development/python-modules/pymatreader/default.nix
new file mode 100644
index 000000000000..484797381fa9
--- /dev/null
+++ b/pkgs/development/python-modules/pymatreader/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitLab
+, setuptools
+, h5py
+, numpy
+, scipy
+, xmltodict
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pymatreader";
+  version = "0.0.31";
+  pyproject = true;
+
+  src = fetchFromGitLab {
+    owner = "obob";
+    repo = "pymatreader";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-pYObmvqA49sHjpZcwXkN828R/N5CSpmr0OyyxzDiodQ=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    h5py
+    numpy
+    scipy
+    xmltodict
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pymatreader" ];
+
+  meta = with lib; {
+    description = "A 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;
+    maintainers = with maintainers; [ mbalatsko ];
+  };
+}
diff --git a/pkgs/development/python-modules/pymc/default.nix b/pkgs/development/python-modules/pymc/default.nix
index 5427eafb1035..185250bddda5 100644
--- a/pkgs/development/python-modules/pymc/default.nix
+++ b/pkgs/development/python-modules/pymc/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pymc";
-  version = "5.10.3";
+  version = "5.10.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pymc-devs";
     repo = "pymc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3y8ORRyWjr4KT818ktXrgX4jB0Rkrnf4DQaNkyXGrts=";
+    hash = "sha256-bOrWgZaSOXXalw251cm5JUDkAARGaxmUk+z3SY6Git8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymicrobot/default.nix b/pkgs/development/python-modules/pymicrobot/default.nix
index 723eb220b587..947c065fc32c 100644
--- a/pkgs/development/python-modules/pymicrobot/default.nix
+++ b/pkgs/development/python-modules/pymicrobot/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pymicrobot";
-  version = "0.0.12";
+  version = "0.0.16";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyMicroBot";
     inherit version;
-    hash = "sha256-Ysg97ApwbraRn19Mn5pJsg91dzf/njnNZiBJQKZqIbQ=";
+    hash = "sha256-W1i1kKDM6DimcerhS5L7yEa32+cB032DrCAfhMCso4A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyngrok/default.nix b/pkgs/development/python-modules/pyngrok/default.nix
index 6b70a33f0f89..2dc7e9f36ebc 100644
--- a/pkgs/development/python-modules/pyngrok/default.nix
+++ b/pkgs/development/python-modules/pyngrok/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyngrok";
-  version = "7.1.1";
+  version = "7.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UanhPx92E8mR6ertGKIGm1HAbiFXf4ATJonvPjNdFS0=";
+    hash = "sha256-iyLJ3kr0O9wa6ipgMgntH8VbSo1a6btYoQZOaogAfKw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pynose/default.nix b/pkgs/development/python-modules/pynose/default.nix
new file mode 100644
index 000000000000..12730465b7a1
--- /dev/null
+++ b/pkgs/development/python-modules/pynose/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "pynose";
+  version = "1.4.8";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "mdmintz";
+    repo = "pynose";
+    rev = "v${version}";
+    hash = "sha256-V6jZBEkEAKzClA/3s+Lyfm9xExgCEJbLCNnIHmZ94E4=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "pynose fixes nose to extend unittest and make testing easier";
+    homepage = "https://github.com/mdmintz/pynose";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pynuki/default.nix b/pkgs/development/python-modules/pynuki/default.nix
index 67c35da58218..28c7117d680a 100644
--- a/pkgs/development/python-modules/pynuki/default.nix
+++ b/pkgs/development/python-modules/pynuki/default.nix
@@ -9,16 +9,16 @@
 
 buildPythonPackage rec {
   pname = "pynuki";
-  version = "1.6.2";
-  format = "pyproject";
+  version = "1.6.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pschmitt";
-    repo = pname;
+    repo = "pynuki";
     rev = "refs/tags/${version}";
-    hash = "sha256-I0eAhgThSBEmJF6mYw+0Bh1kCUqEMFnCx+4n7l3Hf14=";
+    hash = "sha256-PF5FmAuPcJXq8gQ8HyzdtL2HiiUjueT+LAS1lYRvrwM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyocr/default.nix b/pkgs/development/python-modules/pyocr/default.nix
index 407166e98c90..0d87538a1ce4 100644
--- a/pkgs/development/python-modules/pyocr/default.nix
+++ b/pkgs/development/python-modules/pyocr/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , fetchFromGitLab
 , buildPythonPackage
 , pillow
@@ -9,6 +10,8 @@
 , pytestCheckHook
 , setuptools
 , setuptools-scm
+, withTesseractSupport ? true
+, withCuneiformSupport ? stdenv.hostPlatform.isLinux
 }:
 
 buildPythonPackage rec {
@@ -27,12 +30,14 @@ buildPythonPackage rec {
     hash = "sha256-gE0+qbHCwpDdxXFY+4rjVU2FbUSfSVrvrVMcWUk+9FU=";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./paths.patch;
-      inherit cuneiform tesseract;
-    })
-  ];
+  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 {
+      src = ./paths-cuneiform.patch;
+      inherit cuneiform;
+    }));
 
   propagatedBuildInputs = [ pillow ];
 
@@ -45,6 +50,6 @@ buildPythonPackage rec {
     changelog = "https://gitlab.gnome.org/World/OpenPaperwork/pyocr/-/blob/${version}/ChangeLog";
     description = "A Python wrapper for Tesseract and Cuneiform";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ symphorien ];
+    maintainers = with maintainers; [ symphorien tomodachi94 ];
   };
 }
diff --git a/pkgs/development/python-modules/pyocr/paths-cuneiform.patch b/pkgs/development/python-modules/pyocr/paths-cuneiform.patch
new file mode 100644
index 000000000000..a25f08eddd06
--- /dev/null
+++ b/pkgs/development/python-modules/pyocr/paths-cuneiform.patch
@@ -0,0 +1,101 @@
+commit cfc05af26b571e9ca09e9c709c0fb8934e9e46dd
+Author: Guillaume Girol <symphorien+git@xlumurb.eu>
+Date:   Sat Aug 20 17:48:01 2022 +0200
+
+    Fix finding cuneiform
+
+diff --git a/src/pyocr/cuneiform.py b/src/pyocr/cuneiform.py
+index 2e5b717..35647e2 100644
+--- a/src/pyocr/cuneiform.py
++++ b/src/pyocr/cuneiform.py
+@@ -25,13 +25,9 @@ from . import builders
+ from .error import CuneiformError
+ 
+ 
+-# CHANGE THIS IF CUNEIFORM IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
+-CUNEIFORM_CMD = 'cuneiform'
++CUNEIFORM_CMD = '@cuneiform@/bin/cuneiform'
+ 
+-CUNEIFORM_DATA_POSSIBLE_PATHS = [
+-    "/usr/local/share/cuneiform",
+-    "/usr/share/cuneiform",
+-]
++CUNEIFORM_DATA_POSSIBLE_PATHS = ['@cuneiform@/share/cuneiform']
+ 
+ LANGUAGES_LINE_PREFIX = "Supported languages: "
+ LANGUAGES_SPLIT_RE = re.compile("[^a-z]")
+diff --git a/tests/test_cuneiform.py b/tests/test_cuneiform.py
+index b76e93c..266f6b2 100644
+--- a/tests/test_cuneiform.py
++++ b/tests/test_cuneiform.py
+@@ -21,7 +21,7 @@ class TestCuneiform(BaseTest):
+         # XXX is it useful?
+         which.return_value = True
+         self.assertTrue(cuneiform.is_available())
+-        which.assert_called_once_with("cuneiform")
++        which.assert_called_once_with("@cuneiform@/bin/cuneiform")
+ 
+     @patch("subprocess.Popen")
+     def test_version(self, popen):
+@@ -54,7 +54,7 @@ class TestCuneiform(BaseTest):
+         self.assertIn("eng", langs)
+         self.assertIn("fra", langs)
+         popen.assert_called_once_with(
+-            ["cuneiform", "-l"],
++            ["@cuneiform@/bin/cuneiform", "-l"],
+             stdout=subprocess.PIPE, stderr=subprocess.STDOUT
+         )
+ 
+@@ -110,7 +110,7 @@ class TestCuneiformTxt(BaseTest):
+         output = cuneiform.image_to_string(self.image)
+         self.assertEqual(output, self._get_file_content("text").strip())
+         popen.assert_called_once_with(
+-            ["cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
++            ["@cuneiform@/bin/cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
+             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+             stderr=subprocess.STDOUT
+         )
+@@ -126,7 +126,7 @@ class TestCuneiformTxt(BaseTest):
+                                            builder=self.builder)
+         self.assertEqual(output, self._get_file_content("text").strip())
+         popen.assert_called_once_with(
+-            ["cuneiform", "-l", "fra", "-f", "text", "-o", self.tmp_filename,
++            ["@cuneiform@/bin/cuneiform", "-l", "fra", "-f", "text", "-o", self.tmp_filename,
+              "-"],
+             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+             stderr=subprocess.STDOUT
+@@ -143,7 +143,7 @@ class TestCuneiformTxt(BaseTest):
+                                            builder=self.builder)
+         self.assertEqual(output, self._get_file_content("text").strip())
+         popen.assert_called_once_with(
+-            ["cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
++            ["@cuneiform@/bin/cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
+             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+             stderr=subprocess.STDOUT
+         )
+@@ -174,7 +174,7 @@ class TestCuneiformTxt(BaseTest):
+         output = cuneiform.image_to_string(image, builder=self.builder)
+         self.assertEqual(output, self._get_file_content("text").strip())
+         popen.assert_called_once_with(
+-            ["cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
++            ["@cuneiform@/bin/cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
+             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+             stderr=subprocess.STDOUT
+         )
+@@ -230,7 +230,7 @@ class TestCuneiformWordBox(BaseTest):
+         output = cuneiform.image_to_string(self.image,
+                                            builder=self.builder)
+         popen.assert_called_once_with(
+-            ["cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
++            ["@cuneiform@/bin/cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
+             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+             stderr=subprocess.STDOUT
+         )
+@@ -284,7 +284,7 @@ class TestCuneiformLineBox(BaseTest):
+         output = cuneiform.image_to_string(self.image,
+                                            builder=self.builder)
+         popen.assert_called_once_with(
+-            ["cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
++            ["@cuneiform@/bin/cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
+             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+             stderr=subprocess.STDOUT
diff --git a/pkgs/development/python-modules/pyocr/paths.patch b/pkgs/development/python-modules/pyocr/paths-tesseract.patch
index c3c802c20649..1a5aa8b367eb 100644
--- a/pkgs/development/python-modules/pyocr/paths.patch
+++ b/pkgs/development/python-modules/pyocr/paths-tesseract.patch
@@ -2,28 +2,8 @@ commit cfc05af26b571e9ca09e9c709c0fb8934e9e46dd
 Author: Guillaume Girol <symphorien+git@xlumurb.eu>
 Date:   Sat Aug 20 17:48:01 2022 +0200
 
-    Fix finding tesseract and cuneiform
+    Fix finding tesseract
 
-diff --git a/src/pyocr/cuneiform.py b/src/pyocr/cuneiform.py
-index 2e5b717..35647e2 100644
---- a/src/pyocr/cuneiform.py
-+++ b/src/pyocr/cuneiform.py
-@@ -25,13 +25,9 @@ from . import builders
- from .error import CuneiformError
- 
- 
--# CHANGE THIS IF CUNEIFORM IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
--CUNEIFORM_CMD = 'cuneiform'
-+CUNEIFORM_CMD = '@cuneiform@/bin/cuneiform'
- 
--CUNEIFORM_DATA_POSSIBLE_PATHS = [
--    "/usr/local/share/cuneiform",
--    "/usr/share/cuneiform",
--]
-+CUNEIFORM_DATA_POSSIBLE_PATHS = ['@cuneiform@/share/cuneiform']
- 
- LANGUAGES_LINE_PREFIX = "Supported languages: "
- LANGUAGES_SPLIT_RE = re.compile("[^a-z]")
 diff --git a/src/pyocr/libtesseract/tesseract_raw.py b/src/pyocr/libtesseract/tesseract_raw.py
 index 1edec8c..434a336 100644
 --- a/src/pyocr/libtesseract/tesseract_raw.py
@@ -90,7 +70,7 @@ index 1edec8c..434a336 100644
 -        "libtesseract.4.dylib",
 -    ]
 -
-+libnames = [ "@tesseract@/lib/libtesseract.so" ]
++libnames = [ "@tesseractLibraryLocation@" ]
  
  g_libtesseract = None
  
@@ -125,82 +105,6 @@ index 0fe0d20..c1fdd27 100644
  
  TESSDATA_EXTENSION = ".traineddata"
  
-diff --git a/tests/test_cuneiform.py b/tests/test_cuneiform.py
-index b76e93c..266f6b2 100644
---- a/tests/test_cuneiform.py
-+++ b/tests/test_cuneiform.py
-@@ -21,7 +21,7 @@ class TestCuneiform(BaseTest):
-         # XXX is it useful?
-         which.return_value = True
-         self.assertTrue(cuneiform.is_available())
--        which.assert_called_once_with("cuneiform")
-+        which.assert_called_once_with("@cuneiform@/bin/cuneiform")
- 
-     @patch("subprocess.Popen")
-     def test_version(self, popen):
-@@ -54,7 +54,7 @@ class TestCuneiform(BaseTest):
-         self.assertIn("eng", langs)
-         self.assertIn("fra", langs)
-         popen.assert_called_once_with(
--            ["cuneiform", "-l"],
-+            ["@cuneiform@/bin/cuneiform", "-l"],
-             stdout=subprocess.PIPE, stderr=subprocess.STDOUT
-         )
- 
-@@ -110,7 +110,7 @@ class TestCuneiformTxt(BaseTest):
-         output = cuneiform.image_to_string(self.image)
-         self.assertEqual(output, self._get_file_content("text").strip())
-         popen.assert_called_once_with(
--            ["cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
-+            ["@cuneiform@/bin/cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
-             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-             stderr=subprocess.STDOUT
-         )
-@@ -126,7 +126,7 @@ class TestCuneiformTxt(BaseTest):
-                                            builder=self.builder)
-         self.assertEqual(output, self._get_file_content("text").strip())
-         popen.assert_called_once_with(
--            ["cuneiform", "-l", "fra", "-f", "text", "-o", self.tmp_filename,
-+            ["@cuneiform@/bin/cuneiform", "-l", "fra", "-f", "text", "-o", self.tmp_filename,
-              "-"],
-             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-             stderr=subprocess.STDOUT
-@@ -143,7 +143,7 @@ class TestCuneiformTxt(BaseTest):
-                                            builder=self.builder)
-         self.assertEqual(output, self._get_file_content("text").strip())
-         popen.assert_called_once_with(
--            ["cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
-+            ["@cuneiform@/bin/cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
-             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-             stderr=subprocess.STDOUT
-         )
-@@ -174,7 +174,7 @@ class TestCuneiformTxt(BaseTest):
-         output = cuneiform.image_to_string(image, builder=self.builder)
-         self.assertEqual(output, self._get_file_content("text").strip())
-         popen.assert_called_once_with(
--            ["cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
-+            ["@cuneiform@/bin/cuneiform", "-f", "text", "-o", self.tmp_filename, "-"],
-             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-             stderr=subprocess.STDOUT
-         )
-@@ -230,7 +230,7 @@ class TestCuneiformWordBox(BaseTest):
-         output = cuneiform.image_to_string(self.image,
-                                            builder=self.builder)
-         popen.assert_called_once_with(
--            ["cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
-+            ["@cuneiform@/bin/cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
-             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-             stderr=subprocess.STDOUT
-         )
-@@ -284,7 +284,7 @@ class TestCuneiformLineBox(BaseTest):
-         output = cuneiform.image_to_string(self.image,
-                                            builder=self.builder)
-         popen.assert_called_once_with(
--            ["cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
-+            ["@cuneiform@/bin/cuneiform", "-f", "hocr", "-o", self.tmp_filename, "-"],
-             stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-             stderr=subprocess.STDOUT
-         )
 diff --git a/tests/test_libtesseract.py b/tests/test_libtesseract.py
 index cc31a50..890c02c 100644
 --- a/tests/test_libtesseract.py
diff --git a/pkgs/development/python-modules/pyoctoprintapi/default.nix b/pkgs/development/python-modules/pyoctoprintapi/default.nix
index 0b6bb48857bc..59db986ad44f 100644
--- a/pkgs/development/python-modules/pyoctoprintapi/default.nix
+++ b/pkgs/development/python-modules/pyoctoprintapi/default.nix
@@ -1,6 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonOlder
+, setuptools
 
 # propagated
 , aiohttp
@@ -16,15 +18,21 @@ let
 in
 buildPythonPackage {
   inherit pname version;
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "rfleming71";
-    repo = pname;
+    repo = "pyoctoprintapi";
     rev = "refs/tags/v${version}";
     hash = "sha256-Jf/zYnBHVl3TYxFy9Chy6qNH/eCroZkmUOEWfd62RIo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
   ];
diff --git a/pkgs/development/python-modules/pyoverkiz/default.nix b/pkgs/development/python-modules/pyoverkiz/default.nix
index 1cb510076431..86bcf10bcf3d 100644
--- a/pkgs/development/python-modules/pyoverkiz/default.nix
+++ b/pkgs/development/python-modules/pyoverkiz/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pyoverkiz";
-  version = "1.13.4";
+  version = "1.13.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "iMicknl";
     repo = "python-overkiz-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VMf6WBWf33KEWJG8UtCDZCa20a8kmVd5UpLIcJgzDis=";
+    hash = "sha256-wH4LCfjnxAwub/BCe27osyJVUZSOMDjjxItv0aEa8Ic=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pypandoc/default.nix b/pkgs/development/python-modules/pypandoc/default.nix
index ad81b8e7f068..7501cddbad18 100644
--- a/pkgs/development/python-modules/pypandoc/default.nix
+++ b/pkgs/development/python-modules/pypandoc/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pypandoc";
-  version = "1.10";
+  version = "1.13";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "JessicaTegner";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256:05m585l4sipjzpkrv4yj5s7w45yxhxlym55lkhnavsshlvisinkz";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-9fpits8O/50maM/e1lVVqBoTwUmcI+/IAYhVX1Pt6ZE=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pyprecice/default.nix b/pkgs/development/python-modules/pyprecice/default.nix
index ebc8c4234375..f6c5d8fc2387 100644
--- a/pkgs/development/python-modules/pyprecice/default.nix
+++ b/pkgs/development/python-modules/pyprecice/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyprecice";
-  version = "2.5.0.4";
+  version = "3.0.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "precice";
     repo = "python-bindings";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Nau4ytOSv5WOly/hbHO2M6Rgx1ileJrzfCfNJFnwVaw=";
+    hash = "sha256-iW3Mll28Z3Ew+eIJxeF1HR7JhVhXs9FiYaAb5TwYSpg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyprobables/default.nix b/pkgs/development/python-modules/pyprobables/default.nix
new file mode 100644
index 000000000000..be4410cce276
--- /dev/null
+++ b/pkgs/development/python-modules/pyprobables/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "pyprobables";
+  version = "0.6.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "barrust";
+    repo = "pyprobables";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-maikrZlBzhv35zPXmKqdJzAz6eZDmluLUvkOkaPTCDU=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "probables"
+  ];
+
+  meta = with lib; {
+    description = "Probabilistic data structures";
+    homepage = "https://github.com/barrust/pyprobables";
+    changelog = "https://github.com/barrust/pyprobables/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyquil/default.nix b/pkgs/development/python-modules/pyquil/default.nix
index f980365202dd..9acc287798d2 100644
--- a/pkgs/development/python-modules/pyquil/default.nix
+++ b/pkgs/development/python-modules/pyquil/default.nix
@@ -5,22 +5,24 @@
 , importlib-metadata
 , ipython
 , lark
+, matplotlib-inline
+, nest-asyncio
 , networkx
 , numpy
+, packaging
 , poetry-core
+, pydantic
 , pytest-asyncio
-, pytest-freezegun
-, pytest-httpx
 , pytest-mock
 , pytestCheckHook
 , pythonAtLeast
 , pythonOlder
 , pythonRelaxDepsHook
-, qcs-api-client
+, qcs-sdk-python
 , respx
-, retry
 , rpcq
 , scipy
+, syrupy
 , tenacity
 , types-deprecated
 , types-python-dateutil
@@ -29,18 +31,22 @@
 
 buildPythonPackage rec {
   pname = "pyquil";
-  version = "4.2.0";
-  format = "pyproject";
+  version = "4.6.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "rigetti";
-    repo = pname;
+    repo = "pyquil";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LLhTK/wE42mBTrqjBbnkPvqSG8gP7Vx/3ip66hKHxXc=";
+    hash = "sha256-93dHujgGEh9/r9epAiUcUCiFCG7SFTAFoQbjQwwKhN0=";
   };
 
+  patches = [
+    ./pydantic.patch
+  ];
+
   pythonRelaxDeps = [
     "lark"
     "networkx"
@@ -54,10 +60,12 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     deprecated
     lark
+    matplotlib-inline
     networkx
     numpy
-    qcs-api-client
-    retry
+    packaging
+    pydantic
+    qcs-sdk-python
     rpcq
     scipy
     tenacity
@@ -69,44 +77,17 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  checkInputs = [
+    nest-asyncio
     pytest-asyncio
-    pytest-freezegun
-    pytest-httpx
     pytest-mock
+    pytestCheckHook
     respx
+    syrupy
     ipython
   ];
 
-  disabledTestPaths = [
-    # Tests require network access
-    "test/e2e/"
-    "test/unit/test_api.py"
-    "test/unit/test_engagement_manager.py"
-    "test/unit/test_operator_estimation.py"
-    "test/unit/test_wavefunction_simulator.py"
-    "test/unit/test_compatibility_v2_operator_estimation.py"
-    "test/unit/test_compatibility_v2_quantum_computer.py"
-    "test/unit/test_compatibility_v2_qvm.py"
-    "test/unit/test_quantum_computer.py"
-    "test/unit/test_qvm.py"
-    "test/unit/test_reference_wavefunction.py"
-    # Out-dated
-    "test/unit/test_qpu_client.py"
-    "test/unit/test_qvm_client.py"
-    "test/unit/test_reference_density.py"
-  ];
-
-  disabledTests = [
-    "test_compile_with_quilt_calibrations"
-    "test_sets_timeout_on_requests"
-    # sensitive to lark parser output
-    "test_memory_commands"
-    "test_classical"
-  ];
+  # tests hang
+  doCheck = false;
 
   pythonImportsCheck = [
     "pyquil"
diff --git a/pkgs/development/python-modules/pyquil/pydantic.patch b/pkgs/development/python-modules/pyquil/pydantic.patch
new file mode 100644
index 000000000000..689e87d65f74
--- /dev/null
+++ b/pkgs/development/python-modules/pyquil/pydantic.patch
@@ -0,0 +1,28 @@
+diff --git a/pyproject.toml b/pyproject.toml
+index 2677758..5bbe863 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -30,7 +30,7 @@ scipy = [
+ ]
+ lark = "^0.11.1"
+ rpcq = "^3.10.0"
+-pydantic = "^1.10.7"
++pydantic = ">=1.10.7"
+ networkx = ">=2.5"
+ importlib-metadata = { version = ">=3.7.3,<5", python = "<3.8" }
+ qcs-sdk-python = "0.14.3"
+diff --git a/pyquil/external/rpcq.py b/pyquil/external/rpcq.py
+index 719eca1..d814d7b 100644
+--- a/pyquil/external/rpcq.py
++++ b/pyquil/external/rpcq.py
+@@ -1,6 +1,9 @@
+ from typing import Dict, List, Union, Optional, Any
+ from typing_extensions import Literal
+-from pydantic import BaseModel, Field
++try:
++    from pydantic.v1 import BaseModel, Field
++except ImportError:
++    from pydantic import BaseModel, Field
+ from rpcq.messages import TargetDevice as TargetQuantumProcessor
+ 
+ 
diff --git a/pkgs/development/python-modules/pyrainbird/default.nix b/pkgs/development/python-modules/pyrainbird/default.nix
index 44d4e83794fa..bca013babd9e 100644
--- a/pkgs/development/python-modules/pyrainbird/default.nix
+++ b/pkgs/development/python-modules/pyrainbird/default.nix
@@ -18,30 +18,32 @@
 , requests
 , requests-mock
 , responses
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pyrainbird";
-  version = "4.0.1";
-  format = "setuptools";
+  version = "4.0.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "allenporter";
-    repo = pname;
+    repo = "pyrainbird";
     rev = "refs/tags/${version}";
-    hash = "sha256-OcCg6Q+FJnmrYf70uNLWTg/tfWVJpiQlnyKfREcP2YM=";
+    hash = "sha256-4AoxLZv0u8wCG3ihw0JqsqsO5zG5UyP4ebSX99ve8sg=";
   };
 
   postPatch = ''
     substituteInPlace pytest.ini \
-      --replace "--cov=pyrainbird --cov-report=term-missing" ""
-
-    substituteInPlace setup.cfg \
-      --replace "pycryptodome>=3.16.0" "pycryptodome"
+      --replace-fail "--cov=pyrainbird --cov-report=term-missing" ""
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp-retry
     ical
diff --git a/pkgs/development/python-modules/pyrisco/default.nix b/pkgs/development/python-modules/pyrisco/default.nix
index 98a02ad48e33..62b23795d502 100644
--- a/pkgs/development/python-modules/pyrisco/default.nix
+++ b/pkgs/development/python-modules/pyrisco/default.nix
@@ -3,21 +3,27 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pyrisco";
-  version = "0.5.8";
-  format = "setuptools";
+  version = "0.5.9";
+  pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "OnFreund";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-PQ1h9UVQ2DQMInxdAaLES7uDWAxwDra+YfAmz5jjV6g=";
+    repo = "pyrisco";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-qapJcYesOddXFChApFT7hvxLblUigDW40zRe6CYWx+s=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
   ];
@@ -32,6 +38,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python interface to Risco alarm systems through Risco Cloud";
     homepage = "https://github.com/OnFreund/pyrisco";
+    changelog = "https://github.com/OnFreund/pyrisco/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix
index c0413ab53fd6..f6a185fc6dba 100644
--- a/pkgs/development/python-modules/pyroute2/default.nix
+++ b/pkgs/development/python-modules/pyroute2/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.7.11";
+  version = "0.7.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "svinota";
     repo = "pyroute2";
     rev = "refs/tags/${version}";
-    hash = "sha256-rX/aUmL9H4dSoRngxVVX1olfGtxK93g76E6Z0CYNr2M=";
+    hash = "sha256-zB792ZwDWd74YBYvQ5au0t2RWTIAqrWvNtQ/e+ZEk50=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysaml2/default.nix b/pkgs/development/python-modules/pysaml2/default.nix
index b8ace412614c..7f2735642253 100644
--- a/pkgs/development/python-modules/pysaml2/default.nix
+++ b/pkgs/development/python-modules/pysaml2/default.nix
@@ -3,7 +3,8 @@
 , cryptography
 , defusedxml
 , fetchFromGitHub
-, importlib-resources
+, fetchPypi
+, paste
 , poetry-core
 , pyasn1
 , pymongo
@@ -11,27 +12,30 @@
 , pytestCheckHook
 , python-dateutil
 , pythonOlder
+, pythonRelaxDepsHook
 , pytz
+, repoze-who
 , requests
 , responses
 , setuptools
 , substituteAll
 , xmlschema
 , xmlsec
+, zope-interface
 }:
 
 buildPythonPackage rec {
   pname = "pysaml2";
-  version = "7.4.2";
+  version = "7.5.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "IdentityPython";
-    repo = pname;
+    repo = "pysaml2";
     rev = "refs/tags/v${version}";
-    hash = "sha256-f8qd1Mfy32CYH9/PshfMMBviDg7OhOPlwz69bPjlYbg=";
+    hash = "sha256-M/tdKGu6K38TeBZc8/dt376bHhPB0svHB3iis/se0DY=";
   };
 
   patches = [
@@ -46,8 +50,13 @@ buildPythonPackage rec {
     sed -i 's/2999\(-.*T\)/2029\1/g' tests/*.xml
   '';
 
+  pythonRelaxDeps = [
+    "xmlschema"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -59,10 +68,16 @@ buildPythonPackage rec {
     requests
     setuptools
     xmlschema
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
   ];
 
+  passthru.optional-dependencies = {
+    s2repoze = [
+      paste
+      repoze-who
+      zope-interface
+    ];
+  };
+
   nativeCheckInputs = [
     pyasn1
     pymongo
diff --git a/pkgs/development/python-modules/pyscaffold/default.nix b/pkgs/development/python-modules/pyscaffold/default.nix
new file mode 100644
index 000000000000..ae7d7d5fff9c
--- /dev/null
+++ b/pkgs/development/python-modules/pyscaffold/default.nix
@@ -0,0 +1,108 @@
+{ 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 {
+  pname = "pyscaffold";
+  version = "4.5";
+  pyproject = true;
+
+  src = fetchPypi {
+    pname = "PyScaffold";
+    inherit version;
+    hash = "sha256-2En5ouFb3PFl4Z+Wg18LF+Gi1Z1MVhxEW4J6CB3m0mI=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg --replace "platformdirs>=2,<4" "platformdirs"
+  '';
+
+  propagatedBuildInputs = [
+    colorama
+    configupdater
+    importlib-metadata
+    packaging
+    platformdirs
+    setuptools
+    setuptools-scm
+    tomlkit
+  ];
+
+  passthru.optional-dependencies = {
+    all = [
+      pre-commit
+      pyscaffoldext-cookiecutter
+      pyscaffoldext-custom-extension
+      pyscaffoldext-django
+      pyscaffoldext-dsproject
+      pyscaffoldext-markdown
+      pyscaffoldext-travis
+      virtualenv
+    ];
+    ds = [
+      pyscaffoldext-dsproject
+    ];
+    md = [
+      pyscaffoldext-markdown
+    ];
+    testing = [
+      build
+      certifi
+      flake8
+      pre-commit
+      pytest
+      pytest-cov
+      pytest-randomly
+      pytest-xdist
+      setuptools
+      setuptools-scm
+      sphinx
+      tomlkit
+      tox
+      virtualenv
+      wheel
+    ];
+  };
+
+  pythonImportsCheck = [ "pyscaffold" ];
+
+  meta = with lib; {
+    description = "Template tool for putting up the scaffold of a Python project";
+    homepage = "https://pypi.org/project/PyScaffold/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyscaffoldext-cookiecutter/default.nix b/pkgs/development/python-modules/pyscaffoldext-cookiecutter/default.nix
new file mode 100644
index 000000000000..88027434e195
--- /dev/null
+++ b/pkgs/development/python-modules/pyscaffoldext-cookiecutter/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+, wheel
+, cookiecutter
+, importlib-metadata
+, pyscaffold
+, configupdater
+, pre-commit
+, pytest
+, pytest-cov
+, pytest-xdist
+, tox
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "pyscaffoldext-cookiecutter";
+  version = "0.1";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-H++p/kPASs3IWk39fCXzq20QmMPGkG0bDTnVAm773cU=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    cookiecutter
+    importlib-metadata
+    pyscaffold
+  ];
+
+  passthru.optional-dependencies = {
+    testing = [
+      configupdater
+      pre-commit
+      pytest
+      pytest-cov
+      pytest-xdist
+      setuptools-scm
+      tox
+      virtualenv
+    ];
+  };
+
+  pythonImportsCheck = [ "pyscaffoldext.cookiecutter" ];
+
+  meta = with lib; {
+    description = "Integration of Cookiecutter project templates into PyScaffold (see: https://github.com/cookiecutter/cookiecutter";
+    homepage = "https://pypi.org/project/pyscaffoldext-cookiecutter/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyscaffoldext-custom-extension/default.nix b/pkgs/development/python-modules/pyscaffoldext-custom-extension/default.nix
new file mode 100644
index 000000000000..9d47769bdf02
--- /dev/null
+++ b/pkgs/development/python-modules/pyscaffoldext-custom-extension/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+, wheel
+, configupdater
+, importlib-metadata
+, packaging
+, pyscaffold
+, pre-commit
+, pytest
+, pytest-cov
+, pytest-xdist
+, tox
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "pyscaffoldext-custom-extension";
+  version = "0.6.3";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-xHtKNqLSCTlbbXubADfLYjD3/53WfM65rRuh9RsyeN4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    configupdater
+    importlib-metadata
+    packaging
+    pyscaffold
+  ];
+
+  passthru.optional-dependencies = {
+    testing = [
+      configupdater
+      pre-commit
+      pytest
+      pytest-cov
+      pytest-xdist
+      setuptools-scm
+      tox
+      virtualenv
+    ];
+  };
+
+  pythonImportsCheck = [ "pyscaffoldext.custom_extension" ];
+
+  meta = with lib; {
+    description = "PyScaffold extension to create a custom PyScaffold extension";
+    homepage = "https://pypi.org/project/pyscaffoldext-custom-extension/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyscaffoldext-django/default.nix b/pkgs/development/python-modules/pyscaffoldext-django/default.nix
new file mode 100644
index 000000000000..9a7725ad3244
--- /dev/null
+++ b/pkgs/development/python-modules/pyscaffoldext-django/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+, wheel
+, django
+, pyscaffold
+, configupdater
+, pre-commit
+, pytest
+, pytest-cov
+, pytest-xdist
+, tox
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "pyscaffoldext-django";
+  version = "0.2";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-5yzF3VK/9VlCSrRsRJWX4arr9n34G2R6O5A51jTpLhg=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    django
+    pyscaffold
+  ];
+
+  passthru.optional-dependencies = {
+    testing = [
+      configupdater
+      pre-commit
+      pytest
+      pytest-cov
+      pytest-xdist
+      setuptools-scm
+      tox
+      virtualenv
+    ];
+  };
+
+  pythonImportsCheck = [ "pyscaffoldext.django" ];
+
+  meta = with lib; {
+    description = "Integration of django builtin scaffold cli (django-admin) into PyScaffold";
+    homepage = "https://pypi.org/project/pyscaffoldext-django/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyscaffoldext-dsproject/default.nix b/pkgs/development/python-modules/pyscaffoldext-dsproject/default.nix
new file mode 100644
index 000000000000..e85bcc3b8e0e
--- /dev/null
+++ b/pkgs/development/python-modules/pyscaffoldext-dsproject/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+, wheel
+, importlib-metadata
+, pyscaffold
+, pyscaffoldext-markdown
+, configupdater
+, pre-commit
+, pytest
+, pytest-cov
+, pytest-xdist
+, tox
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "pyscaffoldext-dsproject";
+  version = "0.7.2";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-SF99noD6C31p4LWlwVAwArPYeNspF+ARK8Dzl5B1T9g=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    importlib-metadata
+    pyscaffold
+    pyscaffoldext-markdown
+  ];
+
+  passthru.optional-dependencies = {
+    testing = [
+      configupdater
+      pre-commit
+      pytest
+      pytest-cov
+      pytest-xdist
+      setuptools-scm
+      tox
+      virtualenv
+    ];
+  };
+
+  pythonImportsCheck = [ "pyscaffoldext.dsproject" ];
+
+  meta = with lib; {
+    description = "PyScaffold extension for Data Science projects";
+    homepage = "https://pypi.org/project/pyscaffoldext-dsproject/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyscaffoldext-markdown/default.nix b/pkgs/development/python-modules/pyscaffoldext-markdown/default.nix
new file mode 100644
index 000000000000..d0330a38f314
--- /dev/null
+++ b/pkgs/development/python-modules/pyscaffoldext-markdown/default.nix
@@ -0,0 +1,65 @@
+{ 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 {
+  pname = "pyscaffoldext-markdown";
+  version = "0.5";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-fycTscq9rjUNFidWyeoH4QwedthdCdqqjXDO9DC4tds=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    importlib-metadata
+    myst-parser
+    pyscaffold
+    wheel
+  ];
+
+  passthru.optional-dependencies = {
+    testing = [
+      configupdater
+      pre-commit
+      pytest
+      pytest-cov
+      pytest-xdist
+      setuptools-scm
+      tox
+      twine
+      virtualenv
+    ];
+  };
+
+  pythonImportsCheck = [ "pyscaffoldext.markdown" ];
+
+  meta = with lib; {
+    description = "PyScaffold extension which uses Markdown instead of reStructuredText";
+    homepage = "https://pypi.org/project/pyscaffoldext-markdown/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyscaffoldext-travis/default.nix b/pkgs/development/python-modules/pyscaffoldext-travis/default.nix
new file mode 100644
index 000000000000..3d5ba4aa33e0
--- /dev/null
+++ b/pkgs/development/python-modules/pyscaffoldext-travis/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+, wheel
+, importlib-metadata
+, pyscaffold
+, configupdater
+, pre-commit
+, pytest
+, pytest-cov
+, pytest-xdist
+, tox
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "pyscaffoldext-travis";
+  version = "0.3";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-ztAhA/2ctCHz5kggOAaXd3ed903ClTlhCfaGTl344zI=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    importlib-metadata
+    pyscaffold
+  ];
+
+  passthru.optional-dependencies = {
+    testing = [
+      configupdater
+      pre-commit
+      pytest
+      pytest-cov
+      pytest-xdist
+      setuptools-scm
+      tox
+      virtualenv
+    ];
+  };
+
+  pythonImportsCheck = [ "pyscaffoldext.travis" ];
+
+  meta = with lib; {
+    description = "Travis CI configurations for PyScaffold";
+    homepage = "https://pypi.org/project/pyscaffoldext-travis/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyschlage/default.nix b/pkgs/development/python-modules/pyschlage/default.nix
index 5344a06bdb8e..d039364f6928 100644
--- a/pkgs/development/python-modules/pyschlage/default.nix
+++ b/pkgs/development/python-modules/pyschlage/default.nix
@@ -11,8 +11,8 @@
 
 buildPythonPackage rec {
   pname = "pyschlage";
-  version = "2023.12.1";
-  format = "pyproject";
+  version = "2024.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "dknowles2";
     repo = "pyschlage";
     rev = "refs/tags/${version}";
-    hash = "sha256-RWM/76uqljWgKBWsMvGTggJllX0Qa9QaMM0hJbCvZgQ=";
+    hash = "sha256-kjAV7VHKp7WpT6dNjuzYMTlcXbyIB2MNZQXOckDLWF8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyswitchbot/default.nix b/pkgs/development/python-modules/pyswitchbot/default.nix
index 3ee728d7ef11..ad55dbc99fdf 100644
--- a/pkgs/development/python-modules/pyswitchbot/default.nix
+++ b/pkgs/development/python-modules/pyswitchbot/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pyswitchbot";
-  version = "0.44.1";
+  version = "0.45.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pySwitchbot";
     rev = "refs/tags/${version}";
-    hash = "sha256-i3OQ2QOBMaiNTyq44wbnHZ2iqAXEYB16NWKWzOza1Jo=";
+    hash = "sha256-lQVUHZvAZ4J0DLlUl30dSz2wwXKb9MK5prkXvub0yNI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytedee-async/default.nix b/pkgs/development/python-modules/pytedee-async/default.nix
index f4ce2c7bcd89..e42af981cf33 100644
--- a/pkgs/development/python-modules/pytedee-async/default.nix
+++ b/pkgs/development/python-modules/pytedee-async/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pytedee-async";
-  version = "0.2.13";
+  version = "0.2.14";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "zweckj";
     repo = "pytedee_async";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3W+eqkniDMoDKeute5w1QyklOc/aren/Q8txBEI/4ys=";
+    hash = "sha256-BtBHiDOYe8BkrqJEGG4eGKFMnCspCQK4fvcj2vvGmFM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytenable/default.nix b/pkgs/development/python-modules/pytenable/default.nix
index 6639be7e61c2..2810332d42bb 100644
--- a/pkgs/development/python-modules/pytenable/default.nix
+++ b/pkgs/development/python-modules/pytenable/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "pytenable";
-  version = "1.4.19";
+  version = "1.4.20";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "tenable";
     repo = "pyTenable";
     rev = "refs/tags/${version}";
-    hash = "sha256-UvnDpt0PrK2stO9eRXtqApJjlzXCIXmwMq7ewx+fQ/0=";
+    hash = "sha256-NiAv0zNITpKIQ2TarNoU4HwKuHm22LTu8pJUi0SDlfE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-asyncio/default.nix b/pkgs/development/python-modules/pytest-asyncio/default.nix
index e373e5b1f654..fd81aab3838a 100644
--- a/pkgs/development/python-modules/pytest-asyncio/default.nix
+++ b/pkgs/development/python-modules/pytest-asyncio/default.nix
@@ -9,16 +9,16 @@
 
 buildPythonPackage rec {
   pname = "pytest-asyncio";
-  version = "0.21.1"; # N.B.: when updating, tests bleak and aioesphomeapi tests
-  format = "pyproject";
+  version = "0.23.5"; # N.B.: when updating, tests bleak and aioesphomeapi tests
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pytest-dev";
-    repo = pname;
+    repo = "pytest-asyncio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Wpo8MpCPGiXrckT2x5/yBYtGlzso/L2urG7yGc7SPkA=";
+    hash = "sha256-sA9ix69oywr1D6ByAxzAFWrAPHJOuq4C8UMiMNkmGJs=";
   };
 
   outputs = [
diff --git a/pkgs/development/python-modules/pytest-benchmark/default.nix b/pkgs/development/python-modules/pytest-benchmark/default.nix
index f9011b6d721b..dc2c27137169 100644
--- a/pkgs/development/python-modules/pytest-benchmark/default.nix
+++ b/pkgs/development/python-modules/pytest-benchmark/default.nix
@@ -14,16 +14,16 @@
 , pytestCheckHook
 , pytest-xdist
 , pythonOlder
-, isPy311
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pytest-benchmark";
   version = "4.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "ionelmc";
@@ -33,10 +33,24 @@ buildPythonPackage rec {
   };
 
   patches = [
+    # replace distutils.spawn.find_executable with shutil.which
     (fetchpatch {
       url = "https://github.com/ionelmc/pytest-benchmark/commit/728752d2976ef53fde7e40beb3e55f09cf4d4736.patch";
       hash = "sha256-WIQADCLey5Y79UJUj9J5E02HQ0O86xBh/3IeGLpVrWI=";
     })
+    # fix tests with python3.11+; https://github.com/ionelmc/pytest-benchmark/pull/232
+    (fetchpatch {
+      url = "https://github.com/ionelmc/pytest-benchmark/commit/b2f624afd68a3090f20187a46284904dd4baa4f6.patch";
+      hash = "sha256-cylxPj/d0YzvOGw+ncVSCnQHwq2cukrgXhBHePPwjO0=";
+    })
+    (fetchpatch {
+      url = "https://github.com/ionelmc/pytest-benchmark/commit/2b987f5be1873617f02f24cb6d76196f9aed21bd.patch";
+      hash = "sha256-92kWEd935Co6uc/1y5OGKsc5/or81bORSdaiQFjDyTw=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools
   ];
 
   buildInputs = [
@@ -64,24 +78,23 @@ buildPythonPackage rec {
     mercurial
     pytestCheckHook
     pytest-xdist
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+
+  pytestFlagsArray = [
+    "-W" "ignore::DeprecationWarning"
+  ];
 
   preCheck = ''
     export PATH="$out/bin:$PATH"
   '';
 
-  disabledTests = [
+  disabledTests = lib.optionals (pythonOlder "3.12") [
     # AttributeError: 'PluginImportFixer' object has no attribute 'find_spec'
     "test_compare_1"
     "test_compare_2"
     "test_regression_checks"
+    "test_regression_checks_inf"
     "test_rendering"
-  ]
-  # tests are broken in 3.11
-  # https://github.com/ionelmc/pytest-benchmark/issues/231
-  ++ lib.optionals isPy311 [
-    "test_abort_broken"
-    "test_clonefunc"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pytest-describe/default.nix b/pkgs/development/python-modules/pytest-describe/default.nix
index a7c389202ee9..c1118327734c 100644
--- a/pkgs/development/python-modules/pytest-describe/default.nix
+++ b/pkgs/development/python-modules/pytest-describe/default.nix
@@ -11,7 +11,7 @@
 
 let
   pname = "pytest-describe";
-  version = "2.1.0";
+  version = "2.2.0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -19,7 +19,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BjDJWsSUKrjc2OdmI2+GQ2tJhIltsMBZ/CNP72b+lzI=";
+    hash = "sha256-ObsF65DySX2co0Lvmgt/pbraflhQWuwz9m1mHWMZVbc=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-examples/default.nix b/pkgs/development/python-modules/pytest-examples/default.nix
index 3ac626a3f997..8a53bc17f12b 100644
--- a/pkgs/development/python-modules/pytest-examples/default.nix
+++ b/pkgs/development/python-modules/pytest-examples/default.nix
@@ -45,7 +45,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     black
-    ruff
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/pytest-harvest/default.nix b/pkgs/development/python-modules/pytest-harvest/default.nix
new file mode 100644
index 000000000000..32c195171934
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-harvest/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools-scm
+, pytest-runner
+, pytest
+, decopatch
+, makefun
+, six
+, pytestCheckHook
+, numpy
+, pandas
+, tabulate
+, pytest-cases
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-harvest";
+  version = "1.10.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "smarie";
+    repo = "python-pytest-harvest";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ebzE63d7zt9G9HgbLHaE/USZZpUd3y3vd0kNdT/wWw0=";
+  };
+
+  # create file, that is created by setuptools_scm
+  # we disable this file creation as it touches internet
+  postPatch = ''
+    echo "version = '${version}'" > pytest_harvest/_version.py
+  '';
+
+  nativeBuildInputs = [
+    setuptools-scm
+    pytest-runner
+  ];
+
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [
+    decopatch
+    makefun
+    six
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    numpy
+    pandas
+    tabulate
+    pytest-cases
+  ];
+
+  pythonImportsCheck = [ "pytest_harvest" ];
+
+  meta = with lib; {
+    description = "Store data created during your `pytest` tests execution, and retrieve it at the end of the session, e.g. for applicative benchmarking purposes";
+    homepage = "https://github.com/smarie/python-pytest-harvest";
+    changelog = "https://github.com/smarie/python-pytest-harvest/releases/tag/${src.rev}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ mbalatsko ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-httpx/default.nix b/pkgs/development/python-modules/pytest-httpx/default.nix
index 186c81a93c60..85eabe87a76d 100644
--- a/pkgs/development/python-modules/pytest-httpx/default.nix
+++ b/pkgs/development/python-modules/pytest-httpx/default.nix
@@ -8,11 +8,12 @@
 , pythonOlder
 , pythonRelaxDepsHook
 , setuptools
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-httpx";
-  version = "0.27.0";
+  version = "0.30.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,12 +22,13 @@ buildPythonPackage rec {
     owner = "Colin-b";
     repo = "pytest_httpx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5CDmIjehW9/aBxoFVbo8W2fAwgIrPPxEqHQjxsTPlpY=";
+    hash = "sha256-JfyqeOCHNHO4IEHVrh47TdWvb8lcy/1Prqnfphs0ufM=";
   };
 
   nativeBuildInputs = [
     pythonRelaxDepsHook
     setuptools
+    setuptools-scm
   ];
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-mypy/default.nix b/pkgs/development/python-modules/pytest-mypy/default.nix
index 4e368fb1f169..bfe9fb613e24 100644
--- a/pkgs/development/python-modules/pytest-mypy/default.nix
+++ b/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -1,27 +1,38 @@
 { lib
+, attrs
 , buildPythonPackage
 , fetchPypi
 , filelock
 , pytest
 , mypy
+, setuptools
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-mypy";
   version = "0.10.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-+EWPZCMj8Toso+LmFQn3dnlmtSe02K3M1QMsPntP09s=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
 
-  buildInputs = [ pytest ];
+  buildInputs = [
+    pytest
+  ];
 
-  propagatedBuildInputs = [ mypy filelock ];
+  propagatedBuildInputs = [
+    attrs
+    mypy
+    filelock
+  ];
 
   # does not contain tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-testinfra/default.nix b/pkgs/development/python-modules/pytest-testinfra/default.nix
index bdf97e9c5c31..698b61ce058e 100644
--- a/pkgs/development/python-modules/pytest-testinfra/default.nix
+++ b/pkgs/development/python-modules/pytest-testinfra/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-testinfra";
-  version = "10.0.0";
+  version = "10.1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-L7fQGFRYqbpmn/FNDdvsizkAxr3j+2+tmwlzdM5Kt30=";
+    hash = "sha256-93Qzm5R3Ws3zqMSjeTqOrS6N/HD/NLd4vhWquhQPoZ4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-textual-snapshot/default.nix b/pkgs/development/python-modules/pytest-textual-snapshot/default.nix
new file mode 100644
index 000000000000..d9b51373bcdf
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-textual-snapshot/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, jinja2
+, pytest
+, rich
+, pythonOlder
+, syrupy
+, textual
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-textual-snapshot";
+  version = "0.4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Textualize";
+    repo = "pytest-textual-snapshot";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-XkXeyodRdwWqCP63Onx82Z3IbNLDDR/Lvaw8xUY7fAg=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  buildInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    jinja2
+    rich
+    syrupy
+    textual
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pytest_textual_snapshot"
+  ];
+
+  meta = with lib; {
+    description = "Snapshot testing for Textual applications";
+    homepage = "https://github.com/Textualize/pytest-textual-snapshot";
+    changelog = "https://github.com/Textualize/pytest-textual-snapshot/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-bring-api/default.nix b/pkgs/development/python-modules/python-bring-api/default.nix
new file mode 100644
index 000000000000..a5003690c404
--- /dev/null
+++ b/pkgs/development/python-modules/python-bring-api/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "python-bring-api";
+  version = "3.0.0-unstable-2024-02-03";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "eliasball";
+    repo = "python-bring-api";
+    # https://github.com/eliasball/python-bring-api/issues/16
+    rev = "8043562b22be1f6421a8771774868b105b6ca375";
+    hash = "sha256-VCGCm9N6pMhEYT9WuWh7qKacZEf6bcIpEsILfCC6his=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "python_bring_api"
+  ];
+
+  meta = with lib; {
+    description = "Module to access the Bring! shopping lists API";
+    homepage = "https://github.com/eliasball/python-bring-api";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-docx/default.nix b/pkgs/development/python-modules/python-docx/default.nix
index 37a10bdd542c..6a5c01d216da 100644
--- a/pkgs/development/python-modules/python-docx/default.nix
+++ b/pkgs/development/python-modules/python-docx/default.nix
@@ -47,6 +47,16 @@ buildPythonPackage rec {
     "docx"
   ];
 
+  disabledTests = [
+    # https://github.com/python-openxml/python-docx/issues/1302
+    "it_accepts_unicode_providing_there_is_no_encoding_declaration"
+  ];
+
+  pytestFlagsArray = [
+    "-W"
+    "ignore::DeprecationWarning"
+  ];
+
   meta = with lib; {
     description = "Create and update Microsoft Word .docx files";
     homepage = "https://python-docx.readthedocs.io/";
diff --git a/pkgs/development/python-modules/python-editor/default.nix b/pkgs/development/python-modules/python-editor/default.nix
index 948076b5f276..40c86f3cf527 100644
--- a/pkgs/development/python-modules/python-editor/default.nix
+++ b/pkgs/development/python-modules/python-editor/default.nix
@@ -1,13 +1,18 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+}:
 
-buildPythonPackage rec {
-  version = "1.0.4";
-  format = "setuptools";
+buildPythonPackage {
   pname = "python-editor";
+  version = "1.0.4-unstable-2023-10-11";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b";
+  src = fetchFromGitHub {
+    owner = "fmoo";
+    repo = "python-editor";
+    rev = "c6cd09069371781b2b9381839849a524d25db07f";
+    hash = "sha256-TjfY7ustZaNPmndHPVwmQ8zkYPmDs/C5SNJl1zXjprc=";
   };
 
   # No proper tests
diff --git a/pkgs/development/python-modules/python-engineio/default.nix b/pkgs/development/python-modules/python-engineio/default.nix
index 59cd210a0a04..952893fec269 100644
--- a/pkgs/development/python-modules/python-engineio/default.nix
+++ b/pkgs/development/python-modules/python-engineio/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "python-engineio";
-  version = "4.8.0";
+  version = "4.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "miguelgrinberg";
     repo = "python-engineio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-btXwx9GRLBcjtcGdgckb2Y/MxC0E/rKTWKgkP8olezo=";
+    hash = "sha256-FpPGIK5HVtTzDOpORo+WPhS1860P3dm1nJkvakpzsjE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-homewizard-energy/default.nix b/pkgs/development/python-modules/python-homewizard-energy/default.nix
index 66d97a4b33b9..20bd7409f6cd 100644
--- a/pkgs/development/python-modules/python-homewizard-energy/default.nix
+++ b/pkgs/development/python-modules/python-homewizard-energy/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "python-homewizard-energy";
-  version = "4.3.0";
+  version = "4.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "DCSBL";
     repo = "python-homewizard-energy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5e2PzH+kDOopH4LYOq49SlHsfBbZZk60U1BSN8OnrKI=";
+    hash = "sha256-LpxXTzUb+N15lGno3pAhRSEJCb4NmwBcGQ/PshI9gYA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-matter-server/default.nix b/pkgs/development/python-modules/python-matter-server/default.nix
index 8c6ccf5754e6..570ee23fcbf4 100644
--- a/pkgs/development/python-modules/python-matter-server/default.nix
+++ b/pkgs/development/python-modules/python-matter-server/default.nix
@@ -18,6 +18,7 @@
 # optionals
 , cryptography
 , home-assistant-chip-core
+, zeroconf
 
 # tests
 , python
@@ -28,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "python-matter-server";
-  version = "5.1.1";
+  version = "5.5.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -37,7 +38,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "python-matter-server";
     rev = "refs/tags/${version}";
-    hash = "sha256-y4gapml7rIwOu1TVDEHPch7JS5Rl/cIfMLeVMIFzXOY=";
+    hash = "sha256-8daAABR5l8ZEX+PR4XrxRHlLllgnOVE4Q9yY/7UQXHw=";
   };
 
   postPatch = ''
@@ -63,6 +64,7 @@ buildPythonPackage rec {
     server = [
       cryptography
       home-assistant-chip-core
+      zeroconf
     ];
   };
 
@@ -70,7 +72,7 @@ buildPythonPackage rec {
     pytest-aiohttp
     pytestCheckHook
   ]
-  ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   preCheck = let
     pythonEnv = python.withPackages (_: propagatedBuildInputs ++ nativeCheckInputs ++ [ pytest ]);
diff --git a/pkgs/development/python-modules/python-multipart/default.nix b/pkgs/development/python-modules/python-multipart/default.nix
index 3c04398e56d4..f65beeed10d5 100644
--- a/pkgs/development/python-modules/python-multipart/default.nix
+++ b/pkgs/development/python-modules/python-multipart/default.nix
@@ -6,17 +6,24 @@
 , mock
 , pyyaml
 , six
+
+# for passthru.tests
+, asgi-csrf
+, connexion
+, fastapi
+, gradio
+, starlette
 }:
 
 buildPythonPackage rec {
   pname = "python-multipart";
-  version = "0.0.6";
-  format = "pyproject";
+  version = "0.0.9";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "python_multipart";
     inherit version;
-    hash = "sha256-6ZJagLtmhSnxtnx/2wpdrN18v8b7C/8+pEP+Ir3WITI=";
+    hash = "sha256-A/VGiMZj8beXcQXwIQQ7B5MVHkyxwanUoR/BPWIsQCY=";
   };
 
   nativeBuildInputs = [
@@ -31,22 +38,26 @@ buildPythonPackage rec {
     "multipart"
   ];
 
-  preCheck = ''
-    # https://github.com/andrew-d/python-multipart/issues/41
-    substituteInPlace multipart/tests/test_multipart.py \
-      --replace "yaml.load" "yaml.safe_load"
-  '';
-
   nativeCheckInputs = [
     pytestCheckHook
     mock
     pyyaml
   ];
 
+  passthru.tests = {
+    inherit
+      asgi-csrf
+      connexion
+      fastapi
+      gradio
+      starlette
+    ;
+  };
+
   meta = with lib; {
     description = "A streaming multipart parser for Python";
     homepage = "https://github.com/andrew-d/python-multipart";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ ris ];
   };
 }
diff --git a/pkgs/development/python-modules/python-openstackclient/default.nix b/pkgs/development/python-modules/python-openstackclient/default.nix
index ef8c7cb59fae..79306e4d11ab 100644
--- a/pkgs/development/python-modules/python-openstackclient/default.nix
+++ b/pkgs/development/python-modules/python-openstackclient/default.nix
@@ -11,6 +11,7 @@
 , python-novaclient
 , requests-mock
 , sphinx
+, sphinxcontrib-apidoc
 , stestr
 }:
 
@@ -28,6 +29,7 @@ buildPythonPackage rec {
     installShellFiles
     openstackdocstheme
     sphinx
+    sphinxcontrib-apidoc
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-slugify/default.nix b/pkgs/development/python-modules/python-slugify/default.nix
index cb525a5922be..6ad8a1dc9a54 100644
--- a/pkgs/development/python-modules/python-slugify/default.nix
+++ b/pkgs/development/python-modules/python-slugify/default.nix
@@ -3,24 +3,29 @@
 , fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , text-unidecode
 , unidecode
 }:
 
 buildPythonPackage rec {
   pname = "python-slugify";
-  version = "8.0.1";
-  format = "setuptools";
+  version = "8.0.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "un33k";
-    repo = pname;
+    repo =  "python-slugify";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MJac63XjgWdUQdyyEm8O7gAGVszmHxZzRF4frJtR0BU=";
+    hash = "sha256-zReUMIkItnDot3XyYCoPUNHrrAllbClWFYcxdTy3A30=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     text-unidecode
   ];
diff --git a/pkgs/development/python-modules/python-socketio/default.nix b/pkgs/development/python-modules/python-socketio/default.nix
index f8e189f4bd8c..bf6ce265e016 100644
--- a/pkgs/development/python-modules/python-socketio/default.nix
+++ b/pkgs/development/python-modules/python-socketio/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "python-socketio";
-  version = "5.10.0";
+  version = "5.11.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "miguelgrinberg";
     repo = "python-socketio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nlzTzIswMRjvJ9l9TOtVvRvbKlQPvNH0/P1NIbQCmy8=";
+    hash = "sha256-miIl/+3JtjtoQaS6Jy0M9lPQJQp3VlpvrO5Hqlrq5JM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-technove/default.nix b/pkgs/development/python-modules/python-technove/default.nix
new file mode 100644
index 000000000000..795ddf5b1236
--- /dev/null
+++ b/pkgs/development/python-modules/python-technove/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, aiohttp
+, aresponses
+, awesomeversion
+, backoff
+, buildPythonPackage
+, cachetools
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "python-technove";
+  version = "1.2.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "Moustachauve";
+    repo = "pytechnove";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-kc5jR0IM2OagvmtqhicnBbrwrdk3E/iJhRIgUtKoirI=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov" ""
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    awesomeversion
+    backoff
+    cachetools
+    yarl
+  ];
+
+  nativeCheckInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "technove"
+  ];
+
+  meta = with lib; {
+    description = "Python library to interact with TechnoVE local device API";
+    homepage = "https://github.com/Moustachauve/pytechnove";
+    changelog = "https://github.com/Moustachauve/pytechnove/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-telegram-bot/default.nix b/pkgs/development/python-modules/python-telegram-bot/default.nix
index 7fab5e1364a1..9ac37aa4f596 100644
--- a/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -21,16 +21,16 @@
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "20.7";
-  format = "pyproject";
+  version = "20.8";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "python-telegram-bot";
+    repo = "python-telegram-bot";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lUErrBF4iucgWRRT535pwaayYY+gLgsT6Zmc+FM8aE0=";
+    hash = "sha256-FvVUl0bV95IDPbG+6N9b3ZIsnLAUwVcdS4cu0I1aNDw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-youtube/default.nix b/pkgs/development/python-modules/python-youtube/default.nix
index 7a0d04e979b0..62987a03bc43 100644
--- a/pkgs/development/python-modules/python-youtube/default.nix
+++ b/pkgs/development/python-modules/python-youtube/default.nix
@@ -11,14 +11,14 @@
 }:
 buildPythonPackage rec {
   pname = "python-youtube";
-  version = "0.9.3";
+  version = "0.9.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "sns-sdks";
     repo = "python-youtube";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vd+cbESypc/q7eSrERqkMvGhVMIfKMsoxPblPJwPiUg=";
+    hash = "sha256-OesJfnXI1w2d5moJyqvrWU3sCxDaqnk1bAhtK6SPjFw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pytz/default.nix b/pkgs/development/python-modules/pytz/default.nix
index 8d4bcfbb3c6f..359c7c142d5e 100644
--- a/pkgs/development/python-modules/pytz/default.nix
+++ b/pkgs/development/python-modules/pytz/default.nix
@@ -1,16 +1,24 @@
-{ lib, buildPythonPackage, fetchPypi, unittestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, unittestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pytz";
-  version = "2023.3.post1";
-
-  format = "setuptools";
+  version = "2024.1";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-e0/dvrlKHrpLVX2iTxn9+dtXUZJUQnCpEB2FCfn0PXs=";
+    hash = "sha256-KilzXqnBi68UtEiEa95aSAMO0mdXhHLYlVzQ50Q6mBI=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [ unittestCheckHook ];
 
   unittestFlagsArray = [ "-s" "pytz/tests" ];
@@ -18,6 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytz" ];
 
   meta = with lib; {
+    changelog = "https://launchpad.net/pytz/+announcements";
     description = "World timezone definitions, modern and historical";
     homepage = "https://pythonhosted.org/pytz";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pyuavcan/default.nix b/pkgs/development/python-modules/pyuavcan/default.nix
deleted file mode 100644
index 33efaf5f790a..000000000000
--- a/pkgs/development/python-modules/pyuavcan/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, nunavut
-, pyserial , pytest, ruamel-yaml}:
-
- buildPythonPackage rec {
-  pname = "pyuavcan";
-  version = "1.1.0.dev1";
-  format = "setuptools";
-  disabled = pythonOlder "3.7"; # only python>=3.7 is supported
-
-  src = fetchFromGitHub {
-    owner = "UAVCAN";
-    repo = pname;
-    rev = version;
-    hash = "sha256-ChNoYHuZulPLrxYvxeVO9Tyt8rymlk3p/OkYaG2rqzo=";
-  };
-
-  propagatedBuildInputs = [
-    numpy
-    nunavut
-    pyserial
-    pytest
-    ruamel-yaml
-  ];
-
-  # allow for writable directory for darwin
-  preBuild = ''
-    export HOME=$TMPDIR
-    export PYTHONASYNCIODEBUG=1
-  '';
-
-  # tests fail ATM.
-  doCheck = false;
-
-  # check at least that import works, as tests fail
-  pythonImportsCheck = [
-    "pyuavcan"
-  ];
-
-  meta = with lib; {
-    description = "A full-featured implementation of the UAVCAN protocol stack";
-    longDescription = ''
-      It is intended for non-embedded, user-facing applications such as GUI
-      software, diagnostic tools, automation scripts, prototypes, and various
-      R&D cases.  PyUAVCAN consists of a Python library (package) and a simple
-      CLI tool for basic diagnostics and shell script automation.
-    '';
-    homepage = "https://pyuavcan.readthedocs.io";
-    maintainers = with maintainers; [ wucke13 ];
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/development/python-modules/pyunifiprotect/default.nix b/pkgs/development/python-modules/pyunifiprotect/default.nix
index cc846a024d8e..79b940d5be1d 100644
--- a/pkgs/development/python-modules/pyunifiprotect/default.nix
+++ b/pkgs/development/python-modules/pyunifiprotect/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "pyunifiprotect";
-  version = "4.23.3";
+  version = "4.23.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "briis";
     repo = "pyunifiprotect";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QWIiBuKDhSNYVyEm45QV4a2UxADDrBdiCBeJI+a6v7c=";
+    hash = "sha256-sBdu4XJkEtHf6dlHgJKFQvONp1x89NiS2EgxMiJFX7A=";
   };
 
   env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pyvlx/default.nix b/pkgs/development/python-modules/pyvlx/default.nix
index f70b12e36251..59fb541503e0 100644
--- a/pkgs/development/python-modules/pyvlx/default.nix
+++ b/pkgs/development/python-modules/pyvlx/default.nix
@@ -7,11 +7,12 @@
 , pyyaml
 , setuptools
 , typing-extensions
+, zeroconf
 }:
 
 buildPythonPackage rec {
   pname = "pyvlx";
-  version = "0.2.21";
+  version = "0.2.22";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "Julius2342";
     repo = "pyvlx";
     rev = "refs/tags/${version}";
-    hash = "sha256-t6lbpP9IwNhXpoZ9+0n9vKCuZ+azWqP7w5v0BfqbMcs=";
+    hash = "sha256-Ne/mEgvD2ANb5ER0y3eSW4TsPmrqDX1Pvki+0cb+t7w=";
   };
 
   nativeBuildInputs = [
@@ -30,6 +31,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     pyyaml
     typing-extensions
+    zeroconf
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix
index e26745e77566..c50def28bc11 100644
--- a/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix
+++ b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "qcodes-contrib-drivers";
-  version = "0.18.0";
+  version = "0.21.0";
 
   disabled = pythonOlder "3.8";
   format = "pyproject";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "QCoDeS";
     repo = "Qcodes_contrib_drivers";
-    rev = "v${version}";
-    sha256 = "sha256-hg3jSiuOkiuOInnUzzlKtBeoP5zkCDBQ3xP6KCwq+lU=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-7WkG6Bq4J4PU4eWX52RaupQ8cNzE+sJ7s3PoXFRxG2w=";
   };
 
   nativeBuildInputs = [ setuptools versioningit ];
diff --git a/pkgs/development/python-modules/qcodes/default.nix b/pkgs/development/python-modules/qcodes/default.nix
index b8b7ca6a5eb9..740939959e76 100644
--- a/pkgs/development/python-modules/qcodes/default.nix
+++ b/pkgs/development/python-modules/qcodes/default.nix
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
-    owner = "QCoDeS";
+    owner = "microsoft";
     repo = "Qcodes";
     rev = "refs/tags/v${version}";
     hash = "sha256-AggAVq/yfJUZRwoQb29QoIbVIAdV3solKCjivqucLZk=";
@@ -119,6 +119,8 @@ buildPythonPackage rec {
     "-n"
     "$NIX_BUILD_CORES"
     # Follow upstream with settings
+    "-m 'not serial'"
+    "--hypothesis-profile ci"
     "--durations=20"
   ];
 
@@ -141,12 +143,22 @@ buildPythonPackage rec {
     "test_get_array_in_scalar_param_data"
     "test_get_parameter_data"
     "test_ramp_safely"
+
+    # more flaky tests
+    # https://github.com/microsoft/Qcodes/issues/5551
+    "test_query_close_once_at_init"
+    "test_step_ramp"
   ];
 
   pythonImportsCheck = [
     "qcodes"
   ];
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail 'default-version = "0.0"' 'default-version = "${version}"'
+  '';
+
   postInstall = ''
     export HOME="$TMPDIR"
   '';
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index 60ed1433794a..6b542b7d04f0 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -6,7 +6,7 @@
 , httpx
 , iso8601
 , poetry-core
-, pydantic_1
+, pydantic
 , pyjwt
 , pytest-asyncio
 , pytestCheckHook
@@ -47,6 +47,7 @@ buildPythonPackage rec {
     "attrs"
     "httpx"
     "iso8601"
+    "pydantic"
   ];
 
   nativeBuildInputs = [
@@ -58,7 +59,7 @@ buildPythonPackage rec {
     attrs
     httpx
     iso8601
-    pydantic_1
+    pydantic
     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
new file mode 100644
index 000000000000..08a2ffb732ac
--- /dev/null
+++ b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
@@ -0,0 +1,4053 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+
+[[package]]
+name = "approx"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
+dependencies = [
+ "num-complex",
+ "num-traits",
+]
+
+[[package]]
+name = "arc-swap"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+
+[[package]]
+name = "assert2"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaf98d1183406dcb8f8b545e1f24829d75c1a9d35eec4b86309a22aa8b6d8e95"
+dependencies = [
+ "assert2-macros",
+ "is-terminal",
+ "yansi",
+]
+
+[[package]]
+name = "assert2-macros"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c55bdf3e6f792f8f1c750bb6886b7ca40fa5a354ddb7a4dee550b93985a9235"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "async-socks5"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77f634add2445eb2c1f785642a67ca1073fedd71e73dc3ca69435ef9b9bdedc7"
+dependencies = [
+ "async-trait",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "async-stream"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+dependencies = [
+ "async-stream-impl",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-stream-impl"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.74"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "axum"
+version = "0.6.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+dependencies = [
+ "async-trait",
+ "axum-core",
+ "bitflags 1.3.2",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "itoa",
+ "matchit",
+ "memchr",
+ "mime",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustversion",
+ "serde",
+ "sync_wrapper",
+ "tower",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-core"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "mime",
+ "rustversion",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+
+[[package]]
+name = "bindgen"
+version = "0.53.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5"
+dependencies = [
+ "bitflags 1.3.2",
+ "cexpr",
+ "cfg-if 0.1.10",
+ "clang-sys",
+ "clap",
+ "env_logger",
+ "lazy_static",
+ "lazycell",
+ "log",
+ "peeking_take_while",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "which 3.1.1",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "built"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b99c4cdc7b2c2364182331055623bdf45254fcb679fea565c40c3c11c101889a"
+dependencies = [
+ "cargo-lock",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[package]]
+name = "bytecount"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "cached"
+version = "0.44.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b195e4fbc4b6862bbd065b991a34750399c119797efff72492f28a5864de8700"
+dependencies = [
+ "async-trait",
+ "cached_proc_macro",
+ "cached_proc_macro_types",
+ "futures",
+ "hashbrown 0.13.2",
+ "instant",
+ "once_cell",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "cached_proc_macro"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b48814962d2fd604c50d2b9433c2a41a0ab567779ee2c02f7fba6eca1221f082"
+dependencies = [
+ "cached_proc_macro_types",
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "cached_proc_macro_types"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663"
+
+[[package]]
+name = "cargo-lock"
+version = "9.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72"
+dependencies = [
+ "semver",
+ "serde",
+ "toml 0.7.8",
+ "url",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "jobserver",
+ "libc",
+]
+
+[[package]]
+name = "cexpr"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+dependencies = [
+ "nom 5.1.3",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clang-sys"
+version = "0.29.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading 0.5.2",
+]
+
+[[package]]
+name = "clap"
+version = "2.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.3.2",
+ "strsim 0.8.0",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "console"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crossbeam"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+dependencies = [
+ "autocfg",
+ "cfg-if 1.0.0",
+ "crossbeam-utils",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "ct-logs"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8"
+dependencies = [
+ "sct 0.6.1",
+]
+
+[[package]]
+name = "darling"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
+
+[[package]]
+name = "derive_builder"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8"
+dependencies = [
+ "derive_builder_macro",
+]
+
+[[package]]
+name = "derive_builder_core"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_builder_macro"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e"
+dependencies = [
+ "derive_builder_core",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "dircpy"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8466f8d28ca6da4c9dfbbef6ad4bff6f2fdd5e412d821025b0d3f0a9d74a8c1e"
+dependencies = [
+ "jwalk",
+ "log",
+ "walkdir",
+]
+
+[[package]]
+name = "either"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "enum-as-inner"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "erased-serde"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
+dependencies = [
+ "serde",
+]
+
+[[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.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "float-cmp"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
+dependencies = [
+ "num-traits",
+]
+
+[[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 = "futures"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+
+[[package]]
+name = "futures-task"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+
+[[package]]
+name = "futures-timer"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+
+[[package]]
+name = "futures-util"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "h2"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap 2.1.0",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "headers"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
+dependencies = [
+ "base64 0.21.5",
+ "bytes",
+ "headers-core",
+ "http",
+ "httpdate",
+ "mime",
+ "sha1",
+]
+
+[[package]]
+name = "headers-core"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
+dependencies = [
+ "http",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "home"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "http"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "humantime"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+dependencies = [
+ "quick-error",
+]
+
+[[package]]
+name = "hyper"
+version = "0.14.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2 0.4.10",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-proxy"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc"
+dependencies = [
+ "bytes",
+ "futures",
+ "headers",
+ "http",
+ "hyper",
+ "hyper-rustls 0.22.1",
+ "rustls-native-certs 0.5.0",
+ "tokio",
+ "tokio-rustls 0.22.0",
+ "tower-service",
+ "webpki",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64"
+dependencies = [
+ "ct-logs",
+ "futures-util",
+ "hyper",
+ "log",
+ "rustls 0.19.1",
+ "rustls-native-certs 0.5.0",
+ "tokio",
+ "tokio-rustls 0.22.0",
+ "webpki",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "rustls 0.21.9",
+ "tokio",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-socks2"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc38166fc2732d450e9372388d269eb38ff0b75a3cfb4c542e65b2f6893629c4"
+dependencies = [
+ "async-socks5",
+ "futures",
+ "http",
+ "hyper",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "hyper-timeout"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
+dependencies = [
+ "hyper",
+ "pin-project-lite",
+ "tokio",
+ "tokio-io-timeout",
+]
+
+[[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 = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+]
+
+[[package]]
+name = "indoc"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+
+[[package]]
+name = "insta"
+version = "1.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
+dependencies = [
+ "console",
+ "lazy_static",
+ "linked-hash-map",
+ "similar",
+ "yaml-rust",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "inventory"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0508c56cfe9bfd5dfeb0c22ab9a6abfda2f27bdca422132e494266351ed8d83c"
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "is-terminal"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+dependencies = [
+ "hermit-abi 0.3.3",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+
+[[package]]
+name = "jobserver"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "jsonwebtoken"
+version = "8.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
+dependencies = [
+ "base64 0.21.5",
+ "pem",
+ "ring 0.16.20",
+ "serde",
+ "serde_json",
+ "simple_asn1",
+]
+
+[[package]]
+name = "jwalk"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56"
+dependencies = [
+ "crossbeam",
+ "rayon",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
+name = "lexical"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6"
+dependencies = [
+ "lexical-core",
+]
+
+[[package]]
+name = "lexical-core"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
+dependencies = [
+ "lexical-parse-float",
+ "lexical-parse-integer",
+ "lexical-util",
+ "lexical-write-float",
+ "lexical-write-integer",
+]
+
+[[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 = "lexical-write-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
+dependencies = [
+ "lexical-util",
+ "lexical-write-integer",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-integer"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.150"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+
+[[package]]
+name = "libloading"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
+dependencies = [
+ "cc",
+ "winapi",
+]
+
+[[package]]
+name = "libloading"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+dependencies = [
+ "cfg-if 1.0.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "libquil-sys"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1c6dd6ae79389c6811ea65beac8ce9b43cccc61ebc457a13ef16c500a65ab47"
+dependencies = [
+ "bindgen",
+ "cc",
+ "libc",
+ "libloading 0.8.1",
+ "num-complex",
+ "paste",
+ "pkg-config",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "maplit"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+
+[[package]]
+name = "matchit"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
+
+[[package]]
+name = "matrixmultiply"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
+dependencies = [
+ "autocfg",
+ "rawpointer",
+]
+
+[[package]]
+name = "memchr"
+version = "2.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "multimap"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
+
+[[package]]
+name = "ndarray"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
+dependencies = [
+ "approx",
+ "matrixmultiply",
+ "num-complex",
+ "num-integer",
+ "num-traits",
+ "rawpointer",
+ "serde",
+]
+
+[[package]]
+name = "nom"
+version = "5.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b"
+dependencies = [
+ "memchr",
+ "version_check",
+]
+
+[[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 = "nom_locate"
+version = "4.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e3c83c053b0713da60c5b8de47fe8e494fe3ece5267b2f23090a07a053ba8f3"
+dependencies = [
+ "bytecount",
+ "memchr",
+ "nom 7.1.3",
+]
+
+[[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 = "num"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
+dependencies = [
+ "num-bigint",
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+ "serde",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+dependencies = [
+ "num-traits",
+ "serde",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+ "serde",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+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 0.3.3",
+ "libc",
+]
+
+[[package]]
+name = "numpy"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef41cbb417ea83b30525259e30ccef6af39b31c240bda578889494c5392d331"
+dependencies = [
+ "libc",
+ "ndarray",
+ "num-complex",
+ "num-integer",
+ "num-traits",
+ "pyo3",
+ "rustc-hash",
+]
+
+[[package]]
+name = "object"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "opentelemetry"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54"
+dependencies = [
+ "opentelemetry_api",
+ "opentelemetry_sdk",
+]
+
+[[package]]
+name = "opentelemetry-http"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7594ec0e11d8e33faf03530a4c49af7064ebba81c1480e01be67d90b356508b"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "http",
+ "opentelemetry_api",
+]
+
+[[package]]
+name = "opentelemetry_api"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b"
+dependencies = [
+ "futures-channel",
+ "futures-util",
+ "indexmap 1.9.3",
+ "js-sys",
+ "once_cell",
+ "pin-project-lite",
+ "thiserror",
+ "urlencoding",
+]
+
+[[package]]
+name = "opentelemetry_sdk"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026"
+dependencies = [
+ "async-trait",
+ "crossbeam-channel",
+ "futures-channel",
+ "futures-executor",
+ "futures-util",
+ "once_cell",
+ "opentelemetry_api",
+ "ordered-float",
+ "percent-encoding",
+ "rand",
+ "regex",
+ "thiserror",
+]
+
+[[package]]
+name = "ordered-float"
+version = "3.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc"
+dependencies = [
+ "num-traits",
+]
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "pbjson"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "048f9ac93c1eab514f9470c4bc8d97ca2a0a236b84f45cc19d69a59fc11467f6"
+dependencies = [
+ "base64 0.13.1",
+ "serde",
+]
+
+[[package]]
+name = "pbjson-build"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdbb7b706f2afc610f3853550cdbbf6372fd324824a087806bd4480ea4996e24"
+dependencies = [
+ "heck",
+ "itertools 0.10.5",
+ "prost",
+ "prost-types",
+]
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "pem"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+dependencies = [
+ "base64 0.13.1",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "petgraph"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+dependencies = [
+ "fixedbitset",
+ "indexmap 2.1.0",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "prettyplease"
+version = "0.1.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
+dependencies = [
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "prost"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
+dependencies = [
+ "bytes",
+ "prost-derive",
+]
+
+[[package]]
+name = "prost-build"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270"
+dependencies = [
+ "bytes",
+ "heck",
+ "itertools 0.10.5",
+ "lazy_static",
+ "log",
+ "multimap",
+ "petgraph",
+ "prettyplease",
+ "prost",
+ "prost-types",
+ "regex",
+ "syn 1.0.109",
+ "tempfile",
+ "which 4.4.2",
+]
+
+[[package]]
+name = "prost-derive"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
+dependencies = [
+ "anyhow",
+ "itertools 0.10.5",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "prost-types"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13"
+dependencies = [
+ "prost",
+]
+
+[[package]]
+name = "pyo3"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04e8453b658fe480c3e70c8ed4e3d3ec33eb74988bd186561b0cc66b85c3bc4b"
+dependencies = [
+ "cfg-if 1.0.0",
+ "indoc",
+ "inventory",
+ "libc",
+ "memoffset",
+ "num-complex",
+ "parking_lot",
+ "pyo3-build-config",
+ "pyo3-ffi",
+ "pyo3-macros",
+ "unindent",
+]
+
+[[package]]
+name = "pyo3-asyncio"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea6b68e93db3622f3bb3bf363246cf948ed5375afe7abff98ccbdd50b184995"
+dependencies = [
+ "futures",
+ "once_cell",
+ "pin-project-lite",
+ "pyo3",
+ "tokio",
+]
+
+[[package]]
+name = "pyo3-build-config"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a96fe70b176a89cff78f2fa7b3c930081e163d5379b4dcdf993e3ae29ca662e5"
+dependencies = [
+ "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-ffi"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "214929900fd25e6604661ed9cf349727c8920d47deff196c4e28165a6ef2a96b"
+dependencies = [
+ "libc",
+ "pyo3-build-config",
+]
+
+[[package]]
+name = "pyo3-log"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c09c2b349b6538d8a73d436ca606dab6ce0aaab4dad9e6b7bdd57a4f556c3bc3"
+dependencies = [
+ "arc-swap",
+ "log",
+ "pyo3",
+]
+
+[[package]]
+name = "pyo3-macros"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dac53072f717aa1bfa4db832b39de8c875b7c7af4f4a6fe93cdbf9264cf8383b"
+dependencies = [
+ "proc-macro2",
+ "pyo3-macros-backend",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "pyo3-macros-backend"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7774b5a8282bd4f25f803b1f0d945120be959a36c72e08e7cd031c792fdfd424"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "qcs"
+version = "0.20.4"
+dependencies = [
+ "assert2",
+ "async-trait",
+ "built",
+ "cached",
+ "derive_builder",
+ "enum-as-inner",
+ "erased-serde",
+ "float-cmp",
+ "futures",
+ "hex",
+ "indexmap 1.9.3",
+ "insta",
+ "itertools 0.11.0",
+ "lazy_static",
+ "libquil-sys",
+ "maplit",
+ "ndarray",
+ "num",
+ "qcs-api",
+ "qcs-api-client-common",
+ "qcs-api-client-grpc",
+ "qcs-api-client-openapi",
+ "quil-rs",
+ "regex",
+ "reqwest",
+ "rmp-serde",
+ "rstest",
+ "serde",
+ "serde_json",
+ "simple_logger",
+ "tempfile",
+ "test-case",
+ "thiserror",
+ "tokio",
+ "toml 0.7.8",
+ "tonic",
+ "tracing",
+ "tracing-subscriber",
+ "uuid",
+ "warp",
+ "zmq",
+]
+
+[[package]]
+name = "qcs-api"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b2f3479fd26e3d5b41f89fe422ab2289cb16fa871498545828a1abcc6f1f267"
+dependencies = [
+ "reqwest",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "url",
+]
+
+[[package]]
+name = "qcs-api-client-common"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc3356caa74bb697c4271c950a3040e8dbb9448a9bd0124411b9b43155b8e192"
+dependencies = [
+ "async-trait",
+ "futures",
+ "home",
+ "http",
+ "jsonwebtoken",
+ "reqwest",
+ "serde",
+ "thiserror",
+ "tokio",
+ "toml 0.7.8",
+ "tracing",
+ "url",
+ "urlpattern",
+]
+
+[[package]]
+name = "qcs-api-client-grpc"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37bd1842ca3485e8c0abf36be4cbcee1ea12e97da15ac731ce9dae20f7f58f41"
+dependencies = [
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-proxy",
+ "hyper-socks2",
+ "opentelemetry",
+ "opentelemetry-http",
+ "opentelemetry_api",
+ "pbjson",
+ "pbjson-build",
+ "prost",
+ "prost-build",
+ "qcs-api-client-common",
+ "serde",
+ "thiserror",
+ "tonic",
+ "tonic-build",
+ "tower",
+ "tracing",
+ "url",
+ "urlpattern",
+]
+
+[[package]]
+name = "qcs-api-client-openapi"
+version = "0.8.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c605c4bdf887f487dbe7c0055f303728a992a6d508eedc55d7efa41b36adba07"
+dependencies = [
+ "anyhow",
+ "qcs-api-client-common",
+ "reqwest",
+ "reqwest-middleware",
+ "reqwest-tracing",
+ "serde",
+ "serde_json",
+ "task-local-extensions",
+ "tracing",
+ "url",
+ "urlpattern",
+]
+
+[[package]]
+name = "qcs-sdk-python"
+version = "0.16.3"
+dependencies = [
+ "async-trait",
+ "numpy",
+ "once_cell",
+ "paste",
+ "pyo3",
+ "pyo3-asyncio",
+ "pyo3-build-config",
+ "pyo3-log",
+ "qcs",
+ "qcs-api",
+ "qcs-api-client-common",
+ "qcs-api-client-grpc",
+ "qcs-api-client-openapi",
+ "quil-rs",
+ "rigetti-pyo3",
+ "serde_json",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quil-rs"
+version = "0.22.5"
+source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.6.5#bfee2c882b402c7b14b921af2ca346b639378f4b"
+dependencies = [
+ "approx",
+ "indexmap 1.9.3",
+ "itertools 0.11.0",
+ "lexical",
+ "ndarray",
+ "nom 7.1.3",
+ "nom_locate",
+ "num-complex",
+ "once_cell",
+ "petgraph",
+ "regex",
+ "serde",
+ "strum",
+ "thiserror",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+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 = "rawpointer"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
+
+[[package]]
+name = "rayon"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+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 = "regex"
+version = "1.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "reqwest"
+version = "0.11.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
+dependencies = [
+ "base64 0.21.5",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls 0.24.2",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "mime_guess",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.21.9",
+ "rustls-native-certs 0.6.3",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "system-configuration",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "tokio-socks",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots",
+ "winreg",
+]
+
+[[package]]
+name = "reqwest-middleware"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88a3e86aa6053e59030e7ce2d2a3b258dd08fc2d337d52f73f6cb480f5858690"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "http",
+ "reqwest",
+ "serde",
+ "task-local-extensions",
+ "thiserror",
+]
+
+[[package]]
+name = "reqwest-tracing"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14b1e66540e0cac90acadaf7109bf99c90d95abcc94b4c096bfa16a2d7aa7a71"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "getrandom",
+ "matchit",
+ "opentelemetry",
+ "reqwest",
+ "reqwest-middleware",
+ "task-local-extensions",
+ "tracing",
+ "tracing-opentelemetry",
+]
+
+[[package]]
+name = "rigetti-pyo3"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff977cba40f2cadf214226cf51c9729a4f5730a5413f901246eed78cb6e795c9"
+dependencies = [
+ "num-complex",
+ "num-traits",
+ "paste",
+ "pyo3",
+ "time",
+]
+
+[[package]]
+name = "ring"
+version = "0.16.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+dependencies = [
+ "cc",
+ "libc",
+ "once_cell",
+ "spin 0.5.2",
+ "untrusted 0.7.1",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+dependencies = [
+ "cc",
+ "getrandom",
+ "libc",
+ "spin 0.9.8",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rmp"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20"
+dependencies = [
+ "byteorder",
+ "num-traits",
+ "paste",
+]
+
+[[package]]
+name = "rmp-serde"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a"
+dependencies = [
+ "byteorder",
+ "rmp",
+ "serde",
+]
+
+[[package]]
+name = "rstest"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de1bb486a691878cd320c2f0d319ba91eeaa2e894066d8b5f8f117c000e9d962"
+dependencies = [
+ "futures",
+ "futures-timer",
+ "rstest_macros",
+ "rustc_version",
+]
+
+[[package]]
+name = "rstest_macros"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290ca1a1c8ca7edb7c3283bd44dc35dd54fdec6253a3912e201ba1072018fca8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
+ "unicode-ident",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
+dependencies = [
+ "base64 0.13.1",
+ "log",
+ "ring 0.16.20",
+ "sct 0.6.1",
+ "webpki",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+dependencies = [
+ "log",
+ "ring 0.17.7",
+ "rustls-webpki",
+ "sct 0.7.1",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092"
+dependencies = [
+ "openssl-probe",
+ "rustls 0.19.1",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64 0.21.5",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring 0.17.7",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+
+[[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 = "schannel"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "sct"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
+dependencies = [
+ "ring 0.16.20",
+ "untrusted 0.7.1",
+]
+
+[[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring 0.17.7",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.193"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.193"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.108"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest",
+]
+
+[[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 = "shlex"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+
+[[package]]
+name = "similar"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+
+[[package]]
+name = "simple_asn1"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "simple_logger"
+version = "4.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0ca6504625ee1aa5fda33913d2005eab98c7a42dd85f116ecce3ff54c9d3ef"
+dependencies = [
+ "log",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+
+[[package]]
+name = "socket2"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strum"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 1.0.109",
+]
+
+[[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.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml 0.8.8",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
+
+[[package]]
+name = "task-local-extensions"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba323866e5d033818e3240feeb9f7db2c4296674e4d9e16b97b7bf8f490434e8"
+dependencies = [
+ "pin-utils",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+dependencies = [
+ "cfg-if 1.0.0",
+ "fastrand",
+ "redox_syscall",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "test-case"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8"
+dependencies = [
+ "test-case-macros",
+]
+
+[[package]]
+name = "test-case-core"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f"
+dependencies = [
+ "cfg-if 1.0.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "test-case-macros"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "test-case-core",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+dependencies = [
+ "cfg-if 1.0.0",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+dependencies = [
+ "deranged",
+ "itoa",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+
+[[package]]
+name = "time-macros"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
+dependencies = [
+ "time-core",
+]
+
+[[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 = "tokio"
+version = "1.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "socket2 0.5.5",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-io-timeout"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
+dependencies = [
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
+dependencies = [
+ "rustls 0.19.1",
+ "tokio",
+ "webpki",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls 0.21.9",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-socks"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0"
+dependencies = [
+ "either",
+ "futures-util",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.21.0",
+]
+
+[[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.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.1.0",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+dependencies = [
+ "indexmap 2.1.0",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tonic"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
+dependencies = [
+ "async-stream",
+ "async-trait",
+ "axum",
+ "base64 0.21.5",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-timeout",
+ "percent-encoding",
+ "pin-project",
+ "prost",
+ "rustls-native-certs 0.6.3",
+ "rustls-pemfile",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "tokio-stream",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tonic-build"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07"
+dependencies = [
+ "prettyplease",
+ "proc-macro2",
+ "prost-build",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "indexmap 1.9.3",
+ "pin-project",
+ "pin-project-lite",
+ "rand",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[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.39",
+]
+
+[[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.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[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-opentelemetry"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc09e402904a5261e42cf27aea09ccb7d5318c6717a9eec3d8e2e65c56b18f19"
+dependencies = [
+ "once_cell",
+ "opentelemetry",
+ "tracing",
+ "tracing-core",
+ "tracing-log 0.1.4",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log 0.2.0",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[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-ident"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987"
+dependencies = [
+ "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 = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[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.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unindent"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
+
+[[package]]
+name = "untrusted"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[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",
+]
+
+[[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "urlpattern"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609"
+dependencies = [
+ "derive_more",
+ "regex",
+ "serde",
+ "unic-ucd-ident",
+ "url",
+]
+
+[[package]]
+name = "uuid"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "walkdir"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "warp"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1e92e22e03ff1230c03a1a8ee37d2f89cd489e2e541b7550d6afad96faed169"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "headers",
+ "http",
+ "hyper",
+ "log",
+ "mime",
+ "mime_guess",
+ "percent-encoding",
+ "pin-project",
+ "rustls-pemfile",
+ "scoped-tls",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-stream",
+ "tokio-util",
+ "tower-service",
+ "tracing",
+]
+
+[[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.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+
+[[package]]
+name = "web-sys"
+version = "0.3.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki"
+version = "0.21.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
+dependencies = [
+ "ring 0.16.20",
+ "untrusted 0.7.1",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
+
+[[package]]
+name = "which"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "which"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix",
+]
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[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-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[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.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
+name = "winnow"
+version = "0.5.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if 1.0.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "yansi"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+
+[[package]]
+name = "zeromq-src"
+version = "0.2.6+4.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc120b771270365d5ed0dfb4baf1005f2243ae1ae83703265cb3504070f4160b"
+dependencies = [
+ "cc",
+ "dircpy",
+]
+
+[[package]]
+name = "zmq"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd3091dd571fb84a9b3e5e5c6a807d186c411c812c8618786c3c30e5349234e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+ "zmq-sys",
+]
+
+[[package]]
+name = "zmq-sys"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e8351dc72494b4d7f5652a681c33634063bbad58046c1689e75270908fdc864"
+dependencies = [
+ "libc",
+ "system-deps",
+ "zeromq-src",
+]
diff --git a/pkgs/development/python-modules/qcs-sdk-python/default.nix b/pkgs/development/python-modules/qcs-sdk-python/default.nix
new file mode 100644
index 000000000000..8144cad69133
--- /dev/null
+++ b/pkgs/development/python-modules/qcs-sdk-python/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, rustPlatform
+, quil
+, pytest-asyncio
+, pytestCheckHook
+, syrupy
+}:
+
+buildPythonPackage rec {
+  pname = "qcs-sdk-python";
+  version = "0.16.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "rigetti";
+    repo = "qcs-sdk-rust";
+    rev = "python/v${version}";
+    hash = "sha256-Q2PCARxaWqgVVnr2O+zhGcNHghC4gr31bxkv6+Rf/EQ=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "quil-rs-0.22.5" = "sha256-HUp41mOBjyAavhjFO5IJXHh2dVPcpFuDJ03nyRRuCCk=";
+    };
+  };
+
+  buildAndTestSubdir = "crates/python";
+
+  nativeBuildInputs = [
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
+  ];
+
+  propagatedBuildInputs = [
+    quil
+  ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+    syrupy
+  ];
+
+  disabledTests = [
+    "test_compile_program"
+    "test_conjugate_pauli_by_clifford"
+    "test_execute_qvm"
+    "test_generate_randomized_benchmark_sequence"
+    "test_get_report"
+    "test_get_version_info"
+    "test_list_quantum_processors_timeout"
+  ];
+
+  meta = {
+    changelog = "https://github.com/rigetti/qcs-sdk-rust/blob/${src.rev}/crates/python/CHANGELOG.md";
+    description = "Python interface for the QCS Rust SDK";
+    homepage = "https://github.com/rigetti/qcs-sdk-rust/tree/main/crates/python";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/quadprog/default.nix b/pkgs/development/python-modules/quadprog/default.nix
index 47a3f4e1a555..c566887bb363 100644
--- a/pkgs/development/python-modules/quadprog/default.nix
+++ b/pkgs/development/python-modules/quadprog/default.nix
@@ -3,6 +3,7 @@
 , pythonOlder
 , fetchFromGitHub
 , cython
+, setuptools
 , numpy
 , pytestCheckHook
 , scipy
@@ -10,40 +11,32 @@
 
 buildPythonPackage rec {
   pname = "quadprog";
-  version = "0.1.11";
-  format = "setuptools";
+  version = "0.1.12";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "quadprog";
+    repo = "quadprog";
     rev = "v${version}";
-    hash = "sha256-/suv1KbG3HbiYqEiuCtB/ia3xbxAO5AMuWx1Svy0rMw=";
+    hash = "sha256-3S846PaNfZ4j3r6Vi2o6+Jk+2kC/P7tMSQQiB/Kx8nI=";
   };
 
   nativeBuildInputs = [
     cython
+    setuptools
   ];
 
   propagatedBuildInputs = [
     numpy
   ];
 
-  preBuild = ''
-    cython quadprog/quadprog.pyx
-  '';
-
   nativeCheckInputs = [
     pytestCheckHook
     scipy
   ];
 
-  pytestFlagsArray = [
-    # test fails on aarch64-darwin
-    "--deselect=tests/test_1.py::test_5"
-  ];
-
   meta = with lib; {
     homepage = "https://github.com/quadprog/quadprog";
     changelog = "https://github.com/quadprog/quadprog/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/quil/default.nix b/pkgs/development/python-modules/quil/default.nix
new file mode 100644
index 000000000000..181f82d5f433
--- /dev/null
+++ b/pkgs/development/python-modules/quil/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, rustPlatform
+, numpy
+, pytestCheckHook
+, syrupy
+}:
+
+buildPythonPackage rec {
+  pname = "quil";
+  version = "0.6.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "rigetti";
+    repo = "quil-rs";
+    rev = "quil-py/v${version}";
+    hash = "sha256-SYq0NOzYGJuXFPGjvYzGgKvioCk0hBxLR5S6VFU5d88=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    name = "${pname}-${version}";
+    inherit src;
+    hash = "sha256-qZY9eQxxlH59DE/RrZFC3G6Pp3IdJupPN5AhUnrKSKs=";
+  };
+
+  buildAndTestSubdir = "quil-py";
+
+  preConfigure = ''
+    cargo metadata --offline
+  '';
+
+  nativeBuildInputs = [
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  pythonImportsCheck = [ "numpy" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    syrupy
+  ];
+
+  disabledTests = [
+    # Syrupy snapshot needs to be regenerated
+    "test_filter_instructions"
+  ];
+
+  meta = {
+    changelog = "https://github.com/rigetti/quil-rs/blob/${src.rev}/quil-py/CHANGELOG.md";
+    description = "Python package for building and parsing Quil programs";
+    homepage = "https://github.com/rigetti/quil-rs/tree/main/quil-py";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/rangeparser/default.nix b/pkgs/development/python-modules/rangeparser/default.nix
new file mode 100644
index 000000000000..8cc4833975c0
--- /dev/null
+++ b/pkgs/development/python-modules/rangeparser/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "rangeparser";
+  version = "0.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    pname = "RangeParser";
+    inherit version;
+    hash = "sha256-gjA7Iytg802Lv7/rLfhGE0yjz4e6FfOXbEoWNPjhCOY=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "rangeparser"
+  ];
+
+  meta = with lib; {
+    description = "Parses ranges";
+    homepage = "https://pypi.org/project/RangeParser/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/redshift-connector/default.nix b/pkgs/development/python-modules/redshift-connector/default.nix
index 01f2766216e2..704eb5d1e1f6 100644
--- a/pkgs/development/python-modules/redshift-connector/default.nix
+++ b/pkgs/development/python-modules/redshift-connector/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "redshift-connector";
-  version = "2.0.918";
+  version = "2.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "amazon-redshift-python-driver";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hGj/KZz3QYpA/MQE4TcX4wYazMs10RIJCDNyZ+puEYY=";
+    hash = "sha256-EYJFJbeYUW/vCD46sm5CLeyINL/hcF7IA2myuVmqFaY=";
   };
 
   # remove addops as they add test directory and coverage parameters to pytest
diff --git a/pkgs/development/python-modules/refery/default.nix b/pkgs/development/python-modules/refery/default.nix
new file mode 100644
index 000000000000..0bae769fbdad
--- /dev/null
+++ b/pkgs/development/python-modules/refery/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+
+, poetry-core
+, pyyaml
+, colorama
+, junit-xml
+}:
+
+buildPythonPackage rec {
+  pname = "refery";
+  version = "2.1.0";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha512-ju0lqCSg0zcZNqRXDmFX6X1ugBocpmHMBWJApO6Tzhm/tLMQTKy2RpB4C8fkKCEWA2mYX4w1dLdHe68hZixwkQ==";
+  };
+
+  propagatedBuildInputs = [
+    poetry-core
+    pyyaml
+    colorama
+    junit-xml
+  ];
+
+  pythonImportCheck = [
+    "refery"
+  ];
+
+  disabled = pythonOlder "3.10";
+
+  # No tests yet
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Functional testing tool";
+    homepage = "https://github.com/RostanTabet/refery";
+    mainProgram = "refery";
+    maintainers = with maintainers; [ rostan-t ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/reolink-aio/default.nix b/pkgs/development/python-modules/reolink-aio/default.nix
index 0712eb586d43..08b6cd42da1c 100644
--- a/pkgs/development/python-modules/reolink-aio/default.nix
+++ b/pkgs/development/python-modules/reolink-aio/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "reolink-aio";
-  version = "0.8.7";
+  version = "0.8.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "starkillerOG";
     repo = "reolink_aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-+Yhw7Wbt0K7BLXatd/UANnnNWPkxgk8SqAyV9Kk4hos=";
+    hash = "sha256-W6F8Wr7iUMpyEFGLk07argmk+Wimagq5cOWU9yy9qU0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/reqif/default.nix b/pkgs/development/python-modules/reqif/default.nix
index e0ba5610ebd5..f3a37488a225 100644
--- a/pkgs/development/python-modules/reqif/default.nix
+++ b/pkgs/development/python-modules/reqif/default.nix
@@ -1,54 +1,57 @@
 { lib
+, beautifulsoup4
 , buildPythonPackage
-, python
 , fetchFromGitHub
 , hatchling
-, beautifulsoup4
-, lxml
 , jinja2
+, lxml
 , pytestCheckHook
+, python
 , pythonOlder
+, pythonRelaxDepsHook
+, xmlschema
 }:
 
 buildPythonPackage rec {
   pname = "reqif";
-  version = "0.0.35";
-  format = "pyproject";
+  version = "0.0.40";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "strictdoc-project";
-    repo = pname;
+    repo = "reqif";
     rev = "refs/tags/${version}";
-    hash = "sha256-3yOLOflPqzJRv3qCQXFK3rIFftBq8FkYy7XhOfWH82Y=";
+    hash = "sha256-VQvwynFv/DN5RHT00rxtDcJ9wsEpKdsh3rdyUakBr2Q=";
   };
 
   postPatch = ''
-    substituteInPlace ./tests/unit/conftest.py --replace \
-       "os.path.abspath(os.path.join(__file__, \"../../../../reqif\"))" \
+    substituteInPlace ./tests/unit/conftest.py \
+      --replace-fail "os.path.abspath(os.path.join(__file__, \"../../../../reqif\"))" \
       "\"${placeholder "out"}/${python.sitePackages}/reqif\""
-    substituteInPlace requirements.txt --replace "==" ">="
   '';
 
   nativeBuildInputs = [
     hatchling
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
     beautifulsoup4
     lxml
     jinja2
-  ];
-
-  pythonImportsCheck = [
-    "reqif"
+    xmlschema
   ];
 
   nativeCheckInputs = [
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "reqif"
+  ];
+
   meta = with lib; {
     description = "Python library for ReqIF format";
     homepage = "https://github.com/strictdoc-project/reqif";
diff --git a/pkgs/development/python-modules/requests-cache/default.nix b/pkgs/development/python-modules/requests-cache/default.nix
index f3ec2c4123a8..1e4b0299be29 100644
--- a/pkgs/development/python-modules/requests-cache/default.nix
+++ b/pkgs/development/python-modules/requests-cache/default.nix
@@ -31,16 +31,16 @@
 
 buildPythonPackage rec {
   pname = "requests-cache";
-  version = "1.1.1";
-  format = "pyproject";
+  version = "1.2.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "requests-cache";
     repo = "requests-cache";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0KBx6nplD/l8GZfMbyUtgHj2e4/vH9EAgdyNFm+kPyM=";
+    hash = "sha256-w1ptKi/MH3kGZxLMUNq/Gs6btGx+n2fG4nfQUXCXmiY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index 44733b2da0af..33749a992471 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-lCxadY+Y15Dq7Ropy27vx/+w0c968Fw9J5Flbb1q0eE=";
   };
 
-  propagatedBuildInputs = [
+  dependencies = [
     brotlicffi
     certifi
     charset-normalizer
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     security = [];
     socks = [
       pysocks
@@ -53,7 +53,7 @@ buildPythonPackage rec {
     pytest-xdist
     pytestCheckHook
   ]
-  ++ passthru.optional-dependencies.socks;
+  ++ optional-dependencies.socks;
 
   disabledTests = [
     # Disable tests that require network access and use httpbin
diff --git a/pkgs/development/python-modules/requirements-detector/default.nix b/pkgs/development/python-modules/requirements-detector/default.nix
index bc6054ffad1b..e679937dbd4c 100644
--- a/pkgs/development/python-modules/requirements-detector/default.nix
+++ b/pkgs/development/python-modules/requirements-detector/default.nix
@@ -7,25 +7,31 @@
 , semver
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , toml
 }:
 
 buildPythonPackage rec {
   pname = "requirements-detector";
   version = "1.2.2";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "landscapeio";
-    repo = pname;
+    repo = "requirements-detector";
     rev = "refs/tags/${version}";
     hash = "sha256-qmrHFQRypBJOI1N6W/Dtc5ss9JGqoPhFlbqrLHcb6vc=";
   };
 
+  pythonRelaxDeps = [
+    "astroid"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rerun-sdk/default.nix b/pkgs/development/python-modules/rerun-sdk/default.nix
new file mode 100644
index 000000000000..6ab9c8a758a0
--- /dev/null
+++ b/pkgs/development/python-modules/rerun-sdk/default.nix
@@ -0,0 +1,70 @@
+{
+  buildPythonPackage,
+  lib,
+  rustPlatform,
+  stdenv,
+  attrs,
+  numpy,
+  pillow,
+  pyarrow,
+  rerun,
+  torch,
+  typing-extensions,
+  pytestCheckHook,
+  python,
+}:
+
+buildPythonPackage {
+  pname = "rerun-sdk";
+  inherit (rerun) version;
+  pyproject = true;
+
+  inherit (rerun) src;
+  inherit (rerun) cargoDeps;
+
+  nativeBuildInputs = [
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
+  ];
+
+  propagatedBuildInputs = [
+    attrs
+    numpy
+    pillow
+    pyarrow
+    typing-extensions
+  ];
+
+  buildAndTestSubdir = "rerun_py";
+
+  # https://github.com/NixOS/nixpkgs/issues/289340
+  #
+  # Alternatively, one could
+  # dontUsePythonImportsCheck = true;
+  # dontUsePytestCheck = true;
+  postInstall = ''
+    rm $out/${python.sitePackages}/rerun_sdk.pth
+    ln -s rerun_sdk/rerun $out/${python.sitePackages}/rerun
+  '';
+
+  pythonImportsCheck = [ "rerun" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    torch
+  ];
+
+  inherit (rerun) addDlopenRunpaths addDlopenRunpathsPhase;
+  postPhases = lib.optionals stdenv.isLinux [ "addDlopenRunpathsPhase" ];
+
+  disabledTestPaths = [
+    # "fixture 'benchmark' not found"
+    "tests/python/log_benchmark/test_log_benchmark.py"
+  ];
+
+  meta = {
+    description = "Python bindings for `rerun` (an interactive visualization tool for stream data)";
+    inherit (rerun.meta) changelog homepage license maintainers;
+    mainProgram = "rerun";
+  };
+}
diff --git a/pkgs/development/python-modules/resend/default.nix b/pkgs/development/python-modules/resend/default.nix
new file mode 100644
index 000000000000..0fc371a76d2d
--- /dev/null
+++ b/pkgs/development/python-modules/resend/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pythonOlder
+, pytestCheckHook
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "resend";
+  version = "0.7.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "resend";
+    repo = "resend-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-3wX2xNz/6Erv97TlQCuF0Sha0fbJJX1LK9dx8xYG4M0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "resend"
+  ];
+
+  meta = with lib; {
+    description = "SDK for Resend";
+    homepage = "https://github.com/resend/resend-python";
+    changelog = "https://github.com/resend/resend-python/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/rns/default.nix b/pkgs/development/python-modules/rns/default.nix
index 3fc348be7561..e9641817a1eb 100644
--- a/pkgs/development/python-modules/rns/default.nix
+++ b/pkgs/development/python-modules/rns/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "rns";
-  version = "0.7.0";
+  version = "0.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "Reticulum";
     rev = "refs/tags/${version}";
-    hash = "sha256-iwW52jPSCwelfByerKHxKgH4NbWwCJLPyHXyBeJPwaM=";
+    hash = "sha256-o4+wHkkH0jUzq6Co0bru7NwvVxiV6xrggfHlQsjsWso=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/rokuecp/default.nix b/pkgs/development/python-modules/rokuecp/default.nix
index 00f710060cc7..f9f6bc5cf001 100644
--- a/pkgs/development/python-modules/rokuecp/default.nix
+++ b/pkgs/development/python-modules/rokuecp/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "rokuecp";
-  version = "0.19.0";
+  version = "0.19.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "ctalkington";
     repo = "python-rokuecp";
     rev = "refs/tags/${version}";
-    hash = "sha256-e7BY0Y2SdAtECKqOCUZfq7PcCR2bhQ4lESQD9jTaqpI=";
+    hash = "sha256-lBsfSiG1xSf+blNjQTLtTaG04ezE9eNVjqSAHVy57oY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/rova/default.nix b/pkgs/development/python-modules/rova/default.nix
index 5f419615dd53..57b1b2a8e318 100644
--- a/pkgs/development/python-modules/rova/default.nix
+++ b/pkgs/development/python-modules/rova/default.nix
@@ -4,22 +4,27 @@
 , pytestCheckHook
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "rova";
-  version = "0.3.0";
-  format = "setuptools";
+  version = "0.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "GidoHakvoort";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-TLL9Ta+7Xd55hGTTXjc6CBMj+tW1LpFrprpsnGqZvkQ=";
+    repo = "rova";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-6tICjph+ffS6OSMxzR4ANB4Q6sG1AKAgUN83DyEGpvo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     requests
   ];
@@ -34,6 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Module to access for ROVA calendars";
     homepage = "https://github.com/GidoHakvoort/rova";
+    changelog = "https://github.com/GidoHakvoort/rova/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/s3transfer/default.nix b/pkgs/development/python-modules/s3transfer/default.nix
index 0400ab4b8cd8..91758650bba8 100644
--- a/pkgs/development/python-modules/s3transfer/default.nix
+++ b/pkgs/development/python-modules/s3transfer/default.nix
@@ -9,16 +9,16 @@
 
 buildPythonPackage rec {
   pname = "s3transfer";
-  version = "0.8.2";
+  version = "0.10.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "boto";
     repo = pname;
-    rev = version;
-    hash = "sha256-sdoPjkZHN5wVCK9V6V+fkGvQvEQo2ABy2lqefEKfg6o=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-21xycx1+84uY4gFr7N+ra98dpsEwxy9zeSl4QA66nUc=";
   };
 
   propagatedBuildInputs = [ botocore ];
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index 6d0949a96e3f..e1423c9270e7 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.207.1";
+  version = "2.208.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "sagemaker-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nSFBx2s6vy5Ug2tBiPqNu4Q29LGW2LijoDKlC6m4CL4=";
+    hash = "sha256-9YcYRwwa5P31jZpDrsewBY+r2kjRmoGM8CkXqAMilvE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix
index 752802df209c..fb1d5aba58db 100644
--- a/pkgs/development/python-modules/sanic/default.nix
+++ b/pkgs/development/python-modules/sanic/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
+, pythonAtLeast
 
 # build-system
 , setuptools
@@ -145,6 +146,9 @@ buildPythonPackage rec {
     "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 = [
diff --git a/pkgs/development/python-modules/scikit-build-core/default.nix b/pkgs/development/python-modules/scikit-build-core/default.nix
index fb218491c770..494cfa1a7606 100644
--- a/pkgs/development/python-modules/scikit-build-core/default.nix
+++ b/pkgs/development/python-modules/scikit-build-core/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "scikit-build-core";
-  version = "0.7.0";
+  version = "0.8.0";
   pyproject = true;
 
   src = fetchPypi {
     pname = "scikit_build_core";
     inherit version;
-    hash = "sha256-hffyRpxWjGzjWrL6Uv4tJqBODeUH06JMGrtyg3Vlf9M=";
+    hash = "sha256-WAW/iYSXOemY/BuupG5WVVZi8cnZfEF8PgOHAtZTr+M=";
   };
 
   postPatch = lib.optionalString (pythonOlder "3.11") ''
diff --git a/pkgs/development/python-modules/scikit-misc/default.nix b/pkgs/development/python-modules/scikit-misc/default.nix
index cf9d4c84c0bb..4b995c0ba006 100644
--- a/pkgs/development/python-modules/scikit-misc/default.nix
+++ b/pkgs/development/python-modules/scikit-misc/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "scikit-misc";
-  version = "0.3.0";
+  version = "0.3.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "has2k1";
     repo = "scikit-misc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XV3s+y3JdMr1770S91ek6Y7MqvTg7/2cphLQldUPe5s=";
+    hash = "sha256-2L30hvKbFqIGlSEbzc1HvHybBqDGldJfZoUpqJJOv2Q=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix
index 72a3957723ea..9548f9136e8c 100644
--- a/pkgs/development/python-modules/scrapy/default.nix
+++ b/pkgs/development/python-modules/scrapy/default.nix
@@ -5,7 +5,6 @@
 , cryptography
 , cssselect
 , fetchPypi
-, fetchpatch
 , glibcLocales
 , installShellFiles
 , itemadapter
@@ -22,6 +21,7 @@
 , pythonOlder
 , queuelib
 , service-identity
+, setuptools
 , sybil
 , testfixtures
 , tldextract
@@ -32,31 +32,20 @@
 
 buildPythonPackage rec {
   pname = "scrapy";
-  version = "2.11.0";
-  format = "setuptools";
+  version = "2.11.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit version;
     pname = "Scrapy";
-    hash = "sha256-PL3tzgw/DgSC1hvi10WGg758188UsO5q37rduA9bNqU=";
+    hash = "sha256-czoDnHQj5StpvygQtTMgk9TkKoSEYDWcB7Auz/j3Pr4=";
   };
 
-  patches = [
-    # Fix compatiblity with Twisted>=23.8. Remove with the next release.
-    (fetchpatch {
-      url = "https://github.com/scrapy/scrapy/commit/aa95ada42cdf570f840f55c463375f8a81b303f8.patch";
-      hash = "sha256-LuhA5BqtjSUgkotplvUCtvGNYOTrl0MJRCXiSBMDFzY=";
-      excludes = [
-        "tests/CrawlerProcess/sleeping.py"
-        "tests/test_crawler.py"
-      ];
-    })
-  ];
-
   nativeBuildInputs = [
     installShellFiles
+    setuptools
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/securetar/default.nix b/pkgs/development/python-modules/securetar/default.nix
index 6636bb50ae33..4104fa2dc499 100644
--- a/pkgs/development/python-modules/securetar/default.nix
+++ b/pkgs/development/python-modules/securetar/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "securetar";
-  version = "2023.12.0";
+  version = "2024.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "pvizeli";
     repo = "securetar";
     rev = "refs/tags/${version}";
-    hash = "sha256-P8aq1RRlEmXhJ4n0TSLVjYx4dvkckuz2aDGkAvp7bfo=";
+    hash = "sha256-rYRbrpXo2oVW8SpddNsKb0FBdscovNUaGXLHy7WBiVU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index cee2e2fc599e..f9402f2688ad 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -38,7 +38,7 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.40.3";
+  version = "1.40.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -47,7 +47,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-durgUKpJ5H+xd4FBpNWVtfmMlreTbvQvUaTVPoJw5wQ=";
+    hash = "sha256-WlOMYMgQSV7pZ+EA5HeS3HXJgEg+qhT6lAzLKknZiLk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/shap/default.nix b/pkgs/development/python-modules/shap/default.nix
index cc042fcd4f52..cd51a145b67e 100644
--- a/pkgs/development/python-modules/shap/default.nix
+++ b/pkgs/development/python-modules/shap/default.nix
@@ -116,6 +116,9 @@ buildPythonPackage rec {
     xgboost
   ];
 
+  # Test startup hangs with 0.43.0 and Hydra ends with a timeout
+  doCheck = false;
+
   disabledTestPaths = [
     # The resulting plots look sane, but does not match pixel-perfectly with the baseline.
     # Likely due to a matplotlib version mismatch, different backend, or due to missing fonts.
@@ -133,15 +136,6 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [
     "shap"
-    "shap.explainers"
-    "shap.explainers.other"
-    "shap.plots"
-    "shap.plots.colors"
-    "shap.benchmark"
-    "shap.maskers"
-    "shap.utils"
-    "shap.actions"
-    "shap.models"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/shtab/default.nix b/pkgs/development/python-modules/shtab/default.nix
index ebfbd86aeb03..37b3e1ca4c24 100644
--- a/pkgs/development/python-modules/shtab/default.nix
+++ b/pkgs/development/python-modules/shtab/default.nix
@@ -11,21 +11,21 @@
 
 buildPythonPackage rec {
   pname = "shtab";
-  version = "1.6.5";
-  format = "pyproject";
+  version = "1.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "iterative";
-    repo = pname;
+    repo = "shtab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jplcKVXWogSrYRGch0qypWGNzO9HErR5B9S1iT4eFcM=";
+    hash = "sha256-b2XXDyO/2AnlxViC6sEEYUGviF6+FGXBnBcdQOuTViY=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=shtab --cov-report=term-missing --cov-report=xml" ""
+      --replace-fail " --cov=shtab --cov-report=term-missing --cov-report=xml" ""
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/signify/default.nix b/pkgs/development/python-modules/signify/default.nix
index 85e4d4668e5b..a1924902fe8e 100644
--- a/pkgs/development/python-modules/signify/default.nix
+++ b/pkgs/development/python-modules/signify/default.nix
@@ -3,28 +3,42 @@
 , buildPythonPackage
 , certvalidator
 , fetchFromGitHub
+, fetchpatch2
 , mscerts
 , oscrypto
 , pyasn1
 , pyasn1-modules
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "signify";
   version = "0.5.2";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "ralphje";
-    repo = pname;
+    repo = "signify";
     rev = "refs/tags/v${version}";
     hash = "sha256-+UhZF+QYuv8pq/sTu7GDPUrlPNNixFgVZL+L0ulj/ko=";
   };
 
+  patches = [
+    # https://github.com/ralphje/signify/pull/42
+    (fetchpatch2 {
+      url = "https://github.com/ralphje/signify/commit/38cad57bf86f7498259b47bfef1354aec27c0955.patch";
+      hash = "sha256-dLmHSlj2Cj6jbbrZStgK2Rh/H5vOaIbi5lut5RAbd+s=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     asn1crypto
     certvalidator
@@ -42,19 +56,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # chain doesn't validate because end-entitys certificate expired
-    # https://github.com/ralphje/signify/issues/27
-    "test_revoked_certificate"
-  ];
-
   meta = with lib; {
+    changelog = "https://github.com/ralphje/signify/blob/${src.rev}/docs/changelog.rst";
     description = "library that verifies PE Authenticode-signed binaries";
     homepage = "https://github.com/ralphje/signify";
     license = licenses.mit;
     maintainers = with maintainers; [ baloo ];
-    # No support for pyasn1 > 0.5
-    # https://github.com/ralphje/signify/issues/37
-    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/sip/4.x.nix b/pkgs/development/python-modules/sip/4.x.nix
index 0e1db82e8af0..879dc6cd125a 100644
--- a/pkgs/development/python-modules/sip/4.x.nix
+++ b/pkgs/development/python-modules/sip/4.x.nix
@@ -5,7 +5,8 @@ buildPythonPackage rec {
   version = "4.19.25";
   format = "other";
 
-  disabled = isPyPy;
+  # relies on distutils
+  disabled = isPyPy || pythonAtLeast "3.12";
 
   src = fetchurl {
     url = "https://www.riverbankcomputing.com/static/Downloads/sip/${version}/sip-${version}.tar.gz";
diff --git a/pkgs/development/python-modules/sip/default.nix b/pkgs/development/python-modules/sip/default.nix
index 32c28211cd06..30dd904f1396 100644
--- a/pkgs/development/python-modules/sip/default.nix
+++ b/pkgs/development/python-modules/sip/default.nix
@@ -1,10 +1,8 @@
 { lib
-, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
 , setuptools
-, wheel
 , packaging
 , ply
 , toml
@@ -18,21 +16,22 @@
 
 buildPythonPackage rec {
   pname = "sip";
-  version = "6.8.1";
-
-  format = "pyproject";
+  version = "6.8.3";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MALfQV4WisP/45OULbxxMcuCreUAAOFSb0aoit4m9Zg=";
+    hash = "sha256-iIVHsBi7JMNq3tUZ6T0+UT1MaqC6VbfMGv+9Rc8Qdiw=";
   };
 
   nativeBuildInputs = [
     setuptools
-    wheel
   ];
 
-  propagatedBuildInputs = [ packaging ply toml ] ++ lib.optionals (pythonOlder "3.11") [
+  propagatedBuildInputs = [
+    packaging
+    setuptools
+  ] ++ lib.optionals (pythonOlder "3.11") [
     tomli
   ];
 
diff --git a/pkgs/development/python-modules/skrl/default.nix b/pkgs/development/python-modules/skrl/default.nix
index 417c1c1fe351..143a86dff84e 100644
--- a/pkgs/development/python-modules/skrl/default.nix
+++ b/pkgs/development/python-modules/skrl/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "skrl";
-  version = "1.0.0";
+  version = "1.1.0";
   pyproject = true;
   disabled = pythonOlder "3.6";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Toni-SM";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-89OoJanmaB74SLF1qMI8WFBdN1czS7Yr7BmojaRdo4M=";
+    hash = "sha256-JsE8QQNOqvFQylrPuHEjejOTeQL652rM0EteAfLyeVI=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/skytemple-dtef/default.nix b/pkgs/development/python-modules/skytemple-dtef/default.nix
index 238bae491a90..1c1edb663e3c 100644
--- a/pkgs/development/python-modules/skytemple-dtef/default.nix
+++ b/pkgs/development/python-modules/skytemple-dtef/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "skytemple-dtef";
-  version = "1.6.0";
+  version = "1.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "SkyTemple";
     repo = pname;
     rev = version;
-    hash = "sha256-ngIjM8DW9HQJpa/U2f1sy+6CeWdccayp60vbJmos+A8=";
+    hash = "sha256-vVh4WRjx/iFJnTZC7D/OCi0gOwKaXs/waVXUEu5Cda8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/skytemple-files/default.nix b/pkgs/development/python-modules/skytemple-files/default.nix
index faac31c81521..5e60c73de699 100644
--- a/pkgs/development/python-modules/skytemple-files/default.nix
+++ b/pkgs/development/python-modules/skytemple-files/default.nix
@@ -30,14 +30,14 @@
 
 buildPythonPackage rec {
   pname = "skytemple-files";
-  version = "1.6.1";
+  version = "1.6.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "SkyTemple";
     repo = pname;
     rev = version;
-    hash = "sha256-P0VME1keazqcyb0JuQ4iXPyJH7/gTmYE7uASpjvhqUo=";
+    hash = "sha256-OkokbVD8j+Sgypj25demzSZdiAEf8TJrnl0QRIM2HsI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/skytemple-rust/default.nix b/pkgs/development/python-modules/skytemple-rust/default.nix
index d33a87f50662..c92f9175bfb2 100644
--- a/pkgs/development/python-modules/skytemple-rust/default.nix
+++ b/pkgs/development/python-modules/skytemple-rust/default.nix
@@ -13,18 +13,18 @@
 
 buildPythonPackage rec {
   pname = "skytemple-rust";
-  version = "1.6.1";
+  version = "1.6.3";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Qg2KAzjSV7yQTpRHmNMkHRwOJSbfsgcdT0RHQru2lBI=";
+    hash = "sha256-z9Vu9mj82hwuPva56tmav4jN9RCoNIZxL+C3GYtYsOo=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-ZJ5eYof9RZ07iP0YowIBorHuNUntQVW9JWcSVe2emig=";
+    hash = "sha256-2or419evNxi99HIvL2TlSWFFh4BCky8qI/dVQbq/X38=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
diff --git a/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix b/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
index b497c4406147..5e5d0c8d7951 100644
--- a/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
+++ b/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "skytemple-ssb-debugger";
-  version = "1.6.1";
+  version = "1.6.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "SkyTemple";
     repo = pname;
     rev = version;
-    hash = "sha256-Zqp/NSF3uoxktycg+Q3BLFUMzbHFKUkYCg+DvEcRydU=";
+    hash = "sha256-lMlBCAmmenEwxzt4ft5jwwvqedzu2omeoNx5g6lA+PE=";
   };
 
   buildInputs = [ gtk3 gtksourceview4 ];
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index 207390b050e6..af3dca512c62 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -13,6 +13,7 @@
 , psutil
 , pytest-asyncio
 , pytestCheckHook
+, setuptools
 , sqlalchemy
 , websocket-client
 , websockets
@@ -20,8 +21,8 @@
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.26.2";
-  format = "setuptools";
+  version = "3.27.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -29,9 +30,18 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pvD86kbNOnuNT6+WTAKziJDUTx3ebJUq029UbSVuxdw=";
+    hash = "sha256-MA3pn6NQxzXYu/BBpOgfZWnS51dl7oXrAi43jenHhxI=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail ', "pytest-runner"' ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiodns
     aiohttp
diff --git a/pkgs/development/python-modules/slackclient/default.nix b/pkgs/development/python-modules/slackclient/default.nix
index 75090e8d243a..3a66c42111b9 100644
--- a/pkgs/development/python-modules/slackclient/default.nix
+++ b/pkgs/development/python-modules/slackclient/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "slackclient";
-  version = "3.26.2";
+  version = "3.27.0";
   format =  "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pvD86kbNOnuNT6+WTAKziJDUTx3ebJUq029UbSVuxdw=";
+    hash = "sha256-MA3pn6NQxzXYu/BBpOgfZWnS51dl7oXrAi43jenHhxI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/slowapi/default.nix b/pkgs/development/python-modules/slowapi/default.nix
index dfa583bc0d3b..c64a89d896df 100644
--- a/pkgs/development/python-modules/slowapi/default.nix
+++ b/pkgs/development/python-modules/slowapi/default.nix
@@ -5,41 +5,31 @@
 , limits
 , mock
 , hiro
+, httpx
 , poetry-core
 , pytestCheckHook
 , pythonAtLeast
 , pythonOlder
-, pythonRelaxDepsHook
 , redis
 , starlette
 }:
 
 buildPythonPackage rec {
   pname = "slowapi";
-  version = "0.1.8";
-  format = "pyproject";
+  version = "0.1.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "laurentS";
-    repo = pname;
+    repo = "slowapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xgHz8b95SXf/GwzKPfQ/RHbUNJfCx6+7a2HB8+6hjsw=";
+    hash = "sha256-R/Mr+Qv22AN7HCDGmAUVh4efU8z4gMIyhC0AuKmxgdE=";
   };
 
-  pythonRelaxDeps = [
-    "limits"
-  ];
-
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace '["redis^3.4.1"]' '["redis"]'
-  '';
-
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -50,6 +40,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     fastapi
     hiro
+    httpx
     mock
     pytestCheckHook
     starlette
diff --git a/pkgs/development/python-modules/smartypants/default.nix b/pkgs/development/python-modules/smartypants/default.nix
index 0e5ef76927e4..5094287fcfaf 100644
--- a/pkgs/development/python-modules/smartypants/default.nix
+++ b/pkgs/development/python-modules/smartypants/default.nix
@@ -1,16 +1,19 @@
 { lib
 , buildPythonPackage
+, python
 , fetchFromGitHub
+, fetchpatch2
 , isPyPy
+, setuptools
 , docutils
 , pygments
 , pytestCheckHook
 }:
 
-buildPythonPackage rec {
+buildPythonPackage (rec {
   version = "2.0.1";
-  format = "setuptools";
   pname = "smartypants";
+
   disabled = isPyPy;
 
   src = fetchFromGitHub {
@@ -37,3 +40,23 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ dotlambda ];
   };
 }
+  # FIXME: just avoiding large rebuild, we'll revert this commit
+  // (if lib.versionOlder python.version "3.12" then {
+    format = "setuptools";
+  } else {
+    pyproject = true;
+
+    patches = [
+      (fetchpatch2 {
+        # https://github.com/leohemsted/smartypants.py/pull/21
+        name = "smartypants-3.12-compat.patch";
+        url = "https://github.com/leohemsted/smartypants.py/commit/ea46bf36343044a7a61ba3acce4a7f188d986ec5.patch";
+        hash = "sha256-9lsiiZKFFKHLy7j3y9ff4gt01szY+2AHpWPAKQgKwZg=";
+      })
+    ];
+
+    nativeBuildInputs = [
+      setuptools
+    ];
+  })
+)
diff --git a/pkgs/development/python-modules/smtpdfix/default.nix b/pkgs/development/python-modules/smtpdfix/default.nix
index f9d7d2931e5a..5d34cd6693bf 100644
--- a/pkgs/development/python-modules/smtpdfix/default.nix
+++ b/pkgs/development/python-modules/smtpdfix/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonAtLeast
 , setuptools
 , pytest
 , portpicker
@@ -36,6 +37,11 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # https://github.com/bebleo/smtpdfix/issues/335
+    "test_missing_certs"
+  ];
+
   meta = with lib; {
     description = "An SMTP server for use as a pytest fixture for testing";
     homepage = "https://github.com/bebleo/smtpdfix";
diff --git a/pkgs/development/python-modules/snakemake-interface-common/default.nix b/pkgs/development/python-modules/snakemake-interface-common/default.nix
index 7b3cfd791219..6ac47e4afede 100644
--- a/pkgs/development/python-modules/snakemake-interface-common/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-common/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "snakemake-interface-common";
-  version = "1.15.3";
+  version = "1.17.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-MiwdNr8+xX5oD1ilhDDhJcf4wWnfkayDMcnDyjYSWlo=";
+    hash = "sha256-23PGKSBX7KMt0Q7sWiLIPfCkxr2HtBas7flYeNHABWM=";
   };
 
   nativeBuildInputs = [
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 3d37ec8471ec..31325c217864 100644
--- a/pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "snakemake-interface-storage-plugins";
-  version = "3.0.0";
+  version = "3.1.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-MinqSMpBlp3pCgQxorkMdrJuO0GExJsO02kg2/mGsFw=";
+    hash = "sha256-S3+8u3U2o5FzUVSocR96zGbNL4Hof7yBqqSJIPdh3nQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index d9b673ca49cd..085c21bfb59b 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -27,14 +27,14 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "3.7.0";
+  version = "3.7.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sr+uxkBZMHsIyq2tQCFNSI/vtKI/zXVTrHX16nWKkWk=";
+    hash = "sha256-3GmC9lOGDt7xYUowR6FrywfiJ3Xm4JCAi79PdinEGR0=";
   };
 
   # snowflake-connector-python requires arrow 10.0.1, which we don't have in
diff --git a/pkgs/development/python-modules/somajo/default.nix b/pkgs/development/python-modules/somajo/default.nix
index d7453d0955cf..02c716e0142a 100644
--- a/pkgs/development/python-modules/somajo/default.nix
+++ b/pkgs/development/python-modules/somajo/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "somajo";
-  version = "2.4.1";
+  version = "2.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "tsproisl";
     repo = "SoMaJo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-44avfokFgOQ62dswGpsNX+mywrtZLMTkMV4s+y0UusE=";
+    hash = "sha256-5rlgDnPYTtuVMincG5CgVwNh/IGmZk6ItvzdB/wHmgg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/spake2/default.nix b/pkgs/development/python-modules/spake2/default.nix
index 87d05612e712..2ccd62fcdf15 100644
--- a/pkgs/development/python-modules/spake2/default.nix
+++ b/pkgs/development/python-modules/spake2/default.nix
@@ -1,26 +1,50 @@
-{ lib, buildPythonPackage, fetchPypi, hkdf, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch2
+, setuptools
+, hkdf
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "spake2";
   version = "0.8";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "c17a614b29ee4126206e22181f70a406c618d3c6c62ca6d6779bce95e9c926f4";
   };
 
-  nativeCheckInputs = [ pytest ];
+  patches = [
+    # https://github.com/warner/python-spake2/pull/16
+    (fetchpatch2 {
+      name = "python312-compat.patch";
+      url = "https://github.com/warner/python-spake2/commit/1b04d33106b105207c97c64b2589c45790720b0b.patch";
+      hash = "sha256-OoBz0lN17VyVGg6UfT+Zj9M1faFTNpPIhxrwCgUwMc8=";
+    })
+  ];
 
-  propagatedBuildInputs = [ hkdf ];
+  nativeBuildInputs = [
+    setuptools
+  ];
 
-  checkPhase = ''
-    py.test $out
-  '';
+  propagatedBuildInputs = [
+    hkdf
+  ];
+
+  pythonImportsCheck = [ "spake2" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   meta = with lib; {
+    changelog = "https://github.com/warner/python-spake2/blob/v${version}/NEWS";
     description = "SPAKE2 password-authenticated key exchange library";
     homepage = "https://github.com/warner/python-spake2";
     license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/sphinx-book-theme/default.nix b/pkgs/development/python-modules/sphinx-book-theme/default.nix
index bb96443d3183..7c951f697b8e 100644
--- a/pkgs/development/python-modules/sphinx-book-theme/default.nix
+++ b/pkgs/development/python-modules/sphinx-book-theme/default.nix
@@ -9,18 +9,18 @@
 
 buildPythonPackage rec {
   pname = "sphinx-book-theme";
-  version = "1.1.0";
+  version = "1.1.2";
 
   format = "wheel";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit version format;
     dist = "py3";
     python = "py3";
     pname = "sphinx_book_theme";
-    hash = "sha256-CIvGnWX6uERq24aR7WFof3G/dQTJdAr2i8eM+TaiYRI=";
+    hash = "sha256-zudERm/eSPUDArhRKRsgiqZ+cmyjG3o7+5tuahRWY+A=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index 90dfcb1e6ef6..ddf9237918af 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -1,5 +1,4 @@
 { lib
-, stdenv
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
@@ -19,7 +18,6 @@
 , pygments
 , requests
 , snowballstemmer
-, sphinxcontrib-apidoc
 , sphinxcontrib-applehelp
 , sphinxcontrib-devhelp
 , sphinxcontrib-htmlhelp
@@ -77,9 +75,6 @@ buildPythonPackage rec {
     sphinxcontrib-serializinghtml
     # extra[docs]
     sphinxcontrib-websupport
-
-    # extra plugins which are otherwise not found by sphinx-build
-    sphinxcontrib-apidoc
   ] ++ lib.optionals (pythonOlder "3.10") [
     importlib-metadata
   ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix b/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
index d6c588c8d022..f99d32ec7e21 100644
--- a/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-plantuml";
-  version = "0.27";
+  version = "0.28";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-iXV3ju2cFCpC7NxOzYMTLewGkMA1yueIwSN1Dq1SZwM=";
+    hash = "sha256-zpNirT1LvMTDDf38MIqsrSwHs0RjUxZoGnESabjgC+o=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sphinxemoji/default.nix b/pkgs/development/python-modules/sphinxemoji/default.nix
index 02abae52c4d1..639e6d2ab12b 100644
--- a/pkgs/development/python-modules/sphinxemoji/default.nix
+++ b/pkgs/development/python-modules/sphinxemoji/default.nix
@@ -27,6 +27,8 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     sphinx
+    # sphinxemoji.py imports pkg_resources directly
+    setuptools
    ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index edee5d1d4414..565ab218dd91 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -40,7 +40,7 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "2.0.25";
+  version = "2.0.27";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     owner = "sqlalchemy";
     repo = "sqlalchemy";
     rev = "refs/tags/rel_${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-nfkYzLpWyNXDuRUJl5pzaedw5v7jHpG7kpmr6VTGUaw=";
+    hash = "sha256-6R+A7rVq1olRXj1wMolHhEq418bpr5rsmH8RjxajmmQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/sqlmodel/default.nix b/pkgs/development/python-modules/sqlmodel/default.nix
index 26a0c7f5c907..fb5f6fd185a9 100644
--- a/pkgs/development/python-modules/sqlmodel/default.nix
+++ b/pkgs/development/python-modules/sqlmodel/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "sqlmodel";
-  version = "0.0.14";
+  version = "0.0.16";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = "sqlmodel";
     rev = "refs/tags/${version}";
-    hash = "sha256-EEOS7c0ospo7qjqPQkKwYXeVmBR5DueONzmjspV6w7w=";
+    hash = "sha256-hDJcekn0ExYUCs8kBZkJzsWqXsB/cI6RbW3EhRCCioM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/stanio/default.nix b/pkgs/development/python-modules/stanio/default.nix
index daf889dba688..ef4928e6e4f8 100644
--- a/pkgs/development/python-modules/stanio/default.nix
+++ b/pkgs/development/python-modules/stanio/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "stanio";
-  version = "0.4.0";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-i1hqwUs1zeGq0Yjb+FgkUVxoQtyVGitBHdE4+1w1/J8=";
+    hash = "sha256-3uQpMU2WXzkBga+o/3/4FERG7rWMwlR8zBCLpz5nROI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/starlette-wtf/default.nix b/pkgs/development/python-modules/starlette-wtf/default.nix
index 113c1442a99e..3ca744a71f2f 100644
--- a/pkgs/development/python-modules/starlette-wtf/default.nix
+++ b/pkgs/development/python-modules/starlette-wtf/default.nix
@@ -6,6 +6,8 @@
 , python-multipart
 , starlette
 , wtforms
+, httpx
+, jinja2
 , pytestCheckHook
 }:
 
@@ -33,6 +35,8 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
+    httpx
+    jinja2
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/stem/default.nix b/pkgs/development/python-modules/stem/default.nix
index 8cd6ff3f3d6e..1dcaa22def4d 100644
--- a/pkgs/development/python-modules/stem/default.nix
+++ b/pkgs/development/python-modules/stem/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "stem";
-  version = "1.8.2";
+  version = "1.8.3-unstable-2024-02-13";
 
   disabled = pythonOlder "3.6";
 
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "torproject";
     repo = "stem";
-    rev = "refs/tags/${version}";
-    hash = "sha256-9BXeE/sVa13jr8G060aWjc49zgDVBhjaR6nt4lSxc0g=";
+    rev = "9a9c7d43a7fdcde6d4a9cf95b831fb5e5923a160";
+    hash = "sha256-Oc73Jx31SLzuhT9Iym5HHszKfflKZ+3aky5flXudvmI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/stravalib/default.nix b/pkgs/development/python-modules/stravalib/default.nix
index a87f18b929e4..8f9898657b65 100644
--- a/pkgs/development/python-modules/stravalib/default.nix
+++ b/pkgs/development/python-modules/stravalib/default.nix
@@ -3,7 +3,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pint
-, pydantic_1 # use pydantic 2 on next release
+, pydantic
 , pythonOlder
 , pytz
 , requests
@@ -26,11 +26,6 @@ buildPythonPackage rec {
     hash = "sha256-U+QlSrijvT77/m+yjhFxbcVTQe51J+PR4Kc8N+qG+wI=";
   };
 
-  postPatch = ''
-    # Remove on next release
-    sed -i 's/pydantic==1.10.9/pydantic/' pyproject.toml
-  '';
-
   nativeBuildInputs = [
     setuptools
     setuptools-scm
@@ -39,7 +34,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     arrow
     pint
-    pydantic_1
+    pydantic
     pytz
     requests
     responses
@@ -58,5 +53,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/stravalib/stravalib/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ sikmir ];
+    broken = lib.versionAtLeast pydantic.version "2";
   };
 }
diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix
index 98eb1cd188c9..3e1027913bd3 100644
--- a/pkgs/development/python-modules/streamlit/default.nix
+++ b/pkgs/development/python-modules/streamlit/default.nix
@@ -32,14 +32,14 @@
 
 buildPythonPackage rec {
   pname = "streamlit";
-  version = "1.30.0";
+  version = "1.31.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kDM5FdnfjOOwbeMbilu6tR6M8JgtxsMtqdax8rSp+ng=";
+    hash = "sha256-38Q8qFtLTDHQl8J7mDuMzJYCIq2QeGKysvtN3wTFD9w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/structlog/default.nix b/pkgs/development/python-modules/structlog/default.nix
index f53e3c90945d..a6c826a00a5e 100644
--- a/pkgs/development/python-modules/structlog/default.nix
+++ b/pkgs/development/python-modules/structlog/default.nix
@@ -11,13 +11,12 @@
 , pythonOlder
 , simplejson
 , twisted
-, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "structlog";
-  version = "23.2.0";
-  format = "pyproject";
+  version = "24.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -25,7 +24,7 @@ buildPythonPackage rec {
     owner = "hynek";
     repo = "structlog";
     rev = "refs/tags/${version}";
-    hash = "sha256-KSHKgkv+kObKCdWZDg5o6QYe0AMND9VLdEuseY/GyDY=";
+    hash = "sha256-0Yc28UEeozK2+IqILFTqHoTiM5L2SA4t6jld4qTBSzQ=";
   };
 
   nativeBuildInputs = [
@@ -34,10 +33,6 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
-
   nativeCheckInputs = [
     freezegun
     pretend
@@ -47,11 +42,6 @@ buildPythonPackage rec {
     twisted
   ];
 
-  disabledTests = [
-    # _pickle.PicklingError: Only BytesLoggers to sys.stdout and sys.stderr can be pickled.
-    "test_pickle"
-  ];
-
   pythonImportsCheck = [
     "structlog"
   ];
@@ -61,6 +51,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/hynek/structlog";
     changelog = "https://github.com/hynek/structlog/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/summarytools/default.nix b/pkgs/development/python-modules/summarytools/default.nix
index a46cf5080c7c..4bbbae78c88b 100644
--- a/pkgs/development/python-modules/summarytools/default.nix
+++ b/pkgs/development/python-modules/summarytools/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, setuptools
 , ipython
 , matplotlib
 , numpy
@@ -12,7 +13,7 @@
 buildPythonPackage rec {
   pname = "summarytools";
   version = "0.2.3";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -22,6 +23,8 @@ buildPythonPackage rec {
     hash = "sha256-wsDf9IXCMQe0cVfQQuRVwMhxkhhUxbPu06yWZPLvgw4=";
   };
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [
     ipython
     matplotlib
diff --git a/pkgs/development/python-modules/sv-ttk/default.nix b/pkgs/development/python-modules/sv-ttk/default.nix
index 660d32a6735c..a5518b094431 100644
--- a/pkgs/development/python-modules/sv-ttk/default.nix
+++ b/pkgs/development/python-modules/sv-ttk/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, tkinter
 }:
 
 buildPythonPackage rec {
@@ -20,6 +21,10 @@ buildPythonPackage rec {
   # No tests available
   doCheck = false;
 
+  propagatedBuildInputs = [
+    tkinter
+  ];
+
   pythonImportsCheck = [
     "sv_ttk"
   ];
diff --git a/pkgs/development/python-modules/systembridgeconnector/default.nix b/pkgs/development/python-modules/systembridgeconnector/default.nix
new file mode 100644
index 000000000000..c1b734bcbda9
--- /dev/null
+++ b/pkgs/development/python-modules/systembridgeconnector/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, setuptools
+, aiohttp
+, incremental
+, systembridgemodels
+}:
+
+buildPythonPackage rec {
+  pname = "systembridgeconnector";
+  version = "4.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "timmo001";
+    repo = "system-bridge-connector";
+    rev = "refs/tags/${version}";
+    hash = "sha256-dMOhw7e2sCmGItsgGcGxYVCIJM2FBm6IyxIQXPtY+Pg=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    incremental
+    systembridgemodels
+  ];
+
+  pythonImportsCheck = [ "systembridgeconnector" ];
+
+  # upstream has no tests
+  doCheck = false;
+
+  meta = {
+    changelog = "https://github.com/timmo001/system-bridge-connector/releases/tag/${version}";
+    description = "This is the connector package for the System Bridge project";
+    homepage = "https://github.com/timmo001/system-bridge-connector";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/systembridgemodels/default.nix b/pkgs/development/python-modules/systembridgemodels/default.nix
new file mode 100644
index 000000000000..16a16b3a8da4
--- /dev/null
+++ b/pkgs/development/python-modules/systembridgemodels/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, fetchpatch2
+, setuptools
+, incremental
+}:
+
+buildPythonPackage rec {
+  pname = "systembridgemodels";
+  version = "4.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "timmo001";
+    repo = "system-bridge-models";
+    rev = "refs/tags/${version}";
+    hash = "sha256-4nbTsVRqtoX4UhTrQS4HwoLtx0RO1VA8UewSAWOSsik=";
+  };
+
+  patches = [
+    (fetchpatch2 {
+      url = "https://github.com/timmo001/system-bridge-models/commit/7cd506760fd47c0f3717b6fcfe127b673e3198f8.patch";
+      hash = "sha256-i+GCcoyX07ii9Kj46dtAlT85jUKfF0KHEH9++UTjiik=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    incremental
+  ];
+
+  pythonImportsCheck = [ "systembridgemodels" ];
+
+  # upstream has no tests
+  doCheck = false;
+
+  meta = {
+    changelog = "https://github.com/timmo001/system-bridge-models/releases/tag/${version}";
+    description = "This is the models package used by the System Bridge project";
+    homepage = "https://github.com/timmo001/system-bridge-models";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/tables/default.nix b/pkgs/development/python-modules/tables/default.nix
index 70a6f86231e8..fd034b209133 100644
--- a/pkgs/development/python-modules/tables/default.nix
+++ b/pkgs/development/python-modules/tables/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
   buildInputs = [
     bzip2
     c-blosc
+    blosc2.c-blosc2
     hdf5
     lzo
   ];
@@ -75,6 +76,7 @@ buildPythonPackage rec {
     "--lzo=${lib.getDev lzo}"
     "--bzip2=${lib.getDev bzip2}"
     "--blosc=${lib.getDev c-blosc}"
+    "--blosc2=${lib.getDev blosc2.c-blosc2}"
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/tempest/default.nix b/pkgs/development/python-modules/tempest/default.nix
index 3c8217239f23..ef2cb1b75569 100644
--- a/pkgs/development/python-modules/tempest/default.nix
+++ b/pkgs/development/python-modules/tempest/default.nix
@@ -26,20 +26,25 @@
 , oslotest
 , bash
 , python
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "tempest";
-  version = "36.0.0";
-  format = "setuptools";
+  version = "37.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-97Z5C7IluOXSkkUamFuljzzvD3QxdHZ/p8mXE9jW/2I=";
+    hash = "sha256-z9DCHlBetJ4wWcwfzIWf+TLKKNcCTKzpVs+2zgmuAyc=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     pbr
     cliff
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
new file mode 100644
index 000000000000..c91dce1a4c59
--- /dev/null
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "tencentcloud-sdk-python";
+  version = "3.0.1094";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "TencentCloud";
+    repo = "tencentcloud-sdk-python";
+    rev = "refs/tags/${version}";
+    hash = "sha256-h2p9auD8bTDbagAmjsmV06Z75I93LB6h+/ZYyt17ow0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "tencentcloud"
+  ];
+
+  pytestFlagsArray = [
+    # Other tests require credentials
+    "tests/unit/test_deserialize_warning.py"
+    "tests/unit/test_import.py"
+    "tests/unit/test_serialization.py"
+  ];
+
+  meta = with lib; {
+    description = "Tencent Cloud API 3.0 SDK for Python";
+    homepage = "https://github.com/TencentCloud/tencentcloud-sdk-python";
+    changelog = "https://github.com/TencentCloud/tencentcloud-sdk-python/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/tensorboard/default.nix b/pkgs/development/python-modules/tensorboard/default.nix
index d06c9e6d7d8e..af45054bac42 100644
--- a/pkgs/development/python-modules/tensorboard/default.nix
+++ b/pkgs/development/python-modules/tensorboard/default.nix
@@ -23,15 +23,15 @@
 
 buildPythonPackage rec {
   pname = "tensorboard";
-  version = "2.15.1";
+  version = "2.16.0";
   format = "wheel";
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    hash = "sha256-xGwdHPE6RYxCmGiniyUx2P9faCBY1p7AhAsLx6OPHA8=";
+    hash = "sha256-JjuQmiAJyzp52qar5kwXhcwxfCWlTk2y/stkKf/FTFg=";
   };
 
   nativeBuildInputs = [
@@ -76,9 +76,11 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
+    changelog = "https://github.com/tensorflow/tensorboard/blob/${version}/RELEASE.md";
     description = "TensorFlow's Visualization Toolkit";
     homepage = "https://www.tensorflow.org/";
     license = licenses.asl20;
+    mainProgram = "tensorboard";
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index 8714a77d8812..069b87b76f84 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -29,7 +29,7 @@
 , avx2Support  ? stdenv.hostPlatform.avx2Support
 , fmaSupport   ? stdenv.hostPlatform.fmaSupport
 # Darwin deps
-, Foundation, Security, cctools, llvmPackages_11
+, Foundation, Security, cctools, llvmPackages
 }:
 
 let
@@ -51,7 +51,7 @@ let
   # translation units, so the build fails at link time
   stdenv =
     if cudaSupport then cudaPackagesGoogle.backendStdenv
-    else if originalStdenv.isDarwin then llvmPackages_11.stdenv
+    else if originalStdenv.isDarwin then llvmPackages.stdenv
     else originalStdenv;
   inherit (cudaPackagesGoogle) cudatoolkit nccl;
   # use compatible cuDNN (https://www.tensorflow.org/install/source#gpu)
diff --git a/pkgs/development/python-modules/tesla-fleet-api/default.nix b/pkgs/development/python-modules/tesla-fleet-api/default.nix
index d023ae54f7fe..598c68884d3b 100644
--- a/pkgs/development/python-modules/tesla-fleet-api/default.nix
+++ b/pkgs/development/python-modules/tesla-fleet-api/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "tesla-fleet-api";
-  version = "0.4.0";
+  version = "0.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Teslemetry";
     repo = "python-tesla-fleet-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XAgZxvN6j3p607Yox5omDDOm3n8YSJFAmui8+5jqY5c=";
+    hash = "sha256-80VjSg94gCXzqy6Z/yuDblYgo4TlJdxR+jsOiY/Zhng=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tesla-powerwall/default.nix b/pkgs/development/python-modules/tesla-powerwall/default.nix
index 1feefef49b6f..fcdab982a02d 100644
--- a/pkgs/development/python-modules/tesla-powerwall/default.nix
+++ b/pkgs/development/python-modules/tesla-powerwall/default.nix
@@ -3,14 +3,16 @@
 , fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
-, requests
-, responses
+, aiohttp
+, urllib3
+, orjson
+, aresponses
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "tesla-powerwall";
-  version = "0.4.0";
+  version = "0.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +21,7 @@ buildPythonPackage rec {
     owner = "jrester";
     repo = "tesla_powerwall";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IqUxWwEvrSEbLAEnHG84oCV75qO0L5LmgpHOfaM6G8o=";
+    hash = "sha256-if/FCfxAB48WGXZOMvCtdSOW2FWO43OrlcHZbXIPmGE=";
   };
 
   nativeBuildInputs = [
@@ -27,12 +29,14 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    requests
+    aiohttp
+    urllib3
+    orjson
   ];
 
   nativeCheckInputs = [
+    aresponses
     pytestCheckHook
-    responses
   ];
 
   pytestFlagsArray = [
diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix
index 6113762d77a2..26b1689e1ef9 100644
--- a/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "3.9.10";
+  version = "3.10.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "zabuldon";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-DNac9rrHJkFWlYRLvDB49kjmJV2EMvs5Y2ndSGY7uvk=";
+    hash = "sha256-7pT3LXBbE4/QRfmTWAJG6yarU787r2tjXRiv7ySvuSs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/testbook/default.nix b/pkgs/development/python-modules/testbook/default.nix
index 4b49755bf891..331a7b61160c 100644
--- a/pkgs/development/python-modules/testbook/default.nix
+++ b/pkgs/development/python-modules/testbook/default.nix
@@ -7,6 +7,7 @@
 , ipykernel
 , pandas
 , pytestCheckHook
+, setuptools
 , traitlets
 }:
 
@@ -29,6 +30,10 @@ buildPythonPackage rec {
     nbformat
   ];
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     ipykernel
     pandas
diff --git a/pkgs/development/python-modules/textual-universal-directorytree/default.nix b/pkgs/development/python-modules/textual-universal-directorytree/default.nix
index 5f14accbaca7..b36ce6ed84e9 100644
--- a/pkgs/development/python-modules/textual-universal-directorytree/default.nix
+++ b/pkgs/development/python-modules/textual-universal-directorytree/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , hatchling
 , textual
 , universal-pathlib
@@ -10,12 +11,15 @@
 , paramiko
 , requests
 , s3fs
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "textual-universal-directorytree";
   version = "1.0.2";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "juftin";
@@ -24,6 +28,15 @@ buildPythonPackage rec {
     hash = "sha256-FL2bwPGqBmDn33Rhj7+VEpuqB4znEAw+GGAODTs25oo=";
   };
 
+  patches = [
+    # universal-pathlib upgrade, https://github.com/juftin/textual-universal-directorytree/pull/2
+    (fetchpatch {
+      name = "universal-pathlib-upgrade.patch";
+      url = "https://github.com/juftin/textual-universal-directorytree/commit/e445aff21ddf756e3f180c8308a75c41487667c3.patch";
+      hash = "sha256-Fftx8rrLPb6lQ+HBdB5Ai55LHMWEO6XftmFfZXbXIyk=";
+    })
+  ];
+
   nativeBuildInputs = [
     hatchling
   ];
@@ -44,7 +57,9 @@ 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/thermopro-ble/default.nix b/pkgs/development/python-modules/thermopro-ble/default.nix
index 3cf2170ed084..573047f99fe8 100644
--- a/pkgs/development/python-modules/thermopro-ble/default.nix
+++ b/pkgs/development/python-modules/thermopro-ble/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "thermopro-ble";
-  version = "0.8.0";
+  version = "0.10.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "bluetooth-devices";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ENzFX0rD97hCnllFKjcSGbAbEksqln/Hj0MuDVOKGDo=";
+    hash = "sha256-xaRbp9XLCDGJ0NE0TzJygn2OzqvSFszs97vGHawCkzU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/timm/default.nix b/pkgs/development/python-modules/timm/default.nix
index 90dfe5598785..18ac893e9261 100644
--- a/pkgs/development/python-modules/timm/default.nix
+++ b/pkgs/development/python-modules/timm/default.nix
@@ -1,21 +1,22 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
 , pythonOlder
-, pytestCheckHook
-, expecttest
-, pytest-timeout
+, fetchFromGitHub
+, pdm-backend
 , huggingface-hub
 , pyyaml
 , safetensors
 , torch
 , torchvision
+, expecttest
+, pytestCheckHook
+, pytest-timeout
 }:
 
 buildPythonPackage rec {
   pname = "timm";
-  version = "0.9.12";
-  format = "setuptools";
+  version = "0.9.16";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -23,9 +24,13 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "pytorch-image-models";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dDd/Sjy4xmJlaAg+fOxxcuX3FX//uJJkW0q3AaeCfns=";
+    hash = "sha256-IWEDKuI2565Z07q1MxTpzKS+CROPR6SyaD5fKcQ5eXk=";
   };
 
+  nativeBuildInputs = [
+    pdm-backend
+  ];
+
   propagatedBuildInputs = [
     huggingface-hub
     pyyaml
diff --git a/pkgs/development/python-modules/tls-client/default.nix b/pkgs/development/python-modules/tls-client/default.nix
new file mode 100644
index 000000000000..77e7a2f3e55c
--- /dev/null
+++ b/pkgs/development/python-modules/tls-client/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, typing-extensions
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "tls-client";
+  version = "1.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "FlorianREGAZ";
+    repo = "Python-Tls-Client";
+    rev = "refs/tags/${version}";
+    hash = "sha256-0eH9fA/oQzrgXcQilUdg4AaTqezj1Q9hP9olhZEDeBc=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "tls_client"
+  ];
+
+  meta = with lib; {
+    description = "Advanced HTTP Library";
+    homepage = "https://github.com/FlorianREGAZ/Python-Tls-Client";
+    changelog = "https://github.com/FlorianREGAZ/Python-Tls-Client/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/torch-audiomentations/default.nix b/pkgs/development/python-modules/torch-audiomentations/default.nix
new file mode 100644
index 000000000000..3d2ea51aa62d
--- /dev/null
+++ b/pkgs/development/python-modules/torch-audiomentations/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, julius
+, librosa
+, torch
+, torchaudio
+, torch-pitch-shift
+}:
+
+buildPythonPackage rec {
+  pname = "torch-audiomentations";
+  version = "0.11.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "asteroid-team";
+    repo = "torch-audiomentations";
+    rev = "v${version}";
+    hash = "sha256-r3J8yo3+jjuD4qqpC5Ax3TFPL9pGUNc0EksTkCTJKbU=";
+  };
+
+  propagatedBuildInputs = [
+    julius
+    librosa
+    torch
+    torchaudio
+    torch-pitch-shift
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [ "torch_audiomentations" ];
+
+  meta = with lib; {
+    description = "Fast audio data augmentation in PyTorch. Inspired by audiomentations. Useful for deep learning";
+    homepage = "https://github.com/asteroid-team/torch-audiomentations";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/torch-pitch-shift/default.nix b/pkgs/development/python-modules/torch-pitch-shift/default.nix
new file mode 100644
index 000000000000..2d9aa146abb9
--- /dev/null
+++ b/pkgs/development/python-modules/torch-pitch-shift/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, packaging
+, primepy
+, torch
+, torchaudio
+}:
+
+buildPythonPackage rec {
+  pname = "torch-pitch-shift";
+  version = "1.2.4";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "KentoNishi";
+    repo = "torch-pitch-shift";
+    rev = "v${version}";
+    hash = "sha256-s3z+6jOGC7RfF9TzVZ9HFbIFz2BsBm6Yhx7lgaEKv6o=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    packaging
+    primepy
+    torch
+    torchaudio
+  ];
+
+  pythonImportsCheck = [ "torch_pitch_shift" ];
+
+  meta = with lib; {
+    description = "Pitch-shift audio clips quickly with PyTorch (CUDA supported)! Additional utilities for searching efficient transformations are included";
+    homepage = "https://github.com/KentoNishi/torch-pitch-shift";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/development/python-modules/torch/bin.nix b/pkgs/development/python-modules/torch/bin.nix
index 9b12470cdde8..0bb415574e39 100644
--- a/pkgs/development/python-modules/torch/bin.nix
+++ b/pkgs/development/python-modules/torch/bin.nix
@@ -24,7 +24,7 @@ let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "2.1.2";
+  version = "2.2.1";
 in buildPythonPackage {
   inherit version;
 
@@ -47,6 +47,17 @@ in buildPythonPackage {
     # $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 [
@@ -79,18 +90,6 @@ in buildPythonPackage {
 
   postFixup = lib.optionalString stdenv.isLinux ''
     addAutoPatchelfSearchPath "$out/${python.sitePackages}/torch/lib"
-
-    patchelf $out/${python.sitePackages}/torch/lib/libcudnn.so.8 --add-needed libcudnn_cnn_infer.so.8
-
-    pushd $out/${python.sitePackages}/torch/lib || exit 1
-      for LIBNVRTC in ./libnvrtc*
-      do
-        case "$LIBNVRTC" in
-          ./libnvrtc-builtins*) true;;
-          ./libnvrtc*) patchelf "$LIBNVRTC" --add-needed libnvrtc-builtins* ;;
-        esac
-      done
-    popd || exit 1
   '';
 
   # The wheel-binary is not stripped to avoid the error of `ImportError: libtorch_cuda_cpp.so: ELF load command address/offset not properly aligned.`.
@@ -106,7 +105,7 @@ in buildPythonPackage {
     # https://docs.nvidia.com/cuda/eula/index.html
     # https://www.intel.com/content/www/us/en/developer/articles/license/onemkl-license-faq.html
     # torch's license is BSD3.
-    # torch-bin includes CUDA and MKL binaries, therefore unfreeRedistributable is set.
+    # 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" ];
diff --git a/pkgs/development/python-modules/torch/binary-hashes.nix b/pkgs/development/python-modules/torch/binary-hashes.nix
index b22d01262065..0fd4a5b36e4d 100644
--- a/pkgs/development/python-modules/torch/binary-hashes.nix
+++ b/pkgs/development/python-modules/torch/binary-hashes.nix
@@ -6,86 +6,86 @@
 # To add a new version, run "prefetch.sh 'new-version'" to paste the generated file as follows.
 
 version : builtins.getAttr version {
-  "2.1.2" = {
+  "2.2.1" = {
     x86_64-linux-38 = {
-      name = "torch-2.1.2-cp38-cp38-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp38-cp38-linux_x86_64.whl";
-      hash = "sha256-2qF5u1WPePIWXbl0pnROyN4upx62qvNiva52FgEsAwI=";
+      name = "torch-2.2.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.2.1%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-OIDrgRsT+PGl/DKC5FVnS5qfpnOrJW8GOOK09JUlFsM=";
     };
     x86_64-linux-39 = {
-      name = "torch-2.1.2-cp39-cp39-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp39-cp39-linux_x86_64.whl";
-      hash = "sha256-6q9pB+NyPAymqR314Bp+74yr7JMSDppQc59aXxSiqkY=";
+      name = "torch-2.2.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.2.1%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-HLN5h0E455jAK0GWLdnU7AsGOoykWlEJfzJmFUd8m9A=";
     };
     x86_64-linux-310 = {
-      name = "torch-2.1.2-cp310-cp310-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp310-cp310-linux_x86_64.whl";
-      hash = "sha256-shhLdynvO5sQBlwHSjfB5gP9mfkeODduJct+1uHVRpY=";
+      name = "torch-2.2.1-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.2.1%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-Gt9DDwH/ZJyEisAheF4YAHsHFP3eaOTmW9DGQL8/uOE=";
     };
     x86_64-linux-311 = {
-      name = "torch-2.1.2-cp311-cp311-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp311-cp311-linux_x86_64.whl";
-      hash = "sha256-ygXK6TNFBNGQPhbFDd8EUymoWdWxon7S3B1Y7QZt9vo=";
+      name = "torch-2.2.1-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.2.1%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-I7souoAPJanTPVF2i/X976AiDLxc2aF/ItKkJig1lGg=";
     };
     x86_64-darwin-38 = {
-      name = "torch-2.1.2-cp38-none-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp38-none-macosx_10_9_x86_64.whl";
-      hash = "sha256-jiId7M0N72wrrf9r5APgxTSRgF7ZkV4sAprbzbh6trU=";
+      name = "torch-2.2.1-cp38-none-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp38-none-macosx_10_9_x86_64.whl";
+      hash = "sha256-YXaFhegqmdxcQZM759ucoGf6451F/r1RA8yKBNUkSRg=";
     };
     x86_64-darwin-39 = {
-      name = "torch-2.1.2-cp39-none-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp39-none-macosx_10_9_x86_64.whl";
-      hash = "sha256-aYTNUFfAyXezyXVyVOmJ0/EST0zp0HyqbLY3eDxx1Co=";
+      name = "torch-2.2.1-cp39-none-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp39-none-macosx_10_9_x86_64.whl";
+      hash = "sha256-o6OqT5rSqLjnLBqElA2MWd1O7SkbyytgOta1hJgwYvU=";
     };
     x86_64-darwin-310 = {
-      name = "torch-2.1.2-cp310-none-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp310-none-macosx_10_9_x86_64.whl";
-      hash = "sha256-2bU1ytDfPROZfb6L1orDPg465Td2OcmIGUjkB5SmFAM=";
+      name = "torch-2.2.1-cp310-none-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp310-none-macosx_10_9_x86_64.whl";
+      hash = "sha256-531ee2Cn4cI0XGSC/4dvNqDwQ+a+Mu9Y2sQWxKoOOyg=";
     };
     x86_64-darwin-311 = {
-      name = "torch-2.1.2-cp311-none-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp311-none-macosx_10_9_x86_64.whl";
-      hash = "sha256-dtN5Z8McmVSK0sTT8s8ZHbSEdvLmmzWgk3E3EW2jVqE=";
+      name = "torch-2.2.1-cp311-none-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp311-none-macosx_10_9_x86_64.whl";
+      hash = "sha256-lkeM9Oc3ADBZee0cp2tTVTbUYvMDAqNe3Rzu4MPYB9M=";
     };
     aarch64-darwin-38 = {
-      name = "torch-2.1.2-cp38-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp38-none-macosx_11_0_arm64.whl";
-      hash = "sha256-BbGFlPYKkRoMTwI/OKi9p3Ex+6X9dBvaYm6X3PWj3Qo=";
+      name = "torch-2.2.1-cp38-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp38-none-macosx_11_0_arm64.whl";
+      hash = "sha256-fX1aq00JspIgKXkbacgDq6HAWcYP9lYj8ddFgMFHvUw=";
     };
     aarch64-darwin-39 = {
-      name = "torch-2.1.2-cp39-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp39-none-macosx_11_0_arm64.whl";
-      hash = "sha256-vBldeSf+q8DrfBEORXyVXtKrYW88fChDndQYjPWJaZ8=";
+      name = "torch-2.2.1-cp39-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp39-none-macosx_11_0_arm64.whl";
+      hash = "sha256-uQZpsWKYTjAvvQXJwnDveW5GeQOUTs76dFe6vpYRYH4=";
     };
     aarch64-darwin-310 = {
-      name = "torch-2.1.2-cp310-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp310-none-macosx_11_0_arm64.whl";
-      hash = "sha256-+aVdVa8Cgm6/ut9Om2gvDyd2a8M9+CNrSNKNcFWHho8=";
+      name = "torch-2.2.1-cp310-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp310-none-macosx_11_0_arm64.whl";
+      hash = "sha256-Ur3sHiLQg4L9mNttK/F6KU0P1TJgz9ZPuHRDSSy6xrQ=";
     };
     aarch64-darwin-311 = {
-      name = "torch-2.1.2-cp311-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp311-none-macosx_11_0_arm64.whl";
-      hash = "sha256-4tg/B7SqyYNFPqW/j5qp2s8ieKjTEkf12QN/N778YOQ=";
+      name = "torch-2.2.1-cp311-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp311-none-macosx_11_0_arm64.whl";
+      hash = "sha256-zNmEmw3TcKmBPd3kenf0OciqzOAi5LoL+TZRc9WAgJY=";
     };
     aarch64-linux-38 = {
-      name = "torch-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-4yJfR9ULtm91b+kZanaAVdHCawIVTrH3cM5HoleNOqc=";
+      name = "torch-2.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-y4ThL9QAXHh/zkDto96sBCmPWQY0iRBixM2yzywUIiE=";
     };
     aarch64-linux-39 = {
-      name = "torch-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-2TunD2ewjCrlWY7nEcvFRqG8gQLO+TiQS4yFwgiaUaA=";
+      name = "torch-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-7g90adoiGNyHlIV1DaF6JF3DaRbi+cX8CDbkz1cq0H0=";
     };
     aarch64-linux-310 = {
-      name = "torch-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-vvaZbCfY9ukupOE6dy2JYR2g4QO0h5DeeBMeMIz3MHY=";
+      name = "torch-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-8BgwAuGJeNWYw+6JGcLmSCAsf+u5CIFRVshmxSTEo1k=";
     };
     aarch64-linux-311 = {
-      name = "torch-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-jzLOWRYWowME83p9XqgLacqeG5S7p/MIGEv2Fv2uoVU=";
+      name = "torch-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-fyaXQWtneZbuHzCyZ2qKlN3b44ijXDYdyG6RW9pHt9o=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torch/default.nix b/pkgs/development/python-modules/torch/default.nix
index 8a499d763a4a..388f66f40a49 100644
--- a/pkgs/development/python-modules/torch/default.nix
+++ b/pkgs/development/python-modules/torch/default.nix
@@ -21,6 +21,7 @@
   Accelerate, CoreServices, libobjc,
 
   # Propagated build inputs
+  astunparse,
   fsspec,
   filelock,
   jinja2,
@@ -126,8 +127,8 @@ let
 in buildPythonPackage rec {
   pname = "torch";
   # Don't forget to update torch-bin to the same version.
-  version = "2.1.2";
-  format = "setuptools";
+  version = "2.2.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8.0";
 
@@ -144,7 +145,7 @@ in buildPythonPackage rec {
     repo = "pytorch";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-E/GQCRWBf3hYsDCCk0twaL9gkVOCEQeCvO3Va+jgIdE=";
+    hash = "sha256-6z8G5nMbGHbpA+xfmOR726h9E4N9NoEtaFgcYE0DuUE=";
   };
 
   patches = lib.optionals cudaSupport [
@@ -247,6 +248,9 @@ in buildPythonPackage rec {
   # Also avoids pytorch exporting the headers of pybind11
   USE_SYSTEM_PYBIND11 = true;
 
+  # NB technical debt: building without NNPACK as workaround for missing `six`
+  USE_NNPACK = 0;
+
   preBuild = ''
     export MAX_JOBS=$NIX_BUILD_CORES
     ${python.pythonOnBuildForHost.interpreter} setup.py build --cmake-only
@@ -383,6 +387,7 @@ in buildPythonPackage rec {
     ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
 
   propagatedBuildInputs = [
+    astunparse
     cffi
     click
     numpy
diff --git a/pkgs/development/python-modules/torch/fix-cmake-cuda-toolkit.patch b/pkgs/development/python-modules/torch/fix-cmake-cuda-toolkit.patch
index 508118cc2e8a..45587d3fe7b9 100644
--- a/pkgs/development/python-modules/torch/fix-cmake-cuda-toolkit.patch
+++ b/pkgs/development/python-modules/torch/fix-cmake-cuda-toolkit.patch
@@ -1,19 +1,8 @@
-From aa7e7cfd5a5fe0c839406c1b197b81ef955a7ef5 Mon Sep 17 00:00:00 2001
-From: Gaetan Lepage <gaetan@glepage.com>
-Date: Thu, 23 Nov 2023 00:39:26 +0100
-Subject: [PATCH] fix-cmake-cuda-toolkit
-
----
- CMakeLists.txt               |  4 ----
- cmake/public/cuda.cmake      | 12 +++++++++---
- tools/setup_helpers/cmake.py |  2 ++
- 3 files changed, 11 insertions(+), 7 deletions(-)
-
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3a48eaf4e29..3aaeef2593a 100644
+index 9194e520bb0..d05fdcfb6cb 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -1152,10 +1152,6 @@ if(BUILD_SHARED_LIBS)
+@@ -1160,10 +1160,6 @@ if(BUILD_SHARED_LIBS)
        ${PROJECT_SOURCE_DIR}/cmake/Modules_CUDA_fix
        DESTINATION share/cmake/Caffe2/
        COMPONENT dev)
@@ -25,16 +14,16 @@ index 3a48eaf4e29..3aaeef2593a 100644
        ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUSPARSELT.cmake
        DESTINATION share/cmake/Caffe2/
 diff --git a/cmake/public/cuda.cmake b/cmake/public/cuda.cmake
-index 32f3ba375b5..c8b666e4c78 100644
+index c7595774d81..4fc43771810 100644
 --- a/cmake/public/cuda.cmake
 +++ b/cmake/public/cuda.cmake
-@@ -62,9 +62,15 @@ cmake_policy(POP)
+@@ -61,9 +61,15 @@ find_package(CUDAToolkit REQUIRED)
+ cmake_policy(POP)
  
- if(NOT CMAKE_CUDA_COMPILER_VERSION STREQUAL CUDAToolkit_VERSION OR
-     NOT CUDA_INCLUDE_DIRS STREQUAL CUDAToolkit_INCLUDE_DIR)
--  message(FATAL_ERROR "Found two conflicting CUDA installs:\n"
+ if(NOT CMAKE_CUDA_COMPILER_VERSION VERSION_EQUAL CUDAToolkit_VERSION)
+-  message(FATAL_ERROR "Found two conflicting CUDA versions:\n"
 -                      "V${CMAKE_CUDA_COMPILER_VERSION} in '${CUDA_INCLUDE_DIRS}' and\n"
--                      "V${CUDAToolkit_VERSION} in '${CUDAToolkit_INCLUDE_DIR}'")
+-                      "V${CUDAToolkit_VERSION} in '${CUDAToolkit_INCLUDE_DIRS}'")
 +  if(CUDA_INCLUDE_DIRS IN_LIST CUDAToolkit_INCLUDE_DIR)
 +    message(STATUS "CUDA_INCLUDE_DIRS is a substring of CUDAToolkit_INCLUDE_DIR. "
 +                   "Setting CUDA_INCLUDE_DIRS to CUDAToolkit_INCLUDE_DIR.")
@@ -60,6 +49,3 @@ index fb19b66dfba..3f83bef32fe 100644
                      "CUDA_SEPARABLE_COMPILATION",
                      "CUDNN_LIBRARY",
                      "CUDNN_INCLUDE_DIR",
--- 
-2.42.0
-
diff --git a/pkgs/development/python-modules/torchaudio/bin.nix b/pkgs/development/python-modules/torchaudio/bin.nix
index c3567506337d..863fdc920a48 100644
--- a/pkgs/development/python-modules/torchaudio/bin.nix
+++ b/pkgs/development/python-modules/torchaudio/bin.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "torchaudio";
-  version = "2.1.2";
+  version = "2.2.1";
   format = "wheel";
 
   src =
diff --git a/pkgs/development/python-modules/torchaudio/binary-hashes.nix b/pkgs/development/python-modules/torchaudio/binary-hashes.nix
index 964e122168f7..eda82094c511 100644
--- a/pkgs/development/python-modules/torchaudio/binary-hashes.nix
+++ b/pkgs/development/python-modules/torchaudio/binary-hashes.nix
@@ -6,86 +6,86 @@
 # To add a new version, run "prefetch.sh 'new-version'" to paste the generated file as follows.
 
 version : builtins.getAttr version {
-  "2.1.2" = {
+  "2.2.1" = {
     x86_64-linux-38 = {
-      name = "torchaudio-2.1.2-cp38-cp38-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.1.2%2Bcu121-cp38-cp38-linux_x86_64.whl";
-      hash = "sha256-nptbhxqUhL5rUK687w+M8Cb5w9MLhtfEz0mHbDAwGBU=";
+      name = "torchaudio-2.2.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.1%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-XU/trqM3W8hQ+9kI6G1b+GAbp9eCPFId6+jY3lwiZYg=";
     };
     x86_64-linux-39 = {
-      name = "torchaudio-2.1.2-cp39-cp39-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.1.2%2Bcu121-cp39-cp39-linux_x86_64.whl";
-      hash = "sha256-L1s1TSIGHHm4fdDBoIQamQVtMuqNuIIf2NZz1rB3wbI=";
+      name = "torchaudio-2.2.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.1%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-LQScsJsPn+EE0goKRwIW/Fzo+SW9SYVuZYDi2Vn1syg=";
     };
     x86_64-linux-310 = {
-      name = "torchaudio-2.1.2-cp310-cp310-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.1.2%2Bcu121-cp310-cp310-linux_x86_64.whl";
-      hash = "sha256-HoqSB2Mei6bsve48nWbx6dQ4rWKwtNTxhAFti+idaKc=";
+      name = "torchaudio-2.2.1-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.1%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-I/YjZCniv2drgg6OciGh1YqvkIv/K6JmWqhS33GpeWE=";
     };
     x86_64-linux-311 = {
-      name = "torchaudio-2.1.2-cp311-cp311-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.1.2%2Bcu121-cp311-cp311-linux_x86_64.whl";
-      hash = "sha256-jFpvXk1EDXfU/KxVFV7/xGSpkGIddkinFVZ7eJWr8nU=";
+      name = "torchaudio-2.2.1-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.1%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-YJACsObf9ED81qY9FcA8PTdOIU56iqYcLvSlKLpkTDk=";
     };
     x86_64-darwin-38 = {
-      name = "torchaudio-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.1.2-cp38-cp38-macosx_10_13_x86_64.whl";
-      hash = "sha256-0O/QCMNd7JYrgPXc40aL0biDAc9lFSu/p/dMAAWhfok=";
+      name = "torchaudio-2.2.1-cp38-cp38-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp38-cp38-macosx_10_13_x86_64.whl";
+      hash = "sha256-ge+I12k+O5kAfR7nQv2Buakjmey/iOt+1plJRDAF/7o=";
     };
     x86_64-darwin-39 = {
-      name = "torchaudio-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.1.2-cp39-cp39-macosx_10_13_x86_64.whl";
-      hash = "sha256-rlDc801cb3MYDPaUGV7jEZS51gkDKFdcMKWWC8cW+lI=";
+      name = "torchaudio-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp39-cp39-macosx_10_13_x86_64.whl";
+      hash = "sha256-Azn+eO2cKfcEKWdhsouwVbU1BiX/UDrXgXBDl5NOa1g=";
     };
     x86_64-darwin-310 = {
-      name = "torchaudio-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.1.2-cp310-cp310-macosx_10_13_x86_64.whl";
-      hash = "sha256-BvjAKBTmzdeGJrv0StK7ivpbOatlDGrxgyijIxFGEFg=";
+      name = "torchaudio-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp310-cp310-macosx_10_13_x86_64.whl";
+      hash = "sha256-WA7v12SgGmTVtqomDAxHl0vmppZIktVAKac7F/RhH80=";
     };
     x86_64-darwin-311 = {
-      name = "torchaudio-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.1.2-cp311-cp311-macosx_10_13_x86_64.whl";
-      hash = "sha256-wQhO7fTO0a+f3RiRBpD/YV+JuuswsyAwgGVD+8bzZX4=";
+      name = "torchaudio-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp311-cp311-macosx_10_13_x86_64.whl";
+      hash = "sha256-J0y4R0vB5Wt2jvNH0xiGYcWp1eaOLfVvwK/xHMc8kWo=";
     };
     aarch64-darwin-38 = {
-      name = "torchaudio-2.1.2-cp38-cp38-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.1.2-cp38-cp38-macosx_11_0_arm64.whl";
-      hash = "sha256-MK2XESQSWSUYlT88ws0bauFT1lY91b2eq2qXIxX+nZ4=";
+      name = "torchaudio-2.2.1-cp38-cp38-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp38-cp38-macosx_11_0_arm64.whl";
+      hash = "sha256-9Ien0xd65q8BZ1CFDuk3iOiAIYoaMQvGx2kB4hL5HNM=";
     };
     aarch64-darwin-39 = {
-      name = "torchaudio-2.1.2-cp39-cp39-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.1.2-cp39-cp39-macosx_11_0_arm64.whl";
-      hash = "sha256-FHKcyd9S3vpnT89e1N4NZQcDjvGAErlqL1anftcGdt0=";
+      name = "torchaudio-2.2.1-cp39-cp39-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp39-cp39-macosx_11_0_arm64.whl";
+      hash = "sha256-aLHZ+P/psm7wToDYKuLcL3Sxoetkw+itIbUlgCs7x6w=";
     };
     aarch64-darwin-310 = {
-      name = "torchaudio-2.1.2-cp310-cp310-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.1.2-cp310-cp310-macosx_11_0_arm64.whl";
-      hash = "sha256-nWdmc8HOTdEfyhReOmzZtOW4l8/60PYX0pBvLT/Iw6k=";
+      name = "torchaudio-2.2.1-cp310-cp310-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp310-cp310-macosx_11_0_arm64.whl";
+      hash = "sha256-itVcIGmye74Y4UeDogLj8/gIL+nlkoFDa6eX7bD8lNU=";
     };
     aarch64-darwin-311 = {
-      name = "torchaudio-2.1.2-cp311-cp311-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.1.2-cp311-cp311-macosx_11_0_arm64.whl";
-      hash = "sha256-hgrMMuZQcGPywT2B4mcYGZ4hXzSivNbJYJol6b8hqjY=";
+      name = "torchaudio-2.2.1-cp311-cp311-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp311-cp311-macosx_11_0_arm64.whl";
+      hash = "sha256-HmLCexdnLMK92WY2geUzAA+cCYTmoPPUVfcFG8AFuwI=";
     };
     aarch64-linux-38 = {
-      name = "torchaudio-2.1.2-cp38-cp38-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/torchaudio-2.1.2-cp38-cp38-linux_aarch64.whl";
-      hash = "sha256-/3FWsw6wXpEkKGwwyA2oS5PiJ9AJrblusZSJYAtFkzI=";
+      name = "torchaudio-2.2.1-cp38-cp38-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp38-cp38-linux_aarch64.whl";
+      hash = "sha256-pEYrPyFPYLa4944SpM8Skcm8NT3u1wmsPf3tvtUTp6M=";
     };
     aarch64-linux-39 = {
-      name = "torchaudio-2.1.2-cp39-cp39-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/torchaudio-2.1.2-cp39-cp39-linux_aarch64.whl";
-      hash = "sha256-s7u1Mk5wXe13YW5UZZGySa51iNNaPowsTB2Yal6lHvQ=";
+      name = "torchaudio-2.2.1-cp39-cp39-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp39-cp39-linux_aarch64.whl";
+      hash = "sha256-yy2girt7aNx7AQV0ixpzbdMzKfhBN0AT7ALFTgS+3yk=";
     };
     aarch64-linux-310 = {
-      name = "torchaudio-2.1.2-cp310-cp310-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/torchaudio-2.1.2-cp310-cp310-linux_aarch64.whl";
-      hash = "sha256-+CZX/E7DtHO/bHUsDuYtf1Ea+e835RQ/gznsBJUE12c=";
+      name = "torchaudio-2.2.1-cp310-cp310-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp310-cp310-linux_aarch64.whl";
+      hash = "sha256-uRa3dkaYupMZqjslUZE5iS3oZl2EQ4lpusXh2FeMahE=";
     };
     aarch64-linux-311 = {
-      name = "torchaudio-2.1.2-cp311-cp311-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/torchaudio-2.1.2-cp311-cp311-linux_aarch64.whl";
-      hash = "sha256-mmut6KJJWnJPTuastehoKP9Ag9xsfFfGOGtUoOp6/nE=";
+      name = "torchaudio-2.2.1-cp311-cp311-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.1-cp311-cp311-linux_aarch64.whl";
+      hash = "sha256-ILKWXbT4QwIWNvU9P6sQdcP4lZxFDGR2KRJNJMfmy7A=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torchaudio/default.nix b/pkgs/development/python-modules/torchaudio/default.nix
index 81863b4dec18..73aec87cca61 100644
--- a/pkgs/development/python-modules/torchaudio/default.nix
+++ b/pkgs/development/python-modules/torchaudio/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "torchaudio";
-  version = "2.1.2";
-  format = "setuptools";
+  version = "2.2.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = "audio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kSBDQtOi0ZEnIg801kTtvqBAEbzaUNhWG/9jot2O3o4=";
+    hash = "sha256-ejgxWVIkusGi7zwg3nyAHHdjEPrFaS1TN7nN+PpSgOE=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/torchaudio/prefetch.sh b/pkgs/development/python-modules/torchaudio/prefetch.sh
index c0be5710121b..89422ff7c65e 100755
--- a/pkgs/development/python-modules/torchaudio/prefetch.sh
+++ b/pkgs/development/python-modules/torchaudio/prefetch.sh
@@ -7,47 +7,47 @@ version=$1
 
 linux_cuda_version="cu121"
 linux_cuda_bucket="https://download.pytorch.org/whl/${linux_cuda_version}"
-linux_cpu_bucket="https://download.pytorch.org/whl"
+linux_cpu_bucket="https://download.pytorch.org/whl/cpu"
 darwin_bucket="https://download.pytorch.org/whl/cpu"
 
 url_and_key_list=(
-  "x86_64-linux-38 $linux_cuda_bucket/torchaudio-${version}%2B${linux_cuda_version}-cp38-cp38-linux_x86_64.whl torchaudio-${version}-cp38-cp38-linux_x86_64.whl"
-  "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"
-  "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-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"
+    "x86_64-linux-38 $linux_cuda_bucket/torchaudio-${version}%2B${linux_cuda_version}-cp38-cp38-linux_x86_64.whl torchaudio-${version}-cp38-cp38-linux_x86_64.whl"
+    "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"
+    "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-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"
 )
 
 hashfile=binary-hashes-"$version".nix
-echo "  \"$version\" = {" >> $hashfile
+echo "  \"$version\" = {" >>$hashfile
 
 for url_and_key in "${url_and_key_list[@]}"; do
-  key=$(echo "$url_and_key" | cut -d' ' -f1)
-  url=$(echo "$url_and_key" | cut -d' ' -f2)
-  name=$(echo "$url_and_key" | cut -d' ' -f3)
+    key=$(echo "$url_and_key" | cut -d' ' -f1)
+    url=$(echo "$url_and_key" | cut -d' ' -f2)
+    name=$(echo "$url_and_key" | cut -d' ' -f3)
 
-  echo "prefetching ${url}..."
-  hash=$(nix hash to-sri --type sha256 `nix-prefetch-url "$url" --name "$name"`)
+    echo "prefetching ${url}..."
+    hash=$(nix hash to-sri --type sha256 $(nix-prefetch-url "$url" --name "$name"))
 
-  echo "    $key = {" >> $hashfile
-  echo "      name = \"$name\";" >> $hashfile
-  echo "      url = \"$url\";" >> $hashfile
-  echo "      hash = \"$hash\";" >> $hashfile
-  echo "    };" >> $hashfile
+    echo "    $key = {" >>$hashfile
+    echo "      name = \"$name\";" >>$hashfile
+    echo "      url = \"$url\";" >>$hashfile
+    echo "      hash = \"$hash\";" >>$hashfile
+    echo "    };" >>$hashfile
 
-  echo
+    echo
 done
 
-echo "  };" >> $hashfile
+echo "  };" >>$hashfile
 echo "done."
diff --git a/pkgs/development/python-modules/torchio/default.nix b/pkgs/development/python-modules/torchio/default.nix
index 66071011f2fb..3549664e15b9 100644
--- a/pkgs/development/python-modules/torchio/default.nix
+++ b/pkgs/development/python-modules/torchio/default.nix
@@ -19,16 +19,16 @@
 
 buildPythonPackage rec {
   pname = "torchio";
-  version = "0.19.1";
-  format = "pyproject";
+  version = "0.19.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fepegar";
-    repo = pname;
+    repo = "torchio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SNX558kSRCS9Eks00Kj2kFmo7hCUgV6saYLsnx/Kus0=";
+    hash = "sha256-RqKJStUZhnSmsifn3WjYLfmRkkme+GOe6dp0E0MW9tE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/torchmetrics/default.nix b/pkgs/development/python-modules/torchmetrics/default.nix
index 5361e6bc49a3..19885c488c5e 100644
--- a/pkgs/development/python-modules/torchmetrics/default.nix
+++ b/pkgs/development/python-modules/torchmetrics/default.nix
@@ -20,7 +20,7 @@
 
 let
   pname = "torchmetrics";
-  version = "1.3.0.post";
+  version = "1.3.1";
 in
 buildPythonPackage {
   inherit pname version;
@@ -32,7 +32,7 @@ buildPythonPackage {
     owner = "Lightning-AI";
     repo = "torchmetrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-InwXOeQ/u7sdq/+gjm0CSCiuB/9YXP+rPVbvOSH16Dk=";
+    hash = "sha256-ZFpLoF4t1ld2c3exX9H8AYG0XQM7MKmWe/I8XZmdrZw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/torchvision/bin.nix b/pkgs/development/python-modules/torchvision/bin.nix
index 3f4afca9f308..e1bc7295cb2d 100644
--- a/pkgs/development/python-modules/torchvision/bin.nix
+++ b/pkgs/development/python-modules/torchvision/bin.nix
@@ -16,7 +16,7 @@ let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "0.16.2";
+  version = "0.17.1";
 in buildPythonPackage {
   inherit version;
 
diff --git a/pkgs/development/python-modules/torchvision/binary-hashes.nix b/pkgs/development/python-modules/torchvision/binary-hashes.nix
index 713228240cab..d7cb16d01b61 100644
--- a/pkgs/development/python-modules/torchvision/binary-hashes.nix
+++ b/pkgs/development/python-modules/torchvision/binary-hashes.nix
@@ -6,66 +6,66 @@
 # To add a new version, run "prefetch.sh 'new-version'" to paste the generated file as follows.
 
 version : builtins.getAttr version {
-  "0.16.2" = {
+  "0.17.1" = {
     x86_64-linux-38 = {
-      name = "torchvision-0.16.2-cp38-cp38-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.16.2%2Bcu121-cp38-cp38-linux_x86_64.whl";
-      hash = "sha256-AmZyfQifUSqpAK6tKQhTD1TZB3eEveHnykb2a49Wfpg=";
+      name = "torchvision-0.17.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.1%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-oCRjQQZPPBdtqKpuMvATD2ACOAyQruqOMccY3ixUZOE=";
     };
     x86_64-linux-39 = {
-      name = "torchvision-0.16.2-cp39-cp39-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.16.2%2Bcu121-cp39-cp39-linux_x86_64.whl";
-      hash = "sha256-qhMlpuBBYD3uzvxWnmS4x1psmhuHbimi3vKYuoRWR00=";
+      name = "torchvision-0.17.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.1%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-WsK2vDCcNDud6KklczHPcVtm+qm1kiep8HDZ4BJS5go=";
     };
     x86_64-linux-310 = {
-      name = "torchvision-0.16.2-cp310-cp310-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.16.2%2Bcu121-cp310-cp310-linux_x86_64.whl";
-      hash = "sha256-uqeXDGtUNzEuXdC9DyVxogt4bD4oW6/W7T5PYqXDx24=";
+      name = "torchvision-0.17.1-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.1%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-J69HkV9udiwdROWOgIjSKsl0RWaPn3k1JAMrK69PNL0=";
     };
     x86_64-linux-311 = {
-      name = "torchvision-0.16.2-cp311-cp311-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.16.2%2Bcu121-cp311-cp311-linux_x86_64.whl";
-      hash = "sha256-CS1ZEQqf7PfDtE0YsbWqELqJjiVB4HtnT+WSaFIeuMs=";
+      name = "torchvision-0.17.1-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.1%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-bYKfOZSQQCWyiXHMxhvWbt2VKATyEipuEENQuOkXL08=";
     };
     x86_64-darwin-38 = {
-      name = "torchvision-0.16.2-cp38-cp38-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.16.2-cp38-cp38-macosx_10_13_x86_64.whl";
-      hash = "sha256-uCcy3Ph2o3yFJ3I0KqbuNIDAO7PiqAKuEJ/F9+KNJuk=";
+      name = "torchvision-0.17.1-cp38-cp38-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.1-cp38-cp38-macosx_10_13_x86_64.whl";
+      hash = "sha256-JiEJcGX6HIJ4heK1IQLoOaNUG5M7epDg+jxCw94bw88=";
     };
     x86_64-darwin-39 = {
-      name = "torchvision-0.16.2-cp39-cp39-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.16.2-cp39-cp39-macosx_10_13_x86_64.whl";
-      hash = "sha256-VhFSaLN/C3U2TjZU5HrZq8Zqw0wfnl49+omiLWpAAXo=";
+      name = "torchvision-0.17.1-cp39-cp39-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.1-cp39-cp39-macosx_10_13_x86_64.whl";
+      hash = "sha256-WCmacks3uJPHzk0LMuoUgMMORnzBFBZ5ZLRfYBP2wtM=";
     };
     x86_64-darwin-310 = {
-      name = "torchvision-0.16.2-cp310-cp310-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.16.2-cp310-cp310-macosx_10_13_x86_64.whl";
-      hash = "sha256-vIbygAyywMGgnFgUCc3Wv/ZuYvED3IP8Y/czRiZMN1Y=";
+      name = "torchvision-0.17.1-cp310-cp310-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.1-cp310-cp310-macosx_10_13_x86_64.whl";
+      hash = "sha256-BkGIgCErZuRehV3Tn1Nuf9SLTmsDShHdn+niOEr7Uew=";
     };
     x86_64-darwin-311 = {
-      name = "torchvision-0.16.2-cp311-cp311-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.16.2-cp311-cp311-macosx_10_13_x86_64.whl";
-      hash = "sha256-Z7Gq+LjLAs513URfKRonyANqUC+MCqduKMN6D6rC4VM=";
+      name = "torchvision-0.17.1-cp311-cp311-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.1-cp311-cp311-macosx_10_13_x86_64.whl";
+      hash = "sha256-6izNv1l04L8n/WZEozsZywcAKXzzl7sEaediwRxsQQU=";
     };
     aarch64-darwin-38 = {
-      name = "torchvision-0.16.2-cp38-cp38-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.16.2-cp38-cp38-macosx_11_0_arm64.whl";
-      hash = "sha256-SwZRQ9GnIP6KkHf9S+NdSR+YgZ7ICz27w+xk0LcHqQY=";
+      name = "torchvision-0.17.1-cp38-cp38-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.1-cp38-cp38-macosx_11_0_arm64.whl";
+      hash = "sha256-XOdkZq8rWjBXOTnK4ebmLikxbOs+50gJEALzEqsJEvY=";
     };
     aarch64-darwin-39 = {
-      name = "torchvision-0.16.2-cp39-cp39-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.16.2-cp39-cp39-macosx_11_0_arm64.whl";
-      hash = "sha256-goBfhEWwlPnR53A5DubMhoVeiZVeCM40ry4idPwOXEU=";
+      name = "torchvision-0.17.1-cp39-cp39-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.1-cp39-cp39-macosx_11_0_arm64.whl";
+      hash = "sha256-ihsX+xWLK4gfLIeW/hg5piTknV/QeqYfba5gukgZQho=";
     };
     aarch64-darwin-310 = {
-      name = "torchvision-0.16.2-cp310-cp310-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.16.2-cp310-cp310-macosx_11_0_arm64.whl";
-      hash = "sha256-sCS9QS3206AH3OvzEaiU6zxcIeGvgNEr44K7ywl6fDo=";
+      name = "torchvision-0.17.1-cp310-cp310-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.1-cp310-cp310-macosx_11_0_arm64.whl";
+      hash = "sha256-M9ZdDH/cs/e8HdjtMOo81+BYe0rRsQS1Z3yBkai62fE=";
     };
     aarch64-darwin-311 = {
-      name = "torchvision-0.16.2-cp311-cp311-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.16.2-cp311-cp311-macosx_11_0_arm64.whl";
-      hash = "sha256-vvMNA+HRxil2H03KUdO32KDcCszm9AaKsqFjTo57ZOA=";
+      name = "torchvision-0.17.1-cp311-cp311-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.1-cp311-cp311-macosx_11_0_arm64.whl";
+      hash = "sha256-kQbjLJ8ecK+oFyzxsGTPnCmY2N/wdp7GnVN7ICCe5D0=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index fc8526395f94..a8e90f7211c4 100644
--- a/pkgs/development/python-modules/torchvision/default.nix
+++ b/pkgs/development/python-modules/torchvision/default.nix
@@ -17,7 +17,7 @@ let
   inherit (cudaPackages) backendStdenv;
 
   pname = "torchvision";
-  version = "0.16.2";
+  version = "0.17.1";
 in
 buildPythonPackage {
   inherit pname version;
@@ -26,7 +26,7 @@ buildPythonPackage {
     owner = "pytorch";
     repo = "vision";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fSFoMZbF0bYqonvgoNAE8ZzwCsjhCdVo2BJ0pOC2zd0=";
+    hash = "sha256-K2irwwf6qgyfZqJH1NUasDmBSA4mH2Rclx7A7zP4kiQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tplink-omada-client/default.nix b/pkgs/development/python-modules/tplink-omada-client/default.nix
index 4006c002d52c..d71d2c86194f 100644
--- a/pkgs/development/python-modules/tplink-omada-client/default.nix
+++ b/pkgs/development/python-modules/tplink-omada-client/default.nix
@@ -10,15 +10,15 @@
 
 buildPythonPackage rec {
   pname = "tplink-omada-client";
-  version = "1.3.7";
-  format = "pyproject";
+  version = "1.3.11";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     pname = "tplink_omada_client";
     inherit version;
-    hash = "sha256-iSCrFrcj6csslIkd8yt0wvvOSTCHRiMnsMOeUDcsE4U=";
+    hash = "sha256-/mH9VqdF1l89qtAhug+ii4PCRO0PxKDr7LzvevjuZgc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tpm2-pytss/default.nix b/pkgs/development/python-modules/tpm2-pytss/default.nix
index 4b0f9adba51b..b6f43516f3a3 100644
--- a/pkgs/development/python-modules/tpm2-pytss/default.nix
+++ b/pkgs/development/python-modules/tpm2-pytss/default.nix
@@ -55,6 +55,15 @@ buildPythonPackage rec {
       sha256 = "sha256-Wxe9u7Cvv2vKMGTcK3X8W1Mq/nCt70zrzWUKA+83Sas=";
     })
 
+    # Inheritance in newer cryptography is not possible anymore
+    # for `RSAPrivateNumbers` because of a Rust implementation.
+    # https://github.com/tpm2-software/tpm2-pytss/pull/562
+    (fetchpatch {
+      name = "fix-newer-cryptography-42-0-1-support.patch";
+      url = "https://github.com/tpm2-software/tpm2-pytss/commit/0fbb9d099370c0a7031dd13990986538f586836a.patch";
+      sha256 = "sha256-xnQIr4/iJra0+rn5estVqSvG8pXcuwWykmmayBpCzgw=";
+    })
+
     # Fix hardcoded `fapi-config.json` configuration path
     ./fapi-config.patch
   ];
diff --git a/pkgs/development/python-modules/tqdm/default.nix b/pkgs/development/python-modules/tqdm/default.nix
index 84489b22ce4a..2cd490e844e5 100644
--- a/pkgs/development/python-modules/tqdm/default.nix
+++ b/pkgs/development/python-modules/tqdm/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     "-W" "ignore::FutureWarning"
+    "-W" "ignore::DeprecationWarning"
   ];
 
   # Remove performance testing.
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index ea72ad9f0424..de3fabc2ba28 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -53,7 +53,7 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.37.2";
+  version = "4.38.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "transformers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-O8A+6f6Qwr/OqwzA3i3MPCmcwg1BoQY6mvhozrLz16Y=";
+    hash = "sha256-92WmvSFZYCCG4qJprPT7clYa7ePuvyaCvxni/spDhSw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index d05cefe6ebe4..4ba34211571c 100644
--- a/pkgs/development/python-modules/trimesh/default.nix
+++ b/pkgs/development/python-modules/trimesh/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "4.1.3";
+  version = "4.1.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SIHIA6HKo3Ka6rmZrBZfSmN/sNfEjSImYUtbtQs3ozQ=";
+    hash = "sha256-m7Qhx8vdQAtvBtJS+4nQQSh0qnp/TRXoch/WJgk/7EI=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/tuf/default.nix b/pkgs/development/python-modules/tuf/default.nix
index b6965a7f42e2..2572c4ed8cd7 100644
--- a/pkgs/development/python-modules/tuf/default.nix
+++ b/pkgs/development/python-modules/tuf/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "tuf";
-  version = "3.1.0";
+  version = "3.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,12 +20,12 @@ buildPythonPackage rec {
     owner = "theupdateframework";
     repo = "python-tuf";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IGF/8RdX7Oxl6gdqPGN1w/6q4zaei+MnYXBZepB4KUA=";
+    hash = "sha256-HiF/b6aOhDhhQqYx/bjMXHABxmAJY4vkLlTheiL8zEo=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "hatchling==" "hatchling>="
+      --replace-fail "hatchling==" "hatchling>="
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/twitchapi/default.nix b/pkgs/development/python-modules/twitchapi/default.nix
index 5c672eef4c2a..8dc26553d422 100644
--- a/pkgs/development/python-modules/twitchapi/default.nix
+++ b/pkgs/development/python-modules/twitchapi/default.nix
@@ -3,7 +3,6 @@
 , pythonOlder
 , fetchFromGitHub
 , setuptools
-, wheel
 , aiohttp
 , python-dateutil
 , typing-extensions
@@ -11,22 +10,21 @@
 
 buildPythonPackage rec {
   pname = "twitchapi";
-  version = "4.1.0";
+  version = "4.2.0";
 
   disabled = pythonOlder "3.7";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Teekeks";
     repo = "pyTwitchAPI";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aYYuHyILd3nT0jG59wJcRgSeri26YsC3NpwuQ9dsI1I=";
+    hash = "sha256-QAxLYujnsudaiz9UepwrBA835Pct5h4VcE9ZrbkwMmg=";
   };
 
   nativeBuildInputs = [
     setuptools
-    wheel
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/txtai/default.nix b/pkgs/development/python-modules/txtai/default.nix
index dd77084ad3a8..4bf59621b5ca 100644
--- a/pkgs/development/python-modules/txtai/default.nix
+++ b/pkgs/development/python-modules/txtai/default.nix
@@ -52,7 +52,7 @@
 , unittestCheckHook
 }:
 let
-  version = "6.3.0";
+  version = "7.0.0";
   api = [ aiohttp fastapi uvicorn ];
   # cloud = [ apache-libcloud ];
   console = [ rich ];
@@ -105,7 +105,7 @@ buildPythonPackage {
     owner = "neuml";
     repo = "txtai";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Efk4HAJsQtSGp4S8S1dFBmObJ9ff9u9bRrTa5lACpTU=";
+    hash = "sha256-dYAzbdGEu9gAUzptuSfej6T5LPyTneRWigdAMlGgeqM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix
index c2eaf3889bf8..84648b20c1e5 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -1,7 +1,7 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchPypi
 , pythonOlder
-, lib
 , setuptools
 , setuptools-scm
 , pytestCheckHook
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   version = "4.1.5";
   format = "pyproject";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
@@ -51,6 +51,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "typeguard"
+  ];
+
   disabledTestPaths = [
     # mypy tests aren't passing with latest mypy
     "tests/mypy"
@@ -68,6 +72,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "This library provides run-time type checking for functions defined with argument type annotations";
     homepage = "https://github.com/agronholm/typeguard";
+    changelog = "https://github.com/agronholm/typeguard/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
index 17058a40a088..47f06b4741fe 100644
--- a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
@@ -1,10 +1,11 @@
 { lib
-, buildPythonPackage
-, pythonOlder
 , aiobotocore
 , botocore
-, typing-extensions
+, buildPythonPackage
 , fetchPypi
+, pythonOlder
+, setuptools
+, typing-extensions
 }:
 let
   toUnderscore = str: builtins.replaceStrings [ "-" ] [ "_" ] str;
@@ -13,7 +14,7 @@ let
     buildPythonPackage rec {
       pname = "types-aiobotocore-${serviceName}";
       inherit version;
-      format = "setuptools";
+      pyproject = true;
 
       disabled = pythonOlder "3.7";
 
@@ -21,6 +22,10 @@ let
         inherit pname version hash;
       };
 
+      nativeBuildInputs = [
+        setuptools
+      ];
+
       propagatedBuildInputs = [
         aiobotocore
         botocore
@@ -44,709 +49,709 @@ let
     };
 in
 rec {
-  types-aiobotocore-accessanalyzer = buildTypesAiobotocorePackage "accessanalyzer" "2.8.0" "sha256-7TmekyZVc2l2er1TIJURP7Qy0n7xRYnXt44FJr5XBWA=";
+  types-aiobotocore-accessanalyzer = buildTypesAiobotocorePackage "accessanalyzer" "2.11.2" "sha256-hUS1ZTj9CbC74Aiinmeh2BEQ2KymcqxuYVSeD12s5xg";
 
-  types-aiobotocore-account = buildTypesAiobotocorePackage "account" "2.8.0" "sha256-rVwj3gN9+U5m6xXwytQpE8mSVPTlezzeNIwNH2vgR4Y=";
+  types-aiobotocore-account = buildTypesAiobotocorePackage "account" "2.11.2" "sha256-XtL7R0UrgI/9rSxfNYbA0Lez+DiVyB7R+rhn49Nxerc=";
 
-  types-aiobotocore-acm = buildTypesAiobotocorePackage "acm" "2.8.0" "sha256-VzV8viXJpHfI1aD1UtCX+GSSZKhRSTzMX5dnkGhm+9Y=";
+  types-aiobotocore-acm = buildTypesAiobotocorePackage "acm" "2.11.2" "sha256-vpE1GuvKFPsBf3rTk5V6B4ujFGaHE3wk9yN3j0sM0bo=";
 
-  types-aiobotocore-acm-pca = buildTypesAiobotocorePackage "acm-pca" "2.8.0" "sha256-ib044RjF+1projrSoyiMdj9LkbT1BJrfObxs1ukSNHo=";
+  types-aiobotocore-acm-pca = buildTypesAiobotocorePackage "acm-pca" "2.11.2" "sha256-g9a2ad5hZonlKWGnLQchfT5CAgwqsvseeQBQemCSCQw=";
 
-  types-aiobotocore-alexaforbusiness = buildTypesAiobotocorePackage "alexaforbusiness" "2.11.0" "sha256-FF1VOkekfT4cSx2y61smPVMTD5k3FBIsnslOTnxy+5o=";
+  types-aiobotocore-alexaforbusiness = buildTypesAiobotocorePackage "alexaforbusiness" "2.11.2" "sha256-XUzsO3dJmVEyAkwGcZ9BxNb8CceJALCNRIfs6/lFa8M=";
 
-  types-aiobotocore-amp = buildTypesAiobotocorePackage "amp" "2.11.0" "sha256-PzA8ooo026gvNYL+xgjJ1EJomCC+lq1QDbY54k067BM=";
+  types-aiobotocore-amp = buildTypesAiobotocorePackage "amp" "2.11.2" "sha256-hFZPPMjFeQ8YuDV27uuQudFkKaXPaOkEWEbGrEp7nsc=";
 
-  types-aiobotocore-amplify = buildTypesAiobotocorePackage "amplify" "2.11.0" "sha256-RCC+fkQJMKYrv0TdAUGOXLyufeCJyV9luXKOXvjXc+s=";
+  types-aiobotocore-amplify = buildTypesAiobotocorePackage "amplify" "2.11.2" "sha256-p11NN4Iohj0Rpx7ZWnLKHP64DAKzg5CfwQ5DV2UtRqk=";
 
-  types-aiobotocore-amplifybackend = buildTypesAiobotocorePackage "amplifybackend" "2.11.0" "sha256-U5BemtvxVynvFaQ9gxiI3kFB5+HJjpFTZkXMLFaMeRE=";
+  types-aiobotocore-amplifybackend = buildTypesAiobotocorePackage "amplifybackend" "2.11.2" "sha256-vG15+IbQZSoSeXPgZw2YgKFtu6vVLgwHrnvXbUOu7ow=";
 
-  types-aiobotocore-amplifyuibuilder = buildTypesAiobotocorePackage "amplifyuibuilder" "2.11.0" "sha256-4oQMgEJD6RT8ukcdoDF7dWAnNj51gBWOYITKjzLGTBo=";
+  types-aiobotocore-amplifyuibuilder = buildTypesAiobotocorePackage "amplifyuibuilder" "2.11.2" "sha256-WazM6zeqExvUzf6edTg79q5ghSbCFS+4emllnp2/nGs=";
 
-  types-aiobotocore-apigateway = buildTypesAiobotocorePackage "apigateway" "2.11.0" "sha256-YGOdBuM5250bIoM2rJeJv51zF6kB1zvGYksmr56SW8g=";
+  types-aiobotocore-apigateway = buildTypesAiobotocorePackage "apigateway" "2.11.2" "sha256-pb13E6ybvZrt1NfYFqPzkXYSxqFVUuE9Ka3LK6oLLB8=";
 
-  types-aiobotocore-apigatewaymanagementapi = buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.11.0" "sha256-LFI4IJyDQnPYKq0WHk9y56LjdtW6nHHUN2GLGk+ZdLs=";
+  types-aiobotocore-apigatewaymanagementapi = buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.11.2" "sha256-Zgv4BfnwMjZTWnnkvSIZx7jEcYDg088Po8wS3YNnscE=";
 
-  types-aiobotocore-apigatewayv2 = buildTypesAiobotocorePackage "apigatewayv2" "2.11.0" "sha256-3gJkB9xUtxHqGnl0BIt37bDpM5GJQhjtiHkwDVOWaP0=";
+  types-aiobotocore-apigatewayv2 = buildTypesAiobotocorePackage "apigatewayv2" "2.11.2" "sha256-kQIc0DS8mgBdBBncavFLo6gYoQbqNzgbhzfN7ZRmZU0=";
 
-  types-aiobotocore-appconfig = buildTypesAiobotocorePackage "appconfig" "2.11.0" "sha256-zGtX4wRie1PtMZAHH187+tr7sBKKDGI0rtmobYbuOMg=";
+  types-aiobotocore-appconfig = buildTypesAiobotocorePackage "appconfig" "2.11.2" "sha256-ufFeadCeUuzQlVZEoHKC2bdgsnCni4bUlOVII3P0ydQ=";
 
-  types-aiobotocore-appconfigdata = buildTypesAiobotocorePackage "appconfigdata" "2.11.0" "sha256-yh1GVL7P6yRVE3o4mKBFFKhrXRN+7dO6PAAcdFENci0=";
+  types-aiobotocore-appconfigdata = buildTypesAiobotocorePackage "appconfigdata" "2.11.2" "sha256-D6wk/D18H5DSv9rzu61GtO0b4sLUsAbAgDThxM/LXaw=";
 
-  types-aiobotocore-appfabric = buildTypesAiobotocorePackage "appfabric" "2.11.0" "sha256-1HfybuUtT3ZPjOTgI2qOHZcXitlfzfVMFnHEvvpXYHI=";
+  types-aiobotocore-appfabric = buildTypesAiobotocorePackage "appfabric" "2.11.2" "sha256-jvO9GCkF6HC7Y/Gallc0unmk0ZX5C6uZDGmxwiHAMCs=";
 
-  types-aiobotocore-appflow = buildTypesAiobotocorePackage "appflow" "2.11.0" "sha256-7gCktOrsUm6y3KId+7i6rl7QA5vGhPletY6gKyJdG6k=";
+  types-aiobotocore-appflow = buildTypesAiobotocorePackage "appflow" "2.11.2" "sha256-Kvu5+auFG7FDR1w/6xv7JWJkEwM+wuaXJHIDIUOgxsg=";
 
-  types-aiobotocore-appintegrations = buildTypesAiobotocorePackage "appintegrations" "2.11.0" "sha256-NUmmtV2RcREzC030heh5Vq2LvHCfTv25NMefwIk6hfA=";
+  types-aiobotocore-appintegrations = buildTypesAiobotocorePackage "appintegrations" "2.11.2" "sha256-nyJNZejMFYBgTJGjM+ylfHVilA/KrZJ9mJa1m4Ej/i0=";
 
-  types-aiobotocore-application-autoscaling = buildTypesAiobotocorePackage "application-autoscaling" "2.11.0" "sha256-ag+5kqW+j0c9MC/Ua4yUPPW72Gbj1LbA1QWG9CwCC7U=";
+  types-aiobotocore-application-autoscaling = buildTypesAiobotocorePackage "application-autoscaling" "2.11.2" "sha256-RrjOGf342giEftdtYrWN9nuHuxGIX7tC2lyi7kFVGZA=";
 
-  types-aiobotocore-application-insights = buildTypesAiobotocorePackage "application-insights" "2.11.0" "sha256-pKLm6w1+j56QX+jxoywew8Polgeq4H2/xQpqQ71vQCA=";
+  types-aiobotocore-application-insights = buildTypesAiobotocorePackage "application-insights" "2.11.2" "sha256-/CRUfLRLggcHpD+H6tsMrJf8kC23qqCtfRUf510MYs8=";
 
-  types-aiobotocore-applicationcostprofiler = buildTypesAiobotocorePackage "applicationcostprofiler" "2.11.0" "sha256-BnIdJmvh76xDITk+iEkoxTHeEBa9FZDV84fn1uvWz6g=";
+  types-aiobotocore-applicationcostprofiler = buildTypesAiobotocorePackage "applicationcostprofiler" "2.11.2" "sha256-uB+lXza3Zyj5ug/1tr5jxhIYDFmy0u/rbLdHQQW33zs=";
 
-  types-aiobotocore-appmesh = buildTypesAiobotocorePackage "appmesh" "2.11.0" "sha256-8f0vxVqWWdm8UYl7rtHBSDR5PJGd8bAC6DTopPUbdwk=";
+  types-aiobotocore-appmesh = buildTypesAiobotocorePackage "appmesh" "2.11.2" "sha256-ddng69ZZp8lEEKZAEK/9AMPHBaRpQRmbPVQVQgEpWQI=";
 
-  types-aiobotocore-apprunner = buildTypesAiobotocorePackage "apprunner" "2.11.0" "sha256-uZtrlWm1Hc3RsgtAzYf+ZY9G/G56fhbgxq0Aqo0SmIU=";
+  types-aiobotocore-apprunner = buildTypesAiobotocorePackage "apprunner" "2.11.2" "sha256-zn+wgfdLfNzrhmmWaQnnBJw6Mp6FUPSs1Aq4U+QEZZ4=";
 
-  types-aiobotocore-appstream = buildTypesAiobotocorePackage "appstream" "2.11.0" "sha256-fI/BuF5aulwnH2IviGqp4PPcIInwGrBNyghiCu4AGzo=";
+  types-aiobotocore-appstream = buildTypesAiobotocorePackage "appstream" "2.11.2" "sha256-97aTTprrNQ5fp1Ap2SgliVhz2FweNcWJxmOVf7NGznQ=";
 
-  types-aiobotocore-appsync = buildTypesAiobotocorePackage "appsync" "2.11.0" "sha256-/eL7b7ZQp47BlLRGbxqwg6JnfYljXAtQOfRjnqWHndo=";
+  types-aiobotocore-appsync = buildTypesAiobotocorePackage "appsync" "2.11.2" "sha256-1d4FgrbxzX5jMZEL7ghT4olTTmy18ZK1zaXDWcBoz3I=";
 
-  types-aiobotocore-arc-zonal-shift = buildTypesAiobotocorePackage "arc-zonal-shift" "2.11.0" "sha256-WiWU20Yc3bWARmkbYnBA1Wy315vStIq16mLF4UHRksQ=";
+  types-aiobotocore-arc-zonal-shift = buildTypesAiobotocorePackage "arc-zonal-shift" "2.11.2" "sha256-s9zX+TsBp4DSORJkxZG9VrVmeHuNfeNfv+vZsJXnfSE=";
 
-  types-aiobotocore-athena = buildTypesAiobotocorePackage "athena" "2.11.0" "sha256-UtJadPx8k7JfoOXexAY/Sz6bfsrapCsdYtz0L0zIXxc=";
+  types-aiobotocore-athena = buildTypesAiobotocorePackage "athena" "2.11.2" "sha256-MxbYsiBSryODm6ZuJpb0Jwmiw/k679yPxBIGYrFQFfQ=";
 
-  types-aiobotocore-auditmanager = buildTypesAiobotocorePackage "auditmanager" "2.11.0" "sha256-Xe0Hn8XpfnmtObeKRtm0focC+s2eHLoTdERnDZmAs4g=";
+  types-aiobotocore-auditmanager = buildTypesAiobotocorePackage "auditmanager" "2.11.2" "sha256-IErQ9xVFHfQKAT4WUvyummuUndVG6azLCflA4e8AcAI=";
 
-  types-aiobotocore-autoscaling = buildTypesAiobotocorePackage "autoscaling" "2.11.0" "sha256-eJnuoN6ciE3k97/hLhr45ppWtq4jEpPcqpkZ2H+qd6Y=";
+  types-aiobotocore-autoscaling = buildTypesAiobotocorePackage "autoscaling" "2.11.2" "sha256-UJxccq20Wy9A3xDDqpDGGs3KtP8uVFK/G8AFvlJblUs=";
 
-  types-aiobotocore-autoscaling-plans = buildTypesAiobotocorePackage "autoscaling-plans" "2.11.0" "sha256-cESQHBGUvT8saQhqNsOqSpyO7gIZmnAb2jhGO0kt5AE=";
+  types-aiobotocore-autoscaling-plans = buildTypesAiobotocorePackage "autoscaling-plans" "2.11.2" "sha256-0LzoSmxim0Ji1qVTKz5aaYNF2ZxSxkJPQsZgl6HBvXM=";
 
-  types-aiobotocore-backup = buildTypesAiobotocorePackage "backup" "2.11.0" "sha256-+r02pZW1xLqPlt5kHKrLXKFRwdSiHKWxZAxuji9TFvg=";
+  types-aiobotocore-backup = buildTypesAiobotocorePackage "backup" "2.11.2" "sha256-deC72vTE1w4K2vIQeQMb/38CEBHXhP/koEsVBUZQkxU=";
 
-  types-aiobotocore-backup-gateway = buildTypesAiobotocorePackage "backup-gateway" "2.11.0" "sha256-dEqYpn7xF5JRzFgVANFeXw/ukeoduvI4LBOEwYwjLxg=";
+  types-aiobotocore-backup-gateway = buildTypesAiobotocorePackage "backup-gateway" "2.11.2" "sha256-ggjy2SYEDZgqkvBi7N/mZbScwQNOxQR3Je+UsntPaKA=";
 
-  types-aiobotocore-backupstorage = buildTypesAiobotocorePackage "backupstorage" "2.11.0" "sha256-65luTwPeI4SHfJUhWLR9YJQwbdcB6J1ON6EBhojok/k=";
+  types-aiobotocore-backupstorage = buildTypesAiobotocorePackage "backupstorage" "2.11.2" "sha256-ZtC6TpfMQE48ih14/yMm9UVt/nCjVt6Jza0lakE/t0w=";
 
-  types-aiobotocore-batch = buildTypesAiobotocorePackage "batch" "2.11.0" "sha256-A94x70FSnAUJSt5NM9yzhq4r7f2fsaHLx8oXeCq//PE=";
+  types-aiobotocore-batch = buildTypesAiobotocorePackage "batch" "2.11.2" "sha256-DnZ7/CZ2af+DhHKp6LvsuCLfVu43yiwYFRxugEsMEok=";
 
-  types-aiobotocore-billingconductor = buildTypesAiobotocorePackage "billingconductor" "2.11.0" "sha256-Ze1Bsuw4fDgGJ8nVsRtmGQPH0ZPfxE+OUb6T8Q5hrBI=";
+  types-aiobotocore-billingconductor = buildTypesAiobotocorePackage "billingconductor" "2.11.2" "sha256-vURVxenciwH3Qwi6FLjsxVkHSVQJ5C63zzb5Npr+Kxo=";
 
-  types-aiobotocore-braket = buildTypesAiobotocorePackage "braket" "2.11.0" "sha256-upNbHBQLQVlgHItd8NuFq1C7DkM/1F1BAxESQevmeZs=";
+  types-aiobotocore-braket = buildTypesAiobotocorePackage "braket" "2.11.2" "sha256-rdH9EaCMApXDf+3ERvNNsvJBtCEqkjf6XpLHTRn4V4Y=";
 
-  types-aiobotocore-budgets = buildTypesAiobotocorePackage "budgets" "2.11.0" "sha256-SKgVqVkHPX9ytLBR+yUpnVz82AGdxpJ+BLO7kBGJ3/k=";
+  types-aiobotocore-budgets = buildTypesAiobotocorePackage "budgets" "2.11.2" "sha256-zaaeXhic5omexJMc5TVAK+ADqmJxkV9YJkasQCfAf/w=";
 
-  types-aiobotocore-ce = buildTypesAiobotocorePackage "ce" "2.11.0" "sha256-th7HVQIlLgfwYgZ3GFlYU5Cg5jjfEJbulaOaLFnQbUk=";
+  types-aiobotocore-ce = buildTypesAiobotocorePackage "ce" "2.11.2" "sha256-nlsx8TDLKC3bTcuHuqACgtgl4OvTjHHYiYXXlk7gbLE=";
 
-  types-aiobotocore-chime = buildTypesAiobotocorePackage "chime" "2.11.0" "sha256-s3VHCPLNHFHNYNHBzp2mhToY45+2bua8Wwy38rvNmjM=";
+  types-aiobotocore-chime = buildTypesAiobotocorePackage "chime" "2.11.2" "sha256-j+RmGyAMnf8a/OztACdfOr/6a16V+SGDPS+ETl0ZetM=";
 
-  types-aiobotocore-chime-sdk-identity = buildTypesAiobotocorePackage "chime-sdk-identity" "2.11.0" "sha256-BJsXT1lVo/Qfwc37nCGmxIFSN4nGtvVZZxOfLWDXj8U=";
+  types-aiobotocore-chime-sdk-identity = buildTypesAiobotocorePackage "chime-sdk-identity" "2.11.2" "sha256-5MtREitAmJ/5cSQDJeYj6SilLfspKWZFTmiTaCsv/a0=";
 
-  types-aiobotocore-chime-sdk-media-pipelines = buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.11.0" "sha256-n5OniJhfpUA2ieVsaJasxyzV79sGG4QGR+bsy0XxqnQ=";
+  types-aiobotocore-chime-sdk-media-pipelines = buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.11.2" "sha256-JFZ/ijE1FRCEWMF8wFZe5mA5UW1Y0Xh7A7kVAoG4QY0=";
 
-  types-aiobotocore-chime-sdk-meetings = buildTypesAiobotocorePackage "chime-sdk-meetings" "2.11.0" "sha256-KjhknFjnVlZpdKQQ7ggBlcTPEB/C9PKvta90oD84yTE=";
+  types-aiobotocore-chime-sdk-meetings = buildTypesAiobotocorePackage "chime-sdk-meetings" "2.11.2" "sha256-FB0X7wR4xvMT9GiyHkDX9lSVxBQVxWs1NG0/rwPpeyg=";
 
-  types-aiobotocore-chime-sdk-messaging = buildTypesAiobotocorePackage "chime-sdk-messaging" "2.11.0" "sha256-gyvW6RoMv66Y7xIi1ak1f/9ivOFaNANQhgD08VlWGPM=";
+  types-aiobotocore-chime-sdk-messaging = buildTypesAiobotocorePackage "chime-sdk-messaging" "2.11.2" "sha256-IMRhuNevxyg48ahyKSCJ6ytpX3BEZKPG37du+Vm+grk=";
 
-  types-aiobotocore-chime-sdk-voice = buildTypesAiobotocorePackage "chime-sdk-voice" "2.11.0" "sha256-fK2BzOdlvbacOePr7OacTRd+XEFEAjq6fKXC4nOzZeo=";
+  types-aiobotocore-chime-sdk-voice = buildTypesAiobotocorePackage "chime-sdk-voice" "2.11.2" "sha256-R18RGbDg393B37iuwi3NwEshVzDZ7iTaTX525MMgpoQ=";
 
-  types-aiobotocore-cleanrooms = buildTypesAiobotocorePackage "cleanrooms" "2.11.0" "sha256-jri5DT8VP2J/mdsAR5uO+ZqZJdHexTiyER3tTAGLZd8=";
+  types-aiobotocore-cleanrooms = buildTypesAiobotocorePackage "cleanrooms" "2.11.2" "sha256-AKjMZa6crhEuSl3aHo0op94hlPKKWqXG8w33ipcnuK4=";
 
-  types-aiobotocore-cloud9 = buildTypesAiobotocorePackage "cloud9" "2.11.0" "sha256-wh39UKjVcRoFpHZw6es7/iWMSqWr793WGJd1K0arxU4=";
+  types-aiobotocore-cloud9 = buildTypesAiobotocorePackage "cloud9" "2.11.2" "sha256-ru9I0dKqFsjaNUhAFLrXh+SPN1HaHCFL+2LRS16+pSI=";
 
-  types-aiobotocore-cloudcontrol = buildTypesAiobotocorePackage "cloudcontrol" "2.11.0" "sha256-O0UvfR9zN7G5VLXn3o++xj9NgPfF4HJfD22OiXjFV8c=";
+  types-aiobotocore-cloudcontrol = buildTypesAiobotocorePackage "cloudcontrol" "2.11.2" "sha256-LwgyZxkvTTFgYWsF2kkK/IxflGpyr2oq2CxCMWnMDpQ=";
 
-  types-aiobotocore-clouddirectory = buildTypesAiobotocorePackage "clouddirectory" "2.11.0" "sha256-z97kNaW0Ku6kdWNfEpVUbQSMA1RBoX3ekiZ/IjcEzxs=";
+  types-aiobotocore-clouddirectory = buildTypesAiobotocorePackage "clouddirectory" "2.11.2" "sha256-0G1EUlW2oDJI0DgsQjZ4NkHIQbKqnvlyMxxrkhj5q8M=";
 
-  types-aiobotocore-cloudformation = buildTypesAiobotocorePackage "cloudformation" "2.11.0" "sha256-uIdbpjOfxxe0+LsrZAg/ygqzvCRNRbivyDMjoaEr7ew=";
+  types-aiobotocore-cloudformation = buildTypesAiobotocorePackage "cloudformation" "2.11.2" "sha256-QFupRQ8DtSwddqrTVEUrUjLyKChguEnSmYqvicaJJA8=";
 
-  types-aiobotocore-cloudfront = buildTypesAiobotocorePackage "cloudfront" "2.11.0" "sha256-1J4uH1XM3j7LgXQ8kmuGw0MMMPMh0sfIjGl5xlKbj6U=";
+  types-aiobotocore-cloudfront = buildTypesAiobotocorePackage "cloudfront" "2.11.2" "sha256-n/cNWP73Qta8lkXnpvtEOU7vO6IR5n1khlY8G2gZHZ4=";
 
-  types-aiobotocore-cloudhsm = buildTypesAiobotocorePackage "cloudhsm" "2.11.0" "sha256-NXW9PwF9skgzZ8nRUEqNw0RoO2p0f7PsSzwChG5hR80=";
+  types-aiobotocore-cloudhsm = buildTypesAiobotocorePackage "cloudhsm" "2.11.2" "sha256-+CRJNZ5W5ZQB7HzlY6IF6fT5a3LF8ES7Cmmts5c8Xjc=";
 
-  types-aiobotocore-cloudhsmv2 = buildTypesAiobotocorePackage "cloudhsmv2" "2.11.0" "sha256-/fKdFf3u1C75HiLoKV29Ao67+504P+CduF4BNGJObiE=";
+  types-aiobotocore-cloudhsmv2 = buildTypesAiobotocorePackage "cloudhsmv2" "2.11.2" "sha256-RWoizNbfw+Nujlf2Y4vEgVyyyVqmxkBF3wu4Ox7EsG0=";
 
-  types-aiobotocore-cloudsearch = buildTypesAiobotocorePackage "cloudsearch" "2.11.0" "sha256-yfHcWilKZbtxZcJmrOgDJxMybo+GxvFLaoXSW0IxNj4=";
+  types-aiobotocore-cloudsearch = buildTypesAiobotocorePackage "cloudsearch" "2.11.2" "sha256-VncrELHOiw/z4oQ5JTiXQIR0CZdGtX5xQeei1/JdONY=";
 
-  types-aiobotocore-cloudsearchdomain = buildTypesAiobotocorePackage "cloudsearchdomain" "2.11.0" "sha256-vxc4o8AG+y0rA5yqadgOE8K3vCOLMs9uN2G2Xcq2vv4=";
+  types-aiobotocore-cloudsearchdomain = buildTypesAiobotocorePackage "cloudsearchdomain" "2.11.2" "sha256-Ei3/wp0zUE5CitvVf135GF4cW7KAbukDYtS8ZOJPwBg=";
 
-  types-aiobotocore-cloudtrail = buildTypesAiobotocorePackage "cloudtrail" "2.11.0" "sha256-FgxQugrLHvORUMcIKJaOJ0/C30WOSRJ9gPbQO3nIQCo=";
+  types-aiobotocore-cloudtrail = buildTypesAiobotocorePackage "cloudtrail" "2.11.2" "sha256-YEPoPUFRt+kiMbABD3fg7W2qYRKblmIG4YjbFTQpAdw=";
 
-  types-aiobotocore-cloudtrail-data = buildTypesAiobotocorePackage "cloudtrail-data" "2.11.0" "sha256-jc3/f4g5qKpgMhQPetRlfDv1Evh4/JZvzJaHSGhdAZE=";
+  types-aiobotocore-cloudtrail-data = buildTypesAiobotocorePackage "cloudtrail-data" "2.11.2" "sha256-3ZLYMHreAEA1j/mp3HJF5rLZ45Nnt5GdQrcFY3Sh434=";
 
-  types-aiobotocore-cloudwatch = buildTypesAiobotocorePackage "cloudwatch" "2.11.0" "sha256-SUmy1ZUCcLMverR5FoyGowraVQ22xjPLc9P2fDFjIDI=";
+  types-aiobotocore-cloudwatch = buildTypesAiobotocorePackage "cloudwatch" "2.11.2" "sha256-gvJyiNl7u79VejEK5eFhBuC1tYK4tMAhAbsnFEfNhYI=";
 
-  types-aiobotocore-codeartifact = buildTypesAiobotocorePackage "codeartifact" "2.11.0" "sha256-h/BcvTSIOPSN+RdP84UcPNi9pqvL+ITrxDNvH7X7/Pc=";
+  types-aiobotocore-codeartifact = buildTypesAiobotocorePackage "codeartifact" "2.11.2" "sha256-CUiHlJTgSYpYH/6aEyjtsXBbWxFKu4GqTdDn7hP7wHA=";
 
-  types-aiobotocore-codebuild = buildTypesAiobotocorePackage "codebuild" "2.11.0" "sha256-QBleKtvFchbE6liuxlmCYm55VWLa0Eu38ydTl9AAPrg=";
+  types-aiobotocore-codebuild = buildTypesAiobotocorePackage "codebuild" "2.11.2" "sha256-0gs1j3dJ94suVhfieHwNs6xDmUwN/2VAMUP8F9BQcaY=";
 
-  types-aiobotocore-codecatalyst = buildTypesAiobotocorePackage "codecatalyst" "2.11.0" "sha256-OfmohOrk90MjqjmSu+0xiATJrh99myqaUbirDpMj/ag=";
+  types-aiobotocore-codecatalyst = buildTypesAiobotocorePackage "codecatalyst" "2.11.2" "sha256-7GYiqcO1H1eVojfpfBUHmf7JvePZOAKLu8QSxqTKjH0=";
 
-  types-aiobotocore-codecommit = buildTypesAiobotocorePackage "codecommit" "2.11.0" "sha256-gWLVnH0Rm3jlcDff0tUKjmrKqJswkXybn/BbyX1ogxA=";
+  types-aiobotocore-codecommit = buildTypesAiobotocorePackage "codecommit" "2.11.2" "sha256-YHisggElD8iq1DTcrZnIzdFrnLAUWFULgGe7jdm3oWY=";
 
-  types-aiobotocore-codedeploy = buildTypesAiobotocorePackage "codedeploy" "2.11.0" "sha256-AIh+hTvPCxsQ1wML574FXpa95QYmcDB61tAL2zepZPA=";
+  types-aiobotocore-codedeploy = buildTypesAiobotocorePackage "codedeploy" "2.11.2" "sha256-dkyzpYzga1rjIiUAvAYqmvBotq7cbzgujsEdB1ViTZs=";
 
-  types-aiobotocore-codeguru-reviewer = buildTypesAiobotocorePackage "codeguru-reviewer" "2.11.0" "sha256-QdYU6pjF9r7fWbqGwKgmsfkJw04Dwyq3zYM/Ffth6Is=";
+  types-aiobotocore-codeguru-reviewer = buildTypesAiobotocorePackage "codeguru-reviewer" "2.11.2" "sha256-hBobZDb4rpMcVkXTWVVRvHTjz+O4num/tLdHc9K+pn0=";
 
-  types-aiobotocore-codeguru-security = buildTypesAiobotocorePackage "codeguru-security" "2.11.0" "sha256-aQ0jJkHU7Unez+DsVae9ly7fBXC8VYaA+euec4zHvcg=";
+  types-aiobotocore-codeguru-security = buildTypesAiobotocorePackage "codeguru-security" "2.11.2" "sha256-UjhVraSTdP6zQNKK7YF7CiR8Y0IglumyKWo4q4+lYEY=";
 
-  types-aiobotocore-codeguruprofiler = buildTypesAiobotocorePackage "codeguruprofiler" "2.11.0" "sha256-Fh3+RnPI1DYqwRdiY5wphJ4/sa6phldf5Jw26EAy+yA=";
+  types-aiobotocore-codeguruprofiler = buildTypesAiobotocorePackage "codeguruprofiler" "2.11.2" "sha256-A1MNRLeNmKFZWO9VPlYOPiYI1XfMvxau08eu0kt9XH8=";
 
-  types-aiobotocore-codepipeline = buildTypesAiobotocorePackage "codepipeline" "2.11.0" "sha256-TqW+JQcWLUkH63lmTSgM2RBpxiUce8H4sYhuBsG/y3Q=";
+  types-aiobotocore-codepipeline = buildTypesAiobotocorePackage "codepipeline" "2.11.2" "sha256-1agFA021Ng2yyGZeR6RfnNiajPwLV1hgGH9mnGi54V4=";
 
-  types-aiobotocore-codestar = buildTypesAiobotocorePackage "codestar" "2.11.0" "sha256-SKowg/6Z+XkwRYvqLMVv2DNuqjYWDGxfAH9qDIfIYQs=";
+  types-aiobotocore-codestar = buildTypesAiobotocorePackage "codestar" "2.11.2" "sha256-yBc09bY/svyht27FIcSYGkkLyUeHM97IYB4aVWo8CFE=";
 
-  types-aiobotocore-codestar-connections = buildTypesAiobotocorePackage "codestar-connections" "2.11.0" "sha256-HKd/vW31qD4NxoP3tpCVrWhFxzUx3WFmpSNXR5MUGNU=";
+  types-aiobotocore-codestar-connections = buildTypesAiobotocorePackage "codestar-connections" "2.11.2" "sha256-RSpNT70XrU8ZLRgTgpqiELV4e0WJTtWCTESdGA4mGQs=";
 
-  types-aiobotocore-codestar-notifications = buildTypesAiobotocorePackage "codestar-notifications" "2.11.0" "sha256-mp0wBISY78Or4TniwKFXbR/fiu5JWhEkccKrz14WlUY=";
+  types-aiobotocore-codestar-notifications = buildTypesAiobotocorePackage "codestar-notifications" "2.11.2" "sha256-5DiJoLCkRD5GL+uglCSYQAdrAPrHrk9Eoo0TUoFV6ms=";
 
-  types-aiobotocore-cognito-identity = buildTypesAiobotocorePackage "cognito-identity" "2.11.0" "sha256-fSGb8vmEdIjvfnm60Ib6iQtLt3vhvGyFA+bhv1RLYt4=";
+  types-aiobotocore-cognito-identity = buildTypesAiobotocorePackage "cognito-identity" "2.11.2" "sha256-yf1lZtCRru/n4lWW+8Js75azhW7o1q8dQ7vgwQQpOv0=";
 
-  types-aiobotocore-cognito-idp = buildTypesAiobotocorePackage "cognito-idp" "2.11.0" "sha256-qK/97mzT5xbNHRBU1d7lbPPhAbmUZv4A12UxDO/NHOY=";
+  types-aiobotocore-cognito-idp = buildTypesAiobotocorePackage "cognito-idp" "2.11.2" "sha256-GtrQuQBHzkglEMjkYSGoHrOm/LFAAYhKl2JTUpGCFaE=";
 
-  types-aiobotocore-cognito-sync = buildTypesAiobotocorePackage "cognito-sync" "2.11.0" "sha256-KJiEL5qkQAsF1aW42M0WJNRkmY5kuz+y+x2zhPl++oI=";
+  types-aiobotocore-cognito-sync = buildTypesAiobotocorePackage "cognito-sync" "2.11.2" "sha256-uh+LAEBYuKAK1BJPu6rJtSJcE4TpXV09d9jH20IevOk=";
 
-  types-aiobotocore-comprehend = buildTypesAiobotocorePackage "comprehend" "2.11.0" "sha256-+4ZC5tDNqIVE/tpdjgq0OOxz8nP3nnXuChBn1vH+GmY=";
+  types-aiobotocore-comprehend = buildTypesAiobotocorePackage "comprehend" "2.11.2" "sha256-w1FlANcEK/BIDeT+iSJU1FQDidor6bs1w5HNEa1Jj4k=";
 
-  types-aiobotocore-comprehendmedical = buildTypesAiobotocorePackage "comprehendmedical" "2.11.0" "sha256-tgGh+wbiC5iUl89kqsPhW+ppYOa0el6D2aAF53e0OOU=";
+  types-aiobotocore-comprehendmedical = buildTypesAiobotocorePackage "comprehendmedical" "2.11.2" "sha256-GqWg0H95Z0wNHaSt1R1GnVTGTyZ3Qki9Du4byRRGmcs=";
 
-  types-aiobotocore-compute-optimizer = buildTypesAiobotocorePackage "compute-optimizer" "2.11.0" "sha256-SS7WVEni76ixWOMMGkuVpvBL46kzEtc+nZVXLgVR7qM=";
+  types-aiobotocore-compute-optimizer = buildTypesAiobotocorePackage "compute-optimizer" "2.11.2" "sha256-7TK1QtWs6gVZQO8dTuVs9JG35xlP/4Sk0HCfEDL5cPU=";
 
-  types-aiobotocore-config = buildTypesAiobotocorePackage "config" "2.11.0" "sha256-788nwZ08Yd7Jm9hbMtbikiekaCD5BJXGQizYA+C6v7s=";
+  types-aiobotocore-config = buildTypesAiobotocorePackage "config" "2.11.2" "sha256-oBXLOS4TLGd/6cEVwySUNKXTigmEPFhM4vR+uWC/jCA=";
 
-  types-aiobotocore-connect = buildTypesAiobotocorePackage "connect" "2.11.0" "sha256-/DHba3kzpgIfMOdWDo9EqDTGsx6qliHkTcOqRvyqVQs=";
+  types-aiobotocore-connect = buildTypesAiobotocorePackage "connect" "2.11.2" "sha256-nRq8rHdQNHpY0O1ft/IOFgiZT+flDoJeYktoIR7azd0=";
 
-  types-aiobotocore-connect-contact-lens = buildTypesAiobotocorePackage "connect-contact-lens" "2.11.0" "sha256-oB6joxqVfw+dcdA1Fp/V3VqHKTV3AzSF87WQliIjZOM=";
+  types-aiobotocore-connect-contact-lens = buildTypesAiobotocorePackage "connect-contact-lens" "2.11.2" "sha256-kSSYE9sHHvWyXQD3+h4zwbmpVE4spdFsVajLrs8wQoY=";
 
-  types-aiobotocore-connectcampaigns = buildTypesAiobotocorePackage "connectcampaigns" "2.11.0" "sha256-LKzrXJ3glGOLyZd+Cvt+S8d4kmqfJwDmWOpO8jVtZ/k=";
+  types-aiobotocore-connectcampaigns = buildTypesAiobotocorePackage "connectcampaigns" "2.11.2" "sha256-8h5Uw5dRI0Iq88DKaEkp/QiqsxMpXqT1e0fSCnmeUeQ=";
 
-  types-aiobotocore-connectcases = buildTypesAiobotocorePackage "connectcases" "2.11.0" "sha256-/A13kQO/qzO1vnslZiMRgB1QWgF8ap0mZDFQzowOpck=";
+  types-aiobotocore-connectcases = buildTypesAiobotocorePackage "connectcases" "2.11.2" "sha256-iCunD1EYNwnwEVE5h83cO8DtgQrfqd2XsjmA6/LUyKk=";
 
-  types-aiobotocore-connectparticipant = buildTypesAiobotocorePackage "connectparticipant" "2.11.0" "sha256-TY4kD0Fyb195X8vjFavszY4KIirBxdu5TsWdpcHvcqY=";
+  types-aiobotocore-connectparticipant = buildTypesAiobotocorePackage "connectparticipant" "2.11.2" "sha256-3szxg0WTtha1txrfidQUwCnwQ+y6DmaFdyRASxNvyPM=";
 
-  types-aiobotocore-controltower = buildTypesAiobotocorePackage "controltower" "2.11.0" "sha256-XQID3eh3curqT6wBJ//7giHl+ALEMtdIhM+Ns8Bm3i0=";
+  types-aiobotocore-controltower = buildTypesAiobotocorePackage "controltower" "2.11.2" "sha256-Vnc1jV10ylYc1xyIAB05sc6F/mrenB/evzSxUXvksIo=";
 
-  types-aiobotocore-cur = buildTypesAiobotocorePackage "cur" "2.11.0" "sha256-TiXil9jLCdO/pCFDUNIJpH2NC1TTdr9j+82Azgcdtfw=";
+  types-aiobotocore-cur = buildTypesAiobotocorePackage "cur" "2.11.2" "sha256-GxnIgMuPdhButM1g0WhIY5aozxRVD9wisFI7vg0htkk=";
 
-  types-aiobotocore-customer-profiles = buildTypesAiobotocorePackage "customer-profiles" "2.11.0" "sha256-M2hWm/UhFkEMaY/ZojmAgTHXYmwJUAqOyhn37WNwGWE=";
+  types-aiobotocore-customer-profiles = buildTypesAiobotocorePackage "customer-profiles" "2.11.2" "sha256-32oCCsq7HRgfuQHxtC8To8YRPPkBYxP+wj8tTxJg74Y=";
 
-  types-aiobotocore-databrew = buildTypesAiobotocorePackage "databrew" "2.11.0" "sha256-mH+/ZBD/wW5KRCmt5Fmg6Bmd6svZfQw8NZgB89A3oY0=";
+  types-aiobotocore-databrew = buildTypesAiobotocorePackage "databrew" "2.11.2" "sha256-QezthhLSvyrCjlBDgQFJOLd3jdkvf3gYczusxWARUtM=";
 
-  types-aiobotocore-dataexchange = buildTypesAiobotocorePackage "dataexchange" "2.11.0" "sha256-jykGzUF1W5pVg5mzAC4J3EkhYgMNnXyyj0VesOyJfh0=";
+  types-aiobotocore-dataexchange = buildTypesAiobotocorePackage "dataexchange" "2.11.2" "sha256-GZaODMMW3citfIA0EDl8J+Z8T8euCx6pXmm24iL/g90=";
 
-  types-aiobotocore-datapipeline = buildTypesAiobotocorePackage "datapipeline" "2.11.0" "sha256-XKdSE4yJdaoaHoER/9ktK0gmSco5RcZNi0oAuSh7zVc=";
+  types-aiobotocore-datapipeline = buildTypesAiobotocorePackage "datapipeline" "2.11.2" "sha256-bkok6yFZG4DOXnweqa1fWxxX5lq4XVN6A/NSrQiAWNI=";
 
-  types-aiobotocore-datasync = buildTypesAiobotocorePackage "datasync" "2.11.0" "sha256-t72a9Uy1pw/PgN80VR6aG7sgTE35EnLN1zToP9j9jcc=";
+  types-aiobotocore-datasync = buildTypesAiobotocorePackage "datasync" "2.11.2" "sha256-lipzCM0iHpHfggorFc67IIRIA7zQkZOFSrNdkZNc1n0=";
 
-  types-aiobotocore-dax = buildTypesAiobotocorePackage "dax" "2.11.0" "sha256-60GCMrXfcFO/mDm1ThuHZIajDhWheUXR/FGdkRNb8Oo=";
+  types-aiobotocore-dax = buildTypesAiobotocorePackage "dax" "2.11.2" "sha256-cmtSKNzaKuDMKpT2e3FxxGAA3s6fXmnp27g8ZjiuW34=";
 
-  types-aiobotocore-detective = buildTypesAiobotocorePackage "detective" "2.11.0" "sha256-HEGUGjXjiQd0jkPYFHQ29ZN4M12Gy/l9VEUHnu/G4RI=";
+  types-aiobotocore-detective = buildTypesAiobotocorePackage "detective" "2.11.2" "sha256-+qeNgy9ZCpx2i7aSSBv6vHJAa11j+YqYbu1e5ebTOkY=";
 
-  types-aiobotocore-devicefarm = buildTypesAiobotocorePackage "devicefarm" "2.11.0" "sha256-L8PKB1DfzGiKd5dEBT5EkxcR3a+P9wx5k4/J3yD2mSQ=";
+  types-aiobotocore-devicefarm = buildTypesAiobotocorePackage "devicefarm" "2.11.2" "sha256-hJ8ajXMmlmUZmKBDYxkUX1RU/8C3xmjb403YzkVzm6E=";
 
-  types-aiobotocore-devops-guru = buildTypesAiobotocorePackage "devops-guru" "2.11.0" "sha256-YtSwdniKZHpoOAfGy7w7QtkwdDuNtlUiiAxEraSMn6Y=";
+  types-aiobotocore-devops-guru = buildTypesAiobotocorePackage "devops-guru" "2.11.2" "sha256-1ERoQL1dD2Ia1asRDjF/bl/tnKkaKUhd0JkXfsw9zXY=";
 
-  types-aiobotocore-directconnect = buildTypesAiobotocorePackage "directconnect" "2.11.0" "sha256-Vglr/xHMsRHm5yKu98ufddszmFtT0LeBVxyJRbZXzEU=";
+  types-aiobotocore-directconnect = buildTypesAiobotocorePackage "directconnect" "2.11.2" "sha256-EcaX5FjIweqW0hTbhgMm3XFVtnoY/fVt5pAjgm8L0+U=";
 
-  types-aiobotocore-discovery = buildTypesAiobotocorePackage "discovery" "2.11.0" "sha256-wlZo+BFJ1MfwO2gF0jKRf/aUNlU9PGL8BmIXnRY8mzU=";
+  types-aiobotocore-discovery = buildTypesAiobotocorePackage "discovery" "2.11.2" "sha256-ZOPuTLIH9Sqojs2jWiskjEqz7LBstS1KyjPCiSnW0Qo=";
 
-  types-aiobotocore-dlm = buildTypesAiobotocorePackage "dlm" "2.11.0" "sha256-yehavKHvxjCDzDo8YB25tgKzmxAGjEtRQDxgHtaFxPo=";
+  types-aiobotocore-dlm = buildTypesAiobotocorePackage "dlm" "2.11.2" "sha256-SfzmZe5x4I0TMdfwAu6DFkK2NDgqZrdiXfYzj6FV6/0=";
 
-  types-aiobotocore-dms = buildTypesAiobotocorePackage "dms" "2.11.0" "sha256-BJXDtvCyJK/LDiVXzgOEH8rnK/EhsC1i/wF7f4bcAgY=";
+  types-aiobotocore-dms = buildTypesAiobotocorePackage "dms" "2.11.2" "sha256-1ZEKq3hLceAxXAM7PncqWR/XEri75Moyno/yg0szG+E=";
 
-  types-aiobotocore-docdb = buildTypesAiobotocorePackage "docdb" "2.11.0" "sha256-fMM1lBiBdBpiEX9LCOtK85QDgiduht3tu3xdv4Yu/DM=";
+  types-aiobotocore-docdb = buildTypesAiobotocorePackage "docdb" "2.11.2" "sha256-sFS4uLPnOltigByAzretunrrS/jabDft6tTX68+uXnI=";
 
-  types-aiobotocore-docdb-elastic = buildTypesAiobotocorePackage "docdb-elastic" "2.11.0" "sha256-VmQrMq6ia+qw2Fk1DxZsHgjTNccY9LnOo855YEmFNKw=";
+  types-aiobotocore-docdb-elastic = buildTypesAiobotocorePackage "docdb-elastic" "2.11.2" "sha256-2Ay4Bx3txzhZMaOwFJRsTt7w3qCr2bS2KsoDg9Apxbk=";
 
-  types-aiobotocore-drs = buildTypesAiobotocorePackage "drs" "2.11.0" "sha256-As0IUtS4mDeiGRDY1rsz3WLURzIuvyO0/dKNGC7UvqI=";
+  types-aiobotocore-drs = buildTypesAiobotocorePackage "drs" "2.11.2" "sha256-j1tX8XGhYVRWw3XJosccmWRPLJRzjfoZpEsEWW8KrcU=";
 
-  types-aiobotocore-ds = buildTypesAiobotocorePackage "ds" "2.11.0" "sha256-psuIC2nu/K6kLi0v1s5vhq0CCAqvuPy+E8J362qTLM8=";
+  types-aiobotocore-ds = buildTypesAiobotocorePackage "ds" "2.11.2" "sha256-wUF8YcVlSop62Bqsr3yx7JnlLFOKZFY9ZOQPp+IArOY=";
 
-  types-aiobotocore-dynamodb = buildTypesAiobotocorePackage "dynamodb" "2.11.0" "sha256-3ItFb+9nzA0hNEg62peBcYEPEFZVxR0Qa9z5vXfjkzc=";
+  types-aiobotocore-dynamodb = buildTypesAiobotocorePackage "dynamodb" "2.11.2" "sha256-nBxKLHdId11mo/0P4LFgKRUoBXum2OHtJO7wjy0yK/o=";
 
-  types-aiobotocore-dynamodbstreams = buildTypesAiobotocorePackage "dynamodbstreams" "2.11.0" "sha256-2Bwhic0Jag/dXemObH0WC5ZJR98VmE9lqLRKLOLyTZ8=";
+  types-aiobotocore-dynamodbstreams = buildTypesAiobotocorePackage "dynamodbstreams" "2.11.2" "sha256-7/Yt+rhmXoJaTyXv/cApcI6GUE0bqYaIDaLlQr6/vlA=";
 
-  types-aiobotocore-ebs = buildTypesAiobotocorePackage "ebs" "2.11.0" "sha256-/cu++CeWRlZ54fD6YRH/qRJLHI+nKzCIbjAKYFiM/Ak=";
+  types-aiobotocore-ebs = buildTypesAiobotocorePackage "ebs" "2.11.2" "sha256-g4soKEa22SWyE8Sq7lemBWMEjzvS47Xp3ykQoccWg6A=";
 
-  types-aiobotocore-ec2 = buildTypesAiobotocorePackage "ec2" "2.11.0" "sha256-Hco3i5jPJAzAsgKxFQP+MNRNNeiYfJCGIG8l+C7gWnc=";
+  types-aiobotocore-ec2 = buildTypesAiobotocorePackage "ec2" "2.11.2" "sha256-QbLjyIptZJoKm79byEABhg5TWPjbHTmq2ReibuC22+s=";
 
-  types-aiobotocore-ec2-instance-connect = buildTypesAiobotocorePackage "ec2-instance-connect" "2.11.0" "sha256-OhpF/CqFX3EkigzPqDIuIun2nr3F+gH0O+5hsB4jXWg=";
+  types-aiobotocore-ec2-instance-connect = buildTypesAiobotocorePackage "ec2-instance-connect" "2.11.2" "sha256-pk6rOYhNMnCTxlDpRC+b2TlWCTfr9sVrV/OVaTV4Tzo=";
 
-  types-aiobotocore-ecr = buildTypesAiobotocorePackage "ecr" "2.11.0" "sha256-Kw4ZzkV/dXvhOiPeFLJxdSJvMy1cTR+KpxTc56ejhQ8=";
+  types-aiobotocore-ecr = buildTypesAiobotocorePackage "ecr" "2.11.2" "sha256-BJp+XxIXv1LM6nQLyjo7cPHxU02SQHcace2Y4rb14ro=";
 
-  types-aiobotocore-ecr-public = buildTypesAiobotocorePackage "ecr-public" "2.11.0" "sha256-VE4bwmg1i9Nai6xGz9AK6gREkxSIBs3QiUCyR04O12g=";
+  types-aiobotocore-ecr-public = buildTypesAiobotocorePackage "ecr-public" "2.11.2" "sha256-6rVdyPkUOsr6mpfr1jlsbGt9WN+vVsRyzxG/WrpelyQ=";
 
-  types-aiobotocore-ecs = buildTypesAiobotocorePackage "ecs" "2.11.0" "sha256-A4KkWqtwvvDSBdHB3xBdwmaC033AdMvoVY9yloXz++M=";
+  types-aiobotocore-ecs = buildTypesAiobotocorePackage "ecs" "2.11.2" "sha256-IvTlBjwLhphGUD/0uMkqePhEwStxj+YPVVMY12ElfvY=";
 
-  types-aiobotocore-efs = buildTypesAiobotocorePackage "efs" "2.11.0" "sha256-tW4UvAdlX0edPquPSPxJU4ktMEXism8ghUtwZS6J/2g=";
+  types-aiobotocore-efs = buildTypesAiobotocorePackage "efs" "2.11.2" "sha256-jov1KwnZWbuMUpL3OVqrI+EHIR6WResabp20owGIvGA=";
 
-  types-aiobotocore-eks = buildTypesAiobotocorePackage "eks" "2.11.0" "sha256-CIsxmM4gJ5Ds6FyNRixuTOrn2iigVWVjfOhnySLIC8o=";
+  types-aiobotocore-eks = buildTypesAiobotocorePackage "eks" "2.11.2" "sha256-qTA88Wux/Ns7dHfRPwG1ZFWNTtSUGTcw6L+Nake+YGg=";
 
-  types-aiobotocore-elastic-inference = buildTypesAiobotocorePackage "elastic-inference" "2.11.0" "sha256-qY+Cr4xGjG2ULl+CTHwbH5ljGHJopNLfrbMdkuOI7IA=";
+  types-aiobotocore-elastic-inference = buildTypesAiobotocorePackage "elastic-inference" "2.11.2" "sha256-POTPmu22698IeVAhpxh2kWk+OwTv2fBSm9KAhJ/MiQg=";
 
-  types-aiobotocore-elasticache = buildTypesAiobotocorePackage "elasticache" "2.11.0" "sha256-MDGyOh+cwmUoNXs/bQNss5lgCzplAOVKcKC4djAGykw=";
+  types-aiobotocore-elasticache = buildTypesAiobotocorePackage "elasticache" "2.11.2" "sha256-LC5g7bf5jAc4Llo6rukPb2WYf5KqvUweQ52u2zsXAQE=";
 
-  types-aiobotocore-elasticbeanstalk = buildTypesAiobotocorePackage "elasticbeanstalk" "2.11.0" "sha256-gQcy3oD2JDa/yncQP8wb1xl+WNDbQphO8YBQEeJ4BHQ=";
+  types-aiobotocore-elasticbeanstalk = buildTypesAiobotocorePackage "elasticbeanstalk" "2.11.2" "sha256-L3Pti+JnFCFGo+0v82sQK73aHKG5Lgbm6shPCvF4Wug=";
 
-  types-aiobotocore-elastictranscoder = buildTypesAiobotocorePackage "elastictranscoder" "2.11.0" "sha256-8MNsjca7iVgs5t7v0zvIXV26vL6gKxXlGzFEONlKgHs=";
+  types-aiobotocore-elastictranscoder = buildTypesAiobotocorePackage "elastictranscoder" "2.11.2" "sha256-PdWptyC6jP53Lv8JDPMbD+KE32nXltpOeXOXt+yBqZk=";
 
-  types-aiobotocore-elb = buildTypesAiobotocorePackage "elb" "2.11.0" "sha256-XXf6dX4HXJGjmEvexMOTb8Pv+lF4bXJyKE44kXJwlig=";
+  types-aiobotocore-elb = buildTypesAiobotocorePackage "elb" "2.11.2" "sha256-PzGkhg0Ole3nVSkPzLzGhCXR7O6tQXQI/fyG/xWF5NU=";
 
-  types-aiobotocore-elbv2 = buildTypesAiobotocorePackage "elbv2" "2.11.0" "sha256-oOPJPa6Tn9+BrlTENXFhmvN/KI+0w0BKrKnmYbu6x9Q=";
+  types-aiobotocore-elbv2 = buildTypesAiobotocorePackage "elbv2" "2.11.2" "sha256-pxf7oIi/KDjuAJPKA/blGpBTtSsbW6VQR2GIIG4Xg6I=";
 
-  types-aiobotocore-emr = buildTypesAiobotocorePackage "emr" "2.11.0" "sha256-+xoCUWrwXEi8q+7Hm3b3kvEzXS/JymrP2fYJIPWLzRI=";
+  types-aiobotocore-emr = buildTypesAiobotocorePackage "emr" "2.11.2" "sha256-nI1XjcxmEBZs63d9EO+rQfqyYQMOBJXOdLI+EaNZsgY=";
 
-  types-aiobotocore-emr-containers = buildTypesAiobotocorePackage "emr-containers" "2.11.0" "sha256-F0hz9aHxAf/aHqhXsuA+mvHcFr/5pfVVKdsmmDW7rI4=";
+  types-aiobotocore-emr-containers = buildTypesAiobotocorePackage "emr-containers" "2.11.2" "sha256-i37s9KpOUqbO8xAgFtU0tNlSZUqvxQjI6D2mMmjbTOs=";
 
-  types-aiobotocore-emr-serverless = buildTypesAiobotocorePackage "emr-serverless" "2.11.0" "sha256-Ge3xhHySq3tXxe1JCj7hdaUjeAfzZkCncJb0Navz6Ic=";
+  types-aiobotocore-emr-serverless = buildTypesAiobotocorePackage "emr-serverless" "2.11.2" "sha256-gaSCCHUbA5XqpXwls5f6LR9BfA/V4eECsRVfat+tLw0=";
 
-  types-aiobotocore-entityresolution = buildTypesAiobotocorePackage "entityresolution" "2.11.0" "sha256-ey4rDsAWGsJrRECRbPousQb/NSGfwRRshWHqDrDBhqs=";
+  types-aiobotocore-entityresolution = buildTypesAiobotocorePackage "entityresolution" "2.11.2" "sha256-sKRdHC1b4LhoHMo1ixwIEMFgKzn4oAMf7Hd4kPpAGNA=";
 
-  types-aiobotocore-es = buildTypesAiobotocorePackage "es" "2.11.0" "sha256-6cDHUdWst+oatMZP9S13vySIyZUQ02GqRlfaOGUkPDQ=";
+  types-aiobotocore-es = buildTypesAiobotocorePackage "es" "2.11.2" "sha256-2mSA+/Ad1gok69+r7E/euPzKOj82e38Qn+sXWTfvoPk=";
 
-  types-aiobotocore-events = buildTypesAiobotocorePackage "events" "2.11.0" "sha256-OIZdgxxmfz7HXfZbRlzqK6x1aITXN9NXRp4LBxFmlM4=";
+  types-aiobotocore-events = buildTypesAiobotocorePackage "events" "2.11.2" "sha256-tkrTtagj15JMTRSKD6qCqew4zo+i4IOl8KxBtgoREno=";
 
-  types-aiobotocore-evidently = buildTypesAiobotocorePackage "evidently" "2.11.0" "sha256-1/YBIoqBgY1RPCrP/REd5iMYpqFXUXm3AFB6CfUo7F8=";
+  types-aiobotocore-evidently = buildTypesAiobotocorePackage "evidently" "2.11.2" "sha256-Cj7UZddP4zWjKehjFL6S7c89hu6lZKe2muZ+vZQYLEA=";
 
-  types-aiobotocore-finspace = buildTypesAiobotocorePackage "finspace" "2.11.0" "sha256-Zlv1GzIn79GTgvtOe+4loAHXwDaYX1BiQYG3Fg4y9c0=";
+  types-aiobotocore-finspace = buildTypesAiobotocorePackage "finspace" "2.11.2" "sha256-nCFS8zPgut2AUT+e6ZKwa4mP2yUuSyWB4ouuqDZaJZY=";
 
-  types-aiobotocore-finspace-data = buildTypesAiobotocorePackage "finspace-data" "2.11.0" "sha256-Zb5qmBxMqvuxczqOcwQCL7T4Ur4w9ESiWHAu+Wdq2zM=";
+  types-aiobotocore-finspace-data = buildTypesAiobotocorePackage "finspace-data" "2.11.2" "sha256-5z1ek7Euei7r1XSygNM4qZEaDrGeC4XMFIeGvg9qJV0=";
 
-  types-aiobotocore-firehose = buildTypesAiobotocorePackage "firehose" "2.11.0" "sha256-O5is88jjNqe02YEXhxQojonvzXFCUW+YPl9DM5GmKjQ=";
+  types-aiobotocore-firehose = buildTypesAiobotocorePackage "firehose" "2.11.2" "sha256-ATPvNRegT/EjVJCGY7sl6ayiMC8+B0GMyfQEpOnWfyI=";
 
-  types-aiobotocore-fis = buildTypesAiobotocorePackage "fis" "2.11.0" "sha256-Vmtl3JWRi38gMtA0XEPObaROjUKjzv9LToWWOANx1Ds=";
+  types-aiobotocore-fis = buildTypesAiobotocorePackage "fis" "2.11.2" "sha256-PBRTNQeoBf8Sqd4zYQYJ4h/wZWHT1LY1LodceA4SzLU=";
 
-  types-aiobotocore-fms = buildTypesAiobotocorePackage "fms" "2.11.0" "sha256-fIbCkSX6wG5J+IJQh2JXD6TtZOPTOIZQHXlHdVz1LcU=";
+  types-aiobotocore-fms = buildTypesAiobotocorePackage "fms" "2.11.2" "sha256-83W6ys3ZBuC+RINAiqZZ9t9/pJVV6vSqW0w7B6cA9uw=";
 
-  types-aiobotocore-forecast = buildTypesAiobotocorePackage "forecast" "2.11.0" "sha256-kISZKBx6dlTqXUZ6PO3nlZzccw8daR1EZpN0AaBpcbI=";
+  types-aiobotocore-forecast = buildTypesAiobotocorePackage "forecast" "2.11.2" "sha256-nWsEp9VH2JsMnQrVRuALqc6EUjtfkge8E86XB6koHcE=";
 
-  types-aiobotocore-forecastquery = buildTypesAiobotocorePackage "forecastquery" "2.11.0" "sha256-j9jlpZjefqX4sB5D0hnMTd0ZQ8ht+4rt9kJuAByBgGU=";
+  types-aiobotocore-forecastquery = buildTypesAiobotocorePackage "forecastquery" "2.11.2" "sha256-Sne3DwWkPz0CqmOlbxLcR9ooSW4soLSuNPNfs9L9pAo=";
 
-  types-aiobotocore-frauddetector = buildTypesAiobotocorePackage "frauddetector" "2.11.0" "sha256-DJN85JyJyhX3JDahAmFQbwoKbGR1oYvUs9VsPuiHcrY=";
+  types-aiobotocore-frauddetector = buildTypesAiobotocorePackage "frauddetector" "2.11.2" "sha256-zQ50MEleTedxViEOOs2u5GJSs36zRw7crvMA3h7FLZU=";
 
-  types-aiobotocore-fsx = buildTypesAiobotocorePackage "fsx" "2.11.0" "sha256-XCkjME0B8wKycmqHu+magBP6dtVdLRa9j4I9H7gwHKM=";
+  types-aiobotocore-fsx = buildTypesAiobotocorePackage "fsx" "2.11.2" "sha256-VTjXUrEzhGuT2YjeTdY4IKxa/DxNmfnPEnZ7vQoAzKA=";
 
-  types-aiobotocore-gamelift = buildTypesAiobotocorePackage "gamelift" "2.11.0" "sha256-xolmKH6/Ea0JGBF8ZnNGxG31SDFiGIP4+l2hq7CAwTo=";
+  types-aiobotocore-gamelift = buildTypesAiobotocorePackage "gamelift" "2.11.2" "sha256-AgZvipboBZnhSlC7K0JRFpH8Z4pNPT2UfdXYjshxF8Y=";
 
-  types-aiobotocore-gamesparks = buildTypesAiobotocorePackage "gamesparks" "2.6.0" "sha256-9iV7bpGMnzz9TH+g1YpPjbKBSKY3rcL/OJvMOzwLC1M=";
+  types-aiobotocore-gamesparks = buildTypesAiobotocorePackage "gamesparks" "2.7.0" "sha256-oVbKtuLMPpCQcZYx/cH1Dqjv/t6/uXsveflfFVqfN+8=";
 
-  types-aiobotocore-glacier = buildTypesAiobotocorePackage "glacier" "2.11.0" "sha256-K96KMoNKQuVzQMsBg8PC+Vp0tZCmkgjuWXHc//hlS84=";
+  types-aiobotocore-glacier = buildTypesAiobotocorePackage "glacier" "2.11.2" "sha256-qDj9RSbqHPpJ5yU+AXPeA+umbbSrf2Ssu1g0aiLvnMw=";
 
-  types-aiobotocore-globalaccelerator = buildTypesAiobotocorePackage "globalaccelerator" "2.11.0" "sha256-wneACGl4MR+jarW0rIqg15lHBFou/rnULzG2Jv8aI+k=";
+  types-aiobotocore-globalaccelerator = buildTypesAiobotocorePackage "globalaccelerator" "2.11.2" "sha256-Ef+Ujeoc7gSrtjNbPEd4Y1F1eP4c4WKwRBIbbiCe/d8=";
 
-  types-aiobotocore-glue = buildTypesAiobotocorePackage "glue" "2.11.0" "sha256-/RUFpcd1Jglx7Wxs74W7fFIPTbAVPhicCLfxl5Vtp8U=";
+  types-aiobotocore-glue = buildTypesAiobotocorePackage "glue" "2.11.2" "sha256-CvNGo1MNUf4GONCR8cISV8eC/ZcTeI1hgqb5WB+aZnI=";
 
-  types-aiobotocore-grafana = buildTypesAiobotocorePackage "grafana" "2.11.0" "sha256-Zat6MDfQ/rCSB5Ydn7FPO8LMKl2wRNYZCpVKoXLKrpo=";
+  types-aiobotocore-grafana = buildTypesAiobotocorePackage "grafana" "2.11.2" "sha256-Nv4t50tCoOFp7GhVhNkUldUyQsTj7aY0QnfXzIl0BfY=";
 
-  types-aiobotocore-greengrass = buildTypesAiobotocorePackage "greengrass" "2.11.0" "sha256-hxGI5jMrscgxIF9Mke6s7tM0CDllDM4EHU57Q/EdK4Y=";
+  types-aiobotocore-greengrass = buildTypesAiobotocorePackage "greengrass" "2.11.2" "sha256-FvrpT2aOOD93rSy3c8VoUQAt9q0pgvoL1PaBccSCw00=";
 
-  types-aiobotocore-greengrassv2 = buildTypesAiobotocorePackage "greengrassv2" "2.11.0" "sha256-FiTsLALc/FvB4AsDWThiHfC2+M/J9mrS7GixrzqEv/M=";
+  types-aiobotocore-greengrassv2 = buildTypesAiobotocorePackage "greengrassv2" "2.11.2" "sha256-x9x7Hmrm6XTDrFKT2ZmMy3kaRFAu22TEe3Miv2F6H0g=";
 
-  types-aiobotocore-groundstation = buildTypesAiobotocorePackage "groundstation" "2.11.0" "sha256-aOvnThGfSamrhxPypI7MKIwd8zEMuhw/o/UeGxZmmDU=";
+  types-aiobotocore-groundstation = buildTypesAiobotocorePackage "groundstation" "2.11.2" "sha256-eds5ZF/JpTaZyEg91RkID5sjy6gBVnixvNOUkO/gStU=";
 
-  types-aiobotocore-guardduty = buildTypesAiobotocorePackage "guardduty" "2.11.0" "sha256-N1EyD7esyQYNdEk3qWcekH+/kpebR9kCgkBtiBuTLBU=";
+  types-aiobotocore-guardduty = buildTypesAiobotocorePackage "guardduty" "2.11.2" "sha256-zj0sU8OWIFHKD/A4fbGytLeNQhyfdEg/ANSfM74ySrk=";
 
-  types-aiobotocore-health = buildTypesAiobotocorePackage "health" "2.11.0" "sha256-5P2n0Fgk2ESOm99uEdgZoe+Sba20vyCUsJdl0n5Aylk=";
+  types-aiobotocore-health = buildTypesAiobotocorePackage "health" "2.11.2" "sha256-r+oyRLvZP0H5UOmW0UK9qRNDLCPhvsUQrsO2DGA01Lk=";
 
-  types-aiobotocore-healthlake = buildTypesAiobotocorePackage "healthlake" "2.11.0" "sha256-Y8+aQARCeYuIfuxLU31gjY5NGbp4p6Hpamgn0XtyuM0=";
+  types-aiobotocore-healthlake = buildTypesAiobotocorePackage "healthlake" "2.11.2" "sha256-gg4maW0abnPj+1+qJCykrjdS0c7Lb71H3zhQPMltZcQ=";
 
-  types-aiobotocore-honeycode = buildTypesAiobotocorePackage "honeycode" "2.11.0" "sha256-E1L7Q11HLXscHOrxPss2fRNjEykdQRa28yKmGzvgIk4=";
+  types-aiobotocore-honeycode = buildTypesAiobotocorePackage "honeycode" "2.11.2" "sha256-h+Mi42MOl8GHLdVJUu024Y5ICtQcHVY6odyxH/eAl1g=";
 
-  types-aiobotocore-iam = buildTypesAiobotocorePackage "iam" "2.11.0" "sha256-/ukLk4kKSVtsJ8MNXw58bn6l+0mlAeDPVaO1EwiD9oA=";
+  types-aiobotocore-iam = buildTypesAiobotocorePackage "iam" "2.11.2" "sha256-fXk5xj6lJPosnlUBTcPM0dwYv+TEf2OeXcZQEKrK2cY=";
 
-  types-aiobotocore-identitystore = buildTypesAiobotocorePackage "identitystore" "2.11.0" "sha256-JSGf1XwnNTVEEQR2KyI2krBqSEgEFw84IR1gdrdPdi0=";
+  types-aiobotocore-identitystore = buildTypesAiobotocorePackage "identitystore" "2.11.2" "sha256-T/91ZTr/RsNj2WcwvlC8QVbglJgH3yu0hTDh0kb3Euk=";
 
-  types-aiobotocore-imagebuilder = buildTypesAiobotocorePackage "imagebuilder" "2.11.0" "sha256-fOVxWpaqJVa1sjhEm4ZzgfdnxIQlIxUeORbLG5a4A0A=";
+  types-aiobotocore-imagebuilder = buildTypesAiobotocorePackage "imagebuilder" "2.11.2" "sha256-tZHFF9JmYUJ+0mFXuWBHNfi+kEhi46J3jjTnA17B9V0=";
 
-  types-aiobotocore-importexport = buildTypesAiobotocorePackage "importexport" "2.11.0" "sha256-YVcmN00t47DMu1L9toL4D33rWPfqkQa190RZJ9KcEbM=";
+  types-aiobotocore-importexport = buildTypesAiobotocorePackage "importexport" "2.11.2" "sha256-E2Roi3zEeim9R0fXXwgi+bEB9bDBC2Eev2lI/6Lfrmw=";
 
-  types-aiobotocore-inspector = buildTypesAiobotocorePackage "inspector" "2.11.0" "sha256-8A93fS8hGK8DMZB4t5fK68PDKzxrYmVDa+UCkhhMUxA=";
+  types-aiobotocore-inspector = buildTypesAiobotocorePackage "inspector" "2.11.2" "sha256-Isl+sNzDxiv3sTuBkL8MkcaZW1yB8O6j7kTXGPgcHW4=";
 
-  types-aiobotocore-inspector2 = buildTypesAiobotocorePackage "inspector2" "2.11.0" "sha256-PqoT60G1gxTFoIx5ro2Q0aCnE9wCXTz5nZO+CVNzUKM=";
+  types-aiobotocore-inspector2 = buildTypesAiobotocorePackage "inspector2" "2.11.2" "sha256-Nq2mUWIzziku4bcyjZQA9/luP8q0tyGOkNdHr1Rem80=";
 
-  types-aiobotocore-internetmonitor = buildTypesAiobotocorePackage "internetmonitor" "2.11.0" "sha256-YbIqecsNgBdG0ruscwRiPhOQHmejIDopHVDG7RfeYxA=";
+  types-aiobotocore-internetmonitor = buildTypesAiobotocorePackage "internetmonitor" "2.11.2" "sha256-g8CL+bL2P4STnx6937WNozQ1QL2EWjCMrTjS+jYTPCI=";
 
-  types-aiobotocore-iot = buildTypesAiobotocorePackage "iot" "2.11.0" "sha256-XVJ6Te10TqF8y9+A7GN+fD751K4twpLvA4SmTSqc10I=";
+  types-aiobotocore-iot = buildTypesAiobotocorePackage "iot" "2.11.2" "sha256-QKhDQUOfoFJTzJn5cG8USV2503MzPHE5jFlHqMKhn/A=";
 
-  types-aiobotocore-iot-data = buildTypesAiobotocorePackage "iot-data" "2.11.0" "sha256-XG1i5KepPmHiuCVPBK7YeQCEIM8ZqgnvIqEtcI90xN4=";
+  types-aiobotocore-iot-data = buildTypesAiobotocorePackage "iot-data" "2.11.2" "sha256-+UFQoQI1ZHQHryki1SZi6SRyEQHImAxmFsL9MHuY+Hk=";
 
-  types-aiobotocore-iot-jobs-data = buildTypesAiobotocorePackage "iot-jobs-data" "2.11.0" "sha256-pPreUhwzaK65rZi/TjNX+HMFYF0pr53xKKrL7euxX84=";
+  types-aiobotocore-iot-jobs-data = buildTypesAiobotocorePackage "iot-jobs-data" "2.11.2" "sha256-ZZyQXut8dYT2uTYrrugoHd4DPNDHz53uCbIcUc1ibD8=";
 
-  types-aiobotocore-iot-roborunner = buildTypesAiobotocorePackage "iot-roborunner" "2.11.0" "sha256-p3SLJJSU/dwGtZxRacLBVIagJ0b52j+IL4Mni2E0pVo=";
+  types-aiobotocore-iot-roborunner = buildTypesAiobotocorePackage "iot-roborunner" "2.11.2" "sha256-65n/QRMNxmXysRtdQajwAN2yX00MpcM6045M65k3fQ8=";
 
-  types-aiobotocore-iot1click-devices = buildTypesAiobotocorePackage "iot1click-devices" "2.11.0" "sha256-cTPED/zwtypKNxX2s3ZkOsVhGNvCRs26REiL+1EpCgI=";
+  types-aiobotocore-iot1click-devices = buildTypesAiobotocorePackage "iot1click-devices" "2.11.2" "sha256-n01JfOuAJa1M1lxV/IjM1w7kws8UpfI5/Wx5jxqrB9w=";
 
-  types-aiobotocore-iot1click-projects = buildTypesAiobotocorePackage "iot1click-projects" "2.11.0" "sha256-vshDzMpLr67eVAXaQIFXk+EbLL9rnw0qTQDarvfXMk0=";
+  types-aiobotocore-iot1click-projects = buildTypesAiobotocorePackage "iot1click-projects" "2.11.2" "sha256-8pX6X71farX+IXR/LSfEU1LNul2/T7qCnAXwsuGBZI4=";
 
-  types-aiobotocore-iotanalytics = buildTypesAiobotocorePackage "iotanalytics" "2.11.0" "sha256-pH5VdrjZbMgaPIzDdG02aUvTzfuQAVHt++Bf7V5pn68=";
+  types-aiobotocore-iotanalytics = buildTypesAiobotocorePackage "iotanalytics" "2.11.2" "sha256-JAUUApgPoSlv8ZJY+WX3+Aetey7SXIpqxWs3gbrgW3c=";
 
-  types-aiobotocore-iotdeviceadvisor = buildTypesAiobotocorePackage "iotdeviceadvisor" "2.11.0" "sha256-fSlti+/6WF21b7wO24zK3PC4eftPnRvJM6MqFWMsnRU=";
+  types-aiobotocore-iotdeviceadvisor = buildTypesAiobotocorePackage "iotdeviceadvisor" "2.11.2" "sha256-AieTPU2zw4m7cFITd3udE03Yq/wlZFuwOCVb9vy83vk=";
 
-  types-aiobotocore-iotevents = buildTypesAiobotocorePackage "iotevents" "2.11.0" "sha256-Nrx27vWS8QFcWGQ0fE/gUwbwJ8mj3seWnuauTuJvVDY=";
+  types-aiobotocore-iotevents = buildTypesAiobotocorePackage "iotevents" "2.11.2" "sha256-kLODxMyHr7oo9LruKVl2ncg5Fi8GkSEfKoe2VqmbEeI=";
 
-  types-aiobotocore-iotevents-data = buildTypesAiobotocorePackage "iotevents-data" "2.11.0" "sha256-Rbw4qP/duKCSEvQMeGLMrT0dBiR9tTqzt9BOwgX0QYI=";
+  types-aiobotocore-iotevents-data = buildTypesAiobotocorePackage "iotevents-data" "2.11.2" "sha256-uVsWsZy8xAISqNpPN7qctpxhfkaS4XXshG+iCpSqi58=";
 
-  types-aiobotocore-iotfleethub = buildTypesAiobotocorePackage "iotfleethub" "2.11.0" "sha256-NNZk/u0xUBPZiWFtnwZRibnTVYVfHYFCBz4wZIsLOUM=";
+  types-aiobotocore-iotfleethub = buildTypesAiobotocorePackage "iotfleethub" "2.11.2" "sha256-+mmy4nqLxHuQ1xxgztft0g3uyoNXd56C6wwL7aQ2ono=";
 
-  types-aiobotocore-iotfleetwise = buildTypesAiobotocorePackage "iotfleetwise" "2.11.0" "sha256-x+dKJMb8cpGyFf3L2ErOrjt2xNEg9gasDbbdoVaTYSY=";
+  types-aiobotocore-iotfleetwise = buildTypesAiobotocorePackage "iotfleetwise" "2.11.2" "sha256-57fg4yeNePHkyvFN1rrGn0zh576dPAFkqroSm+Tp7Tc=";
 
-  types-aiobotocore-iotsecuretunneling = buildTypesAiobotocorePackage "iotsecuretunneling" "2.11.0" "sha256-r4uPC1GPoGvoIs9+lJW5rjhgKSI5hJiTKBd4lpCuVxk=";
+  types-aiobotocore-iotsecuretunneling = buildTypesAiobotocorePackage "iotsecuretunneling" "2.11.2" "sha256-hvJs4KzaTK2ougi16IrVhD9kHnHl7HN4xLhUqVcDNQg=";
 
-  types-aiobotocore-iotsitewise = buildTypesAiobotocorePackage "iotsitewise" "2.11.0" "sha256-NUH187B29S4bnOdiJHFUnpVPIZHuf/IJ2Ejy4yZW6r0=";
+  types-aiobotocore-iotsitewise = buildTypesAiobotocorePackage "iotsitewise" "2.11.2" "sha256-qOfVU9YH1xYLORFeeSBAE8biTHvpiBcgzvvQXZYvtmI=";
 
-  types-aiobotocore-iotthingsgraph = buildTypesAiobotocorePackage "iotthingsgraph" "2.11.0" "sha256-Pr5O3c/zjCwBNdw8t17Rt5yrfeJFW9O5HvUohh/Xza4=";
+  types-aiobotocore-iotthingsgraph = buildTypesAiobotocorePackage "iotthingsgraph" "2.11.2" "sha256-XrLIkbqPoCOch+J8Gt9z4JP+4tyA7qkcqDMv+lF4Qe8=";
 
-  types-aiobotocore-iottwinmaker = buildTypesAiobotocorePackage "iottwinmaker" "2.11.0" "sha256-NNd0gsoQzqZVUYYncNoqyP6OMl9J+ijBXKuApPiqkFY=";
+  types-aiobotocore-iottwinmaker = buildTypesAiobotocorePackage "iottwinmaker" "2.11.2" "sha256-+C/oOZEJ/qqu3YhDgrr8evDEBN63QAT6P6nes3T7sSI=";
 
-  types-aiobotocore-iotwireless = buildTypesAiobotocorePackage "iotwireless" "2.11.0" "sha256-RD48FPh2hh9A8Q2KdFkMGmqE8mzI5eKhhYFaOIo+tx4=";
+  types-aiobotocore-iotwireless = buildTypesAiobotocorePackage "iotwireless" "2.11.2" "sha256-BTvtuBIj05XJLe2XXkxeZbddmevzXAoxylfpEE0L3PY=";
 
-  types-aiobotocore-ivs = buildTypesAiobotocorePackage "ivs" "2.11.0" "sha256-IRhw8nWeCMzviscWn0ksaBcuW5K2Ha5S/zShZJ5RFw0=";
+  types-aiobotocore-ivs = buildTypesAiobotocorePackage "ivs" "2.11.2" "sha256-dxovawH56iI3UmWpUTPl3utJOp1XGYk6AVGTTq03Aa4=";
 
-  types-aiobotocore-ivs-realtime = buildTypesAiobotocorePackage "ivs-realtime" "2.11.0" "sha256-kfOtvZ/f5awN9x6Npbf6aMFcm5UlzlJiBewaeBsuRjo=";
+  types-aiobotocore-ivs-realtime = buildTypesAiobotocorePackage "ivs-realtime" "2.11.2" "sha256-hYrdXBE0DQy0k0TM0WpuxSIvmnq5dF2nyy+RHt7q5QM=";
 
-  types-aiobotocore-ivschat = buildTypesAiobotocorePackage "ivschat" "2.11.0" "sha256-w9RDhBEeUPI/w3ZdlVUR6MkUQnh8lyJB6k+5txpS7TU=";
+  types-aiobotocore-ivschat = buildTypesAiobotocorePackage "ivschat" "2.11.2" "sha256-yRPTeOjvFUaU0Pt4IydYSHNZvf4egj0jNj9uF9Z3s3w=";
 
-  types-aiobotocore-kafka = buildTypesAiobotocorePackage "kafka" "2.11.0" "sha256-gS3ehhl6Ff1py+SNktpEbfzCyZb0hYqpgI8IBr5zyug=";
+  types-aiobotocore-kafka = buildTypesAiobotocorePackage "kafka" "2.11.2" "sha256-qcNqcSME1ihk5i0cjoe4XsEiM9oafjYNaESU8zxaNp8=";
 
-  types-aiobotocore-kafkaconnect = buildTypesAiobotocorePackage "kafkaconnect" "2.11.0" "sha256-8mM82WjPweo68zoeDPG+oBPaukE7HdfqNAgzAXwgEmw=";
+  types-aiobotocore-kafkaconnect = buildTypesAiobotocorePackage "kafkaconnect" "2.11.2" "sha256-gkPedqkyaElW78yq7xC0Afswcs2SAiAPgKuFMOqpr+A=";
 
-  types-aiobotocore-kendra = buildTypesAiobotocorePackage "kendra" "2.11.0" "sha256-ux8BoOOyqSN9IQGapfJMrAF1hOKQ2VnXUQtjWsn6Rgg=";
+  types-aiobotocore-kendra = buildTypesAiobotocorePackage "kendra" "2.11.2" "sha256-2Gqu/wamqCf8r7XQjMotNVesvlQQKFY+v2qhFGEq7Bs=";
 
-  types-aiobotocore-kendra-ranking = buildTypesAiobotocorePackage "kendra-ranking" "2.11.0" "sha256-qqT07tPM/7SUrMCzjJ1LnF6/q09+MjjdpClU+GEWOPY=";
+  types-aiobotocore-kendra-ranking = buildTypesAiobotocorePackage "kendra-ranking" "2.11.2" "sha256-TVhSsL/6ZZImHdwIi66UsS6WxnDb1ZSJO09QdZiazbI=";
 
-  types-aiobotocore-keyspaces = buildTypesAiobotocorePackage "keyspaces" "2.11.0" "sha256-Q9j7pWVHEsO94u6YIEJxpjqgGsamHGiaVUMR2R6r2EE=";
+  types-aiobotocore-keyspaces = buildTypesAiobotocorePackage "keyspaces" "2.11.2" "sha256-VTi7r0qB1O4zaS/VnZ+dItsOLbvZytEhzYO6yO5WoQg=";
 
-  types-aiobotocore-kinesis = buildTypesAiobotocorePackage "kinesis" "2.11.0" "sha256-8cSzwbzat/TVgRGca3ASOM+BkxkztRKKWth5nWoXwyE=";
+  types-aiobotocore-kinesis = buildTypesAiobotocorePackage "kinesis" "2.11.2" "sha256-yybY1DIO68QDlsFwly6tvdf7FfFTIVWYgSKYVfL2jxw=";
 
-  types-aiobotocore-kinesis-video-archived-media = buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.11.0" "sha256-yYVAiUmpQgeeBGHFsjAGK1VrbbjOsQe82uq9JYgYnds=";
+  types-aiobotocore-kinesis-video-archived-media = buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.11.2" "sha256-RV9DyGgCrTfP0f6MxJFyqzWlKDqyewB3M/EM/m9og/Q=";
 
-  types-aiobotocore-kinesis-video-media = buildTypesAiobotocorePackage "kinesis-video-media" "2.11.0" "sha256-rdX7ZPvQBsmYDW/w6BD/e5O62FZ1RClg0icPnIlr8DU=";
+  types-aiobotocore-kinesis-video-media = buildTypesAiobotocorePackage "kinesis-video-media" "2.11.2" "sha256-lV6aNCvVNULd5foNDHpIdR+9XshDlDPtM3YN4P0c4Q4=";
 
-  types-aiobotocore-kinesis-video-signaling = buildTypesAiobotocorePackage "kinesis-video-signaling" "2.11.0" "sha256-Cs8FzA2hr4ZKLc5OVAtxIG46+yrYtSUwi8QHXAlkBD4=";
+  types-aiobotocore-kinesis-video-signaling = buildTypesAiobotocorePackage "kinesis-video-signaling" "2.11.2" "sha256-KsKInDsGfipueDGMmPmQKoeG6DYK8e9FpgrrO7pPwNY=";
 
-  types-aiobotocore-kinesis-video-webrtc-storage = buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.11.0" "sha256-TuhN5P8g8bFPeM3V6vqd5uikG5tDcmhxx28h5d/bb4I=";
+  types-aiobotocore-kinesis-video-webrtc-storage = buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.11.2" "sha256-B3V1ho4oPas9UD6YCDpUl3if69dJlTRSxSLzHPa6Ias=";
 
-  types-aiobotocore-kinesisanalytics = buildTypesAiobotocorePackage "kinesisanalytics" "2.11.0" "sha256-lBIa5TTvs10qxZX8v/Okkx2bNByYtJu+wqQmH6oPO4s=";
+  types-aiobotocore-kinesisanalytics = buildTypesAiobotocorePackage "kinesisanalytics" "2.11.2" "sha256-32uEJswxpS4CptKIV7vBZD6DjzlSuhptNfULE9Fcikk=";
 
-  types-aiobotocore-kinesisanalyticsv2 = buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.11.0" "sha256-U0XmJlt1SAA2gsOB8uPGYci6xUxRCEKYNkEubZo0sj4=";
+  types-aiobotocore-kinesisanalyticsv2 = buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.11.2" "sha256-R/s7CD1hAlNsvmMe7PCzZL9xIV8O21lZgMXtzqib0IQ=";
 
-  types-aiobotocore-kinesisvideo = buildTypesAiobotocorePackage "kinesisvideo" "2.11.0" "sha256-m0+AuxYJ4pkd4+vvIDbL00wky2+ni5ct7b1+G4TmorM=";
+  types-aiobotocore-kinesisvideo = buildTypesAiobotocorePackage "kinesisvideo" "2.11.2" "sha256-nRRSzjYxQDFvfD4fuTWl+LfyPg5RoNHg8loGDxzVVrk=";
 
-  types-aiobotocore-kms = buildTypesAiobotocorePackage "kms" "2.11.0" "sha256-4d/xpDpgi35aYBw01TKs2HBtQlTTYJVogLiL/o8b6dI=";
+  types-aiobotocore-kms = buildTypesAiobotocorePackage "kms" "2.11.2" "sha256-e9y0ZjEzAr41xE2jSc5xCeftDK7EEg/SKqkgWkkMeRE=";
 
-  types-aiobotocore-lakeformation = buildTypesAiobotocorePackage "lakeformation" "2.11.0" "sha256-v3ybODPtGQ6gYb21EDJhTY3z7y92lsk0oFzsr1KjSjQ=";
+  types-aiobotocore-lakeformation = buildTypesAiobotocorePackage "lakeformation" "2.11.2" "sha256-XX3f+pw03ft13aRml7ublI72AjbVm8XlgcF4WLaT8UA=";
 
-  types-aiobotocore-lambda = buildTypesAiobotocorePackage "lambda" "2.11.0" "sha256-Q9aPKenHsfsdak1rrJ67nnG6qqyr+sQBxLTYN0Hiccs=";
+  types-aiobotocore-lambda = buildTypesAiobotocorePackage "lambda" "2.11.2" "sha256-b0QPtSWITrvIrQdpcFb7m5EEbgyyX1UaE36Ds2UzieY=";
 
-  types-aiobotocore-lex-models = buildTypesAiobotocorePackage "lex-models" "2.11.0" "sha256-4H/KRmYnp41L4A2nU1h0DEmEDSZlxuciykDERYGjt70=";
+  types-aiobotocore-lex-models = buildTypesAiobotocorePackage "lex-models" "2.11.2" "sha256-oLe70GFx6BJosKfgrFzde8G3gd3Tb9mLRKy45gx4s8U=";
 
-  types-aiobotocore-lex-runtime = buildTypesAiobotocorePackage "lex-runtime" "2.11.0" "sha256-sfeUFQBySYHD8m21P6UtcRxQi5TqfSIYgRraz5pMXL4=";
+  types-aiobotocore-lex-runtime = buildTypesAiobotocorePackage "lex-runtime" "2.11.2" "sha256-JfipFKHOk7w2iGmey0MxSGW1QFDdNY1ArptnNc4nR70=";
 
-  types-aiobotocore-lexv2-models = buildTypesAiobotocorePackage "lexv2-models" "2.11.0" "sha256-ytU6H7PUtQXvxECRLYAc8VF344ttXAwmhCZyx+pPPLM=";
+  types-aiobotocore-lexv2-models = buildTypesAiobotocorePackage "lexv2-models" "2.11.2" "sha256-sQ1liyCEjK8+QJYF5e3FFbPNWKfmGFV3QOv2lNZ4rR4=";
 
-  types-aiobotocore-lexv2-runtime = buildTypesAiobotocorePackage "lexv2-runtime" "2.11.0" "sha256-BgGVEaDqaqQGZMMKNjlZ5AQvoQqjyTwrXh3DO47GKZo=";
+  types-aiobotocore-lexv2-runtime = buildTypesAiobotocorePackage "lexv2-runtime" "2.11.2" "sha256-LV9yyj5NsgRCSs+jQ2sNaEWuUKluLB00dtuKfzR+Cn0=";
 
-  types-aiobotocore-license-manager = buildTypesAiobotocorePackage "license-manager" "2.11.0" "sha256-SePLjtNFOw0io9+IF9TOAZ75mK5LTjFqTyu9zgMIXII=";
+  types-aiobotocore-license-manager = buildTypesAiobotocorePackage "license-manager" "2.11.2" "sha256-9mNtD4FE3PQ6DNAhH8IcVSmlP9iDgswweWJ6m9sSxLo=";
 
-  types-aiobotocore-license-manager-linux-subscriptions = buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.11.0" "sha256-Nvngx57lLhCHJe1J2kW9giuVqVlDTWt2G0/V+F3qhbQ=";
+  types-aiobotocore-license-manager-linux-subscriptions = buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.11.2" "sha256-DmYp2EEdSip+CNQw2mF27NftTcl/RCStoJUIUE98kZ4=";
 
-  types-aiobotocore-license-manager-user-subscriptions = buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.11.0" "sha256-sogBe6kjxz5m5pWuMyoDnxAV57W1sLPa2hGLpfSBrx8=";
+  types-aiobotocore-license-manager-user-subscriptions = buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.11.2" "sha256-WWeTc1oPQc/BGve6ulckgoE6Un2VsEQO+jZ9Vn1YN1M=";
 
-  types-aiobotocore-lightsail = buildTypesAiobotocorePackage "lightsail" "2.11.0" "sha256-qF/6aoOLZ6s9L+kemCc/F7+d0AgTRlfQws2YZAi3kVY=";
+  types-aiobotocore-lightsail = buildTypesAiobotocorePackage "lightsail" "2.11.2" "sha256-o2DSZMBf7SUboQRa+j3w9XX97B1V+IrKe4lcYTTbKqU=";
 
-  types-aiobotocore-location = buildTypesAiobotocorePackage "location" "2.11.0" "sha256-w5B+PvK4s+oQN79qTBCp0FXnPNT9WqFuUHQEzPAamCU=";
+  types-aiobotocore-location = buildTypesAiobotocorePackage "location" "2.11.2" "sha256-2qLEPAx24yVox+WzM1F+TgrMHUICh/u52CrIkan4jKw=";
 
-  types-aiobotocore-logs = buildTypesAiobotocorePackage "logs" "2.11.0" "sha256-D+loPH8h5FX9Hu47ITN10TleVofFJOHfid+GjdpL3mg=";
+  types-aiobotocore-logs = buildTypesAiobotocorePackage "logs" "2.11.2" "sha256-kMT5kfYjkuEOYqEGgJSPrT2zA0SRwR7ozROrK/auyWI=";
 
-  types-aiobotocore-lookoutequipment = buildTypesAiobotocorePackage "lookoutequipment" "2.11.0" "sha256-EJ3cdEwiwcSorBLVGol94HKFyD+ChDBhPjJ7mnA32e8=";
+  types-aiobotocore-lookoutequipment = buildTypesAiobotocorePackage "lookoutequipment" "2.11.2" "sha256-tkgaimET3g+IYEPa07877wIkTRl6qg85ppcWttRunKU=";
 
-  types-aiobotocore-lookoutmetrics = buildTypesAiobotocorePackage "lookoutmetrics" "2.11.0" "sha256-kuj4ZPqhtW3O7jpPEHwuAW5JsySJlyeno5P+azunwl4=";
+  types-aiobotocore-lookoutmetrics = buildTypesAiobotocorePackage "lookoutmetrics" "2.11.2" "sha256-Ck43tu6SnKPtQW3+6WClcf8rLGF8jS7vg4N/VeeWcDM=";
 
-  types-aiobotocore-lookoutvision = buildTypesAiobotocorePackage "lookoutvision" "2.11.0" "sha256-oz/Q5mpo1K9lX8M9JQ9vI6S1jxCpF/2MIZiecN46zAU=";
+  types-aiobotocore-lookoutvision = buildTypesAiobotocorePackage "lookoutvision" "2.11.2" "sha256-0MOrWtTHMUf4HPbM/Fi8JtWSD+UqXFg3zQNwFbhmydI=";
 
-  types-aiobotocore-m2 = buildTypesAiobotocorePackage "m2" "2.11.0" "sha256-JIUQzdIxJHbzgELIy+EmYytNvv4efsi0YL7g44VAEk4=";
+  types-aiobotocore-m2 = buildTypesAiobotocorePackage "m2" "2.11.2" "sha256-q3oYdCaMzvZ/FYkldC0DbzAHscuAGTq8WyAQwZlCNso=";
 
-  types-aiobotocore-machinelearning = buildTypesAiobotocorePackage "machinelearning" "2.11.0" "sha256-KPyxVo5foHyKEMpjT0Su3PzD45TUBEb9FhcG2k/YA2k=";
+  types-aiobotocore-machinelearning = buildTypesAiobotocorePackage "machinelearning" "2.11.2" "sha256-CKCC7W5h6qKv3Zya/e+WcVoWdOtCqoWKRlJFHSTdxaI=";
 
-  types-aiobotocore-macie = buildTypesAiobotocorePackage "macie" "2.6.0" "sha256-gbl7jEgjk4twoxGM+WRg4MZ/nkGg7btiPOsPptR7yfw=";
+  types-aiobotocore-macie = buildTypesAiobotocorePackage "macie" "2.7.0" "sha256-hJJtGsK2b56nKX1ZhiarC+ffyjHYWRiC8II4oyDZWWw=";
 
-  types-aiobotocore-macie2 = buildTypesAiobotocorePackage "macie2" "2.11.0" "sha256-sCwedjPAwXdID4eCENDCbqqazrNFemM9OodgxaXqnas=";
+  types-aiobotocore-macie2 = buildTypesAiobotocorePackage "macie2" "2.11.2" "sha256-zg/QhW+4Chugyg6rG5HtrE1GAhbWUaveJpaJFemoN94=";
 
-  types-aiobotocore-managedblockchain = buildTypesAiobotocorePackage "managedblockchain" "2.11.0" "sha256-njTF1fiVk8VezuzSRPNgA+HYZ089cXFTiGsci/yJ/RQ=";
+  types-aiobotocore-managedblockchain = buildTypesAiobotocorePackage "managedblockchain" "2.11.2" "sha256-jGl4I2voUUW0+OuEiqmB/MEHaMMlaaKHkKzod2r4d+E=";
 
-  types-aiobotocore-managedblockchain-query = buildTypesAiobotocorePackage "managedblockchain-query" "2.11.0" "sha256-reshSY32SwJFCMiT1lifRqQkxofXeDGwiEuVc+sA5jg=";
+  types-aiobotocore-managedblockchain-query = buildTypesAiobotocorePackage "managedblockchain-query" "2.11.2" "sha256-E0jvEhS96gCpV8uIUySP4EmxsFBnS8A4DOM0rOEtNHs=";
 
-  types-aiobotocore-marketplace-catalog = buildTypesAiobotocorePackage "marketplace-catalog" "2.11.0" "sha256-WM4dEyBqocZmCE3iG72SN6kR9u/InT3C2YY2PVl3drw=";
+  types-aiobotocore-marketplace-catalog = buildTypesAiobotocorePackage "marketplace-catalog" "2.11.2" "sha256-ASsMuZQJlYkEFGwMByXHNlxyJVjjMWSkzOBG2l77AyA=";
 
-  types-aiobotocore-marketplace-entitlement = buildTypesAiobotocorePackage "marketplace-entitlement" "2.11.0" "sha256-HG7VV4MGdVbqNuLqM/es1WoKURm16hEI6soGUcTEOHY=";
+  types-aiobotocore-marketplace-entitlement = buildTypesAiobotocorePackage "marketplace-entitlement" "2.11.2" "sha256-AxS9uLbEut6+4PLuLBB9ddb/6aPWCzBQBG2XyJW6VRA=";
 
-  types-aiobotocore-marketplacecommerceanalytics = buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.11.0" "sha256-FFe+imaR9rnLakPlGAZu/oSY4A7s/BO5InYKtkRx77A=";
+  types-aiobotocore-marketplacecommerceanalytics = buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.11.2" "sha256-SgmAl7uy4YUqMwGWbt+vjjAhggfzzVXy14eZuowl8Q0=";
 
-  types-aiobotocore-mediaconnect = buildTypesAiobotocorePackage "mediaconnect" "2.11.0" "sha256-UOJmvsLMvq2PlCvWstIGs3sE8JPTYSsFY13xFhyLIB8=";
+  types-aiobotocore-mediaconnect = buildTypesAiobotocorePackage "mediaconnect" "2.11.2" "sha256-P+HWJ/nEkeccqTNk8AotPjSXvHW2gahfhfI5hDeXnOs=";
 
-  types-aiobotocore-mediaconvert = buildTypesAiobotocorePackage "mediaconvert" "2.11.0" "sha256-a+t4nGBLASBOZfuadcF/VRMpekjOyfiZXl81vE/ZfO0=";
+  types-aiobotocore-mediaconvert = buildTypesAiobotocorePackage "mediaconvert" "2.11.2" "sha256-Umk+VdPTQSp4VmEqfCdDwU1coJaMU/+tGgi/bjgb0xw=";
 
-  types-aiobotocore-medialive = buildTypesAiobotocorePackage "medialive" "2.11.0" "sha256-/+T6CRjrWy7ZDRJrqXB0urITj55s6OeJD8+BM65dMMg=";
+  types-aiobotocore-medialive = buildTypesAiobotocorePackage "medialive" "2.11.2" "sha256-/afargcEN7hB5DajP4EL+juei59/rLQp+XKm1N9QEbA=";
 
-  types-aiobotocore-mediapackage = buildTypesAiobotocorePackage "mediapackage" "2.11.0" "sha256-BxuwoFU+HEZDzh+PjmVK8NTqeBDMIThibFN0EMFwfTY=";
+  types-aiobotocore-mediapackage = buildTypesAiobotocorePackage "mediapackage" "2.11.2" "sha256-sAxc6wjEXz5zqq6iDatNbWH+cYQkP7RMMAgnTR35Hdg=";
 
-  types-aiobotocore-mediapackage-vod = buildTypesAiobotocorePackage "mediapackage-vod" "2.11.0" "sha256-I9QfN8izkZyhtx5jlSCCKKUVtEqSXrTeXtmEvmLZU7o=";
+  types-aiobotocore-mediapackage-vod = buildTypesAiobotocorePackage "mediapackage-vod" "2.11.2" "sha256-qjfONLIXIeXfZForb5PBEZBK1CpWAvkTMy2hqMJIZQA=";
 
-  types-aiobotocore-mediapackagev2 = buildTypesAiobotocorePackage "mediapackagev2" "2.11.0" "sha256-Z4QKqqeXtw1FihA9bJuUdbfah0bpUkuF80/MmMecgIo=";
+  types-aiobotocore-mediapackagev2 = buildTypesAiobotocorePackage "mediapackagev2" "2.11.2" "sha256-QBDIxGZ4ZP4CN9VpV0UhE0PYWnF2L+FRk61qLfLNDj4=";
 
-  types-aiobotocore-mediastore = buildTypesAiobotocorePackage "mediastore" "2.11.0" "sha256-qpYMY/8FLidczmsGyurHHZT+gGq69GNmYzZOI1Qo33c=";
+  types-aiobotocore-mediastore = buildTypesAiobotocorePackage "mediastore" "2.11.2" "sha256-jPWj2lyMNpEhJwWYosvYPA6g4b8RjHvLyCJ+545suKc=";
 
-  types-aiobotocore-mediastore-data = buildTypesAiobotocorePackage "mediastore-data" "2.11.0" "sha256-b8wIvWFHwQPwoMD3rsuQ00nNPvtGK41zlqTEsnIK4WU=";
+  types-aiobotocore-mediastore-data = buildTypesAiobotocorePackage "mediastore-data" "2.11.2" "sha256-dwEipFOs4xkkegGVtNysoTLsVfal7ysR2zAJ7ehXQYw=";
 
-  types-aiobotocore-mediatailor = buildTypesAiobotocorePackage "mediatailor" "2.11.0" "sha256-l15NK1qBbxyTtSVIf6tafpn9ORXP++xIntIvfoJXMmw=";
+  types-aiobotocore-mediatailor = buildTypesAiobotocorePackage "mediatailor" "2.11.2" "sha256-LF9iBh/e3Ac54ampStAudt5cqbarnhWupRR1+A300xc=";
 
-  types-aiobotocore-medical-imaging = buildTypesAiobotocorePackage "medical-imaging" "2.11.0" "sha256-xauRwOuUy/b0NolFHz/ieBts6rNxfJKW7l/kap3XKKo=";
+  types-aiobotocore-medical-imaging = buildTypesAiobotocorePackage "medical-imaging" "2.11.2" "sha256-aYViyNpTZ66Ow2Vymcqc/Fs6ESvl/U61eEpYmozaK+Q=";
 
-  types-aiobotocore-memorydb = buildTypesAiobotocorePackage "memorydb" "2.11.0" "sha256-P0kuhYy6Eqfq2E4Zk1bJWIziNSdB42hQk4MnuGMyKNg=";
+  types-aiobotocore-memorydb = buildTypesAiobotocorePackage "memorydb" "2.11.2" "sha256-EcqRC07VonREJAnEQAuM0D6pewJd1wPpIHQh/oEGICg=";
 
-  types-aiobotocore-meteringmarketplace = buildTypesAiobotocorePackage "meteringmarketplace" "2.11.0" "sha256-GyF+vCtU16QqjNX2CYCIzFDnOCkjDpMBYNnBx7n5uvg=";
+  types-aiobotocore-meteringmarketplace = buildTypesAiobotocorePackage "meteringmarketplace" "2.11.2" "sha256-B7Ls8R45clgh2OnBfLtYV49pzwCKs+tGVUPa298U51A=";
 
-  types-aiobotocore-mgh = buildTypesAiobotocorePackage "mgh" "2.11.0" "sha256-eeXyYEsc8+Z50Fi5BPXQ655IWnRb7V2ztUz6Dg4Bfl8=";
+  types-aiobotocore-mgh = buildTypesAiobotocorePackage "mgh" "2.11.2" "sha256-/6NysP2UP5gttr4CE0dr38ictulCYUnzbv/3owe/8Ww=";
 
-  types-aiobotocore-mgn = buildTypesAiobotocorePackage "mgn" "2.11.0" "sha256-DosgEjRG1Yb0T8veRz4MhWtcNN7yeRAKWp5C81LKPJo=";
+  types-aiobotocore-mgn = buildTypesAiobotocorePackage "mgn" "2.11.2" "sha256-sOHVNzltGlxz4FZR0DVoGJVo6Ga8+UMW4owsaubVCPA=";
 
-  types-aiobotocore-migration-hub-refactor-spaces = buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.11.0" "sha256-D2U7NuLrjBn1j0NOpITmocfx/YVdqNZoZpLYpfk/5Dg=";
+  types-aiobotocore-migration-hub-refactor-spaces = buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.11.2" "sha256-A8aLuBH4xtvpOjlLTBy5iPHiub9P1plbZWjCGke/WzA=";
 
-  types-aiobotocore-migrationhub-config = buildTypesAiobotocorePackage "migrationhub-config" "2.11.0" "sha256-5xOjAO88phwD9WVgZBL9C3x9soNPN/45jtrqn51Fd2E=";
+  types-aiobotocore-migrationhub-config = buildTypesAiobotocorePackage "migrationhub-config" "2.11.2" "sha256-spHl1upjr2r1a8DG5XBRnmaowpOYFtnpMLGtoEakwO8=";
 
-  types-aiobotocore-migrationhuborchestrator = buildTypesAiobotocorePackage "migrationhuborchestrator" "2.11.0" "sha256-K5EXiQhluhNWYEnwom9E5I/rmrUv17CknO5ZVY5Dxig=";
+  types-aiobotocore-migrationhuborchestrator = buildTypesAiobotocorePackage "migrationhuborchestrator" "2.11.2" "sha256-SgIGw/aiY0VGJtVdmg/b5FZhmhaSqUHJ4/BfqShnRDo=";
 
-  types-aiobotocore-migrationhubstrategy = buildTypesAiobotocorePackage "migrationhubstrategy" "2.11.0" "sha256-uHg3yqEdNpjXLGPOX7JBDrYo/uxwc1M1pdBd46H/gDw=";
+  types-aiobotocore-migrationhubstrategy = buildTypesAiobotocorePackage "migrationhubstrategy" "2.11.2" "sha256-DhuUTGNVKB0jHd+MJ3valcCQSL5sKJlMtUP56aVqkkk=";
 
-  types-aiobotocore-mobile = buildTypesAiobotocorePackage "mobile" "2.11.0" "sha256-e5dVP8R6EsEygjpvPZnfcapj0kqJocsa5aL4olZZrEc=";
+  types-aiobotocore-mobile = buildTypesAiobotocorePackage "mobile" "2.11.2" "sha256-fJp9LXYqauvrxIa6i0208JRm3CuTpzV4rvYmYTXH7os=";
 
-  types-aiobotocore-mq = buildTypesAiobotocorePackage "mq" "2.11.0" "sha256-dV1OwwWzWauCnF52N4JtpE01HzYPlCxsTBAKgFu7Czc=";
+  types-aiobotocore-mq = buildTypesAiobotocorePackage "mq" "2.11.2" "sha256-UtnqvuB42ZdW9Pl4dKDC8Y+OfXe1pULa2TGWPh2BvDM=";
 
-  types-aiobotocore-mturk = buildTypesAiobotocorePackage "mturk" "2.11.0" "sha256-QLDpZcvPwW1OggflukTSnhgR+l1xTeeepLuwdzztMCk=";
+  types-aiobotocore-mturk = buildTypesAiobotocorePackage "mturk" "2.11.2" "sha256-6+O/r6fNyT1jm/3088WnUmy/lLeoSUp3XzhvhqbD9Yo=";
 
-  types-aiobotocore-mwaa = buildTypesAiobotocorePackage "mwaa" "2.11.0" "sha256-x7p23ZzGvdJn01XEGWTSjx+HX/QUicfLiqMGF0ZV8Lg=";
+  types-aiobotocore-mwaa = buildTypesAiobotocorePackage "mwaa" "2.11.2" "sha256-nnvnvNlI0d9eY6BK+fM0HK9+cBDStuwl11AlK5lRw8g=";
 
-  types-aiobotocore-neptune = buildTypesAiobotocorePackage "neptune" "2.11.0" "sha256-Wg12l88mDmZuXgxZ+UFsdBVbbt2I0Nxxfi/2AH3QARA=";
+  types-aiobotocore-neptune = buildTypesAiobotocorePackage "neptune" "2.11.2" "sha256-1aFyIW+UZv6jxDRn8ry6gIrLMJbgaYKVKlkIOAGWRHE=";
 
-  types-aiobotocore-network-firewall = buildTypesAiobotocorePackage "network-firewall" "2.11.0" "sha256-di9s15+U+nsgG9a5WTajYyucCNo86+8Bv2BI7OWGXQE=";
+  types-aiobotocore-network-firewall = buildTypesAiobotocorePackage "network-firewall" "2.11.2" "sha256-MhxCre5EDkm9EOtNdPLqTckeazZJcTmbZ2r8soQA+Jc=";
 
-  types-aiobotocore-networkmanager = buildTypesAiobotocorePackage "networkmanager" "2.11.0" "sha256-2sGnCprlQQ00g4WjSu2N1CuENwyfGt+P/i5NfKd4Feg=";
+  types-aiobotocore-networkmanager = buildTypesAiobotocorePackage "networkmanager" "2.11.2" "sha256-6aVK9lzDYgLCqy0cwp0ORJn0BT9cSk4NEJayxOjF7ZI=";
 
-  types-aiobotocore-nimble = buildTypesAiobotocorePackage "nimble" "2.11.0" "sha256-d4cjbqZRiK3VpLY7jxureug+nBtCTVQ2OUjXKQLufZw=";
+  types-aiobotocore-nimble = buildTypesAiobotocorePackage "nimble" "2.11.2" "sha256-QbM+B7Tfvcs/ve35QzymZKVnWhtB7oFiwI6lloQLxVY=";
 
-  types-aiobotocore-oam = buildTypesAiobotocorePackage "oam" "2.11.0" "sha256-lTKQ1xNAy9AqyPoRuk3ThwlMd4xlFjtm3jAcZjLmKCs=";
+  types-aiobotocore-oam = buildTypesAiobotocorePackage "oam" "2.11.2" "sha256-lVM/HoERd7xawMrVIzHYUDnc+qymMSloqcFRh+u7mjU=";
 
-  types-aiobotocore-omics = buildTypesAiobotocorePackage "omics" "2.11.0" "sha256-ZB3c29FJiopBwP3NcMGErMMJj45IcQ1KnDFWXePaI2Q=";
+  types-aiobotocore-omics = buildTypesAiobotocorePackage "omics" "2.11.2" "sha256-r81zJzAsRFSpJRkZwWvN5hYj0S/JEuUFuCrNJO8kwlc=";
 
-  types-aiobotocore-opensearch = buildTypesAiobotocorePackage "opensearch" "2.11.0" "sha256-hNs5/R/dSV1GaNj83OMIYRiqmEsTHQ1lVjGqFqvRPBo=";
+  types-aiobotocore-opensearch = buildTypesAiobotocorePackage "opensearch" "2.11.2" "sha256-zFrWBgOmagE6CtdQfSOZTgoKAJHmCsa0tcOrGbO6T60=";
 
-  types-aiobotocore-opensearchserverless = buildTypesAiobotocorePackage "opensearchserverless" "2.11.0" "sha256-aum5y7noTMkaTc7Diz2lzlkqLJaN7schCQAmau19vAc=";
+  types-aiobotocore-opensearchserverless = buildTypesAiobotocorePackage "opensearchserverless" "2.11.2" "sha256-JrtkoMlkuM9KiJMWRxTyFw/9usEjOO2Z1qYc4SsDOtM=";
 
-  types-aiobotocore-opsworks = buildTypesAiobotocorePackage "opsworks" "2.11.0" "sha256-QcLO5rG7Q+55XRszr2vNJsSkXamYvOEe3BTnsu8adzc=";
+  types-aiobotocore-opsworks = buildTypesAiobotocorePackage "opsworks" "2.11.2" "sha256-z7kEjYPPi5CQ/cWIm06bOuwCf/0lU7/9Wv6FK5TxIDk=";
 
-  types-aiobotocore-opsworkscm = buildTypesAiobotocorePackage "opsworkscm" "2.11.0" "sha256-t2K3hypn4E1sVoQn8JAIUuycQ2lizBXokpz4N+2XgH8=";
+  types-aiobotocore-opsworkscm = buildTypesAiobotocorePackage "opsworkscm" "2.11.2" "sha256-34u790+vU+yqsAFh2P0lV6zASqCAl776l8a+a9iVucw=";
 
-  types-aiobotocore-organizations = buildTypesAiobotocorePackage "organizations" "2.11.0" "sha256-fGyv3mf9POvGFB+JpHldbxMfi1kUiS2YNkpVabgrDIw=";
+  types-aiobotocore-organizations = buildTypesAiobotocorePackage "organizations" "2.11.2" "sha256-coo7Pv1DaAh+d1594EK+kQV+Fm423zIYaotG+Te8JN8=";
 
-  types-aiobotocore-osis = buildTypesAiobotocorePackage "osis" "2.11.0" "sha256-c6XSyeAa80f5TnoyMvsAmqESpqaq+y94sfRXF6cFpt8=";
+  types-aiobotocore-osis = buildTypesAiobotocorePackage "osis" "2.11.2" "sha256-1pqghG7TZeT7FwT8nCQfQnKpiKgovfv4zpjAAgYnxeM=";
 
-  types-aiobotocore-outposts = buildTypesAiobotocorePackage "outposts" "2.11.0" "sha256-cQNQz1xgCbLiKWR1i1sgDmc1unP+7IoF1c6ZwH1G7SI=";
+  types-aiobotocore-outposts = buildTypesAiobotocorePackage "outposts" "2.11.2" "sha256-Rcz9n5/L5B/BPiUiJp2rsqfElU6o6n24d/ja+w+n1aY=";
 
-  types-aiobotocore-panorama = buildTypesAiobotocorePackage "panorama" "2.11.0" "sha256-h4R5ErD7YDqOYLxRgNioB4dhL9b+OwiA38AM3EoXapE=";
+  types-aiobotocore-panorama = buildTypesAiobotocorePackage "panorama" "2.11.2" "sha256-P3HlDSCLDzmdq9bEvcM0c7YDdZu0S6smXJejCkjSvF8=";
 
-  types-aiobotocore-payment-cryptography = buildTypesAiobotocorePackage "payment-cryptography" "2.11.0" "sha256-VgJWOfWEdZI+9udvORUBl+cbAlBAb2YW3+rqyqOIGdk=";
+  types-aiobotocore-payment-cryptography = buildTypesAiobotocorePackage "payment-cryptography" "2.11.2" "sha256-tHh5VCmz7dE5dOQPwQtwF1yrG7iPLO3LJCEXcxi1N4M=";
 
-  types-aiobotocore-payment-cryptography-data = buildTypesAiobotocorePackage "payment-cryptography-data" "2.11.0" "sha256-6S/4awBPSegC+GeEysxFmne+5K4I6UlQdnnK6q/7kBE=";
+  types-aiobotocore-payment-cryptography-data = buildTypesAiobotocorePackage "payment-cryptography-data" "2.11.2" "sha256-opL4WsHUD7VSMrFguX7LKD8rzuncTMnn9KU45AgYoKk=";
 
-  types-aiobotocore-personalize = buildTypesAiobotocorePackage "personalize" "2.11.0" "sha256-k78zJdv3w79v1ocoem8d1VuBKTga7iPpPYUw0QyjHkU=";
+  types-aiobotocore-personalize = buildTypesAiobotocorePackage "personalize" "2.11.2" "sha256-yv6GvZxxzKoquIqE3lu/xpfYxB9QvKEipmKk4YM2jec=";
 
-  types-aiobotocore-personalize-events = buildTypesAiobotocorePackage "personalize-events" "2.11.0" "sha256-klAYYRH+DUBzs/JISvYAVNXedeje1yhyd80FASAOwzk=";
+  types-aiobotocore-personalize-events = buildTypesAiobotocorePackage "personalize-events" "2.11.2" "sha256-Dc6z1uAWiVPyiN0ecX4br07bKdojmeo0MC7c3re1hyM=";
 
-  types-aiobotocore-personalize-runtime = buildTypesAiobotocorePackage "personalize-runtime" "2.11.0" "sha256-HpVZnkJvQgK9Mz+J9ZmJfDGoj9REpZqFjJBkfkvI3Ww=";
+  types-aiobotocore-personalize-runtime = buildTypesAiobotocorePackage "personalize-runtime" "2.11.2" "sha256-niY0fPGHHWpAPOffgjEWRttS43Kw4uxkcTy5xEmaPPc=";
 
-  types-aiobotocore-pi = buildTypesAiobotocorePackage "pi" "2.11.0" "sha256-icSP1n2t7qcZAt0EK6/WK24T/JJfNzFzxmX3R8KMqYc=";
+  types-aiobotocore-pi = buildTypesAiobotocorePackage "pi" "2.11.2" "sha256-I79oOBYzQ35mrD9ZkwZo9yFKkvOVg5MHg1/qsWBs1hA=";
 
-  types-aiobotocore-pinpoint = buildTypesAiobotocorePackage "pinpoint" "2.11.0" "sha256-UNBJarFF4t5NjLKLqdYbr7d+LPqanzZz5HtO0zr/hzQ=";
+  types-aiobotocore-pinpoint = buildTypesAiobotocorePackage "pinpoint" "2.11.2" "sha256-Id0RR3EWaGZIMMaA1CSKwtX4hPQNvYIo04lCjzGbLno=";
 
-  types-aiobotocore-pinpoint-email = buildTypesAiobotocorePackage "pinpoint-email" "2.11.0" "sha256-bxmMClb6G0+/Sc1c8YrhmPpTlfM26KiFxfIiRXm3zwY=";
+  types-aiobotocore-pinpoint-email = buildTypesAiobotocorePackage "pinpoint-email" "2.11.2" "sha256-TDRjuFHP/6MSNUwO0q9mgxXw4GAjYeEAEwcGf0a+q3U=";
 
-  types-aiobotocore-pinpoint-sms-voice = buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.11.0" "sha256-0DafiqdMAXbuxVXg8vz3uHuiiDANvOLAMnClSt6yglY=";
+  types-aiobotocore-pinpoint-sms-voice = buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.11.2" "sha256-GUDNq34JKrR6F1uzGvrINNEvZf75c6hrtcVJ4ishQ1E=";
 
-  types-aiobotocore-pinpoint-sms-voice-v2 = buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.11.0" "sha256-QRtJLMtoD7m7p+HPYzpPsaFapejDGjHPrZDFTbfAATc=";
+  types-aiobotocore-pinpoint-sms-voice-v2 = buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.11.2" "sha256-P59HWAaJrCKpwyY6kdyd4XHHRhmd2DxafY5Ytu5d8Ow=";
 
-  types-aiobotocore-pipes = buildTypesAiobotocorePackage "pipes" "2.11.0" "sha256-S774aDCAbVL40vFcerr3IrO8jejU3oM5ECTO62PvK+8=";
+  types-aiobotocore-pipes = buildTypesAiobotocorePackage "pipes" "2.11.2" "sha256-BBZWoO4sWWSSJOf1MnMF9KrtGKTc+h8yuIjlnx0iIBE=";
 
-  types-aiobotocore-polly = buildTypesAiobotocorePackage "polly" "2.11.0" "sha256-h0MgZfxNlzEnqgN1AgX2mEbN45O+RToVEyEaM4SUrnA=";
+  types-aiobotocore-polly = buildTypesAiobotocorePackage "polly" "2.11.2" "sha256-CrNLX+1TDawkCrBgmNqUbhJcbh208sKpfbSpS6dksPY=";
 
-  types-aiobotocore-pricing = buildTypesAiobotocorePackage "pricing" "2.11.0" "sha256-EUXjUigF6Ntifj0QGvEo/i99lZlIujbxNAPAJTCJi40=";
+  types-aiobotocore-pricing = buildTypesAiobotocorePackage "pricing" "2.11.2" "sha256-sbiwfFkB6GDwkw38mTbKFis7SOYcM7lrC/sOzjCHi0A=";
 
-  types-aiobotocore-privatenetworks = buildTypesAiobotocorePackage "privatenetworks" "2.11.0" "sha256-mnAD4olYuQG1hIurWbfWj8yVZipellgH9werYLZCVHc=";
+  types-aiobotocore-privatenetworks = buildTypesAiobotocorePackage "privatenetworks" "2.11.2" "sha256-fHGSVacmVC4/mOaeiMhgJwcMz+x7njlFm8EesZnxdd0=";
 
-  types-aiobotocore-proton = buildTypesAiobotocorePackage "proton" "2.11.0" "sha256-MlK0fPBPZzHheJ/oaL4ficKVUhQnm+ERN3G7fuqmG6s=";
+  types-aiobotocore-proton = buildTypesAiobotocorePackage "proton" "2.11.2" "sha256-4OlzYFr/xz603R6am4Mk4A2C/cGXOksSdxopm/2rhV4=";
 
-  types-aiobotocore-qldb = buildTypesAiobotocorePackage "qldb" "2.11.0" "sha256-DqdxwO+VCX4eqcecT3kQSaUZa0XWJHICKeqE3CyuPOE=";
+  types-aiobotocore-qldb = buildTypesAiobotocorePackage "qldb" "2.11.2" "sha256-4CvtgQH4KoYEUWzCYD/3aC1Ouo0XiOL8ByKCdFD+DPQ=";
 
-  types-aiobotocore-qldb-session = buildTypesAiobotocorePackage "qldb-session" "2.11.0" "sha256-81KbDwWUcjY7frYXgpH2o+U8mi8fMxP1X0VzFUh7o3o=";
+  types-aiobotocore-qldb-session = buildTypesAiobotocorePackage "qldb-session" "2.11.2" "sha256-ccTKJjTvCtPiK0Z+TLxFYOE+/zpLjkBaEcT7EtPw5IM=";
 
-  types-aiobotocore-quicksight = buildTypesAiobotocorePackage "quicksight" "2.11.0" "sha256-riJj0umKScbQ9MCV88fNeHiuLcigzJqtWRgIhcuI3Ww=";
+  types-aiobotocore-quicksight = buildTypesAiobotocorePackage "quicksight" "2.11.2" "sha256-Len2Z6UxFRlt4lzyNB7bMw3SO+mRqgBO5YHaz9N/4V4=";
 
-  types-aiobotocore-ram = buildTypesAiobotocorePackage "ram" "2.11.0" "sha256-taaVPQtZfF1L9bCSL0ppyGy8YZE4pvJA2hK0YAcE2Oc=";
+  types-aiobotocore-ram = buildTypesAiobotocorePackage "ram" "2.11.2" "sha256-CcMrlDc5sbbjK0NLOQB7+Y7qaODQWz1NTIB6yYZB7OE=";
 
-  types-aiobotocore-rbin = buildTypesAiobotocorePackage "rbin" "2.11.0" "sha256-nm1s53U2rmuw4Ko21DOW11neknjfBAyq4S0dBzJQRPc=";
+  types-aiobotocore-rbin = buildTypesAiobotocorePackage "rbin" "2.11.2" "sha256-/dvoqri/C9QzCddypXJXJYrhQCVHSn3S45VJBHeS+5k=";
 
-  types-aiobotocore-rds = buildTypesAiobotocorePackage "rds" "2.11.0" "sha256-UlpkN8g+rBmf9hu0MrWTaH4S1SaNQK6mFeBw65hF4Nk=";
+  types-aiobotocore-rds = buildTypesAiobotocorePackage "rds" "2.11.2" "sha256-qBj2alCz0Us1vUIlstWa++ePJgO7xYeE16Hlq2JRx1Q=";
 
-  types-aiobotocore-rds-data = buildTypesAiobotocorePackage "rds-data" "2.11.0" "sha256-rxdvCAEeoUqduN/56yMNxZnfadedkTaPpg7+XJhcHGc=";
+  types-aiobotocore-rds-data = buildTypesAiobotocorePackage "rds-data" "2.11.2" "sha256-Om3guoTpVeL7dvRt7D3p8B8ZkWjb3waQAeM89e0rpUQ=";
 
-  types-aiobotocore-redshift = buildTypesAiobotocorePackage "redshift" "2.11.0" "sha256-AHUOMZn6kUKnY9BAteySrzFr8KC8kE3nolHEZ+gn+Tk=";
+  types-aiobotocore-redshift = buildTypesAiobotocorePackage "redshift" "2.11.2" "sha256-b4hNZ77+lFUmFLqhowH/bOn4kSCuqvIxU18vj7jcFHI=";
 
-  types-aiobotocore-redshift-data = buildTypesAiobotocorePackage "redshift-data" "2.11.0" "sha256-YsFxhXd2xxW4vT2zDCHRCzFOeINKL7JypENiTcoAJ+I=";
+  types-aiobotocore-redshift-data = buildTypesAiobotocorePackage "redshift-data" "2.11.2" "sha256-J96w8/9UdtRzbcWqw4E0S/FrknEKnTTxOm59Tcu2jvM=";
 
-  types-aiobotocore-redshift-serverless = buildTypesAiobotocorePackage "redshift-serverless" "2.11.0" "sha256-IuaCCYxuLrrg6JPQQD98EiW/VSxs9I0Aidiv+UDp/ow=";
+  types-aiobotocore-redshift-serverless = buildTypesAiobotocorePackage "redshift-serverless" "2.11.2" "sha256-XdoXh+IE82wywcCDY1bA5tr8dJbSNvXB5gIY9nLoPWo=";
 
-  types-aiobotocore-rekognition = buildTypesAiobotocorePackage "rekognition" "2.11.0" "sha256-9hVBbXOYT+qn6JwUJyJFIsMemvcQ7DyxxlbBKxtTyIU=";
+  types-aiobotocore-rekognition = buildTypesAiobotocorePackage "rekognition" "2.11.2" "sha256-0ODtTavUgRNXUzK7bjVa86lYNoCn+iH64QAJN1cvc84=";
 
-  types-aiobotocore-resiliencehub = buildTypesAiobotocorePackage "resiliencehub" "2.11.0" "sha256-rshRL2vH9hHEeYbWbFlnDkotiQezo9kLIjnK+Kioocs=";
+  types-aiobotocore-resiliencehub = buildTypesAiobotocorePackage "resiliencehub" "2.11.2" "sha256-abgoq7erXikE8KNMdRBdItI0/Kzapgg0BcDVjRbjBYU=";
 
-  types-aiobotocore-resource-explorer-2 = buildTypesAiobotocorePackage "resource-explorer-2" "2.11.0" "sha256-yyoFe/7AqXu9H1hZs6yfTGt+d+peDu1GQEWQ6+G2gfE=";
+  types-aiobotocore-resource-explorer-2 = buildTypesAiobotocorePackage "resource-explorer-2" "2.11.2" "sha256-xXj60XZQMUiHXETJGQjvpzd+I6A3isV6KLOz3d5qpto=";
 
-  types-aiobotocore-resource-groups = buildTypesAiobotocorePackage "resource-groups" "2.11.0" "sha256-v20pt5uv3Hj7xek3Xm8X2GLkRk+vRZpqZSENLOYx1hY=";
+  types-aiobotocore-resource-groups = buildTypesAiobotocorePackage "resource-groups" "2.11.2" "sha256-lw4MR2UKLdWQhpaeMnu1/q6bZMF7sPenQfeErKfWGxM=";
 
-  types-aiobotocore-resourcegroupstaggingapi = buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.11.0" "sha256-qCVYQmM2F2uYY7+LbyrUGaFFf0/s6wyYilwrHckyPag=";
+  types-aiobotocore-resourcegroupstaggingapi = buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.11.2" "sha256-QpVVzSgMUTww9Llo1WG6mn4BruNDStXhy6kNoPZR3s8=";
 
-  types-aiobotocore-robomaker = buildTypesAiobotocorePackage "robomaker" "2.11.0" "sha256-2s48UBjDJqtQ1iBr2yV6rvqoGNsLBpNaEP1WNsp+qPg=";
+  types-aiobotocore-robomaker = buildTypesAiobotocorePackage "robomaker" "2.11.2" "sha256-RWKmf8SArQUMNYGF7e7dmYMkQIlpxuzKdZis4w/cKpg=";
 
-  types-aiobotocore-rolesanywhere = buildTypesAiobotocorePackage "rolesanywhere" "2.11.0" "sha256-ci+uWwMNglRm2inRUzGtX8F27Bv2KaRZNNjHxMT+gnk=";
+  types-aiobotocore-rolesanywhere = buildTypesAiobotocorePackage "rolesanywhere" "2.11.2" "sha256-M2FfcvPJenYY/WD8iH9foiVIRsFG9WKsMLOuPUnjs/U=";
 
-  types-aiobotocore-route53 = buildTypesAiobotocorePackage "route53" "2.11.0" "sha256-e4jmows4W8JjUbBr0LhteSRp/V8LBk/em2SYWFTHhfk=";
+  types-aiobotocore-route53 = buildTypesAiobotocorePackage "route53" "2.11.2" "sha256-wes4LEtLv5ybE51iXxHQg18qCAm5sZ+vZGiXj8bK3yk=";
 
-  types-aiobotocore-route53-recovery-cluster = buildTypesAiobotocorePackage "route53-recovery-cluster" "2.11.0" "sha256-mK5CXukLRr3978LJBAHn/KWOxiIf8zpBZ1ETiXIC/9Y=";
+  types-aiobotocore-route53-recovery-cluster = buildTypesAiobotocorePackage "route53-recovery-cluster" "2.11.2" "sha256-xcGxuzmb8ZG56tp352OVDRn81EjSjPySxDhcg/n0B3A=";
 
-  types-aiobotocore-route53-recovery-control-config = buildTypesAiobotocorePackage "route53-recovery-control-config" "2.11.0" "sha256-ISNRJ5/A+/QzuIqWoRQEnPeld7INZGvTcuqfQWK1FJY=";
+  types-aiobotocore-route53-recovery-control-config = buildTypesAiobotocorePackage "route53-recovery-control-config" "2.11.2" "sha256-z7IdwFRh8yaTv/1BMUdCOmUueSIilBB201OCiAFe+Kw=";
 
-  types-aiobotocore-route53-recovery-readiness = buildTypesAiobotocorePackage "route53-recovery-readiness" "2.11.0" "sha256-TwXt40LBCATVrunDjm17phBbcpMHU8HkWQ7/avBozvo=";
+  types-aiobotocore-route53-recovery-readiness = buildTypesAiobotocorePackage "route53-recovery-readiness" "2.11.2" "sha256-W1q61V0sPYF1XD109kf1uKgOLggvTEtbtDA7xaWDFB0=";
 
-  types-aiobotocore-route53domains = buildTypesAiobotocorePackage "route53domains" "2.11.0" "sha256-kxLh2DKFccRxmD2uHTlrf62qasZ/FuRQOLjhzTa7nX4=";
+  types-aiobotocore-route53domains = buildTypesAiobotocorePackage "route53domains" "2.11.2" "sha256-xeuBRVcg+Fn8/lYTOZA3Le7LbpB9jrCCB2H8nQIq+4A=";
 
-  types-aiobotocore-route53resolver = buildTypesAiobotocorePackage "route53resolver" "2.11.0" "sha256-jCqxuCWdgTbV+ul+vtauiWaA/cjiIpbjlYRrfaV6zQY=";
+  types-aiobotocore-route53resolver = buildTypesAiobotocorePackage "route53resolver" "2.11.2" "sha256-yn0pE63A8Pzgx3NhSVKqlTFIgKFMklw+XWHTxKybwc4=";
 
-  types-aiobotocore-rum = buildTypesAiobotocorePackage "rum" "2.11.0" "sha256-/jG0DPAYhycTN0VKAO2i2EO4htRnLMbUHwLxND5SiDw=";
+  types-aiobotocore-rum = buildTypesAiobotocorePackage "rum" "2.11.2" "sha256-uxY9FB+BVi7aC7reo2FsNEELX2bdgg+/IY6qxUz7U8c=";
 
-  types-aiobotocore-s3 = buildTypesAiobotocorePackage "s3" "2.11.0" "sha256-287Znbh373X2EgFilTvFjQMYI8ol+EHmMS0krMsCMIo=";
+  types-aiobotocore-s3 = buildTypesAiobotocorePackage "s3" "2.11.2" "sha256-n2hn56rUVBuS5qNep7junV5LGZWGLdBt4EVkSORg02s=";
 
-  types-aiobotocore-s3control = buildTypesAiobotocorePackage "s3control" "2.11.0" "sha256-X//a8jbgKvgYb10yLsha5Ekw7JfBZ4ZJDpZtdj8DQy4=";
+  types-aiobotocore-s3control = buildTypesAiobotocorePackage "s3control" "2.11.2" "sha256-PNo0W4KDRwUyzg+aSxoocYPqllG4cMAB5SEsj5mt3lk=";
 
-  types-aiobotocore-s3outposts = buildTypesAiobotocorePackage "s3outposts" "2.11.0" "sha256-SZO4Xo3+xZjtHGKCWMgcV9VgRkFsLEEqzWq3uKul340=";
+  types-aiobotocore-s3outposts = buildTypesAiobotocorePackage "s3outposts" "2.11.2" "sha256-hhqdwUHmEAPGQuPnhLJtDdHaIYb/sv/U6UCEg+CKkyA=";
 
-  types-aiobotocore-sagemaker = buildTypesAiobotocorePackage "sagemaker" "2.11.0" "sha256-fOqlUtOyJR5EpBc24tJwRJakp8OpnoxIfQgdEFlFNjw=";
+  types-aiobotocore-sagemaker = buildTypesAiobotocorePackage "sagemaker" "2.11.2" "sha256-O9TbCPu6aHsK0NAmYVCZjy4G71EhlgzX24behEGU7eI=";
 
-  types-aiobotocore-sagemaker-a2i-runtime = buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.11.0" "sha256-SCfymFM/imhxod2yTR4wWrm+bNQ4Ey+3GhXND1pigwk=";
+  types-aiobotocore-sagemaker-a2i-runtime = buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.11.2" "sha256-N1RAqfBhqqw4q8G8xJPlSQ69ww7Vaz3ySafwi2oBrB8=";
 
-  types-aiobotocore-sagemaker-edge = buildTypesAiobotocorePackage "sagemaker-edge" "2.11.0" "sha256-vZd4RpmMnviYbcEwAff0DmMFsIcHiYV7to1K4bgP8D8=";
+  types-aiobotocore-sagemaker-edge = buildTypesAiobotocorePackage "sagemaker-edge" "2.11.2" "sha256-dHZZF5L+bVPDYFLXWHxSJjNAfKus2E2sUQlOXLp0TPk=";
 
-  types-aiobotocore-sagemaker-featurestore-runtime = buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.11.0" "sha256-+4g0HkfkBA2Vi7VHUJEWRyShCVool+21bEpn/t9QNUo=";
+  types-aiobotocore-sagemaker-featurestore-runtime = buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.11.2" "sha256-nTfFkbwnKM2flJfCIU+An2eDDrMkyjrayJ7V1zAFVoE=";
 
-  types-aiobotocore-sagemaker-geospatial = buildTypesAiobotocorePackage "sagemaker-geospatial" "2.11.0" "sha256-SP4nUssP7jYS/huBwNf9vVcBKBKSH4X0jJEjWXNC3Fc=";
+  types-aiobotocore-sagemaker-geospatial = buildTypesAiobotocorePackage "sagemaker-geospatial" "2.11.2" "sha256-8LYpcjMnPEOX7qbQ6I8zbs3/UoIhKEnvNC5qasqsqcc=";
 
-  types-aiobotocore-sagemaker-metrics = buildTypesAiobotocorePackage "sagemaker-metrics" "2.11.0" "sha256-e/NlinVQRHRIEqdN4MeK9yD2WkBMgIZazrGvfsXLiWk=";
+  types-aiobotocore-sagemaker-metrics = buildTypesAiobotocorePackage "sagemaker-metrics" "2.11.2" "sha256-WM2MksGubVpLG73vK107MUh7tJcvBr0hiZ/669yPOq0=";
 
-  types-aiobotocore-sagemaker-runtime = buildTypesAiobotocorePackage "sagemaker-runtime" "2.11.0" "sha256-a1yu68zlG6N+ezicX6aLH99A2kYLNCPV1cXMYEeI2ok=";
+  types-aiobotocore-sagemaker-runtime = buildTypesAiobotocorePackage "sagemaker-runtime" "2.11.2" "sha256-/xKAA15x8xpMCh7kOi4kWuwaXulLRpMcnyzVPMH+Gh8=";
 
-  types-aiobotocore-savingsplans = buildTypesAiobotocorePackage "savingsplans" "2.11.0" "sha256-Q3t3g2FiolXVGGlCAodY1dweI9WlNaYESvFLB7vzyCk=";
+  types-aiobotocore-savingsplans = buildTypesAiobotocorePackage "savingsplans" "2.11.2" "sha256-he01wy13rhnE2xzXkJ3twOZsnQ/XfzMG74QP9Nyuj1o=";
 
-  types-aiobotocore-scheduler = buildTypesAiobotocorePackage "scheduler" "2.11.0" "sha256-bLwQkmNKbuqUyKh8QlVDsDfx1pcgC78K7B2vumrJZNc=";
+  types-aiobotocore-scheduler = buildTypesAiobotocorePackage "scheduler" "2.11.2" "sha256-U2zesi+tt47KzbpdI94/S3ypcUUSWFUZNQRUcHRHWWY=";
 
-  types-aiobotocore-schemas = buildTypesAiobotocorePackage "schemas" "2.11.0" "sha256-giit/TrRCMiaT/qJzyvKFS8dGnJh9VrTw4CRv76rXVo=";
+  types-aiobotocore-schemas = buildTypesAiobotocorePackage "schemas" "2.11.2" "sha256-o+l4pAMZDwmVFnpArvKHNRB6zUC/AYWqrRsNZBgrV7Y=";
 
-  types-aiobotocore-sdb = buildTypesAiobotocorePackage "sdb" "2.11.0" "sha256-yZw/D6C+Cj/du6j2ii2muxXOp8lrpXfPgZp0xit7uyM=";
+  types-aiobotocore-sdb = buildTypesAiobotocorePackage "sdb" "2.11.2" "sha256-IX8mZcFKSvfgCI+iXq6hByFwPBRRL8rqxr42XgPXZ8c=";
 
-  types-aiobotocore-secretsmanager = buildTypesAiobotocorePackage "secretsmanager" "2.11.0" "sha256-5nj1I2OszOyuSvZtEnfrMlPBMmTrI4S5Qf2PK2aSesQ=";
+  types-aiobotocore-secretsmanager = buildTypesAiobotocorePackage "secretsmanager" "2.11.2" "sha256-Op15jR7QepqLkWxFG7dMrre904OC3N9viwzChS2bNno=";
 
-  types-aiobotocore-securityhub = buildTypesAiobotocorePackage "securityhub" "2.11.0" "sha256-UMEnin0Gc9CRacjlG1e3h3IWJCrp4EsewTzk1GFMjck=";
+  types-aiobotocore-securityhub = buildTypesAiobotocorePackage "securityhub" "2.11.2" "sha256-Rgc7+yij/CyhxOK/2hOQIVzrLW4lmRa+0eGxlWiIf38=";
 
-  types-aiobotocore-securitylake = buildTypesAiobotocorePackage "securitylake" "2.11.0" "sha256-vhu5PJX3NsaG2BXy39y930Bf+70zV7EfZpqlCbtZVhk=";
+  types-aiobotocore-securitylake = buildTypesAiobotocorePackage "securitylake" "2.11.2" "sha256-Hv6L2fWR7dHjhU3Oqm/sI18a/12DYJzPsCcGKlXCm80=";
 
-  types-aiobotocore-serverlessrepo = buildTypesAiobotocorePackage "serverlessrepo" "2.11.0" "sha256-AEb2dQnJ+QN0FAbDtjYfAwb7ZAeVqod+NIVE7iBVvBI=";
+  types-aiobotocore-serverlessrepo = buildTypesAiobotocorePackage "serverlessrepo" "2.11.2" "sha256-k4Xsag9IM9/kyv7TM9EH360yTC9mChJgxLS5U8MHRA8=";
 
-  types-aiobotocore-service-quotas = buildTypesAiobotocorePackage "service-quotas" "2.11.0" "sha256-tVSi4HLeb/QiKs3uLfp19Kzuwi7BspYOh8W8xa/yjVM=";
+  types-aiobotocore-service-quotas = buildTypesAiobotocorePackage "service-quotas" "2.11.2" "sha256-8XfZoANc59/sIqKsSMjvk8T41/BW8xX17ACjf1pXxyA=";
 
-  types-aiobotocore-servicecatalog = buildTypesAiobotocorePackage "servicecatalog" "2.11.0" "sha256-01wTzG20lsCat32U3ewxYNUxVbHEJzLAxnodJRIqGBI=";
+  types-aiobotocore-servicecatalog = buildTypesAiobotocorePackage "servicecatalog" "2.11.2" "sha256-7sLVYb2ZzdiVsqUOytiPt/b8GiW9qA2un4n2LORy4gY=";
 
-  types-aiobotocore-servicecatalog-appregistry = buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.11.0" "sha256-kJ05BDT2EJBRNmWbm9PUY0yh5H/PHonvIvQQyHg6Nak=";
+  types-aiobotocore-servicecatalog-appregistry = buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.11.2" "sha256-k5jGzYtjbnV/ZaJMQE/lbgmhYxF5k9Quk7/QaTJDjrw=";
 
-  types-aiobotocore-servicediscovery = buildTypesAiobotocorePackage "servicediscovery" "2.11.0" "sha256-a/BkGzBQLhgQmPdXQx90VSxLgrr7wVitI0zeefC14vA=";
+  types-aiobotocore-servicediscovery = buildTypesAiobotocorePackage "servicediscovery" "2.11.2" "sha256-mJdB9fehiTA35dA766QlQyTkrvS4J4s8pCBq3cJcsxw=";
 
-  types-aiobotocore-ses = buildTypesAiobotocorePackage "ses" "2.11.0" "sha256-vsEfls5Rf8vWb96jB1WTcAwAXP3GDIkmNwL+dEhBlJ8=";
+  types-aiobotocore-ses = buildTypesAiobotocorePackage "ses" "2.11.2" "sha256-iMgv2U0XPdil6xt4/3j1ZZGJGylEz8qDYzzvTP4N6n4=";
 
-  types-aiobotocore-sesv2 = buildTypesAiobotocorePackage "sesv2" "2.11.0" "sha256-ZE1VA2mExcHfHwJ9pIJRlXeV0NDH5Lkvm9yOS+nDFoM=";
+  types-aiobotocore-sesv2 = buildTypesAiobotocorePackage "sesv2" "2.11.2" "sha256-2eN+bo1BWU63a6xCexpVCZvblcCRdPlGf35D8v6A3Xg=";
 
-  types-aiobotocore-shield = buildTypesAiobotocorePackage "shield" "2.11.0" "sha256-MzlJ9CeaHiwEKd+miQO4TdIr9JG/u1XW4P1l/kGVgkI=";
+  types-aiobotocore-shield = buildTypesAiobotocorePackage "shield" "2.11.2" "sha256-i5WHQ5wHvYdNpNJZWgAWAAD6mZPl/RPEOSh66l7PSCA=";
 
-  types-aiobotocore-signer = buildTypesAiobotocorePackage "signer" "2.11.0" "sha256-k6rcuFumGuas7qOMa5vhp6rfxK+J5wWq47Gwfo54p30=";
+  types-aiobotocore-signer = buildTypesAiobotocorePackage "signer" "2.11.2" "sha256-v1FG59Mjxefyp4PpeLGfgHlrzVrUGUquqBSyxEM1OiU=";
 
-  types-aiobotocore-simspaceweaver = buildTypesAiobotocorePackage "simspaceweaver" "2.11.0" "sha256-l9jFLw3A6yIQ8JsRJO66CUetSeitYx3hE1fTTAPCKh0=";
+  types-aiobotocore-simspaceweaver = buildTypesAiobotocorePackage "simspaceweaver" "2.11.2" "sha256-7UnTnGGGAfpPmU+m91R2n9AZinLoPFY/nqAjopnwhiU=";
 
-  types-aiobotocore-sms = buildTypesAiobotocorePackage "sms" "2.11.0" "sha256-sUkTUxkwSClz09NZ3TxkKyLUWENJt1L0on4Nva2ZQ7U=";
+  types-aiobotocore-sms = buildTypesAiobotocorePackage "sms" "2.11.2" "sha256-s/DbyfwPZ0qNvYaMWxuAwF9HqKihUjELdKPJ71DB1C4=";
 
-  types-aiobotocore-sms-voice = buildTypesAiobotocorePackage "sms-voice" "2.11.0" "sha256-EMZGeA34sNVNqv3AJSabyz1HoMbic617CQPp8O2droY=";
+  types-aiobotocore-sms-voice = buildTypesAiobotocorePackage "sms-voice" "2.11.2" "sha256-k0ujcxl1uupuVNDXDc53WTb3buAHziPHDG662LrP36s=";
 
-  types-aiobotocore-snow-device-management = buildTypesAiobotocorePackage "snow-device-management" "2.11.0" "sha256-651JlGJYbt7VAdIkk57nxH0PWvi1voTruVzz8tC7rbc=";
+  types-aiobotocore-snow-device-management = buildTypesAiobotocorePackage "snow-device-management" "2.11.2" "sha256-jCEaxTTobMmZBNAFauI0Oh0/gvhJZXyrbgvsIofmrKY=";
 
-  types-aiobotocore-snowball = buildTypesAiobotocorePackage "snowball" "2.11.0" "sha256-Np8fPiIjW5F+co1s20R3hDZS/fb8U0pYoKNC1hzEQrU=";
+  types-aiobotocore-snowball = buildTypesAiobotocorePackage "snowball" "2.11.2" "sha256-f5RZLaBzcikIZ77Ei1JZZQuaKy2M+RkRpeNhsswSunU=";
 
-  types-aiobotocore-sns = buildTypesAiobotocorePackage "sns" "2.11.0" "sha256-EXqbUM4pYsmprvd04fDghy5Sy8u4jgP+OWSg7sWRr1c=";
+  types-aiobotocore-sns = buildTypesAiobotocorePackage "sns" "2.11.2" "sha256-bja/dcxw3OOeCfFgpHK+6gnivYoqAzmqt2IetHLgzws=";
 
-  types-aiobotocore-sqs = buildTypesAiobotocorePackage "sqs" "2.11.0" "sha256-POwMTLFUjTNa+nLi8Fxq8UihOkX0z1NuFaETuI6uLns=";
+  types-aiobotocore-sqs = buildTypesAiobotocorePackage "sqs" "2.11.2" "sha256-9fVYF2qfjM5DYWZG2hbeg/XPz+K8tyGhzSxY8eW0mHI=";
 
-  types-aiobotocore-ssm = buildTypesAiobotocorePackage "ssm" "2.11.0" "sha256-gEIBYw1ncrS8R6bSS5uMCpSGMpDvItAyeXuMJN6vsi4=";
+  types-aiobotocore-ssm = buildTypesAiobotocorePackage "ssm" "2.11.2" "sha256-yztJVMvlWsZu9L+GzxTPdM2lzTKTW36T1OX0WmHgoBA=";
 
-  types-aiobotocore-ssm-contacts = buildTypesAiobotocorePackage "ssm-contacts" "2.11.0" "sha256-6HCfXbZ7hO63x+N6n9jA48+UshaHgKHsvEGYgZh2qAY=";
+  types-aiobotocore-ssm-contacts = buildTypesAiobotocorePackage "ssm-contacts" "2.11.2" "sha256-0o9kuyEE7rzzgA4Q75udMRUADKbW+rLgmvIGCVJpJhA=";
 
-  types-aiobotocore-ssm-incidents = buildTypesAiobotocorePackage "ssm-incidents" "2.11.0" "sha256-mEVJMqWKv6u5Idw+stqcTcOB6RVOfExMXYnuuExEhNU=";
+  types-aiobotocore-ssm-incidents = buildTypesAiobotocorePackage "ssm-incidents" "2.11.2" "sha256-89yICjzgxAlJ+ljpfRsCwf4RITWX9y+alCdtTBeLhkw=";
 
-  types-aiobotocore-ssm-sap = buildTypesAiobotocorePackage "ssm-sap" "2.11.0" "sha256-m5l6ewMNnOnDUN9Y0h5rxjAyaO6OZK2BdzxXM4Vox3k=";
+  types-aiobotocore-ssm-sap = buildTypesAiobotocorePackage "ssm-sap" "2.11.2" "sha256-slJsfHBHVv+vPSfqNu/C9zl45SDX5H7K9rn+YVCca5Q=";
 
-  types-aiobotocore-sso = buildTypesAiobotocorePackage "sso" "2.11.0" "sha256-hv8XkRsnIgvLGr2XIjyYm2upv8Vj4i42UF8BpKil+S4=";
+  types-aiobotocore-sso = buildTypesAiobotocorePackage "sso" "2.11.2" "sha256-ZAbFyBaGfQIRoMQkvnbViwShuvtIgTPmGZjScm1F7Bw=";
 
-  types-aiobotocore-sso-admin = buildTypesAiobotocorePackage "sso-admin" "2.11.0" "sha256-m92lE8qaVgwKQFA/gv9saL6a7Zey7MtO9dzGbahVx5k=";
+  types-aiobotocore-sso-admin = buildTypesAiobotocorePackage "sso-admin" "2.11.2" "sha256-DUOiPjmvmUL498QOrn4GBhnEw2GcFrOaj6YW5rh5i3M=";
 
-  types-aiobotocore-sso-oidc = buildTypesAiobotocorePackage "sso-oidc" "2.11.0" "sha256-LPqXAPzwkTt0maMEyZE1JTYVYzxEeN/ST7+B6Fbw5dk=";
+  types-aiobotocore-sso-oidc = buildTypesAiobotocorePackage "sso-oidc" "2.11.2" "sha256-RmyyuORVrE0Qwl8yna/JlOXIrHYtyBVJPVpU2g0DDxY=";
 
-  types-aiobotocore-stepfunctions = buildTypesAiobotocorePackage "stepfunctions" "2.11.0" "sha256-t4Pdd0mLzw08rWQG55Sz5rHJJApuiVSBDyT5IejqlX0=";
+  types-aiobotocore-stepfunctions = buildTypesAiobotocorePackage "stepfunctions" "2.11.2" "sha256-+w4WT5xRSShrvyKI9LpZlnBWwk52XZDM8EIx20DPfxk=";
 
-  types-aiobotocore-storagegateway = buildTypesAiobotocorePackage "storagegateway" "2.11.0" "sha256-PXigzc5hHwKFKzGf4UHMUbX6Rh6DTdm+Rh74O+3SP+0=";
+  types-aiobotocore-storagegateway = buildTypesAiobotocorePackage "storagegateway" "2.11.2" "sha256-H3tINfz/GO514kayygBZ8ucyeEDfCUxObyqqKJFDIrs=";
 
-  types-aiobotocore-sts = buildTypesAiobotocorePackage "sts" "2.11.0" "sha256-JkWCjmi5SWKdwqnNUUW6t8iGwc8NjWoQQUQo1pCqeoY=";
+  types-aiobotocore-sts = buildTypesAiobotocorePackage "sts" "2.11.2" "sha256-uzhkXmUdnXzHRTyUj+l6pskEJJGG/rSUtnK3GML7nCk=";
 
-  types-aiobotocore-support = buildTypesAiobotocorePackage "support" "2.11.0" "sha256-/KrG8QIZkSKPGOEe4nJlCzdgvdChKU5Xrop2JnUkdGA=";
+  types-aiobotocore-support = buildTypesAiobotocorePackage "support" "2.11.2" "sha256-i0rmU4YdFuZyuqyzFd2BCAKokXWMVVqOTN8Jm8cEvEc=";
 
-  types-aiobotocore-support-app = buildTypesAiobotocorePackage "support-app" "2.11.0" "sha256-u2O7hDKAVfXcgX8JY+m0WgeEwoCyqfQbwp5xlfUSmCk=";
+  types-aiobotocore-support-app = buildTypesAiobotocorePackage "support-app" "2.11.2" "sha256-Duti4k7lA0jovcu8q+kv6HQWaMeZtKxN2wGScqNw+hc=";
 
-  types-aiobotocore-swf = buildTypesAiobotocorePackage "swf" "2.11.0" "sha256-/+7mljg9y9FMwwbJ8NYi9k7bs2fxsmhR9Vvin/Y2JJc=";
+  types-aiobotocore-swf = buildTypesAiobotocorePackage "swf" "2.11.2" "sha256-g29BPcFbEGwBs7qUKmJOBrhgcI7iGOglr3SJQ/HHe54=";
 
-  types-aiobotocore-synthetics = buildTypesAiobotocorePackage "synthetics" "2.11.0" "sha256-N0FrmOkrt8aLx4tfzAmuwRW6/oy3XHVRT96/IXtSUyY=";
+  types-aiobotocore-synthetics = buildTypesAiobotocorePackage "synthetics" "2.11.2" "sha256-h1FCzj5+IplgFJ0SpsY5okNURSpuC4zy4qAlhUyt7sE=";
 
-  types-aiobotocore-textract = buildTypesAiobotocorePackage "textract" "2.11.0" "sha256-c53Wqgux7PN4xV7c2/nsksQkDQ4wI9cXcF2QLajNqC8=";
+  types-aiobotocore-textract = buildTypesAiobotocorePackage "textract" "2.11.2" "sha256-PzmzE1Mgka+bM2E4qwPS3N3lOz3ljYdI78KZ4flr6ac=";
 
-  types-aiobotocore-timestream-query = buildTypesAiobotocorePackage "timestream-query" "2.11.0" "sha256-Sz2Q9OPDWeI5i3F4vWbcYqjoEsnclAYUu2I7jIJA4KI=";
+  types-aiobotocore-timestream-query = buildTypesAiobotocorePackage "timestream-query" "2.11.2" "sha256-MK4YicO38uuJsHuEL6NZwh/qo6UANVK19sodjcJHNOs=";
 
-  types-aiobotocore-timestream-write = buildTypesAiobotocorePackage "timestream-write" "2.11.0" "sha256-JUIL7o1dC8slMcUla3NFPsjSAy/D2RjTNcqJY/1a2VE=";
+  types-aiobotocore-timestream-write = buildTypesAiobotocorePackage "timestream-write" "2.11.2" "sha256-UBp0FEr4ufUQ2WvMEg1Rv1OgRdtzk6VoKJ56VHlcAyo=";
 
-  types-aiobotocore-tnb = buildTypesAiobotocorePackage "tnb" "2.11.0" "sha256-BiRk9QfVBLHQTfq3v6QdZAVewO8QZvTQl1ARcnEouao=";
+  types-aiobotocore-tnb = buildTypesAiobotocorePackage "tnb" "2.11.2" "sha256-ZnTjfCvcvshwPK0bBD/Ck6lGiy8+9T5cvFqPv2BnHOc=";
 
-  types-aiobotocore-transcribe = buildTypesAiobotocorePackage "transcribe" "2.11.0" "sha256-2UBVBsFZsk4Zo3JNo9WThqzY8SUaEecMYD0c05pd5Io=";
+  types-aiobotocore-transcribe = buildTypesAiobotocorePackage "transcribe" "2.11.2" "sha256-GspypGik1nJBWksXZpID2uIP8zgiZnNidLC4uxWd4Uo=";
 
-  types-aiobotocore-transfer = buildTypesAiobotocorePackage "transfer" "2.11.0" "sha256-c0GwHy3OHQrBMLhxyIaKPoHvtF79ySSL//NFOngfeL0=";
+  types-aiobotocore-transfer = buildTypesAiobotocorePackage "transfer" "2.11.2" "sha256-wHO9PVHgTSDRiYbKxlkBCIhLB/gt1LtLWjXAG1eViEI=";
 
-  types-aiobotocore-translate = buildTypesAiobotocorePackage "translate" "2.11.0" "sha256-MqggOwWPYz1wTDvGL+64dukGHNisK1S/ZJnkec9WOkc=";
+  types-aiobotocore-translate = buildTypesAiobotocorePackage "translate" "2.11.2" "sha256-I1b0qD9Trk6Dx2lKr8ERD4cQA+VKvBsmdCRJeIGEqhs=";
 
-  types-aiobotocore-verifiedpermissions = buildTypesAiobotocorePackage "verifiedpermissions" "2.11.0" "sha256-/+83iitPdMoKHY8sbYoBgN+KtMd3GjcBtiBdM0vnbbc=";
+  types-aiobotocore-verifiedpermissions = buildTypesAiobotocorePackage "verifiedpermissions" "2.11.2" "sha256-JChel9RC22kon8uWBlJKMKuYuugbbsrZyjlrmg+fhgg=";
 
-  types-aiobotocore-voice-id = buildTypesAiobotocorePackage "voice-id" "2.11.0" "sha256-iEy+2H7bRE/kbX3EMpdLWu4DYMNv4ksyfANaY/Tc6x0=";
+  types-aiobotocore-voice-id = buildTypesAiobotocorePackage "voice-id" "2.11.2" "sha256-RT09v7dqVet6tAb0IA5NfmzMy4IX2DAofcy729nZZwA=";
 
-  types-aiobotocore-vpc-lattice = buildTypesAiobotocorePackage "vpc-lattice" "2.11.0" "sha256-MSLS2rEhdAHWxjdU+ZRWVPR9ZtAeMcwyifULhx0CTno=";
+  types-aiobotocore-vpc-lattice = buildTypesAiobotocorePackage "vpc-lattice" "2.11.2" "sha256-Rlr0tzi20v4XosIPW9zkNqKWHN2rNd8DZGiiy1Nb5f0=";
 
-  types-aiobotocore-waf = buildTypesAiobotocorePackage "waf" "2.11.0" "sha256-A/YgoRKpFSfE5/eu2Gts1u0U/p4D+j2xLXa2fU+f1Kc=";
+  types-aiobotocore-waf = buildTypesAiobotocorePackage "waf" "2.11.2" "sha256-JnvB33lVkfViHtEDLo7r11dv5U9Kztv/OW+4gjGDB28=";
 
-  types-aiobotocore-waf-regional = buildTypesAiobotocorePackage "waf-regional" "2.11.0" "sha256-WTsE8VJc4EWTA5G/5B7mHje4VDZCSbBsFxwIDkExq2A=";
+  types-aiobotocore-waf-regional = buildTypesAiobotocorePackage "waf-regional" "2.11.2" "sha256-Air8rMhqKgkO5TGqRojR+IYOnNXY+N7xNNqQPMn2jrc=";
 
-  types-aiobotocore-wafv2 = buildTypesAiobotocorePackage "wafv2" "2.11.0" "sha256-Zzr96zjueB5KT37r0feaTj18kd0IwVp9jXMjsIuWhCE=";
+  types-aiobotocore-wafv2 = buildTypesAiobotocorePackage "wafv2" "2.11.2" "sha256-b9S614sFcuX4E3W8EXz9Nbdx7sJmHfZz/6dyObuQV/w=";
 
-  types-aiobotocore-wellarchitected = buildTypesAiobotocorePackage "wellarchitected" "2.11.0" "sha256-p/WikTCNYa/Bwv7PXOKzsHX5rBBtquKWf+RPD5fnbxE=";
+  types-aiobotocore-wellarchitected = buildTypesAiobotocorePackage "wellarchitected" "2.11.2" "sha256-7HJ0WBfowqrWLwYvWgbDo+gftumeaepQSWpO5DqIJGE=";
 
-  types-aiobotocore-wisdom = buildTypesAiobotocorePackage "wisdom" "2.11.0" "sha256-CqBfDmR5WUUTK0jH+ihiJpugjEZtY5zvL9hZ9Wk+Jy8=";
+  types-aiobotocore-wisdom = buildTypesAiobotocorePackage "wisdom" "2.11.2" "sha256-Kaz1XfeiPzKTeUPC2GxY1mr2Xfs2rMmk8qoJXsP+o6Q=";
 
-  types-aiobotocore-workdocs = buildTypesAiobotocorePackage "workdocs" "2.11.0" "sha256-XEbZfg7jxW9PwZdsQ9XzY3/i2DIV9yUBlaCbubDcFjU=";
+  types-aiobotocore-workdocs = buildTypesAiobotocorePackage "workdocs" "2.11.2" "sha256-eSTETN2kjC/NgehPRXrSe+zZoFOS8Tuk+W51iT5iXt0=";
 
-  types-aiobotocore-worklink = buildTypesAiobotocorePackage "worklink" "2.11.0" "sha256-nNQ7Dq1qENRdoIfzVULZZ3JDvc6EEMJF2yJO6iXCMVg=";
+  types-aiobotocore-worklink = buildTypesAiobotocorePackage "worklink" "2.11.2" "sha256-0N9Va4wHn6SgCPBQ77VuHQgODlCaEgeoze+g//ZoQK8=";
 
-  types-aiobotocore-workmail = buildTypesAiobotocorePackage "workmail" "2.11.0" "sha256-abkID9Xww52uDpNABuUI9v3fknUNBkZ+fMjAr9mWv+0=";
+  types-aiobotocore-workmail = buildTypesAiobotocorePackage "workmail" "2.11.2" "sha256-N/eiwpmwBimzDy4VT+m7nbe9PK2QlCa1+z3LKDjzZZI=";
 
-  types-aiobotocore-workmailmessageflow = buildTypesAiobotocorePackage "workmailmessageflow" "2.11.0" "sha256-57+QvrdJTJK9psRohrA4HfPuTVy1AKVK7YUWGHOX0jU=";
+  types-aiobotocore-workmailmessageflow = buildTypesAiobotocorePackage "workmailmessageflow" "2.11.2" "sha256-+M5VV+1wtSpDz7b7CtfIRIwJFpRA8GLdWRne+RQ2EGM=";
 
-  types-aiobotocore-workspaces = buildTypesAiobotocorePackage "workspaces" "2.11.0" "sha256-xs8/fAuglhlUQcHKC5m+tbkjYKvN5EEUQV7lzrnaFUc=";
+  types-aiobotocore-workspaces = buildTypesAiobotocorePackage "workspaces" "2.11.2" "sha256-JXslg9nlK/7VwSaVW6No0p0SxRLufoFhmhl+y6Lvsek=";
 
-  types-aiobotocore-workspaces-web = buildTypesAiobotocorePackage "workspaces-web" "2.11.0" "sha256-RvEVbetUhE54iLlEvloG5F+9tkmmSFCUgwoXVRSDfX0=";
+  types-aiobotocore-workspaces-web = buildTypesAiobotocorePackage "workspaces-web" "2.11.2" "sha256-Z4tueuOfvtxD6PrWk3Tfq/ztXcE3UZkVn8J6OLA49N4=";
 
-  types-aiobotocore-xray = buildTypesAiobotocorePackage "xray" "2.11.0" "sha256-COUTKrzFCLI8VSa/MBNPAeBkgGAlhBvOayyYqnYHaNQ=";
+  types-aiobotocore-xray = buildTypesAiobotocorePackage "xray" "2.11.2" "sha256-vw6nBEHHtmhHSM/gusdLGT+qB92USaycyIw4f9/bSNA=";
 }
diff --git a/pkgs/development/python-modules/types-aiobotocore/update.sh b/pkgs/development/python-modules/types-aiobotocore/update.sh
index 84fd0c612801..daded94309a6 100644
--- a/pkgs/development/python-modules/types-aiobotocore/update.sh
+++ b/pkgs/development/python-modules/types-aiobotocore/update.sh
@@ -5,7 +5,7 @@ set -eu -o pipefail
 
 source_file=pkgs/development/python-modules/types-aiobotocore-packages/default.nix
 
-version="2.11.0"
+version="2.11.2"
 
 nix-update python311Packages.types-aiobotocore --commit --build
 
diff --git a/pkgs/development/python-modules/types-awscrt/default.nix b/pkgs/development/python-modules/types-awscrt/default.nix
index c2adf4dd7b7b..ad5041ddea67 100644
--- a/pkgs/development/python-modules/types-awscrt/default.nix
+++ b/pkgs/development/python-modules/types-awscrt/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "types-awscrt";
-  version = "0.20.3";
+  version = "0.20.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "types_awscrt";
     inherit version;
-    hash = "sha256-BqhZGJoynKjmbVbO7vI5FIjjm4ePvSFB8RXqtNQW/iI=";
+    hash = "sha256-ECRVcMcoXpSTYrSucQxUvyhdZKJ0U9QnYkd7zuXNd6M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-html5lib/default.nix b/pkgs/development/python-modules/types-html5lib/default.nix
index 7ce8ad6755b4..7e5fbfe90251 100644
--- a/pkgs/development/python-modules/types-html5lib/default.nix
+++ b/pkgs/development/python-modules/types-html5lib/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-html5lib";
-  version = "1.1.11.20240106";
+  version = "1.1.11.20240222";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-/DobGOtgGz7q+SyQC9Z2dcCk+h3R0qKJPr20aSNUfuk=";
+    hash = "sha256-2VF+xrovofYxE+KTClm2ByKpdsyYO5TX/XcvFIZeEVI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-psycopg2/default.nix b/pkgs/development/python-modules/types-psycopg2/default.nix
index c22fec8de7dd..b2fef1134aa1 100644
--- a/pkgs/development/python-modules/types-psycopg2/default.nix
+++ b/pkgs/development/python-modules/types-psycopg2/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-psycopg2";
-  version = "2.9.21.20240201";
+  version = "2.9.21.20240218";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-daknNfYro2OXQJrkdY8CQcvEqbsw8fldO0pmD+p+dxE=";
+    hash = "sha256-MITNgHA4piyA+1vni0HYVbSKBgMWEB6ln9hcMC77V9Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-pytz/default.nix b/pkgs/development/python-modules/types-pytz/default.nix
index 9433d55512ec..bf1b49ccc918 100644
--- a/pkgs/development/python-modules/types-pytz/default.nix
+++ b/pkgs/development/python-modules/types-pytz/default.nix
@@ -1,18 +1,23 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "types-pytz";
-  version = "2023.3.1.1";
-  format = "setuptools";
+  version = "2024.1.0.20240203";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zCPQGSzUnI9rukTuDIHkWGqPMCBJcPwIlNIJprCNq5o=";
+    hash = "sha256-yTdR7iDfxuBUoBSPj1InuaALeckKTTyfRkcRpzF5yJ4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Modules doesn't have tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/types-redis/default.nix b/pkgs/development/python-modules/types-redis/default.nix
index dcdc6d1575cf..c5515cf1f70f 100644
--- a/pkgs/development/python-modules/types-redis/default.nix
+++ b/pkgs/development/python-modules/types-redis/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "types-redis";
-  version = "4.6.0.20240106";
+  version = "4.6.0.20240218";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ky+jp4+EVZYWJC0j+G3l9BMN/Ww7g/stjOMynlA/dW4=";
+    hash = "sha256-UQPX5pDlx0yXShYTF7LVmsIwPPi+8kF1sEwqTDSGyzk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index 25538aa7c897..520927662c2b 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.31.0.20240125";
+  version = "2.31.0.20240218";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-A6KM4dfNVBmRSOBDsgec3e0i1nldGaLCpnkaSyteLrU=";
+    hash = "sha256-8XIduoOFlY9QSlOGJAuS3kc04EegikB1HBZU0awzScU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-setuptools/default.nix b/pkgs/development/python-modules/types-setuptools/default.nix
index 0b7e0d91b2a6..cff06ebc62aa 100644
--- a/pkgs/development/python-modules/types-setuptools/default.nix
+++ b/pkgs/development/python-modules/types-setuptools/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-setuptools";
-  version = "69.0.0.20240115";
+  version = "69.1.0.20240215";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GpyGOJn0DL4gU9DNHQDd7wMwtJIzVGfQGPc8H+yUYqM=";
+    hash = "sha256-Kk/dOjymQ8VzWeWE2y3Stdt0gaguzCHqNovEMXv8BQU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/universal-silabs-flasher/default.nix b/pkgs/development/python-modules/universal-silabs-flasher/default.nix
index 3872cd5ce2a5..938856691b7a 100644
--- a/pkgs/development/python-modules/universal-silabs-flasher/default.nix
+++ b/pkgs/development/python-modules/universal-silabs-flasher/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
+, pythonRelaxDepsHook
 
 # build-system
 , setuptools
@@ -26,21 +27,27 @@
 
 buildPythonPackage rec {
   pname = "universal-silabs-flasher";
-  version = "0.0.15";
+  version = "0.0.18";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "NabuCasa";
     repo = "universal-silabs-flasher";
     rev = "v${version}";
-    hash = "sha256-5hA1i2XzKzQDRrZfOaA6I3X7hU+nSd7HpcHHNIzZO7g=";
+    hash = "sha256-XUMpWzDqouhbsP+s0b13f6N0YGdXJK6qhbWQLqMzNHM=";
   };
 
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
     setuptools-git-versioning
   ];
 
+  pythonRelaxDeps = [
+    # https://github.com/NabuCasa/universal-silabs-flasher/pull/50
+    "gpiod"
+  ];
+
   propagatedBuildInputs = [
     async-timeout
     bellows
diff --git a/pkgs/development/python-modules/unstructured/default.nix b/pkgs/development/python-modules/unstructured/default.nix
index 5cbf65a99d43..ac1f937a44b4 100644
--- a/pkgs/development/python-modules/unstructured/default.nix
+++ b/pkgs/development/python-modules/unstructured/default.nix
@@ -56,7 +56,7 @@
 , grpcio
 }:
 let
-  version = "0.12.0";
+  version = "0.12.4";
   optional-dependencies = {
     huggingflace = [
       langdetect
@@ -90,7 +90,7 @@ buildPythonPackage {
     owner = "Unstructured-IO";
     repo = "unstructured";
     rev = "refs/tags/${version}";
-    hash = "sha256-NXpl/WUyOfWspppXT5iUWJd4eRd51bdQgl9xyf/+e8s=";
+    hash = "sha256-lfsCmEhF6CTrEIa4y98NgDw6EgfLk39BVsTmYZD6MkU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/uqbar/default.nix b/pkgs/development/python-modules/uqbar/default.nix
index 3af7ba636e9e..c7c6e8e2eea6 100644
--- a/pkgs/development/python-modules/uqbar/default.nix
+++ b/pkgs/development/python-modules/uqbar/default.nix
@@ -1,30 +1,36 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, unidecode
-, sphinx
+, pytestCheckHook
 , pythonAtLeast
 , pythonOlder
-, pytestCheckHook
-, pytest-cov
+, setuptools
+, sphinx
+, unidecode
 }:
 
 buildPythonPackage rec {
   pname = "uqbar";
-  version = "0.7.0";
-  format = "pyproject";
+  version = "0.7.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cEhWXGtMSXVjT5QigDedjT/lwYQnVqPCE5vbctXWznk=";
+    hash = "sha256-9KQmLCsIiHcdiAu4GeEu+wa3lGwEZOO+oHWuhFNosR0=";
   };
 
   postPatch = ''
-    sed -i '/"black"/d' pyproject.toml
+    sed -i  pyproject.toml \
+    -e '/"black"/d' \
+    -e "/--cov/d"
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     unidecode
     sphinx
@@ -32,22 +38,10 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
-    pytest-cov
-  ];
-
-  pytestFlagsArray = [
-    "tests/"
-    "-vv"
-    "-rf"
-    "--cov-branch"
-    "--cov-report=html"
-    "--cov-report=term"
-    "--doctest-modules"
   ];
 
   disabledTests = [
-    # UnboundLocalError: local variable 'output_path' referenced before
-    # assignment
+    # UnboundLocalError: local variable 'output_path' referenced before assignment
     "test_01"
     # AssertionError: assert False
     "test_sphinx_book_html_cached"
@@ -56,18 +50,23 @@ buildPythonPackage rec {
     # 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"
-  ]
-  # assert not '\x1b[91m/build/uqbar-0.7.0/tests/fake_package/enums.py:docstring
-  ++ lib.optional (pythonAtLeast "3.11") "test_sphinx_style";
+  ] ++ 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" ];
+  pythonImportsCheck = [
+    "uqbar"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Tools for creating Sphinx and Graphviz documentation";
-    license = lib.licenses.mit;
     homepage = "https://github.com/josiah-wolf-oberholtzer/uqbar";
-    changelog =
-      "https://github.com/josiah-wolf-oberholtzer/uqbar/releases/tag/v${version}";
-    maintainers = [ lib.maintainers.davisrichard437 ];
+    changelog = "https://github.com/josiah-wolf-oberholtzer/uqbar/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ davisrichard437 ];
   };
 }
diff --git a/pkgs/development/python-modules/urwid/default.nix b/pkgs/development/python-modules/urwid/default.nix
index cf42463c19b2..35ed3e78faff 100644
--- a/pkgs/development/python-modules/urwid/default.nix
+++ b/pkgs/development/python-modules/urwid/default.nix
@@ -13,11 +13,13 @@
 , tornado
 , trio
 , twisted
+, typing-extensions
+, wcwidth
 }:
 
 buildPythonPackage rec {
   pname = "urwid";
-  version = "2.4.3";
+  version = "2.6.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -26,7 +28,7 @@ buildPythonPackage rec {
     owner = "urwid";
     repo = "urwid";
     rev = "refs/tags/${version}";
-    hash = "sha256-raDsUZaXBC4s/48KNH8Thrpm8Bq8wj9+Rahk+LkxcDo=";
+    hash = "sha256-d9tgKjZMVdaMrxQT6sJsVb812NuFYkA1hLlo/6XgwAo=";
   };
 
   postPatch = ''
@@ -38,6 +40,11 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
+  propagatedBuildInputs = [
+    typing-extensions
+    wcwidth
+  ];
+
   passthru.optional-dependencies = {
     glib = [
       pygobject3
diff --git a/pkgs/development/python-modules/urwidgets/default.nix b/pkgs/development/python-modules/urwidgets/default.nix
index 9b6f33c0bd7c..82e4eee38379 100644
--- a/pkgs/development/python-modules/urwidgets/default.nix
+++ b/pkgs/development/python-modules/urwidgets/default.nix
@@ -1,39 +1,41 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchFromGitHub
+, pythonOlder
 , setuptools
 , urwid
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "urwidgets";
-  version = "0.1.1";
+  version = "0.2.0";
   pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "AnonymouX47";
     repo = "urwidgets";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0aZLL0NutptPkuLHv3bTzR1/SNqLgMdUYWET6mLE0IU=";
+    hash = "sha256-ultlfNeCGFTqKaMeXu0+NihkN5/6NtMewk33YfIzhu8=";
   };
 
   nativeBuildInputs = [
     setuptools
-    wheel
   ];
 
   propagatedBuildInputs = [
     urwid
   ];
 
-  pythonImportsCheck = [ "urwidgets" ];
+  pythonImportsCheck = [
+    "urwidgets"
+  ];
 
   meta = with lib; {
     description = "A collection of widgets for urwid";
     homepage = "https://github.com/AnonymouX47/urwidgets";
+    changelog = "https://github.com/AnonymouX47/urwidgets/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ huyngo ];
   };
diff --git a/pkgs/development/python-modules/urwidtrees/default.nix b/pkgs/development/python-modules/urwidtrees/default.nix
index 82744984d007..f12f91906efa 100644
--- a/pkgs/development/python-modules/urwidtrees/default.nix
+++ b/pkgs/development/python-modules/urwidtrees/default.nix
@@ -1,25 +1,23 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, glibcLocales
-, urwid
 , fetchpatch
+, setuptools
+, urwid
 }:
 
 buildPythonPackage rec {
   pname = "urwidtrees";
-  format = "setuptools";
   version  = "1.0.3";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pazz";
     repo = "urwidtrees";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-yGSjwagCd5TiwEFtF6ZhDuVqj4PTa5pVXhs8ebr2O/g=";
   };
 
-  propagatedBuildInputs = [ urwid ];
-
   patches = [
     (fetchpatch {
       url = "https://github.com/pazz/urwidtrees/commit/ed39dbc4fc67b0e0249bf108116a88cd18543aa9.patch";
@@ -27,13 +25,26 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeCheckInputs = [ glibcLocales ];
-  LC_ALL="en_US.UTF-8";
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    urwid
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "urwidtrees"
+  ];
 
   meta = with lib; {
     description = "Tree widgets for urwid";
     homepage = "https://github.com/pazz/urwidtrees";
-    license = licenses.gpl3;
+    changelog = "https://github.com/pazz/urwidtrees/releases/tag/${version}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix
index 11df7fd78c6e..112d25ef6403 100644
--- a/pkgs/development/python-modules/uvicorn/default.nix
+++ b/pkgs/development/python-modules/uvicorn/default.nix
@@ -17,16 +17,16 @@
 
 buildPythonPackage rec {
   pname = "uvicorn";
-  version = "0.24.0.post1";
+  version = "0.27.1";
   disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-WMXOmQOTj/yPazPEAuteho4UH9enXcIa1mMDDl2eaIk=";
+    hash = "sha256-p0iPQE66RJfd811x6cnv7m3yvD/L9v7evBXlaIQSE0M=";
   };
 
   outputs = [
diff --git a/pkgs/development/python-modules/vallox-websocket-api/default.nix b/pkgs/development/python-modules/vallox-websocket-api/default.nix
index 2d82aa97c507..1caf7ed4c5d9 100644
--- a/pkgs/development/python-modules/vallox-websocket-api/default.nix
+++ b/pkgs/development/python-modules/vallox-websocket-api/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "vallox-websocket-api";
-  version = "4.0.3";
+  version = "4.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "yozik04";
     repo = "vallox_websocket_api";
     rev = "refs/tags/${version}";
-    hash = "sha256-L6uLA8iVYzh3wFVSwxzleHhu22sQeomq9N9A1oAxpf4=";
+    hash = "sha256-e05MP130okj8j20yMn8a7P6PYZ4PKwCOlAf0ZlUR5aI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/vector/default.nix b/pkgs/development/python-modules/vector/default.nix
index 1d8168467db5..11e20dfc1d56 100644
--- a/pkgs/development/python-modules/vector/default.nix
+++ b/pkgs/development/python-modules/vector/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "vector";
-  version = "1.1.1.post1";
+  version = "1.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-elWuVJgW5fyg5S+rjMZtSw5Ls7d1OTPoW0FnZXlANys=";
+    hash = "sha256-I7esW9qyc7T5MGFn/YZmajd3pSgE0CgqVW2YkTDLV6Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/vllm/default.nix b/pkgs/development/python-modules/vllm/default.nix
new file mode 100644
index 000000000000..e8127c4caf8b
--- /dev/null
+++ b/pkgs/development/python-modules/vllm/default.nix
@@ -0,0 +1,139 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, which
+, ninja
+, packaging
+, setuptools
+, torch
+, wheel
+, psutil
+, ray
+, pandas
+, pyarrow
+, sentencepiece
+, numpy
+, transformers
+, xformers
+, fastapi
+, uvicorn
+, pydantic
+, aioprometheus
+, pynvml
+, cupy
+, writeShellScript
+
+, config
+
+, cudaSupport ? config.cudaSupport
+, cudaPackages ? {}
+
+, rocmSupport ? config.rocmSupport
+, rocmPackages ? {}
+, gpuTargets ? []
+}:
+
+buildPythonPackage rec {
+  pname = "vllm";
+  version = "0.3.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "vllm-project";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-hfd4ScU0mkZ7z4+w08BUA1K9bPXSiFThfiO+Ll2MTtg=";
+  };
+
+  # 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);
+
+  # xformers 0.0.23.post1 github release specifies its version as 0.0.24
+  #
+  # cupy-cuda12x is the same wheel as cupy, but built with cuda dependencies, we already have it set up
+  # like that in nixpkgs. Version upgrade is due to upstream shenanigans
+  # 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.0"
+    substituteInPlace pyproject.toml \
+      --replace "torch == 2.1.2" "torch == 2.2.0"
+    substituteInPlace requirements.txt \
+      --replace "torch == 2.1.2" "torch == 2.2.0"
+  '' + 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}
+  '';
+
+  nativeBuildInputs = [
+    ninja
+    packaging
+    setuptools
+    torch
+    wheel
+    which
+  ] ++ 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
+  ]));
+
+  propagatedBuildInputs = [
+    psutil
+    ray
+    pandas
+    pyarrow
+    sentencepiece
+    numpy
+    torch
+    transformers
+    xformers
+    fastapi
+    uvicorn
+    pydantic
+    aioprometheus
+  ] ++ uvicorn.optional-dependencies.standard
+    ++ aioprometheus.optional-dependencies.starlette
+    ++ lib.optionals cudaSupport [
+      pynvml
+      cupy
+    ];
+
+  pythonImportsCheck = [ "vllm" ];
+
+  meta = with lib; {
+    description = "A 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 ];
+    broken = !cudaSupport && !rocmSupport;
+  };
+}
diff --git a/pkgs/development/python-modules/wagtail-localize/default.nix b/pkgs/development/python-modules/wagtail-localize/default.nix
index d90a71ca2582..14b6a094912a 100644
--- a/pkgs/development/python-modules/wagtail-localize/default.nix
+++ b/pkgs/development/python-modules/wagtail-localize/default.nix
@@ -12,11 +12,12 @@
 , pythonOlder
 , typing-extensions
 , wagtail
+, wagtail-modeladmin
 }:
 
 buildPythonPackage rec {
   pname = "wagtail-localize";
-  version = "1.7";
+  version = "1.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     repo = pname;
     owner = "wagtail";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Q29Nh/4Z3tYuwoodWKDl5FS+lfl9yDXN7RHn/RReCds=";
+    hash = "sha256-K4TOW4q8vD9vaNJzSEtmQBgO/dOxcWKKUp2FE3JLIbE=";
   };
 
   nativeBuildInputs = [
@@ -37,6 +38,7 @@ buildPythonPackage rec {
     wagtail
     polib
     typing-extensions
+    wagtail-modeladmin
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/wagtail-modeladmin/default.nix b/pkgs/development/python-modules/wagtail-modeladmin/default.nix
new file mode 100644
index 000000000000..cf5352238cab
--- /dev/null
+++ b/pkgs/development/python-modules/wagtail-modeladmin/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, dj-database-url
+, django
+, django-rq
+, fetchFromGitHub
+, flit-core
+, freezegun
+, google-cloud-translate
+, polib
+, python
+, pythonOlder
+, typing-extensions
+, wagtail
+}:
+
+buildPythonPackage rec {
+  pname = "wagtail-modeladmin";
+  version = "2.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "wagtail-nest";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-J6ViGf7lqUvl5EV4/LbADVDp15foY9bUZygs1dSDlKw=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    wagtail
+  ];
+
+  nativeCheckInputs = [
+    dj-database-url
+  ];
+
+  pythonImportsCheck = [ "wagtail_modeladmin" ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} testmanage.py test
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Add any model in your project to the Wagtail admin. Formerly wagtail.contrib.modeladmin";
+    homepage = "https://github.com/wagtail-nest/wagtail-modeladmin";
+    changelog = "https://github.com/wagtail/wagtail-modeladmin/blob/v${version}/CHANGELOG.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ sephi ];
+  };
+}
diff --git a/pkgs/development/python-modules/wcmatch/default.nix b/pkgs/development/python-modules/wcmatch/default.nix
index 08b6e1800955..fa5a75c13268 100644
--- a/pkgs/development/python-modules/wcmatch/default.nix
+++ b/pkgs/development/python-modules/wcmatch/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "wcmatch";
-  version = "8.5";
+  version = "8.5.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hsF1ctD3XL87yxoY878vnnKzmpwIybSnTpkeGIKo77M=";
+    hash = "sha256-wAiMf2Qmz2vyflMOK3tzQDGQX35JBHX9g8fFAIq1gbM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/wcwidth/default.nix b/pkgs/development/python-modules/wcwidth/default.nix
index ee12162a0632..52a411b23269 100644
--- a/pkgs/development/python-modules/wcwidth/default.nix
+++ b/pkgs/development/python-modules/wcwidth/default.nix
@@ -1,15 +1,21 @@
-{ lib, fetchPypi, buildPythonPackage, pytestCheckHook
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "wcwidth";
-  version = "0.2.12";
+  version = "0.2.13";
   pyproject = true;
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8BwQTv31eXG8t1bwVN1Y3exSBN0V+jHWUD6leUfZfAI=";
+    hash = "sha256-cuoMBjmesobZeP3ttpI6nrR+HEhs5j6bTmT8GDA5crU=";
   };
 
   nativeBuildInputs = [
@@ -23,6 +29,10 @@ buildPythonPackage rec {
   # To prevent infinite recursion with pytest
   doCheck = false;
 
+  pythonImportsCheck = [
+    "wcwidth"
+  ];
+
   meta = with lib; {
     description = "Measures number of Terminal column cells of wide-character codes";
     longDescription = ''
@@ -32,6 +42,8 @@ buildPythonPackage rec {
       no 3rd-party dependencies.
     '';
     homepage = "https://github.com/jquast/wcwidth";
+    changelog = "https://github.com/jquast/wcwidth/releases/tag/${version}";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/webdriver-manager/default.nix b/pkgs/development/python-modules/webdriver-manager/default.nix
new file mode 100644
index 000000000000..6680fa7eea6b
--- /dev/null
+++ b/pkgs/development/python-modules/webdriver-manager/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, packaging
+, pybrowsers
+, pytestCheckHook
+, python-dotenv
+, pythonOlder
+, requests
+, selenium
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "webdriver-manager";
+  version = "4.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "SergeyPirogov";
+    repo = "webdriver_manager";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-PdUlloJ4DncnktKQHofn/OLVrgSVyWhaeEEhl3Hgjek=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    packaging
+    python-dotenv
+    requests
+  ];
+
+  nativeCheckInputs = [
+    pybrowsers
+    pytestCheckHook
+    selenium
+  ];
+
+  pythonImportsCheck = [
+    "webdriver_manager"
+  ];
+
+  disabledTestPaths = [
+    # Tests require network access and browsers available
+    "tests_negative/"
+    "tests_xdist/"
+    "tests/test_brave_driver.py"
+    "tests/test_chrome_driver.py"
+    "tests/test_chrome_driver.py"
+    "tests/test_chromium_driver.py"
+    "tests/test_custom_http_client.py"
+    "tests/test_downloader.py"
+    "tests/test_edge_driver.py"
+    "tests/test_firefox_manager.py"
+    "tests/test_ie_driver.py"
+    "tests/test_opera_manager.py"
+    "tests/test_opera_manager.py"
+    "tests/test_silent_global_logs.py"
+  ];
+
+  meta = with lib; {
+    description = "Module to manage the binary drivers for different browsers";
+    homepage = "https://github.com/SergeyPirogov/webdriver_manager/";
+    changelog = "https://github.com/SergeyPirogov/webdriver_manager/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/wheel-inspect/default.nix b/pkgs/development/python-modules/wheel-inspect/default.nix
index 7d79d18f443b..17195fa67dae 100644
--- a/pkgs/development/python-modules/wheel-inspect/default.nix
+++ b/pkgs/development/python-modules/wheel-inspect/default.nix
@@ -3,8 +3,10 @@
 , buildPythonPackage
 , entry-points-txt
 , fetchFromGitHub
+, hatchling
 , headerparser
 , jsonschema
+, pythonRelaxDepsHook
 , packaging
 , pytestCheckHook
 , pythonOlder
@@ -15,17 +17,32 @@
 buildPythonPackage rec {
   pname = "wheel-inspect";
   version = "1.7.1";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "jwodder";
-    repo = pname;
-    rev = "v${version}";
+    repo = "wheel-inspect";
+    rev = "refs/tags/v${version}";
     hash = "sha256-pB9Rh+A7GlxnYuka2mTSBoxpoyYCzoaMPVgsHDlpos0=";
   };
 
+  postPatch = ''
+    substituteInPlace tox.ini \
+      --replace-fail "--cov=wheel_inspect --no-cov-on-fail" ""
+  '';
+
+  pythonRelaxDeps = [
+    "entry-points-txt"
+    "headerparser"
+  ];
+
+  nativeBuildInputs = [
+    hatchling
+    pythonRelaxDepsHook
+  ];
+
   propagatedBuildInputs = [
     attrs
     entry-points-txt
@@ -40,13 +57,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace tox.ini \
-      --replace " --cov=wheel_inspect --no-cov-on-fail" ""
-    substituteInPlace setup.cfg \
-      --replace "entry-points-txt ~= 0.1.0" "entry-points-txt >= 0.1.0"
-  '';
-
   pythonImportsCheck = [
     "wheel_inspect"
   ];
@@ -59,6 +69,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Extract information from wheels";
     homepage = "https://github.com/jwodder/wheel-inspect";
+    changelog = "https://github.com/wheelodex/wheel-inspect/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ayazhafiz ];
   };
diff --git a/pkgs/development/python-modules/whenever/default.nix b/pkgs/development/python-modules/whenever/default.nix
new file mode 100644
index 000000000000..20d05c8bbaf3
--- /dev/null
+++ b/pkgs/development/python-modules/whenever/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, fetchFromGitHub
+, pythonOlder
+, buildPythonPackage
+, poetry-core
+, backports-zoneinfo
+, tzdata
+, pytestCheckHook
+, pytest-mypy-plugins
+, hypothesis
+, freezegun
+}:
+
+buildPythonPackage rec {
+  pname = "whenever";
+  version = "0.3.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "ariebovenberg";
+    repo = "whenever";
+    rev = version;
+    hash = "sha256-pVbR9KYothEPJUhvFA3hDnLcKp7hvU8ntxvkYrKxQfQ=";
+  };
+
+  postPatch = ''
+    # unrecognized arguments since we don't use pytest-benchmark in nixpkgs
+    substituteInPlace pytest.ini \
+      --replace-fail '--benchmark-disable' '#--benchmark-disable'
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    tzdata
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    backports-zoneinfo
+  ];
+
+  pythonImportsCheck = [ "whenever" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mypy-plugins
+    hypothesis
+    freezegun
+  ];
+
+  # early TDD, many tests are failing
+  # TODO: try enabling on bump
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Strict, predictable, and typed datetimes";
+    homepage = "https://github.com/ariebovenberg/whenever";
+    changelog = "https://github.com/ariebovenberg/whenever/blob/${src.rev}/CHANGELOG.rst";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pbsds ];
+  };
+}
diff --git a/pkgs/development/python-modules/whoisdomain/default.nix b/pkgs/development/python-modules/whoisdomain/default.nix
new file mode 100644
index 000000000000..08dd213c3bec
--- /dev/null
+++ b/pkgs/development/python-modules/whoisdomain/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, hatchling
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "whoisdomain";
+  version = "1.20240129.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "mboot-github";
+    repo = "WhoisDomain";
+    rev = "refs/tags/${version}";
+    hash = "sha256-nRj/WkYjMZuQoYF+QFIHABlek4DxvvEnOTeFYLHYvZc=";
+  };
+
+  nativeBuildInputs = [
+    hatchling
+  ];
+
+  pythonImportsCheck = [
+    "whoisdomain"
+  ];
+
+  # Tests require network access
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Module to perform whois lookups";
+    homepage = "https://github.com/mboot-github/WhoisDomain";
+    changelog = "https://github.com/mboot-github/WhoisDomain/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/widgetsnbextension/default.nix b/pkgs/development/python-modules/widgetsnbextension/default.nix
index 679e19722f45..97efa00b972c 100644
--- a/pkgs/development/python-modules/widgetsnbextension/default.nix
+++ b/pkgs/development/python-modules/widgetsnbextension/default.nix
@@ -2,24 +2,27 @@
 , buildPythonPackage
 , fetchPypi
 , jupyter-packaging
-, notebook
 , ipywidgets
 }:
 
 buildPythonPackage rec {
   pname = "widgetsnbextension";
-  version = "4.0.9";
-  format = "setuptools";
+  version = "4.0.10";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PB9eRtwRZt/UCkLWhealE5b9NP+Hh0Kj5HxvDMSio4U=";
+    hash = "sha256-ZBlsX/O5qRg6jmmaQif7C3AC8lLIFAmOZsTRzQZEaI8=";
   };
 
   nativeBuildInputs = [
     jupyter-packaging
   ];
 
+  pythonImportsCheck = [
+    "widgetsnbextension"
+  ];
+
   # No tests in archive
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/wyoming/default.nix b/pkgs/development/python-modules/wyoming/default.nix
index 715c20b842ac..e71107931580 100644
--- a/pkgs/development/python-modules/wyoming/default.nix
+++ b/pkgs/development/python-modules/wyoming/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "wyoming";
-  version = "1.4.0";
+  version = "1.5.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "rhasspy";
     repo = "wyoming";
     rev = "refs/tags/${version}";
-    hash = "sha256-59/6tRHHAu31VFuKhj2LCEUqkdVi81fu5POuGJmw9bw=";
+    hash = "sha256-SOPkvFMjoDQiWVP39+1Cx4fFmPH8wcBhZhaKapdZaeA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix
index 70b99d5091f6..aa89ff792eea 100644
--- a/pkgs/development/python-modules/xarray/default.nix
+++ b/pkgs/development/python-modules/xarray/default.nix
@@ -8,25 +8,23 @@
 , pythonOlder
 , setuptools
 , setuptools-scm
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "2023.11.0";
-  format = "pyproject";
+  version = "2024.1.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mkXhB0GES1+UjY4edotGDffpBpbRji7/LB1H9dnVAlI=";
+    hash = "sha256-oboth6dIkuITycg/SkYtvN9oISMgpOMbNL14m6emTjU=";
   };
 
   nativeBuildInputs = [
     setuptools
     setuptools-scm
-    wheel
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xformers/default.nix b/pkgs/development/python-modules/xformers/default.nix
index c909559ca59a..e0e6e9569ef3 100644
--- a/pkgs/development/python-modules/xformers/default.nix
+++ b/pkgs/development/python-modules/xformers/default.nix
@@ -78,6 +78,10 @@ buildPythonPackage {
 
   pythonImportsCheck = [ "xformers" ];
 
+  # Has broken 0.03 version:
+  # https://github.com/NixOS/nixpkgs/pull/285495#issuecomment-1920730720
+  passthru.skipBulkUpdate = true;
+
   dontUseCmakeConfigure = true;
 
   # see commented out missing packages
diff --git a/pkgs/development/python-modules/xiaomi-ble/default.nix b/pkgs/development/python-modules/xiaomi-ble/default.nix
index 6e2ac49cc348..18de691f5398 100644
--- a/pkgs/development/python-modules/xiaomi-ble/default.nix
+++ b/pkgs/development/python-modules/xiaomi-ble/default.nix
@@ -17,21 +17,21 @@
 
 buildPythonPackage rec {
   pname = "xiaomi-ble";
-  version = "0.25.2";
-  format = "pyproject";
+  version = "0.26.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
-    repo = pname;
+    repo = "xiaomi-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-awztZiUgEMGR8m/aXhDBLdm4IXIKIAHgX922m+PTTfg=";
+    hash = "sha256-ENs+n8YgOSQpN+UpYU6CI1McWPyh8hKKMUjPDUYRWjI=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=xiaomi_ble --cov-report=term-missing:skip-covered" ""
+      --replace-fail " --cov=xiaomi_ble --cov-report=term-missing:skip-covered" ""
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/xknxproject/default.nix b/pkgs/development/python-modules/xknxproject/default.nix
index 940ab2423374..f5e47f196dca 100644
--- a/pkgs/development/python-modules/xknxproject/default.nix
+++ b/pkgs/development/python-modules/xknxproject/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "xknxproject";
-  version = "3.5.0";
+  version = "3.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "XKNX";
     repo = "xknxproject";
     rev = "refs/tags/${version}";
-    hash = "sha256-0tnmD5X2wskyX9AKhn3JKwzZFpkKy5cKaGnzkUyjWhk=";
+    hash = "sha256-7WK4TgrTuUwR33d1N8+VmgZ6iylyfIJbFCyxh49luL0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/xrootd/default.nix b/pkgs/development/python-modules/xrootd/default.nix
new file mode 100644
index 000000000000..d17a56e2f914
--- /dev/null
+++ b/pkgs/development/python-modules/xrootd/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, cmake
+, setuptools
+, wheel
+, xrootd
+}:
+
+buildPythonPackage rec {
+  pname = "xrootd";
+  pyproject = true;
+
+  inherit (xrootd) version src;
+
+  sourceRoot = "${src.name}/bindings/python";
+
+  nativeBuildInputs = [
+    cmake
+    setuptools
+    wheel
+  ];
+
+  buildInputs = [
+    xrootd
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  pythonImportsCheck = [ "XRootD" ];
+
+  # Tests are only compatible with Python 2
+  doCheck = false;
+
+  meta = with lib; {
+    description = "The XRootD central repository";
+    homepage = "https://github.com/xrootd/xrootd";
+    changelog = "https://github.com/xrootd/xrootd/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/xsdata/default.nix b/pkgs/development/python-modules/xsdata/default.nix
index 78bec78444c5..097c2e1cc07c 100644
--- a/pkgs/development/python-modules/xsdata/default.nix
+++ b/pkgs/development/python-modules/xsdata/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "xsdata";
-  version = "24.1";
+  version = "24.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,8 +26,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "tefra";
     repo = "xsdata";
-    rev = "v${version}";
-    hash = "sha256-vdcCTJqvaRehGWfTd9GR/DypF9ftY4ite7SDMPc2Ups=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-o3G0isXShwNHaOiA4TNml0IhStB3X4jB9CgrVKViBlY=";
   };
 
   patches = [
@@ -94,7 +94,7 @@ buildPythonPackage rec {
   meta = {
     description = "Naive XML & JSON bindings for Python";
     homepage = "https://github.com/tefra/xsdata";
-    changelog = "https://github.com/tefra/xsdata/blob/${src.rev}/CHANGES.rst";
+    changelog = "https://github.com/tefra/xsdata/blob/${src.rev}/CHANGES.md";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/yamllint/default.nix b/pkgs/development/python-modules/yamllint/default.nix
index c5664846dcfc..9200d7d508ac 100644
--- a/pkgs/development/python-modules/yamllint/default.nix
+++ b/pkgs/development/python-modules/yamllint/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , setuptools
@@ -6,21 +7,20 @@
 , pytestCheckHook
 , pythonOlder
 , pyyaml
-, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "yamllint";
-  version = "1.33.0";
-  format = "pyproject";
+  version = "1.35.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "adrienverge";
-    repo = pname;
+    repo = "yamllint";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hWN5PhEAhckp250Dj7h5PpyH/E1jCi38O4VmMYgPtzE=";
+    hash = "sha256-+7Q2cPl4XElI2IfLAkteifFVTrGkj2IjZk7nPuc6eYM=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,9 @@ buildPythonPackage rec {
     "test_run_with_locale"
   ];
 
-  pythonImportsCheck = [ "yamllint" ];
+  pythonImportsCheck = [
+    "yamllint"
+  ];
 
   meta = with lib; {
     description = "A linter for YAML files";
diff --git a/pkgs/development/python-modules/yark/default.nix b/pkgs/development/python-modules/yark/default.nix
index 83e1b909793e..7bbf5288cf26 100644
--- a/pkgs/development/python-modules/yark/default.nix
+++ b/pkgs/development/python-modules/yark/default.nix
@@ -25,7 +25,9 @@ buildPythonPackage rec {
   };
 
   pythonRelaxDeps = [
+    "flask"
     "requests"
+    "yt-dlp"
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/yasi/default.nix b/pkgs/development/python-modules/yasi/default.nix
index 8759e499b639..08068ed6b6b4 100644
--- a/pkgs/development/python-modules/yasi/default.nix
+++ b/pkgs/development/python-modules/yasi/default.nix
@@ -1,14 +1,15 @@
 { lib
-, buildPythonApplication
+, buildPythonPackage
 , colorama
 , fetchFromGitHub
 , pytestCheckHook
+, setuptools
 }:
 
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "yasi";
   version = "2.1.2";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nkmathew";
@@ -17,11 +18,15 @@ buildPythonApplication rec {
     hash = "sha256-xKhVTmh/vrtBkatxtk8R4yqbGroH0I+xTKNYUpuikt4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     colorama
   ];
 
-  nativeBuildInputs = [
+  nativeCheckInputs = [
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index 700a250130aa..74b1d8ac5e81 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "1.5.2";
+  version = "1.5.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "sigma67";
     repo = "ytmusicapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-3dJ9Mu1cblBJh3BVEyxdfO+RD8kSxpdvnvox7ljMWT4=";
+    hash = "sha256-X4bfGYFttuEMwDyjqzDe3RJGkAvVUs91hEL0JfXrdIM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/zamg/default.nix b/pkgs/development/python-modules/zamg/default.nix
index d43b0c4c779d..770764dde09d 100644
--- a/pkgs/development/python-modules/zamg/default.nix
+++ b/pkgs/development/python-modules/zamg/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "zamg";
-  version = "0.3.5";
+  version = "0.3.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "killer0071234";
     repo = "python-zamg";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lT345G0apo4ncM4FMs69+ql+QxvTlsEtG2KRX4oYvlo=";
+    hash = "sha256-j864+3c0GDDftdLqLDD0hizT54c0IgTjT77jOneXlq0=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index 9063ecd02db0..ef797d4fe3b9 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.109";
+  version = "0.0.112";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = "refs/tags/${version}";
-    hash = "sha256-fkE44j+wXdIJekJJNoO67YzsghalTUpyNx9R/B2Vn1Y=";
+    hash = "sha256-wI7mpX6oFV/RrxH/UP1X9Odago0CxJ5dhjKAsDS+Sq4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zigpy-deconz/default.nix b/pkgs/development/python-modules/zigpy-deconz/default.nix
index 721905fb17b8..930fcf0a7d2b 100644
--- a/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "zigpy-deconz";
-  version = "0.23.0";
+  version = "0.23.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-8U/3YzXyrQ6pOklvfuVFAk2r/mpcUM7HokfBJUhtyh4=";
+    hash = "sha256-10EyT3IGdAtF9OUbfZ5OtP+Ot35O0SfMDtsyw5FQ+/8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zigpy-znp/default.nix b/pkgs/development/python-modules/zigpy-znp/default.nix
index 4378570f77f9..8bc40b8a5566 100644
--- a/pkgs/development/python-modules/zigpy-znp/default.nix
+++ b/pkgs/development/python-modules/zigpy-znp/default.nix
@@ -62,6 +62,17 @@ buildPythonPackage rec {
     "--reruns=3"
   ];
 
+  disabledTests = [
+    # failing since zigpy 0.60.0
+    "test_join_device"
+    "test_nonstandard_profile"
+    "test_permit_join"
+    "test_request_recovery_route_rediscovery_zdo"
+    "test_watchdog"
+    "test_zigpy_request"
+    "test_zigpy_request_failure"
+  ];
+
   pythonImportsCheck = [
     "zigpy_znp"
   ];
diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix
index c3f1c2b5d43e..9038d29222d5 100644
--- a/pkgs/development/python-modules/zigpy/default.nix
+++ b/pkgs/development/python-modules/zigpy/default.nix
@@ -18,8 +18,8 @@
 
 buildPythonPackage rec {
   pname = "zigpy";
-  version = "0.60.2";
-  format = "pyproject";
+  version = "0.62.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zigpy";
     rev = "refs/tags/${version}";
-    hash = "sha256-3hYgb2uvyFQmtfdVKBorGhTgVt/Dq1roXTu7xvE7SHY=";
+    hash = "sha256-LMcyYDUH/jGrDW8sjrT9kHdIWQ20fOOcOJRhUpKMGi8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zodbpickle/default.nix b/pkgs/development/python-modules/zodbpickle/default.nix
index 38abffac75ac..6d3c6ad0a5ce 100644
--- a/pkgs/development/python-modules/zodbpickle/default.nix
+++ b/pkgs/development/python-modules/zodbpickle/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "zodbpickle";
-  version = "3.1";
+  version = "3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-uewy5wbHuAi3mlOnrZZgkRfpQoN3K0AO52VSEHqrzBE=";
+    hash = "sha256-65wO44mzJmqo9BlFtiqZgV0mH2nR9Cl3FQkSqmeWqww=";
   };
 
   # fails..