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/aggdraw/default.nix13
-rw-r--r--pkgs/development/python-modules/ailment/default.nix29
-rw-r--r--pkgs/development/python-modules/aio-pika/default.nix53
-rw-r--r--pkgs/development/python-modules/aioasuswrt/default.nix50
-rw-r--r--pkgs/development/python-modules/aioautomower/default.nix6
-rw-r--r--pkgs/development/python-modules/aiodhcpwatcher/default.nix4
-rw-r--r--pkgs/development/python-modules/aioeafm/default.nix38
-rw-r--r--pkgs/development/python-modules/aiolifx-themes/default.nix4
-rw-r--r--pkgs/development/python-modules/aiolifx/default.nix37
-rw-r--r--pkgs/development/python-modules/aionut/default.nix46
-rw-r--r--pkgs/development/python-modules/aioopenexchangerates/default.nix4
-rw-r--r--pkgs/development/python-modules/aiopvapi/default.nix38
-rw-r--r--pkgs/development/python-modules/aiortm/default.nix45
-rw-r--r--pkgs/development/python-modules/ajsonrpc/default.nix22
-rw-r--r--pkgs/development/python-modules/angr/default.nix81
-rw-r--r--pkgs/development/python-modules/angrop/default.nix25
-rw-r--r--pkgs/development/python-modules/anywidget/default.nix10
-rw-r--r--pkgs/development/python-modules/aplpy/default.nix14
-rw-r--r--pkgs/development/python-modules/appthreat-vulnerability-db/default.nix51
-rw-r--r--pkgs/development/python-modules/apsw/default.nix29
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix35
-rw-r--r--pkgs/development/python-modules/arviz/default.nix19
-rw-r--r--pkgs/development/python-modules/asf-search/default.nix55
-rw-r--r--pkgs/development/python-modules/astropy-iers-data/default.nix4
-rw-r--r--pkgs/development/python-modules/auth0-python/default.nix6
-rw-r--r--pkgs/development/python-modules/aws-lambda-builders/default.nix4
-rw-r--r--pkgs/development/python-modules/axis/default.nix35
-rw-r--r--pkgs/development/python-modules/azure-batch/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-eventgrid/default.nix8
-rw-r--r--pkgs/development/python-modules/azure-eventhub/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix37
-rw-r--r--pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix34
-rw-r--r--pkgs/development/python-modules/azure-mgmt-botservice/default.nix34
-rw-r--r--pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix28
-rw-r--r--pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix37
-rw-r--r--pkgs/development/python-modules/azure-mgmt-extendedlocation/default.nix24
-rw-r--r--pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix36
-rw-r--r--pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix31
-rw-r--r--pkgs/development/python-modules/azure-mgmt-kusto/default.nix24
-rw-r--r--pkgs/development/python-modules/azure-mgmt-managedservices/default.nix36
-rw-r--r--pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix36
-rw-r--r--pkgs/development/python-modules/azure-mgmt-synapse/default.nix31
-rw-r--r--pkgs/development/python-modules/azure-multiapi-storage/default.nix35
-rw-r--r--pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix28
-rw-r--r--pkgs/development/python-modules/azure-synapse-managedprivateendpoints/default.nix28
-rw-r--r--pkgs/development/python-modules/azure-synapse-spark/default.nix28
-rw-r--r--pkgs/development/python-modules/b2sdk/default.nix83
-rw-r--r--pkgs/development/python-modules/batinfo/default.nix46
-rw-r--r--pkgs/development/python-modules/bellows/default.nix13
-rw-r--r--pkgs/development/python-modules/bleak-retry-connector/default.nix43
-rw-r--r--pkgs/development/python-modules/boltons/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3-stubs/default.nix2161
-rw-r--r--pkgs/development/python-modules/bring-api/default.nix48
-rw-r--r--pkgs/development/python-modules/brother/default.nix4
-rw-r--r--pkgs/development/python-modules/capstone/4.nix40
-rw-r--r--pkgs/development/python-modules/capstone/default.nix4
-rw-r--r--pkgs/development/python-modules/catppuccin/default.nix12
-rw-r--r--pkgs/development/python-modules/clarabel/default.nix2
-rw-r--r--pkgs/development/python-modules/clarifai-grpc/default.nix27
-rw-r--r--pkgs/development/python-modules/clarifai/default.nix76
-rw-r--r--pkgs/development/python-modules/claripy/default.nix39
-rw-r--r--pkgs/development/python-modules/cle/default.nix46
-rw-r--r--pkgs/development/python-modules/clickhouse-connect/default.nix4
-rw-r--r--pkgs/development/python-modules/clifford/default.nix13
-rw-r--r--pkgs/development/python-modules/cloudsmith-api/default.nix4
-rw-r--r--pkgs/development/python-modules/craft-grammar/default.nix4
-rw-r--r--pkgs/development/python-modules/credstash/default.nix51
-rw-r--r--pkgs/development/python-modules/crytic-compile/default.nix4
-rw-r--r--pkgs/development/python-modules/cvss/default.nix4
-rw-r--r--pkgs/development/python-modules/cwl-utils/default.nix46
-rw-r--r--pkgs/development/python-modules/dazl/default.nix2
-rw-r--r--pkgs/development/python-modules/dfdiskcache/default.nix45
-rw-r--r--pkgs/development/python-modules/dirigera/default.nix4
-rw-r--r--pkgs/development/python-modules/django-countries/default.nix14
-rw-r--r--pkgs/development/python-modules/django-filter/default.nix13
-rw-r--r--pkgs/development/python-modules/django-import-export/default.nix4
-rw-r--r--pkgs/development/python-modules/django-vite/default.nix4
-rw-r--r--pkgs/development/python-modules/django-webpack-loader/default.nix28
-rw-r--r--pkgs/development/python-modules/django/5.nix18
-rw-r--r--pkgs/development/python-modules/dsnap/default.nix52
-rw-r--r--pkgs/development/python-modules/dvc-render/default.nix47
-rw-r--r--pkgs/development/python-modules/elastic-apm/default.nix98
-rw-r--r--pkgs/development/python-modules/elasticsearch-dsl/default.nix4
-rw-r--r--pkgs/development/python-modules/es-client/default.nix54
-rw-r--r--pkgs/development/python-modules/eval-type-backport/default.nix35
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix73
-rw-r--r--pkgs/development/python-modules/flask-admin/default.nix88
-rw-r--r--pkgs/development/python-modules/flask-paginate/default.nix38
-rw-r--r--pkgs/development/python-modules/fontbakery/default.nix29
-rw-r--r--pkgs/development/python-modules/forecast-solar/default.nix19
-rw-r--r--pkgs/development/python-modules/fyta-cli/default.nix40
-rw-r--r--pkgs/development/python-modules/garminconnect/default.nix31
-rw-r--r--pkgs/development/python-modules/gdb-pt-dump/default.nix29
-rw-r--r--pkgs/development/python-modules/gekko/default.nix38
-rw-r--r--pkgs/development/python-modules/gflanguages/default.nix13
-rw-r--r--pkgs/development/python-modules/gfsubsets/default.nix47
-rw-r--r--pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch22
-rw-r--r--pkgs/development/python-modules/glyphsets/default.nix22
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix30
-rw-r--r--pkgs/development/python-modules/google-cloud-securitycenter/default.nix31
-rw-r--r--pkgs/development/python-modules/google-cloud-speech/default.nix4
-rw-r--r--pkgs/development/python-modules/google-generativeai/default.nix50
-rw-r--r--pkgs/development/python-modules/gradio-pdf/default.nix4
-rw-r--r--pkgs/development/python-modules/graphene-django/default.nix4
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix20
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix64
-rw-r--r--pkgs/development/python-modules/herepy/default.nix4
-rw-r--r--pkgs/development/python-modules/hikari/default.nix80
-rw-r--r--pkgs/development/python-modules/homeassistant-bring-api/default.nix45
-rw-r--r--pkgs/development/python-modules/htmldate/default.nix77
-rw-r--r--pkgs/development/python-modules/httpsig/default.nix16
-rw-r--r--pkgs/development/python-modules/hwi/default.nix4
-rw-r--r--pkgs/development/python-modules/indexed-bzip2/default.nix7
-rw-r--r--pkgs/development/python-modules/indexed-gzip/default.nix6
-rw-r--r--pkgs/development/python-modules/indexed-zstd/default.nix8
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix4
-rw-r--r--pkgs/development/python-modules/ipyparallel/default.nix4
-rw-r--r--pkgs/development/python-modules/ipyvuetify/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco-abode/default.nix17
-rw-r--r--pkgs/development/python-modules/javaobj-py3/default.nix4
-rw-r--r--pkgs/development/python-modules/jenkins-job-builder/default.nix4
-rw-r--r--pkgs/development/python-modules/junos-eznc/default.nix61
-rw-r--r--pkgs/development/python-modules/jupyterhub/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab-server/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/kaggle/default.nix4
-rw-r--r--pkgs/development/python-modules/labelbox/default.nix37
-rw-r--r--pkgs/development/python-modules/langchain-community/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain-core/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain/default.nix4
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix4
-rw-r--r--pkgs/development/python-modules/linien-common/default.nix4
-rw-r--r--pkgs/development/python-modules/litellm/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-core/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix34
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-google/default.nix36
-rw-r--r--pkgs/development/python-modules/llama-index-llms-openai/default.nix29
-rw-r--r--pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix27
-rw-r--r--pkgs/development/python-modules/llama-index-readers-file/default.nix40
-rw-r--r--pkgs/development/python-modules/llama-index-readers-s3/default.nix29
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix4
-rw-r--r--pkgs/development/python-modules/llamaindex-py-client/default.nix4
-rw-r--r--pkgs/development/python-modules/marimo/default.nix4
-rw-r--r--pkgs/development/python-modules/memory-allocator/default.nix4
-rw-r--r--pkgs/development/python-modules/meshtastic/default.nix67
-rw-r--r--pkgs/development/python-modules/midea-beautiful-air/default.nix54
-rw-r--r--pkgs/development/python-modules/mido/default.nix6
-rw-r--r--pkgs/development/python-modules/mitogen/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocs-material/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocstrings-python/default.nix33
-rw-r--r--pkgs/development/python-modules/mkdocstrings/default.nix69
-rw-r--r--pkgs/development/python-modules/moderngl-window/default.nix4
-rw-r--r--pkgs/development/python-modules/molecule/default.nix70
-rw-r--r--pkgs/development/python-modules/monty/default.nix4
-rw-r--r--pkgs/development/python-modules/mplhep/default.nix4
-rw-r--r--pkgs/development/python-modules/msal/default.nix4
-rw-r--r--pkgs/development/python-modules/mujoco/default.nix4
-rw-r--r--pkgs/development/python-modules/multiset/default.nix4
-rw-r--r--pkgs/development/python-modules/mypy-boto3/default.nix38
-rw-r--r--pkgs/development/python-modules/nbformat/default.nix14
-rw-r--r--pkgs/development/python-modules/niaarm/default.nix4
-rw-r--r--pkgs/development/python-modules/numba/default.nix4
-rw-r--r--pkgs/development/python-modules/oci/default.nix4
-rw-r--r--pkgs/development/python-modules/oncalendar/default.nix28
-rw-r--r--pkgs/development/python-modules/openai/default.nix4
-rw-r--r--pkgs/development/python-modules/optimum/default.nix4
-rw-r--r--pkgs/development/python-modules/optuna/default.nix4
-rw-r--r--pkgs/development/python-modules/oras/default.nix35
-rw-r--r--pkgs/development/python-modules/orbax-checkpoint/default.nix51
-rw-r--r--pkgs/development/python-modules/osc/default.nix6
-rw-r--r--pkgs/development/python-modules/paste/default.nix4
-rw-r--r--pkgs/development/python-modules/pbs-installer/default.nix50
-rw-r--r--pkgs/development/python-modules/pillow-heif/default.nix4
-rw-r--r--pkgs/development/python-modules/ping3/default.nix35
-rw-r--r--pkgs/development/python-modules/playwrightcapture/default.nix52
-rw-r--r--pkgs/development/python-modules/pplpy/default.nix4
-rw-r--r--pkgs/development/python-modules/pre-commit-hooks/default.nix4
-rw-r--r--pkgs/development/python-modules/psd-tools/default.nix6
-rw-r--r--pkgs/development/python-modules/publicsuffix/default.nix20
-rw-r--r--pkgs/development/python-modules/publicsuffix2/default.nix15
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pubnub/default.nix41
-rw-r--r--pkgs/development/python-modules/pwndbg/default.nix80
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix90
-rw-r--r--pkgs/development/python-modules/pyads/default.nix41
-rw-r--r--pkgs/development/python-modules/pybotvac/default.nix38
-rw-r--r--pkgs/development/python-modules/pybotvac/urllib3-2.0-compat.patch21
-rw-r--r--pkgs/development/python-modules/pycaption/default.nix4
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix20
-rw-r--r--pkgs/development/python-modules/pyfibaro/default.nix39
-rw-r--r--pkgs/development/python-modules/pyformlang/default.nix4
-rw-r--r--pkgs/development/python-modules/pyftdi/default.nix32
-rw-r--r--pkgs/development/python-modules/pykakasi/default.nix15
-rw-r--r--pkgs/development/python-modules/pylibftdi/default.nix34
-rw-r--r--pkgs/development/python-modules/pylitterbot/default.nix4
-rw-r--r--pkgs/development/python-modules/pymodbus/default.nix73
-rw-r--r--pkgs/development/python-modules/pymumble/default.nix2
-rw-r--r--pkgs/development/python-modules/pynitrokey/default.nix6
-rw-r--r--pkgs/development/python-modules/pynobo/default.nix23
-rw-r--r--pkgs/development/python-modules/pyocd/default.nix4
-rw-r--r--pkgs/development/python-modules/pyqt/6.x.nix18
-rw-r--r--pkgs/development/python-modules/pyquil/default.nix80
-rw-r--r--pkgs/development/python-modules/pyradios/default.nix2
-rw-r--r--pkgs/development/python-modules/pyrisco/default.nix4
-rw-r--r--pkgs/development/python-modules/pyside6/default.nix4
-rw-r--r--pkgs/development/python-modules/pysmi-lextudio/default.nix4
-rw-r--r--pkgs/development/python-modules/pysnmp-lextudio/default.nix4
-rw-r--r--pkgs/development/python-modules/pytenable/default.nix51
-rw-r--r--pkgs/development/python-modules/pytest-aio/default.nix52
-rw-r--r--pkgs/development/python-modules/pytest-bdd/default.nix61
-rw-r--r--pkgs/development/python-modules/pytest-jupyter/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-notebook/default.nix4
-rw-r--r--pkgs/development/python-modules/python-digitalocean/default.nix (renamed from pkgs/development/python-modules/digitalocean/default.nix)46
-rw-r--r--pkgs/development/python-modules/python-docs-theme/default.nix4
-rw-r--r--pkgs/development/python-modules/python-homewizard-energy/default.nix4
-rw-r--r--pkgs/development/python-modules/python-motionmount/default.nix36
-rw-r--r--pkgs/development/python-modules/python-roborock/default.nix62
-rw-r--r--pkgs/development/python-modules/python-telegram-bot/default.nix4
-rw-r--r--pkgs/development/python-modules/pytorch-metric-learning/default.nix4
-rw-r--r--pkgs/development/python-modules/pytorch-pfn-extras/default.nix60
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix4
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix58
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/Cargo.lock1067
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/default.nix31
-rw-r--r--pkgs/development/python-modules/qtile-extras/default.nix6
-rw-r--r--pkgs/development/python-modules/qtile/default.nix2
-rw-r--r--pkgs/development/python-modules/quart/default.nix15
-rw-r--r--pkgs/development/python-modules/quil/default.nix29
-rw-r--r--pkgs/development/python-modules/radio-beam/default.nix12
-rw-r--r--pkgs/development/python-modules/randomfiletree/default.nix26
-rw-r--r--pkgs/development/python-modules/rapidfuzz/default.nix8
-rw-r--r--pkgs/development/python-modules/rapidgzip/default.nix11
-rw-r--r--pkgs/development/python-modules/rarfile/default.nix6
-rw-r--r--pkgs/development/python-modules/rasterio/default.nix25
-rw-r--r--pkgs/development/python-modules/ratarmount/default.nix4
-rw-r--r--pkgs/development/python-modules/ratarmountcore/default.nix32
-rw-r--r--pkgs/development/python-modules/reconplogger/default.nix41
-rw-r--r--pkgs/development/python-modules/reptor/default.nix85
-rw-r--r--pkgs/development/python-modules/reuse/default.nix4
-rw-r--r--pkgs/development/python-modules/ring-doorbell/default.nix4
-rw-r--r--pkgs/development/python-modules/riscv-config/default.nix43
-rw-r--r--pkgs/development/python-modules/robotframework-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/roombapy/default.nix15
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix40
-rw-r--r--pkgs/development/python-modules/schema-salad/default.nix89
-rw-r--r--pkgs/development/python-modules/scs/default.nix2
-rw-r--r--pkgs/development/python-modules/semver/default.nix39
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix162
-rw-r--r--pkgs/development/python-modules/setuptools-git-versioning/default.nix4
-rw-r--r--pkgs/development/python-modules/shaperglot/default.nix12
-rw-r--r--pkgs/development/python-modules/shiboken6/default.nix16
-rw-r--r--pkgs/development/python-modules/sievelib/default.nix32
-rw-r--r--pkgs/development/python-modules/simplesqlite/default.nix46
-rw-r--r--pkgs/development/python-modules/snakemake-interface-common/default.nix36
-rw-r--r--pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix4
-rw-r--r--pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix54
-rw-r--r--pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix51
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix95
-rw-r--r--pkgs/development/python-modules/sparse/default.nix23
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix4
-rw-r--r--pkgs/development/python-modules/spsdk/default.nix7
-rw-r--r--pkgs/development/python-modules/sqliteschema/default.nix55
-rw-r--r--pkgs/development/python-modules/sqlmap/default.nix28
-rw-r--r--pkgs/development/python-modules/sse-starlette/default.nix43
-rw-r--r--pkgs/development/python-modules/std-uritemplate/default.nix23
-rw-r--r--pkgs/development/python-modules/streamlit/default.nix4
-rw-r--r--pkgs/development/python-modules/survey/default.nix4
-rw-r--r--pkgs/development/python-modules/systembridgemodels/default.nix6
-rw-r--r--pkgs/development/python-modules/tcxreader/default.nix4
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix35
-rw-r--r--pkgs/development/python-modules/testcontainers/default.nix9
-rw-r--r--pkgs/development/python-modules/testrail-api/default.nix7
-rw-r--r--pkgs/development/python-modules/tololib/default.nix14
-rw-r--r--pkgs/development/python-modules/torch/bin.nix2
-rw-r--r--pkgs/development/python-modules/torch/binary-hashes.nix98
-rw-r--r--pkgs/development/python-modules/torch/default.nix4
-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.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/trafilatura/default.nix4
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--pkgs/development/python-modules/twilio/default.nix47
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix4
-rw-r--r--pkgs/development/python-modules/types-aiobotocore-packages/default.nix698
-rw-r--r--pkgs/development/python-modules/types-aiobotocore/default.nix10
-rwxr-xr-x[-rw-r--r--]pkgs/development/python-modules/types-aiobotocore/update.sh4
-rw-r--r--pkgs/development/python-modules/types-dataclasses/default.nix31
-rw-r--r--pkgs/development/python-modules/types-docutils/default.nix21
-rw-r--r--pkgs/development/python-modules/types-pillow/default.nix4
-rw-r--r--pkgs/development/python-modules/types-protobuf/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/umap-learn/default.nix4
-rw-r--r--pkgs/development/python-modules/unearth/default.nix17
-rw-r--r--pkgs/development/python-modules/unicurses/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/velbus-aio/default.nix35
-rw-r--r--pkgs/development/python-modules/vilfo-api-client/default.nix6
-rw-r--r--pkgs/development/python-modules/wagtail-localize/default.nix6
-rw-r--r--pkgs/development/python-modules/wagtail/default.nix13
-rw-r--r--pkgs/development/python-modules/wand/default.nix2
-rw-r--r--pkgs/development/python-modules/whirlpool-sixth-sense/default.nix39
-rw-r--r--pkgs/development/python-modules/whispers/default.nix70
-rw-r--r--pkgs/development/python-modules/xknxproject/default.nix41
-rw-r--r--pkgs/development/python-modules/xmlschema/default.nix37
-rw-r--r--pkgs/development/python-modules/xyzservices/default.nix4
-rw-r--r--pkgs/development/python-modules/yapsy/default.nix27
-rw-r--r--pkgs/development/python-modules/yolink-api/default.nix31
-rw-r--r--pkgs/development/python-modules/zeroconf/default.nix16
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix39
-rw-r--r--pkgs/development/python-modules/zha/default.nix126
-rw-r--r--pkgs/development/python-modules/zigpy/default.nix33
-rw-r--r--pkgs/development/python-modules/zodb/default.nix4
318 files changed, 6162 insertions, 5635 deletions
diff --git a/pkgs/development/python-modules/aggdraw/default.nix b/pkgs/development/python-modules/aggdraw/default.nix
index ef44979c4394c..a83de3540fcd3 100644
--- a/pkgs/development/python-modules/aggdraw/default.nix
+++ b/pkgs/development/python-modules/aggdraw/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , buildPythonPackage
 , packaging
 , setuptools
@@ -14,24 +13,16 @@
 
 buildPythonPackage rec {
   pname = "aggdraw";
-  version = "1.3.16";
+  version = "1.3.18";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pytroll";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-2yajhuRyQ7BqghbSgPClW3inpw4TW2DhgQbomcRFx94=";
+    hash = "sha256-dM6yLR6xsZerpqY+BMxIjrJ3fQty9CFUWhxl2zkTgRA=";
   };
 
-  patches = [
-    # Removes `register` storage class specifier, which is not allowed in C++17.
-    (fetchpatch {
-      url = "https://github.com/pytroll/aggdraw/commit/157ed49803567e8c3eeb7dfeff4c116db35747f7.patch";
-      hash = "sha256-QSzpO90u5oSBWUzehRFbXgZ1ApEfLlfp11MUx6w11aI=";
-    })
-  ];
-
   nativeBuildInputs = [
     packaging
     setuptools
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index f379322c502c9..c01ea491bcd3b 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pyvex
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pyvex,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.2.97";
+  version = "9.2.98";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -17,23 +18,17 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "ailment";
     rev = "refs/tags/v${version}";
-    hash = "sha256-R6OBc7qK4zP0t8m26V17he8Oy39eSK8/Dm84ScnBy3s=";
+    hash = "sha256-ue780bhPpxv7Bnx9PX+HdQt3gcDSvTvK0FLPMopXQRY=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    pyvex
-  ];
+  dependencies = [ pyvex ];
 
   # Tests depend on angr (possibly a circular dependency)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ailment"
-  ];
+  pythonImportsCheck = [ "ailment" ];
 
   meta = with lib; {
     description = "The angr Intermediate Language";
diff --git a/pkgs/development/python-modules/aio-pika/default.nix b/pkgs/development/python-modules/aio-pika/default.nix
index 65f15fa639d53..10c311c220c9d 100644
--- a/pkgs/development/python-modules/aio-pika/default.nix
+++ b/pkgs/development/python-modules/aio-pika/default.nix
@@ -1,44 +1,57 @@
-{ lib
-, aiomisc-pytest
-, aiormq
-, buildPythonPackage
-, fetchFromGitHub
-, pamqp
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, shortuuid
-, yarl
+{
+  lib,
+  aiomisc-pytest,
+  aiormq,
+  buildPythonPackage,
+  docker,
+  fetchFromGitHub,
+  pamqp,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  shortuuid,
+  testcontainers,
+  wrapt,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "aio-pika";
-  version = "9.4.0";
+  version = "9.4.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "mosquito";
     repo = "aio-pika";
     rev = "refs/tags/${version}";
-    hash = "sha256-EntV/CBvT4II4nxsVe3KjNA4EPV7Oc6h2G0fX0fHKTU=";
+    hash = "sha256-aRXYFW4fl3iXH3bwP30+TllRm4BkIUcGMX/lNfhiqjo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiormq
     yarl
   ];
 
   nativeCheckInputs = [
     aiomisc-pytest
+    docker
     pamqp
     pytestCheckHook
     shortuuid
+    testcontainers
+    wrapt
+  ];
+
+  disabledTests = [
+    # Tests attempt to connect to a RabbitMQ server
+    "test_connection_interleave"
+    "test_connection_happy_eyeballs_delay"
+    "test_robust_connection_interleave"
+    "test_robust_connection_happy_eyeballs_delay"
   ];
 
   disabledTestPaths = [
@@ -53,9 +66,7 @@ buildPythonPackage rec {
     "tests/test_types.py"
   ];
 
-  pythonImportsCheck = [
-    "aio_pika"
-  ];
+  pythonImportsCheck = [ "aio_pika" ];
 
   meta = with lib; {
     description = "AMQP 0.9 client designed for asyncio and humans";
diff --git a/pkgs/development/python-modules/aioasuswrt/default.nix b/pkgs/development/python-modules/aioasuswrt/default.nix
index b496c9ac25936..5847da65b28bb 100644
--- a/pkgs/development/python-modules/aioasuswrt/default.nix
+++ b/pkgs/development/python-modules/aioasuswrt/default.nix
@@ -1,27 +1,38 @@
-{ lib
-, asyncssh
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  asyncssh,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aioasuswrt";
   version = "1.4.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "kennedyshead";
-    repo = pname;
-    rev = "V${version}";
-    sha256 = "1iv9f22v834g8wrjcynjn2azpzk8gsczv71jf7dw8aix0n04h325";
+    repo = "aioasuswrt";
+    rev = "refs/tags/V${version}";
+    hash = "sha256-RQxIgAU9KsTbcTKc/Zl+aP77lbDSeiYzR48MtIVwacc=";
   };
 
-  propagatedBuildInputs = [
-    asyncssh
-  ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "--cov-report html" "" \
+      --replace-fail "--cov-report term-missing" ""
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [ asyncssh ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -29,19 +40,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "--cov-report html" "" \
-      --replace "--cov-report term-missing" ""
-  '';
-
-  pythonImportsCheck = [
-    "aioasuswrt"
-  ];
+  pythonImportsCheck = [ "aioasuswrt" ];
 
   meta = with lib; {
     description = "Python module for Asuswrt";
     homepage = "https://github.com/kennedyshead/aioasuswrt";
+    changelog = "https://github.com/kennedyshead/aioasuswrt/releases/tag/V${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/aioautomower/default.nix b/pkgs/development/python-modules/aioautomower/default.nix
index f6a02d393e5f0..99d8175b62ed2 100644
--- a/pkgs/development/python-modules/aioautomower/default.nix
+++ b/pkgs/development/python-modules/aioautomower/default.nix
@@ -2,6 +2,7 @@
 , aiohttp
 , buildPythonPackage
 , fetchFromGitHub
+, freezegun
 , mashumaro
 , poetry-core
 , pyjwt
@@ -14,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aioautomower";
-  version = "2024.3.3";
+  version = "2024.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     owner = "Thomas55555";
     repo = "aioautomower";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZJRc5nzp1P3X93PxGVB55VgN1HZ2kvn43LT2wYEPxSo=";
+    hash = "sha256-W6aZdvg+EZKv0pmIaPOBaJaWipq3AENTVAVon/lFuI4=";
   };
 
   postPatch = ''
@@ -44,6 +45,7 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    freezegun
     pytest-asyncio
     pytestCheckHook
     syrupy
diff --git a/pkgs/development/python-modules/aiodhcpwatcher/default.nix b/pkgs/development/python-modules/aiodhcpwatcher/default.nix
index b96e7eb29fbcd..5c8adc9b4b99a 100644
--- a/pkgs/development/python-modules/aiodhcpwatcher/default.nix
+++ b/pkgs/development/python-modules/aiodhcpwatcher/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "aiodhcpwatcher";
-  version = "0.8.2";
+  version = "1.0.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = "aiodhcpwatcher";
     rev = "v${version}";
-    hash = "sha256-yvmCp8luR26yFYun/YY/tt+peaAL4nOR9cC6lpMiJhk=";
+    hash = "sha256-0of+no92s9SEKG1tc9lFlWR8f5Jnf3C723goQViB6+A=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aioeafm/default.nix b/pkgs/development/python-modules/aioeafm/default.nix
index f1535eb07d90f..170ff6308f40a 100644
--- a/pkgs/development/python-modules/aioeafm/default.nix
+++ b/pkgs/development/python-modules/aioeafm/default.nix
@@ -1,28 +1,31 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytest-cov
-, pytestCheckHook
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "aioeafm";
   version = "1.0.0";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Jc2k";
-    repo = pname;
-    rev = version;
-    sha256 = "048cxn3fw2hynp27zlizq7k8ps67qq9sib1ddgirnxy5zc87vgkc";
+    repo = "aioeafm";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bL59EPvFd5vjay2sqBPGx+iL5sE/0n/EtR4K7obtDBE=";
   };
 
   patches = [
+    # Switch to poetry-core, https://github.com/Jc2k/aioeafm/pull/4
     (fetchpatch {
       name = "use-poetry-core.patch";
       url = "https://github.com/Jc2k/aioeafm/commit/549590e2ed465be40e2406416d89b8a8cd8c6185.patch";
@@ -30,14 +33,12 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [ aiohttp ];
+  dependencies = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-aiohttp
-    pytest-asyncio
-    pytest-cov
     pytestCheckHook
   ];
 
@@ -46,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python client for access the Real Time flood monitoring API";
     homepage = "https://github.com/Jc2k/aioeafm";
+    changelog = "https://github.com/Jc2k/aioeafm/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/aiolifx-themes/default.nix b/pkgs/development/python-modules/aiolifx-themes/default.nix
index 33f3c963f5eae..284866dc921a6 100644
--- a/pkgs/development/python-modules/aiolifx-themes/default.nix
+++ b/pkgs/development/python-modules/aiolifx-themes/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aiolifx-themes";
-  version = "0.4.14";
+  version = "0.4.17";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Djelibeybi";
     repo = "aiolifx-themes";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KlQKRcgxaWqRKIusnZGoBDEfKYF1Gn9EkrhJAftdUTc=";
+    hash = "sha256-nKzvdDzwizF1Db8qFQuOH7gLnYHmdCYdQZPN+gNg8mU=";
   };
 
   prePatch = ''
diff --git a/pkgs/development/python-modules/aiolifx/default.nix b/pkgs/development/python-modules/aiolifx/default.nix
index a9362a9dac3d6..8f3a773b713e1 100644
--- a/pkgs/development/python-modules/aiolifx/default.nix
+++ b/pkgs/development/python-modules/aiolifx/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, async-timeout
-, click
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, ifaddr
-, inquirerpy
-, bitstring
-, setuptools
+{
+  lib,
+  async-timeout,
+  bitstring,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  ifaddr,
+  inquirerpy,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aiolifx";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-r42M7aqKKLdGgRaCym44M1nvu0vTGK7ricBp/AsbFRk=";
+    hash = "sha256-E3UxNTqss3urpMTwhLhIoAnBekGOIyFy0+sOj3mGlss=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     async-timeout
     bitstring
     click
@@ -37,16 +36,14 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiolifx"
-  ];
+  pythonImportsCheck = [ "aiolifx" ];
 
   meta = with lib; {
     description = "Module for local communication with LIFX devices over a LAN";
-    mainProgram = "aiolifx";
     homepage = "https://github.com/frawau/aiolifx";
     changelog = "https://github.com/frawau/aiolifx/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ netixx ];
+    mainProgram = "aiolifx";
   };
 }
diff --git a/pkgs/development/python-modules/aionut/default.nix b/pkgs/development/python-modules/aionut/default.nix
new file mode 100644
index 0000000000000..8c9b8038ce998
--- /dev/null
+++ b/pkgs/development/python-modules/aionut/default.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "aionut";
+  version = "4.3.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "bdraco";
+    repo = "aionut";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-QehVC/6RbWp8KnOuVtLFkK8/STTgHXkXmFbSmzu9z7w=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov=aionut --cov-report=term-missing:skip-covered" ""
+  '';
+
+  nativeBuildInputs = [ poetry-core ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aionut" ];
+
+  meta = with lib; {
+    description = "Asyncio Network UPS Tools";
+    homepage = "https://github.com/bdraco/aionut";
+    changelog = "https://github.com/bdraco/aionut/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aioopenexchangerates/default.nix b/pkgs/development/python-modules/aioopenexchangerates/default.nix
index 34948ce7b78df..8b67a007b6b55 100644
--- a/pkgs/development/python-modules/aioopenexchangerates/default.nix
+++ b/pkgs/development/python-modules/aioopenexchangerates/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aioopenexchangerates";
-  version = "0.4.9";
+  version = "0.4.10";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aioopenexchangerates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-goOzp5nPkQCtGV7U71ek1LQ93Ko5BdEvawYb/feGRQQ=";
+    hash = "sha256-keZebaqIs+xaGy5O1551w05fV301XHzJpPDwvY4Tjnk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiopvapi/default.nix b/pkgs/development/python-modules/aiopvapi/default.nix
index c39e5303c917a..c12db2b0bb832 100644
--- a/pkgs/development/python-modules/aiopvapi/default.nix
+++ b/pkgs/development/python-modules/aiopvapi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aiopvapi";
-  version = "3.1.0";
+  version = "3.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,23 +19,20 @@ buildPythonPackage rec {
     owner = "sander76";
     repo = "aio-powerview-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nJjYGPxpnbq/8XFmLKbMU71buFdaNUj7PQES5FnlN3o=";
+    hash = "sha256-WtTqtVr1oL86dpsAIK55pbXWU4X/cajVLlggd6hfM4c=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    aiohttp
-  ];
+  dependencies = [ aiohttp ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "aiopvapi" ];
 
-  pythonImportsCheck = [
-    "aiopvapi"
+  disabledTests = [
+    # AssertionError
+    "test_remove_shade_from_scene"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aiortm/default.nix b/pkgs/development/python-modules/aiortm/default.nix
index 89ffdf6827cb2..f9776a0cb6f1c 100644
--- a/pkgs/development/python-modules/aiortm/default.nix
+++ b/pkgs/development/python-modules/aiortm/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, ciso8601
-, click
-, fetchFromGitHub
-, mashumaro
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  ciso8601,
+  click,
+  fetchFromGitHub,
+  mashumaro,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "aiortm";
-  version = "0.8.10";
+  version = "0.8.11";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,19 +25,17 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aiortm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WkVuuvWWdj2McdXl+XwYukUcloehelFIi6QL5LSkfLk=";
+    hash = "sha256-VvpdeupBW8wZyNnAx9cvp0Li5z3D/AnqipTEGTsd2IE=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-warn " --cov=aiortm --cov-report=term-missing:skip-covered" ""
+      --replace-fail " --cov=aiortm --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     ciso8601
     click
@@ -50,16 +49,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiortm"
-  ];
+  pythonImportsCheck = [ "aiortm" ];
 
   meta = with lib; {
     description = "Library for the Remember the Milk API";
-    mainProgram = "aiortm";
     homepage = "https://github.com/MartinHjelmare/aiortm";
     changelog = "https://github.com/MartinHjelmare/aiortm/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "aiortm";
   };
 }
diff --git a/pkgs/development/python-modules/ajsonrpc/default.nix b/pkgs/development/python-modules/ajsonrpc/default.nix
index 47643f6e94b44..66e94c019c595 100644
--- a/pkgs/development/python-modules/ajsonrpc/default.nix
+++ b/pkgs/development/python-modules/ajsonrpc/default.nix
@@ -1,26 +1,36 @@
-{ lib, pythonOlder, buildPythonPackage, fetchPypi, pytestCheckHook }:
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "ajsonrpc";
   version = "1.2.0";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "791bac18f0bf0dee109194644f151cf8b7ff529c4b8d6239ac48104a3251a19f";
+    hash = "sha256-eRusGPC/De4QkZRkTxUc+Lf/UpxLjWI5rEgQSjJRoZ8=";
   };
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ajsonrpc" ];
 
   meta = with lib; {
-    description = "Async JSON-RPC 2.0 protocol + asyncio server";
-    mainProgram = "async-json-rpc-server";
+    description = "Async JSON-RPC 2.0 protocol and asyncio server";
     homepage = "https://github.com/pavlov99/ajsonrpc";
+    changelog = "https://github.com/pavlov99/ajsonrpc/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ oxzi ];
+    mainProgram = "async-json-rpc-server";
   };
 }
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index 688c988fb2f18..5b2d7bd546841 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -1,42 +1,43 @@
-{ lib
-, stdenv
-, ailment
-, archinfo
-, buildPythonPackage
-, cachetools
-, capstone
-, cffi
-, claripy
-, cle
-, cppheaderparser
-, dpkt
-, fetchFromGitHub
-, gitpython
-, itanium-demangler
-, mulpyplexer
-, nampa
-, networkx
-, progressbar2
-, protobuf
-, psutil
-, pycparser
-, pyformlang
-, pythonOlder
-, pythonRelaxDepsHook
-, pyvex
-, rich
-, rpyc
-, setuptools
-, sortedcontainers
-, sqlalchemy
-, sympy
-, unicorn
-, unique-log-filter
+{
+  lib,
+  stdenv,
+  ailment,
+  archinfo,
+  buildPythonPackage,
+  cachetools,
+  capstone,
+  cffi,
+  claripy,
+  cle,
+  cppheaderparser,
+  dpkt,
+  fetchFromGitHub,
+  gitpython,
+  itanium-demangler,
+  mulpyplexer,
+  nampa,
+  networkx,
+  progressbar2,
+  protobuf,
+  psutil,
+  pycparser,
+  pyformlang,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pyvex,
+  rich,
+  rpyc,
+  setuptools,
+  sortedcontainers,
+  sqlalchemy,
+  sympy,
+  unicorn,
+  unique-log-filter,
 }:
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.2.97";
+  version = "9.2.98";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -45,12 +46,10 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "angr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eJkxflAQFI/sEL4JMlMe+kClnaVSxtoOrPg8HQpH78g=";
+    hash = "sha256-9NLQtwakM041yNY/mb9WbSGC1Q8AHHkiqqjf5bZUOlI=";
   };
 
-  pythonRelaxDeps = [
-    "capstone"
-  ];
+  pythonRelaxDeps = [ "capstone" ];
 
   build-system = [
     pythonRelaxDepsHook
@@ -88,9 +87,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    AngrDB = [
-      sqlalchemy
-    ];
+    AngrDB = [ sqlalchemy ];
   };
 
   setupPyBuildFlags = lib.optionals stdenv.isLinux [
diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix
index b491ef83fe5fb..939517887e401 100644
--- a/pkgs/development/python-modules/angrop/default.nix
+++ b/pkgs/development/python-modules/angrop/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, angr
-, buildPythonPackage
-, fetchFromGitHub
-, progressbar
-, pythonOlder
-, setuptools
-, tqdm
+{
+  lib,
+  angr,
+  buildPythonPackage,
+  fetchFromGitHub,
+  progressbar,
+  pythonOlder,
+  setuptools,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-T07Y23UDp9eL2DK5gakV8kPNGsXf+4EofZJDSW/JS1Q=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     angr
@@ -36,9 +35,7 @@ buildPythonPackage rec {
   # cle is executing the tests with the angr binaries already and is a requirement of angr
   doCheck = false;
 
-  pythonImportsCheck = [
-    "angrop"
-  ];
+  pythonImportsCheck = [ "angrop" ];
 
   meta = with lib; {
     description = "ROP gadget finder and chain builder";
diff --git a/pkgs/development/python-modules/anywidget/default.nix b/pkgs/development/python-modules/anywidget/default.nix
index 9d5a5bd5214ed..87450407ff99a 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.4";
-  format = "pyproject";
+  version = "0.9.6";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-97nCw1PohHKW2DtY6RARk1/RlMsc1s5wajuhbY3pQxo=";
+    hash = "sha256-nhDPAXwcsxwrTBG1kEBj77bDXMb3j/Xckk3FENjCS5E=";
   };
 
   # We do not need the jupyterlab build dependency, because we do not need to
@@ -32,12 +32,12 @@ buildPythonPackage rec {
       --replace '"jupyterlab==3.*"' ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-jupyter-builder
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     ipywidgets
     psygnal
     typing-extensions
diff --git a/pkgs/development/python-modules/aplpy/default.nix b/pkgs/development/python-modules/aplpy/default.nix
index 0304a8eff852a..14141cf72d366 100644
--- a/pkgs/development/python-modules/aplpy/default.nix
+++ b/pkgs/development/python-modules/aplpy/default.nix
@@ -32,6 +32,20 @@ buildPythonPackage rec {
     hash = "sha256-KCdmBwQWt7IfHsjq7pWlbSISEpfQZDyt+SQSTDaUCV4=";
   };
 
+  # Fix build with Astropy 6 and Python 3.12.
+  patches = [
+    # https://github.com/aplpy/aplpy/pull/496
+    (fetchpatch {
+      url = "https://github.com/aplpy/aplpy/commit/d232a4984bc6a83ec86dfdc3ab3bc1b05de44c48.patch";
+      hash = "sha256-jGUTzIrVdGNPy0BV8w46jzz045fDXBisiwIn90bn7oY=";
+    })
+    # https://github.com/aplpy/aplpy/pull/497
+    (fetchpatch {
+      url = "https://github.com/aplpy/aplpy/commit/468be394970b39f1aaa6debef51eb674e2dd86d8.patch";
+      hash = "sha256-/ovLrFOKb3RQ8TZSviuOV6EYNgz0gtrhVWZLFJBrzFg=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools
     setuptools-scm
diff --git a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
index 22ef8222b04b2..67ed8ef74b595 100644
--- a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
+++ b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, appdirs
-, buildPythonPackage
-, cvss
-, fetchFromGitHub
-, httpx
-, msgpack
-, orjson
-, packageurl-python
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, semver
-, setuptools
-, tabulate
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  cvss,
+  fetchFromGitHub,
+  httpx,
+  msgpack,
+  orjson,
+  packageurl-python,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  semver,
+  setuptools,
+  tabulate,
 }:
 
 buildPythonPackage rec {
   pname = "appthreat-vulnerability-db";
-  version = "5.6.6";
+  version = "5.6.7";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "AppThreat";
     repo = "vulnerability-db";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wVl2C1AG9LbSh/p95fstJyJr6JnhZFIhNvq8mhpg13Q=";
+    hash = "sha256-/QzK+su+g2ESZ81C0coxKf13WOUVz1GyfJbOrO7fS98=";
   };
 
   postPatch = ''
@@ -39,13 +40,9 @@ buildPythonPackage rec {
     "semver"
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     appdirs
@@ -58,9 +55,7 @@ buildPythonPackage rec {
     tabulate
   ] ++ httpx.optional-dependencies.http2;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$(mktemp -d);
@@ -72,9 +67,7 @@ buildPythonPackage rec {
     "test_download_recent"
   ];
 
-  pythonImportsCheck = [
-    "vdb"
-  ];
+  pythonImportsCheck = [ "vdb" ];
 
   meta = with lib; {
     description = "Vulnerability database and package search for sources such as OSV, NVD, GitHub and npm";
diff --git a/pkgs/development/python-modules/apsw/default.nix b/pkgs/development/python-modules/apsw/default.nix
index bdd640a4ce507..327a67d0e3fbe 100644
--- a/pkgs/development/python-modules/apsw/default.nix
+++ b/pkgs/development/python-modules/apsw/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, sqlite
-, isPyPy
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  setuptools,
+  sqlite,
 }:
 
 buildPythonPackage rec {
   pname = "apsw";
   version = "3.45.2.0";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = isPyPy;
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rogerbinns";
@@ -20,9 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-tTi3/10W4OoGH6PQVhvPWc5o09on5BZrWoAvrfh4C/E=";
   };
 
-  buildInputs = [
-    sqlite
-  ];
+  build-system = [ setuptools ];
+
+  buildInputs = [ sqlite ];
 
   # Project uses custom test setup to exclude some tests by default, so using pytest
   # requires more maintenance
@@ -31,13 +33,12 @@ buildPythonPackage rec {
     ${python.interpreter} setup.py test
   '';
 
-  pythonImportsCheck = [
-    "apsw"
-  ];
+  pythonImportsCheck = [ "apsw" ];
 
   meta = with lib; {
     description = "A Python wrapper for the SQLite embedded relational database engine";
     homepage = "https://github.com/rogerbinns/apsw";
+    changelog = "https://github.com/rogerbinns/apsw/releases/tag/${version}";
     license = licenses.zlib;
     maintainers = with maintainers; [ gador ];
   };
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index 2b335fb37160c..391884310aff8 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, backports-strenum
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  backports-strenum,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.2.97";
+  version = "9.2.98";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,24 +19,16 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "archinfo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-X8rMTQvNolYjSPyXbP2i5MYTPEvQlwoUQmXeEW56wQs=";
+    hash = "sha256-EdVGm4453XxGrq2D1v5JzSZyroRNzluZ5/r74YAt5zU=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = lib.optionals (pythonOlder "3.11") [
-    backports-strenum
-  ];
+  dependencies = lib.optionals (pythonOlder "3.11") [ backports-strenum ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "archinfo"
-  ];
+  pythonImportsCheck = [ "archinfo" ];
 
   meta = with lib; {
     description = "Classes with architecture-specific information";
diff --git a/pkgs/development/python-modules/arviz/default.nix b/pkgs/development/python-modules/arviz/default.nix
index 56298852a377d..b7860aa5dc30c 100644
--- a/pkgs/development/python-modules/arviz/default.nix
+++ b/pkgs/development/python-modules/arviz/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, dm-tree
 , fetchFromGitHub
 , emcee
 , h5netcdf
@@ -14,6 +15,7 @@
 , scipy
 , packaging
 , pythonOlder
+, typing-extensions
 , xarray
 , xarray-einstats
 , zarr
@@ -31,27 +33,32 @@
 
 buildPythonPackage rec {
   pname = "arviz";
-  version = "0.17.1";
+  version = "0.18.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "arviz-devs";
     repo = "arviz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-V0/yboKpK/4QuCOzKDiyFpu/J2JLu0aQxRZ+rpMS9eY=";
+    hash = "sha256-SZRqSqChQBSA9/jBXN2ds9hh6TI3qZksHai1j2oVsq0=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    packaging
+    setuptools
+  ];
+
+  dependencies = [
+    dm-tree
     h5netcdf
     matplotlib
     netcdf4
     numpy
-    packaging
     pandas
     scipy
-    setuptools
+    typing-extensions
     xarray
     xarray-einstats
   ];
diff --git a/pkgs/development/python-modules/asf-search/default.nix b/pkgs/development/python-modules/asf-search/default.nix
index cffe2c0646227..f4e06bb8af8da 100644
--- a/pkgs/development/python-modules/asf-search/default.nix
+++ b/pkgs/development/python-modules/asf-search/default.nix
@@ -1,25 +1,28 @@
-{ lib
-, buildPythonPackage
-, dateparser
-, defusedxml
-, fetchFromGitHub
-, importlib-metadata
-, numpy
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pytz
-, remotezip
-, requests
-, requests-mock
-, shapely
-, tenacity
+{
+  lib,
+  buildPythonPackage,
+  dateparser,
+  defusedxml,
+  fetchFromGitHub,
+  importlib-metadata,
+  numpy,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pytz,
+  remotezip,
+  requests-mock,
+  requests,
+  setuptools-scm,
+  shapely,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "asf-search";
-  version = "7.0.8";
-  format = "setuptools";
+  version = "7.0.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,10 +30,16 @@ buildPythonPackage rec {
     owner = "asfadmin";
     repo = "Discovery-asf_search";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wmTt6JFuigpFo/0s9DmKfAZT0dPPyoNeVRlh8vz/jkY=";
+    hash = "sha256-CD9Up4h23dplTt51zif+4ZdW0qczRUz2hCOwUOOlS24=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [ "tenacity" ];
+
+  build-system = [ setuptools-scm ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
     dateparser
     importlib-metadata
     numpy
@@ -48,14 +57,12 @@ buildPythonPackage rec {
     tenacity
   ];
 
-  pythonImportsCheck = [
-    "asf_search"
-  ];
+  pythonImportsCheck = [ "asf_search" ];
 
   meta = with lib; {
-    changelog = "https://github.com/asfadmin/Discovery-asf_search/blob/${src.rev}/CHANGELOG.md";
     description = "Python wrapper for the ASF SearchAPI";
     homepage = "https://github.com/asfadmin/Discovery-asf_search";
+    changelog = "https://github.com/asfadmin/Discovery-asf_search/blob/${version}/CHANGELOG.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bzizou ];
   };
diff --git a/pkgs/development/python-modules/astropy-iers-data/default.nix b/pkgs/development/python-modules/astropy-iers-data/default.nix
index 4eab035624684..ae993ba5d520a 100644
--- a/pkgs/development/python-modules/astropy-iers-data/default.nix
+++ b/pkgs/development/python-modules/astropy-iers-data/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "astropy-iers-data";
-  version = "0.2024.03.04.00.30.17";
+  version = "0.2024.04.01.00.33.14";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "astropy";
     repo = "astropy-iers-data";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BG5hQHvPqpuV2TUsD/kZv3DKx+wjods/XgZw1Z5hygg=";
+    hash = "sha256-6FHAntN+m0cLDEhWPrcgyD0PgVDOfC8nf4kVl1z8x0g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/auth0-python/default.nix b/pkgs/development/python-modules/auth0-python/default.nix
index 217f76a1f49cb..1ae64d53a50c2 100644
--- a/pkgs/development/python-modules/auth0-python/default.nix
+++ b/pkgs/development/python-modules/auth0-python/default.nix
@@ -12,6 +12,7 @@
 , pyopenssl
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , requests
 , urllib3
 }:
@@ -33,6 +34,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     poetry-core
     poetry-dynamic-versioning
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -52,6 +54,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonRelaxDeps = [
+    "cryptography"
+  ];
+
   disabledTests = [
     # Tries to ping websites (e.g. google.com)
     "can_timeout"
diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix
index 1119435b48c2b..9e32768ee18dc 100644
--- a/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "1.47.0";
+  version = "1.48.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hfvqK27yxk/y67gz0N6VuFj8OR3cQMD4iYQtx1XJSgw=";
+    hash = "sha256-g1f0OL41lvs8OLyLcBk6XJk9wZO/oWluUj5sUcXlUIE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/axis/default.nix b/pkgs/development/python-modules/axis/default.nix
index 4f9e456de6aa9..79692ba7d656d 100644
--- a/pkgs/development/python-modules/axis/default.nix
+++ b/pkgs/development/python-modules/axis/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, async-timeout
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, orjson
-, packaging
-, pythonOlder
-, setuptools
-, xmltodict
+{
+  lib,
+  async-timeout,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  orjson,
+  packaging,
+  pythonOlder,
+  setuptools,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
   pname = "axis";
-  version = "58";
+  version = "61";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "Kane610";
     repo = "axis";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6Mxthf37PtJSWsi+Ok0zBezTJLPwVoc8S1ZdQE57BEI=";
+    hash = "sha256-YiEY+Eu1j42bBzM4f5Ku5mAE2/tY9f+Hyb2DS6LIW7c=";
   };
 
   postPatch = ''
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace-fail "wheel==0.40.0" "wheel"
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     async-timeout
@@ -47,9 +46,7 @@ buildPythonPackage rec {
   # Tests requires a server on localhost
   doCheck = false;
 
-  pythonImportsCheck = [
-    "axis"
-  ];
+  pythonImportsCheck = [ "axis" ];
 
   meta = with lib; {
     description = "Python library for communicating with devices from Axis Communications";
diff --git a/pkgs/development/python-modules/azure-batch/default.nix b/pkgs/development/python-modules/azure-batch/default.nix
index 041d79b5ebd0d..b0e27ef337cba 100644
--- a/pkgs/development/python-modules/azure-batch/default.nix
+++ b/pkgs/development/python-modules/azure-batch/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "azure-batch";
-  version = "14.1.0";
+  version = "14.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lhayyqYpx0ABItaF1VfrzQF5famImQgxj5pUdIQ5es0=";
+    hash = "sha256-x5Jn1sPT/hShakIqtbv6vL1o7QtYtrvN+gyDRcTHhTI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-eventgrid/default.nix b/pkgs/development/python-modules/azure-eventgrid/default.nix
index 91c140dc7fb87..c7246ffe9d850 100644
--- a/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -10,21 +10,21 @@
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.18.0";
+  version = "4.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OQ6Aet78NorIz1TlPdv5pW5ImDINLwH+ZQCk52Y+tJM=";
+    hash = "sha256-a9fVQBbMo6Zwdp6WTYKiQBlqJcQRs+nxqKqBVcPbBew=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     azure-common
     azure-core
     isodate
diff --git a/pkgs/development/python-modules/azure-eventhub/default.nix b/pkgs/development/python-modules/azure-eventhub/default.nix
index 3f0adab003df1..91203ed642047 100644
--- a/pkgs/development/python-modules/azure-eventhub/default.nix
+++ b/pkgs/development/python-modules/azure-eventhub/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "azure-eventhub";
-  version = "5.11.6";
+  version = "5.11.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-89Q1o/cnR64i4Jblypx2w1BTTyrZk5l9EvTO+ZMq58E=";
+    hash = "sha256-C0Ywon7jrAxEjD8jdSHV3K71qKGnJBQjUGwEY3oKRLA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix b/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix
index 7ef53cb2a2ba2..d18dc5b59fb63 100644
--- a/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix
@@ -1,37 +1,46 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, azure-common
-, azure-mgmt-core
-, msrest
-, msrestazure
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
-  version = "4.0.0";
-  format = "setuptools";
   pname = "azure-mgmt-apimanagement";
-  disabled = isPy27;
+  version = "4.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-AiTjLJ28g80xnrRFLfPUevJgeaxLpuGmvkd3+FskNiw=";
-    extension = "zip";
+    sha256 = "sha256-XPUJzALti7QXTmgtuwVDhCA2luWz7zfykWEsJmpHzA4=";
   };
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [
     azure-common
     azure-mgmt-core
-    msrest
-    msrestazure
+    isodate
   ];
 
   # no tests included
   doCheck = false;
 
-  pythonImportsCheck = [ "azure.common" "azure.mgmt.apimanagement" ];
+  pythonImportsCheck = [
+    "azure.common"
+    "azure.mgmt.apimanagement"
+  ];
 
   meta = with lib; {
     description = "Microsoft Azure API Management Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/apimanagement/azure-mgmt-apimanagement";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-apimanagement_${version}/sdk/apimanagement/azure-mgmt-apimanagement/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix b/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
index 4c74e09d36b12..a662f9ec3310b 100644
--- a/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
@@ -1,15 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, azure-common
-, azure-mgmt-core
-, msrest
-, msrestazure
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
-  version = "3.0.0";
-  format = "setuptools";
   pname = "azure-mgmt-appconfiguration";
-  disabled = isPy27;
+  version = "3.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
@@ -17,11 +22,12 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [
     azure-common
     azure-mgmt-core
-    msrest
-    msrestazure
+    isodate
   ];
 
   # no tests included
@@ -29,11 +35,15 @@ buildPythonPackage rec {
 
   pythonNamespaces = [ "azure.mgmt" ];
 
-  pythonImportsCheck = [ "azure.common" "azure.mgmt.appconfiguration" ];
+  pythonImportsCheck = [
+    "azure.common"
+    "azure.mgmt.appconfiguration"
+  ];
 
   meta = with lib; {
     description = "Microsoft Azure App Configuration Management Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/appconfiguration/azure-mgmt-appconfiguration";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/tree/azure-mgmt-appconfiguration_${version}/sdk/appconfiguration/azure-mgmt-appconfiguration";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-mgmt-botservice/default.nix b/pkgs/development/python-modules/azure-mgmt-botservice/default.nix
index 4527294c90b35..db019c57718d6 100644
--- a/pkgs/development/python-modules/azure-mgmt-botservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-botservice/default.nix
@@ -1,15 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, azure-common
-, azure-mgmt-core
-, msrest
-, msrestazure
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
-  version = "2.0.0";
-  format = "setuptools";
   pname = "azure-mgmt-botservice";
-  disabled = isPy27;
+  version = "2.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
@@ -17,21 +22,26 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     msrest
-    msrestazure
   ];
 
   # no tests included
   doCheck = false;
 
-  pythonImportsCheck = [ "azure.common" "azure.mgmt.botservice" ];
+  pythonImportsCheck = [
+    "azure.common"
+    "azure.mgmt.botservice"
+  ];
 
   meta = with lib; {
     description = "Microsoft Azure API Management Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/botservice/azure-mgmt-botservice";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/tree/azure-mgmt-botservice_${version}/sdk/botservice/azure-mgmt-botservice";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix b/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix
index 98c697a4e6c67..11878a1a63e6a 100644
--- a/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix
@@ -1,24 +1,33 @@
-{ lib, buildPythonPackage, fetchPypi
-, msrestazure
-, azure-common
-, azure-mgmt-core
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-databoxedge";
   version = "1.0.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "04090062bc1e8f00c2f45315a3bceb0fb3b3479ec1474d71b88342e13499b087";
+    hash = "sha256-BAkAYrwejwDC9FMVo7zrD7OzR57BR01xuINC4TSZsIc=";
   };
 
-  propagatedBuildInputs = [
-    msrestazure
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
+    msrest
   ];
 
   # no tests in pypi tarball
@@ -28,7 +37,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Microsoft Azure Databoxedge Management Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/databox/azure-mgmt-databox";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-databoxedge_${version}/sdk/databox/azure-mgmt-databox/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix b/pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix
index 3f8d43ea36ad3..5a5ef4d56dd26 100644
--- a/pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix
@@ -1,37 +1,48 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, azure-common
-, azure-mgmt-core
-, msrest
-, msrestazure
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
-  version = "1.0.0";
-  format = "setuptools";
   pname = "azure-mgmt-deploymentmanager";
-  disabled = isPy27;
+  version = "1.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9badb768617209149c33e68ca2e59c35b1d3d11427e2969872f2e236e14eee78";
+    hash = "sha256-m623aGFyCRScM+aMouWcNbHT0RQn4paYcvLiNuFO7ng=";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     msrest
-    msrestazure
   ];
 
   # no tests included
   doCheck = false;
 
-  pythonImportsCheck = [ "azure.common" "azure.mgmt.deploymentmanager" ];
+  pythonImportsCheck = [
+    "azure.common"
+    "azure.mgmt.deploymentmanager"
+  ];
 
   meta = with lib; {
     description = "Microsoft Azure Deployment Manager Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/deploymentmanager/azure-mgmt-deploymentmanager";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-deploymentmanager_${version}/sdk/deploymentmanager/azure-mgmt-deploymentmanager/setup.py";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-mgmt-extendedlocation/default.nix b/pkgs/development/python-modules/azure-mgmt-extendedlocation/default.nix
index 0d7f5a2cdb79d..5a97855848ced 100644
--- a/pkgs/development/python-modules/azure-mgmt-extendedlocation/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-extendedlocation/default.nix
@@ -1,13 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi
-, azure-common
-, azure-mgmt-core
-, msrest
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-extendedlocation";
   version = "1.1.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
@@ -15,7 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-jRo6EFP8Dg3i9U8HLfjED9QFfWbdg+X3o9PSf4eus9o=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     msrest
@@ -25,7 +34,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Microsoft Azure Extendedlocation Management Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/extendedlocation/azure-mgmt-extendedlocation";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/tree/azure-mgmt-extendedlocation_${version}/sdk/extendedlocation/azure-mgmt-extendedlocation";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
index e10811f814fa8..a20af6e0133e9 100644
--- a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
@@ -1,23 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, azure-common
-, azure-mgmt-core
-, msrest
-, msrestazure
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
-  version = "9.0.0";
-  format = "setuptools";
   pname = "azure-mgmt-hdinsight";
-  disabled = isPy27;
+  version = "9.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41ebdc69c0d1f81d25dd30438c14fff4331f66639f55805b918b9649eaffe78a";
+    hash = "sha256-QevcacDR+B0l3TBDjBT/9DMfZmOfVYBbkYuWSer/54o=";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     msrest
@@ -27,11 +35,15 @@ buildPythonPackage rec {
   # no tests included
   doCheck = false;
 
-  pythonImportsCheck = [ "azure.common" "azure.mgmt.hdinsight" ];
+  pythonImportsCheck = [
+    "azure.common"
+    "azure.mgmt.hdinsight"
+  ];
 
   meta = with lib; {
     description = "Microsoft Azure HDInsight Management Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/hdinsight/azure-mgmt-hdinsight";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-hdinsight_${version}/sdk/hdinsight/azure-mgmt-hdinsight/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix b/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix
deleted file mode 100644
index f1effb72b4caa..0000000000000
--- a/pkgs/development/python-modules/azure-mgmt-kusto/azure-mgmt-apimanagement/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, azure-common
-, msrest
-, msrestazure
-}:
-
-buildPythonPackage rec {
-  version = "3.0.0";
-  pname = "azure-mgmt-apimanagement";
-  disabled = isPy27;
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-kmL1TtOH6wg9ja5m0yqN81ZHMZuQK9SYzcN29QoS0VQ=";
-    extension = "zip";
-  };
-
-  propagatedBuildInputs = [ azure-common msrest msrestazure ];
-
-  # no tests included
-  doCheck = false;
-
-  pythonImportsCheck = [ "azure.common" "azure.mgmt.apimanagement" ];
-
-  meta = with lib; {
-    description = "Microsoft Azure API Management Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
-    license = licenses.mit;
-    maintainers = with maintainers; [ jonringer ];
-  };
-}
diff --git a/pkgs/development/python-modules/azure-mgmt-kusto/default.nix b/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
index 474b19814c0b6..0cb59d74226e3 100644
--- a/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
@@ -1,25 +1,29 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-kusto";
   version = "3.3.0";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-PmGGtyVrYFCMnpiCq9x9uwoMboDO1ePlGAJzrMTj3ps=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     isodate
diff --git a/pkgs/development/python-modules/azure-mgmt-managedservices/default.nix b/pkgs/development/python-modules/azure-mgmt-managedservices/default.nix
index 830ea71e9a176..a9334dd30d000 100644
--- a/pkgs/development/python-modules/azure-mgmt-managedservices/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-managedservices/default.nix
@@ -1,23 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, azure-common
-, azure-mgmt-core
-, msrest
-, msrestazure
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
-  version = "6.0.0";
-  format = "setuptools";
   pname = "azure-mgmt-managedservices";
-  disabled = isPy27;
+  version = "6.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec0cb3858bcf8edf5eee0eddee81560424eb84352e0df082ddc94eb99badfd5e";
+    hash = "sha256-7AyzhYvPjt9e7g7d7oFWBCTrhDUuDfCC3clOuZut/V4=";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     msrest
@@ -27,11 +35,15 @@ buildPythonPackage rec {
   # no tests included
   doCheck = false;
 
-  pythonImportsCheck = [ "azure.common" "azure.mgmt.managedservices" ];
+  pythonImportsCheck = [
+    "azure.common"
+    "azure.mgmt.managedservices"
+  ];
 
   meta = with lib; {
     description = "Microsoft Azure Managed Services Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/managedservices/azure-mgmt-managedservices";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-managedservices_${version}/sdk/managedservices/azure-mgmt-managedservices/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix b/pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix
index 4adafa254ba16..723e389a991b2 100644
--- a/pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-sqlvirtualmachine/default.nix
@@ -1,23 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, azure-common
-, azure-mgmt-core
-, msrest
-, msrestazure
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
-  version = "0.5.0";
-  format = "setuptools";
   pname = "azure-mgmt-sqlvirtualmachine";
-  disabled = isPy27;
+  version = "0.5.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b9am8raa17hxnz7d5pk2ix0309wsnhnchq1mi22icd728sl5adm";
+    hash = "sha256-talCNRKnsShErAFDZqHVPIEBehTzlna+7fAEpTKqKq0=";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     msrest
@@ -27,11 +35,15 @@ buildPythonPackage rec {
   # no tests included
   doCheck = false;
 
-  pythonImportsCheck = [ "azure.common" "azure.mgmt.sqlvirtualmachine" ];
+  pythonImportsCheck = [
+    "azure.common"
+    "azure.mgmt.sqlvirtualmachine"
+  ];
 
   meta = with lib; {
     description = "Microsoft Azure SQL Virtual Machine Management Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/sql/azure-mgmt-sqlvirtualmachine";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-sqlvirtualmachine_${version}/sdk/sql/azure-mgmt-sqlvirtualmachine/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-mgmt-synapse/default.nix b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
index 1c2745f60f599..d9bf2b13a5e04 100644
--- a/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
@@ -1,23 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, azure-common
-, azure-mgmt-core
-, msrest
-, msrestazure
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-synapse";
   version = "2.0.0";
-  format = "setuptools";
-  disabled = pythonOlder "3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bec6bdfaeb55b4fdd159f2055e8875bf50a720bb0fce80a816e92a2359b898c8";
+    hash = "sha256-vsa9+utVtP3RWfIFXoh1v1CnILsPzoCoFukqI1m4mMg=";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     msrest
@@ -27,8 +35,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "azure.mgmt.synapse" ];
 
   meta = with lib; {
-    description = "Azure python SDK";
-    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    description = "Microsoft Azure Synapse Management Client Library";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/synapse/azure-mgmt-synapse";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-synapse_${version}/sdk/synapse/azure-mgmt-synapse/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-multiapi-storage/default.nix b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
index e8bc4d5634574..a3697ae4564d0 100644
--- a/pkgs/development/python-modules/azure-multiapi-storage/default.nix
+++ b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
@@ -1,25 +1,35 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, azure-common
-, azure-core
-, msrest
-, msrestazure
-, requests
+{
+  lib,
+  azure-common,
+  azure-core,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
-  version = "1.2.0";
-  format = "setuptools";
   pname = "azure-multiapi-storage";
-  disabled = isPy27;
+  version = "1.2.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-CQuoWHeh0EMitTRsvifotrTwpWd/Q9LWWD7jZ2w9r8I=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-core
+    cryptography
     msrest
     msrestazure
     requests
@@ -31,7 +41,10 @@ buildPythonPackage rec {
   # no tests included
   doCheck = false;
 
-  pythonImportsCheck = [ "azure.common" "azure.multiapi.storage" ];
+  pythonImportsCheck = [
+    "azure.common"
+    "azure.multiapi.storage"
+  ];
 
   meta = with lib; {
     description = "Microsoft Azure Storage Client Library for Python with multi API version support.";
diff --git a/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix b/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
index 20c3141447474..55fd07d99e20d 100644
--- a/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
@@ -1,21 +1,30 @@
-{ lib, buildPythonPackage, fetchPypi
-, azure-common
-, azure-core
-, msrest
+{
+  lib,
+  azure-common,
+  azure-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-synapse-accesscontrol";
   version = "0.7.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "565aa26336d560c028775e8ae50d0691aa7089e96170e78342371b773da3137c";
+    hash = "sha256-VlqiYzbVYMAod16K5Q0GkapwielhcOeDQjcbdz2jE3w=";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-core
     msrest
@@ -27,8 +36,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "azure.synapse.accesscontrol" ];
 
   meta = with lib; {
-    description = "Azure python SDK";
-    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    description = "Microsoft Azure Synapse AccessControl Client Library";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/synapse/azure-synapse-accesscontrol";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-synapse-accesscontrol_${version}/sdk/synapse/azure-synapse-accesscontrol/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-synapse-managedprivateendpoints/default.nix b/pkgs/development/python-modules/azure-synapse-managedprivateendpoints/default.nix
index 18a96ec10fbfd..0ad839d459889 100644
--- a/pkgs/development/python-modules/azure-synapse-managedprivateendpoints/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-managedprivateendpoints/default.nix
@@ -1,21 +1,30 @@
-{ lib, buildPythonPackage, fetchPypi
-, azure-common
-, azure-core
-, msrest
+{
+  lib,
+  azure-common,
+  azure-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-synapse-managedprivateendpoints";
   version = "0.4.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "900eaeaccffdcd01012b248a7d049008c92807b749edd1c9074ca9248554c17e";
+    hash = "sha256-kA6urM/9zQEBKySKfQSQCMkoB7dJ7dHJB0ypJIVUwX4=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-core
     msrest
@@ -26,8 +35,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "azure.synapse.managedprivateendpoints" ];
 
   meta = with lib; {
-    description = "Microsoft Azure Synapse Managed Private Endpoints Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    description = "Microsoft Azure Synapse Managed Private Endpoints Client Library";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/synapse/azure-synapse-managedprivateendpoints";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/tree/azure-synapse-managedprivateendpoints_${version}/sdk/synapse/azure-synapse-managedprivateendpoints";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/azure-synapse-spark/default.nix b/pkgs/development/python-modules/azure-synapse-spark/default.nix
index 7e21755414353..51e07290ef6de 100644
--- a/pkgs/development/python-modules/azure-synapse-spark/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-spark/default.nix
@@ -1,21 +1,30 @@
-{ lib, buildPythonPackage, fetchPypi
-, azure-common
-, azure-core
-, msrest
+{
+  lib,
+  azure-common,
+  azure-core,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-synapse-spark";
   version = "0.7.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "86fa29463a24b7c37025ff21509b70e36b4dace28e5d92001bc920488350acd5";
+    hash = "sha256-hvopRjokt8NwJf8hUJtw42tNrOKOXZIAG8kgSINQrNU=";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-core
     msrest
@@ -24,8 +33,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "azure.synapse.spark" ];
 
   meta = with lib; {
-    description = "Azure python SDK";
-    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    description = "Microsoft Azure Synapse Spark Client Library";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/synapse/azure-synapse-spark";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-synapse-spark_${version}/sdk/synapse/azure-synapse-spark/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/b2sdk/default.nix b/pkgs/development/python-modules/b2sdk/default.nix
index d78a2b57a934c..9c00f0c49cc9d 100644
--- a/pkgs/development/python-modules/b2sdk/default.nix
+++ b/pkgs/development/python-modules/b2sdk/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, glibcLocales
-, importlib-metadata
-, packaging
-, logfury
-, pyfakefs
-, pytestCheckHook
-, pytest-lazy-fixture
-, pytest-mock
-, pythonOlder
-, pythonRelaxDepsHook
-, pdm-backend
-, requests
-, tqdm
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  glibcLocales,
+  importlib-metadata,
+  logfury,
+  packaging,
+  pdm-backend,
+  pyfakefs,
+  pytest-lazy-fixture,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  requests,
+  tqdm,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "1.33.0";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,37 +30,31 @@ buildPythonPackage rec {
     owner = "Backblaze";
     repo = "b2-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eMFgsjEb0DMTLqG+8IZru1dEAuKZW4dEszrznZxR+mc=";
+    hash = "sha256-0/UC4O19oO8SpboiPIhvkWBA8XHpc279fl377MooK54=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-    pythonRelaxDepsHook
-  ];
+  build-system = [ pdm-backend ];
 
-  pythonRemoveDeps = [
-    "setuptools"
-  ];
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
-  propagatedBuildInputs = [
-    packaging
-    logfury
-    requests
-    tqdm
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ] ++ lib.optionals (pythonOlder "3.12") [
-    typing-extensions
-  ];
+  pythonRemoveDeps = [ "setuptools" ];
+
+  dependencies =
+    [
+      packaging
+      logfury
+      requests
+    ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ]
+    ++ lib.optionals (pythonOlder "3.12") [ typing-extensions ];
 
   nativeCheckInputs = [
-    pytestCheckHook
+    pyfakefs
     pytest-lazy-fixture
     pytest-mock
-    pyfakefs
-  ] ++ lib.optionals stdenv.isLinux [
-    glibcLocales
-  ];
+    pytestCheckHook
+    tqdm
+  ] ++ lib.optionals stdenv.isLinux [ glibcLocales ];
 
   disabledTestPaths = [
     # requires aws s3 auth
@@ -75,9 +70,7 @@ buildPythonPackage rec {
     "test_file_info_b2_attributes"
   ];
 
-  pythonImportsCheck = [
-    "b2sdk"
-  ];
+  pythonImportsCheck = [ "b2sdk" ];
 
   meta = with lib; {
     description = "Client library and utilities for access to B2 Cloud Storage (backblaze)";
diff --git a/pkgs/development/python-modules/batinfo/default.nix b/pkgs/development/python-modules/batinfo/default.nix
index c4fdc9ee92cfd..cfe0b5d356805 100644
--- a/pkgs/development/python-modules/batinfo/default.nix
+++ b/pkgs/development/python-modules/batinfo/default.nix
@@ -1,23 +1,49 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "batinfo";
   version = "0.4.2";
-  format = "setuptools";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "497e29efc9353ec52e71d43bd040bdfb6d685137ddc2b9143cded4583af572f5";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "nicolargo";
+    repo = "batinfo";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-GgAJJA8bzQJLAU+nxmkDa5LFTHc4NGi+nj9PfKyw8/M=";
   };
 
-  # No tests included
-  doCheck = false;
+  postPatch = ''
+    substituteInPlace test_batinfo.py \
+      --replace-fail "self.assertEquals" "self.assertEqual"
+  '';
+
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "batinfo" ];
+
+  disabledTests = [
+    # Tests are a bit outdated
+    "test_batinfo_capacity"
+    "test_batinfo_charge_now"
+    "test_batinfo_name_default"
+  ];
 
   meta = with lib; {
+    description = "Module to retrieve battery information";
     homepage = "https://github.com/nicolargo/batinfo";
-    description = "A simple Python lib to retrieve battery information";
-    license = licenses.lgpl3;
-    platforms = platforms.linux;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ koral ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix
index 344e14a30f0cf..8c1502a8e1c5e 100644
--- a/pkgs/development/python-modules/bellows/default.nix
+++ b/pkgs/development/python-modules/bellows/default.nix
@@ -1,4 +1,5 @@
 { lib
+, async-timeout
 , buildPythonPackage
 , click
 , click-log
@@ -30,21 +31,23 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace '"setuptools-git-versioning<2"' "" \
-      --replace 'dynamic = ["version"]' 'version = "${version}"'
+      --replace-fail '"setuptools-git-versioning<2"' "" \
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     click-log
     pure-pcapy3
     pyserial-asyncio
     voluptuous
     zigpy
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    async-timeout
   ];
 
   nativeCheckInputs = [
@@ -59,10 +62,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to implement EZSP for EmberZNet devices";
-    mainProgram = "bellows";
     homepage = "https://github.com/zigpy/bellows";
     changelog = "https://github.com/zigpy/bellows/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mvnetbiz ];
+    mainProgram = "bellows";
   };
 }
diff --git a/pkgs/development/python-modules/bleak-retry-connector/default.nix b/pkgs/development/python-modules/bleak-retry-connector/default.nix
index 112d92a24bb9a..1cc552f2aafb2 100644
--- a/pkgs/development/python-modules/bleak-retry-connector/default.nix
+++ b/pkgs/development/python-modules/bleak-retry-connector/default.nix
@@ -1,40 +1,39 @@
-{ lib
-, async-timeout
-, bleak
-, bluetooth-adapters
-, dbus-fast
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pytest-asyncio
+{
+  lib,
+  async-timeout,
+  bleak,
+  bluetooth-adapters,
+  dbus-fast,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
   pname = "bleak-retry-connector";
-  version = "3.4.0";
-  format = "pyproject";
+  version = "3.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
-    repo = pname;
+    repo = "bleak-retry-connector";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hhoYPpNJ8myW2KMe7o7gvbjnmpY4OYudaDA/vV8BkN8=";
+    hash = "sha256-oqc997siTg43Ulrc539G3utfQvHjcBZJgQ8/CfcSduc=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=bleak_retry_connector --cov-report=term-missing:skip-covered" ""
+      --replace-fail " --cov=bleak_retry_connector --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     async-timeout
     bleak
     bluetooth-adapters
@@ -53,9 +52,7 @@ buildPythonPackage rec {
     "test_establish_connection_without_dangerous_use_cached_services"
   ];
 
-  pythonImportsCheck = [
-    "bleak_retry_connector"
-  ];
+  pythonImportsCheck = [ "bleak_retry_connector" ];
 
   meta = with lib; {
     description = "Connector for Bleak Clients that handles transient connection failures";
diff --git a/pkgs/development/python-modules/boltons/default.nix b/pkgs/development/python-modules/boltons/default.nix
index 770c523e31f9f..2046daf9297f9 100644
--- a/pkgs/development/python-modules/boltons/default.nix
+++ b/pkgs/development/python-modules/boltons/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "boltons";
-  version = "23.0.0";
+  version = "24.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "mahmoud";
     repo = "boltons";
     rev = "refs/tags/${version}";
-    hash = "sha256-NqlCu0W/BQkLiaLYs9DB1RrEya6KGPfNtpAzKXxoRD0=";
+    hash = "sha256-Ie5CPT2u/2/hAIhDzXT6CPzJwmbgt3B6q3oxqKYb27o=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix
index 23947834c9729..80176e169a9c7 100644
--- a/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -1,406 +1,396 @@
-{ lib
-, boto3
-, botocore
-, botocore-stubs
-, buildPythonPackage
-, fetchPypi
-, mypy-boto3-accessanalyzer
-, mypy-boto3-account
-, mypy-boto3-acm
-, mypy-boto3-acm-pca
-, mypy-boto3-alexaforbusiness
-, mypy-boto3-amp
-, mypy-boto3-amplify
-, mypy-boto3-amplifybackend
-, mypy-boto3-amplifyuibuilder
-, mypy-boto3-apigateway
-, mypy-boto3-apigatewaymanagementapi
-, mypy-boto3-apigatewayv2
-, mypy-boto3-appconfig
-, mypy-boto3-appconfigdata
-, mypy-boto3-appfabric
-, mypy-boto3-appflow
-, mypy-boto3-appintegrations
-, mypy-boto3-application-autoscaling
-, mypy-boto3-application-insights
-, mypy-boto3-applicationcostprofiler
-, mypy-boto3-appmesh
-, mypy-boto3-apprunner
-, mypy-boto3-appstream
-, mypy-boto3-appsync
-, mypy-boto3-arc-zonal-shift
-, mypy-boto3-athena
-, mypy-boto3-auditmanager
-, mypy-boto3-autoscaling
-, mypy-boto3-autoscaling-plans
-, mypy-boto3-backup
-, mypy-boto3-backup-gateway
-, mypy-boto3-backupstorage
-, mypy-boto3-batch
-, mypy-boto3-billingconductor
-, mypy-boto3-braket
-, mypy-boto3-budgets
-, mypy-boto3-ce
-, mypy-boto3-chime
-, mypy-boto3-chime-sdk-identity
-, mypy-boto3-chime-sdk-media-pipelines
-, mypy-boto3-chime-sdk-meetings
-, mypy-boto3-chime-sdk-messaging
-, mypy-boto3-chime-sdk-voice
-, mypy-boto3-cleanrooms
-, mypy-boto3-cloud9
-, mypy-boto3-cloudcontrol
-, mypy-boto3-clouddirectory
-, mypy-boto3-cloudformation
-, mypy-boto3-cloudfront
-, mypy-boto3-cloudhsm
-, mypy-boto3-cloudhsmv2
-, mypy-boto3-cloudsearch
-, mypy-boto3-cloudsearchdomain
-, mypy-boto3-cloudtrail
-, mypy-boto3-cloudtrail-data
-, mypy-boto3-cloudwatch
-, mypy-boto3-codeartifact
-, mypy-boto3-codebuild
-, mypy-boto3-codecatalyst
-, mypy-boto3-codecommit
-, mypy-boto3-codedeploy
-, mypy-boto3-codeguru-reviewer
-, mypy-boto3-codeguru-security
-, mypy-boto3-codeguruprofiler
-, mypy-boto3-codepipeline
-, mypy-boto3-codestar
-, mypy-boto3-codestar-connections
-, mypy-boto3-codestar-notifications
-, mypy-boto3-cognito-identity
-, mypy-boto3-cognito-idp
-, mypy-boto3-cognito-sync
-, mypy-boto3-comprehend
-, mypy-boto3-comprehendmedical
-, mypy-boto3-compute-optimizer
-, mypy-boto3-config
-, mypy-boto3-connect
-, mypy-boto3-connect-contact-lens
-, mypy-boto3-connectcampaigns
-, mypy-boto3-connectcases
-, mypy-boto3-connectparticipant
-, mypy-boto3-controltower
-, mypy-boto3-cur
-, mypy-boto3-customer-profiles
-, mypy-boto3-databrew
-, mypy-boto3-dataexchange
-, mypy-boto3-datapipeline
-, mypy-boto3-datasync
-, mypy-boto3-dax
-, mypy-boto3-detective
-, mypy-boto3-devicefarm
-, mypy-boto3-devops-guru
-, mypy-boto3-directconnect
-, mypy-boto3-discovery
-, mypy-boto3-dlm
-, mypy-boto3-dms
-, mypy-boto3-docdb
-, mypy-boto3-docdb-elastic
-, mypy-boto3-drs
-, mypy-boto3-ds
-, mypy-boto3-dynamodb
-, mypy-boto3-dynamodbstreams
-, mypy-boto3-ebs
-, mypy-boto3-ec2
-, mypy-boto3-ec2-instance-connect
-, mypy-boto3-ecr
-, mypy-boto3-ecr-public
-, mypy-boto3-ecs
-, mypy-boto3-efs
-, mypy-boto3-eks
-, mypy-boto3-elastic-inference
-, mypy-boto3-elasticache
-, mypy-boto3-elasticbeanstalk
-, mypy-boto3-elastictranscoder
-, mypy-boto3-elb
-, mypy-boto3-elbv2
-, mypy-boto3-emr
-, mypy-boto3-emr-containers
-, mypy-boto3-emr-serverless
-, mypy-boto3-entityresolution
-, mypy-boto3-es
-, mypy-boto3-events
-, mypy-boto3-evidently
-, mypy-boto3-finspace
-, mypy-boto3-finspace-data
-, mypy-boto3-firehose
-, mypy-boto3-fis
-, mypy-boto3-fms
-, mypy-boto3-forecast
-, mypy-boto3-forecastquery
-, mypy-boto3-frauddetector
-, mypy-boto3-fsx
-, mypy-boto3-gamelift
-, mypy-boto3-gamesparks
-, mypy-boto3-glacier
-, mypy-boto3-globalaccelerator
-, mypy-boto3-glue
-, mypy-boto3-grafana
-, mypy-boto3-greengrass
-, mypy-boto3-greengrassv2
-, mypy-boto3-groundstation
-, mypy-boto3-guardduty
-, mypy-boto3-health
-, mypy-boto3-healthlake
-, mypy-boto3-honeycode
-, mypy-boto3-iam
-, mypy-boto3-identitystore
-, mypy-boto3-imagebuilder
-, mypy-boto3-importexport
-, mypy-boto3-inspector
-, mypy-boto3-inspector2
-, mypy-boto3-internetmonitor
-, mypy-boto3-iot
-, mypy-boto3-iot-data
-, mypy-boto3-iot-jobs-data
-, mypy-boto3-iot-roborunner
-, mypy-boto3-iot1click-devices
-, mypy-boto3-iot1click-projects
-, mypy-boto3-iotanalytics
-, mypy-boto3-iotdeviceadvisor
-, mypy-boto3-iotevents
-, mypy-boto3-iotevents-data
-, mypy-boto3-iotfleethub
-, mypy-boto3-iotfleetwise
-, mypy-boto3-iotsecuretunneling
-, mypy-boto3-iotsitewise
-, mypy-boto3-iotthingsgraph
-, mypy-boto3-iottwinmaker
-, mypy-boto3-iotwireless
-, mypy-boto3-ivs
-, mypy-boto3-ivs-realtime
-, mypy-boto3-ivschat
-, mypy-boto3-kafka
-, mypy-boto3-kafkaconnect
-, mypy-boto3-kendra
-, mypy-boto3-kendra-ranking
-, mypy-boto3-keyspaces
-, mypy-boto3-kinesis
-, mypy-boto3-kinesis-video-archived-media
-, mypy-boto3-kinesis-video-media
-, mypy-boto3-kinesis-video-signaling
-, mypy-boto3-kinesis-video-webrtc-storage
-, mypy-boto3-kinesisanalytics
-, mypy-boto3-kinesisanalyticsv2
-, mypy-boto3-kinesisvideo
-, mypy-boto3-kms
-, mypy-boto3-lakeformation
-, mypy-boto3-lambda
-, mypy-boto3-lex-models
-, mypy-boto3-lex-runtime
-, mypy-boto3-lexv2-models
-, mypy-boto3-lexv2-runtime
-, mypy-boto3-license-manager
-, mypy-boto3-license-manager-linux-subscriptions
-, mypy-boto3-license-manager-user-subscriptions
-, mypy-boto3-lightsail
-, mypy-boto3-location
-, mypy-boto3-logs
-, mypy-boto3-lookoutequipment
-, mypy-boto3-lookoutmetrics
-, mypy-boto3-lookoutvision
-, mypy-boto3-m2
-, mypy-boto3-machinelearning
-, mypy-boto3-macie
-, mypy-boto3-macie2
-, mypy-boto3-managedblockchain
-, mypy-boto3-managedblockchain-query
-, mypy-boto3-marketplace-catalog
-, mypy-boto3-marketplace-entitlement
-, mypy-boto3-marketplacecommerceanalytics
-, mypy-boto3-mediaconnect
-, mypy-boto3-mediaconvert
-, mypy-boto3-medialive
-, mypy-boto3-mediapackage
-, mypy-boto3-mediapackage-vod
-, mypy-boto3-mediapackagev2
-, mypy-boto3-mediastore
-, mypy-boto3-mediastore-data
-, mypy-boto3-mediatailor
-, mypy-boto3-medical-imaging
-, mypy-boto3-memorydb
-, mypy-boto3-meteringmarketplace
-, mypy-boto3-mgh
-, mypy-boto3-mgn
-, mypy-boto3-migration-hub-refactor-spaces
-, mypy-boto3-migrationhub-config
-, mypy-boto3-migrationhuborchestrator
-, mypy-boto3-migrationhubstrategy
-, mypy-boto3-mobile
-, mypy-boto3-mq
-, mypy-boto3-mturk
-, mypy-boto3-mwaa
-, mypy-boto3-neptune
-, mypy-boto3-network-firewall
-, mypy-boto3-networkmanager
-, mypy-boto3-nimble
-, mypy-boto3-oam
-, mypy-boto3-omics
-, mypy-boto3-opensearch
-, mypy-boto3-opensearchserverless
-, mypy-boto3-opsworks
-, mypy-boto3-opsworkscm
-, mypy-boto3-organizations
-, mypy-boto3-osis
-, mypy-boto3-outposts
-, mypy-boto3-panorama
-, mypy-boto3-payment-cryptography
-, mypy-boto3-payment-cryptography-data
-, mypy-boto3-personalize
-, mypy-boto3-personalize-events
-, mypy-boto3-personalize-runtime
-, mypy-boto3-pi
-, mypy-boto3-pinpoint
-, mypy-boto3-pinpoint-email
-, mypy-boto3-pinpoint-sms-voice
-, mypy-boto3-pinpoint-sms-voice-v2
-, mypy-boto3-pipes
-, mypy-boto3-polly
-, mypy-boto3-pricing
-, mypy-boto3-privatenetworks
-, mypy-boto3-proton
-, mypy-boto3-qldb
-, mypy-boto3-qldb-session
-, mypy-boto3-quicksight
-, mypy-boto3-ram
-, mypy-boto3-rbin
-, mypy-boto3-rds
-, mypy-boto3-rds-data
-, mypy-boto3-redshift
-, mypy-boto3-redshift-data
-, mypy-boto3-redshift-serverless
-, mypy-boto3-rekognition
-, mypy-boto3-resiliencehub
-, mypy-boto3-resource-explorer-2
-, mypy-boto3-resource-groups
-, mypy-boto3-resourcegroupstaggingapi
-, mypy-boto3-robomaker
-, mypy-boto3-rolesanywhere
-, mypy-boto3-route53
-, mypy-boto3-route53-recovery-cluster
-, mypy-boto3-route53-recovery-control-config
-, mypy-boto3-route53-recovery-readiness
-, mypy-boto3-route53domains
-, mypy-boto3-route53resolver
-, mypy-boto3-rum
-, mypy-boto3-s3
-, mypy-boto3-s3control
-, mypy-boto3-s3outposts
-, mypy-boto3-sagemaker
-, mypy-boto3-sagemaker-a2i-runtime
-, mypy-boto3-sagemaker-edge
-, mypy-boto3-sagemaker-featurestore-runtime
-, mypy-boto3-sagemaker-geospatial
-, mypy-boto3-sagemaker-metrics
-, mypy-boto3-sagemaker-runtime
-, mypy-boto3-savingsplans
-, mypy-boto3-scheduler
-, mypy-boto3-schemas
-, mypy-boto3-sdb
-, mypy-boto3-secretsmanager
-, mypy-boto3-securityhub
-, mypy-boto3-securitylake
-, mypy-boto3-serverlessrepo
-, mypy-boto3-service-quotas
-, mypy-boto3-servicecatalog
-, mypy-boto3-servicecatalog-appregistry
-, mypy-boto3-servicediscovery
-, mypy-boto3-ses
-, mypy-boto3-sesv2
-, mypy-boto3-shield
-, mypy-boto3-signer
-, mypy-boto3-simspaceweaver
-, mypy-boto3-sms
-, mypy-boto3-sms-voice
-, mypy-boto3-snow-device-management
-, mypy-boto3-snowball
-, mypy-boto3-sns
-, mypy-boto3-sqs
-, mypy-boto3-ssm
-, mypy-boto3-ssm-contacts
-, mypy-boto3-ssm-incidents
-, mypy-boto3-ssm-sap
-, mypy-boto3-sso
-, mypy-boto3-sso-admin
-, mypy-boto3-sso-oidc
-, mypy-boto3-stepfunctions
-, mypy-boto3-storagegateway
-, mypy-boto3-sts
-, mypy-boto3-support
-, mypy-boto3-support-app
-, mypy-boto3-swf
-, mypy-boto3-synthetics
-, mypy-boto3-textract
-, mypy-boto3-timestream-query
-, mypy-boto3-timestream-write
-, mypy-boto3-tnb
-, mypy-boto3-transcribe
-, mypy-boto3-transfer
-, mypy-boto3-translate
-, mypy-boto3-verifiedpermissions
-, mypy-boto3-voice-id
-, mypy-boto3-vpc-lattice
-, mypy-boto3-waf
-, mypy-boto3-waf-regional
-, mypy-boto3-wafv2
-, mypy-boto3-wellarchitected
-, mypy-boto3-wisdom
-, mypy-boto3-workdocs
-, mypy-boto3-worklink
-, mypy-boto3-workmail
-, mypy-boto3-workmailmessageflow
-, mypy-boto3-workspaces
-, mypy-boto3-workspaces-web
-, mypy-boto3-xray
-, pythonOlder
-, setuptools
-, types-s3transfer
-, typing-extensions
+{
+  lib,
+  boto3,
+  botocore,
+  botocore-stubs,
+  buildPythonPackage,
+  fetchPypi,
+  mypy-boto3-accessanalyzer,
+  mypy-boto3-account,
+  mypy-boto3-acm,
+  mypy-boto3-acm-pca,
+  mypy-boto3-alexaforbusiness,
+  mypy-boto3-amp,
+  mypy-boto3-amplify,
+  mypy-boto3-amplifybackend,
+  mypy-boto3-amplifyuibuilder,
+  mypy-boto3-apigateway,
+  mypy-boto3-apigatewaymanagementapi,
+  mypy-boto3-apigatewayv2,
+  mypy-boto3-appconfig,
+  mypy-boto3-appconfigdata,
+  mypy-boto3-appfabric,
+  mypy-boto3-appflow,
+  mypy-boto3-appintegrations,
+  mypy-boto3-application-autoscaling,
+  mypy-boto3-application-insights,
+  mypy-boto3-applicationcostprofiler,
+  mypy-boto3-appmesh,
+  mypy-boto3-apprunner,
+  mypy-boto3-appstream,
+  mypy-boto3-appsync,
+  mypy-boto3-arc-zonal-shift,
+  mypy-boto3-athena,
+  mypy-boto3-auditmanager,
+  mypy-boto3-autoscaling,
+  mypy-boto3-autoscaling-plans,
+  mypy-boto3-backup,
+  mypy-boto3-backup-gateway,
+  mypy-boto3-backupstorage,
+  mypy-boto3-batch,
+  mypy-boto3-billingconductor,
+  mypy-boto3-braket,
+  mypy-boto3-budgets,
+  mypy-boto3-ce,
+  mypy-boto3-chime,
+  mypy-boto3-chime-sdk-identity,
+  mypy-boto3-chime-sdk-media-pipelines,
+  mypy-boto3-chime-sdk-meetings,
+  mypy-boto3-chime-sdk-messaging,
+  mypy-boto3-chime-sdk-voice,
+  mypy-boto3-cleanrooms,
+  mypy-boto3-cloud9,
+  mypy-boto3-cloudcontrol,
+  mypy-boto3-clouddirectory,
+  mypy-boto3-cloudformation,
+  mypy-boto3-cloudfront,
+  mypy-boto3-cloudhsm,
+  mypy-boto3-cloudhsmv2,
+  mypy-boto3-cloudsearch,
+  mypy-boto3-cloudsearchdomain,
+  mypy-boto3-cloudtrail,
+  mypy-boto3-cloudtrail-data,
+  mypy-boto3-cloudwatch,
+  mypy-boto3-codeartifact,
+  mypy-boto3-codebuild,
+  mypy-boto3-codecatalyst,
+  mypy-boto3-codecommit,
+  mypy-boto3-codedeploy,
+  mypy-boto3-codeguru-reviewer,
+  mypy-boto3-codeguru-security,
+  mypy-boto3-codeguruprofiler,
+  mypy-boto3-codepipeline,
+  mypy-boto3-codestar,
+  mypy-boto3-codestar-connections,
+  mypy-boto3-codestar-notifications,
+  mypy-boto3-cognito-identity,
+  mypy-boto3-cognito-idp,
+  mypy-boto3-cognito-sync,
+  mypy-boto3-comprehend,
+  mypy-boto3-comprehendmedical,
+  mypy-boto3-compute-optimizer,
+  mypy-boto3-config,
+  mypy-boto3-connect,
+  mypy-boto3-connect-contact-lens,
+  mypy-boto3-connectcampaigns,
+  mypy-boto3-connectcases,
+  mypy-boto3-connectparticipant,
+  mypy-boto3-controltower,
+  mypy-boto3-cur,
+  mypy-boto3-customer-profiles,
+  mypy-boto3-databrew,
+  mypy-boto3-dataexchange,
+  mypy-boto3-datapipeline,
+  mypy-boto3-datasync,
+  mypy-boto3-dax,
+  mypy-boto3-detective,
+  mypy-boto3-devicefarm,
+  mypy-boto3-devops-guru,
+  mypy-boto3-directconnect,
+  mypy-boto3-discovery,
+  mypy-boto3-dlm,
+  mypy-boto3-dms,
+  mypy-boto3-docdb,
+  mypy-boto3-docdb-elastic,
+  mypy-boto3-drs,
+  mypy-boto3-ds,
+  mypy-boto3-dynamodb,
+  mypy-boto3-dynamodbstreams,
+  mypy-boto3-ebs,
+  mypy-boto3-ec2,
+  mypy-boto3-ec2-instance-connect,
+  mypy-boto3-ecr,
+  mypy-boto3-ecr-public,
+  mypy-boto3-ecs,
+  mypy-boto3-efs,
+  mypy-boto3-eks,
+  mypy-boto3-elastic-inference,
+  mypy-boto3-elasticache,
+  mypy-boto3-elasticbeanstalk,
+  mypy-boto3-elastictranscoder,
+  mypy-boto3-elb,
+  mypy-boto3-elbv2,
+  mypy-boto3-emr,
+  mypy-boto3-emr-containers,
+  mypy-boto3-emr-serverless,
+  mypy-boto3-entityresolution,
+  mypy-boto3-es,
+  mypy-boto3-events,
+  mypy-boto3-evidently,
+  mypy-boto3-finspace,
+  mypy-boto3-finspace-data,
+  mypy-boto3-firehose,
+  mypy-boto3-fis,
+  mypy-boto3-fms,
+  mypy-boto3-forecast,
+  mypy-boto3-forecastquery,
+  mypy-boto3-frauddetector,
+  mypy-boto3-fsx,
+  mypy-boto3-gamelift,
+  mypy-boto3-gamesparks,
+  mypy-boto3-glacier,
+  mypy-boto3-globalaccelerator,
+  mypy-boto3-glue,
+  mypy-boto3-grafana,
+  mypy-boto3-greengrass,
+  mypy-boto3-greengrassv2,
+  mypy-boto3-groundstation,
+  mypy-boto3-guardduty,
+  mypy-boto3-health,
+  mypy-boto3-healthlake,
+  mypy-boto3-honeycode,
+  mypy-boto3-iam,
+  mypy-boto3-identitystore,
+  mypy-boto3-imagebuilder,
+  mypy-boto3-importexport,
+  mypy-boto3-inspector,
+  mypy-boto3-inspector2,
+  mypy-boto3-internetmonitor,
+  mypy-boto3-iot,
+  mypy-boto3-iot-data,
+  mypy-boto3-iot-jobs-data,
+  mypy-boto3-iot-roborunner,
+  mypy-boto3-iot1click-devices,
+  mypy-boto3-iot1click-projects,
+  mypy-boto3-iotanalytics,
+  mypy-boto3-iotdeviceadvisor,
+  mypy-boto3-iotevents,
+  mypy-boto3-iotevents-data,
+  mypy-boto3-iotfleethub,
+  mypy-boto3-iotfleetwise,
+  mypy-boto3-iotsecuretunneling,
+  mypy-boto3-iotsitewise,
+  mypy-boto3-iotthingsgraph,
+  mypy-boto3-iottwinmaker,
+  mypy-boto3-iotwireless,
+  mypy-boto3-ivs,
+  mypy-boto3-ivs-realtime,
+  mypy-boto3-ivschat,
+  mypy-boto3-kafka,
+  mypy-boto3-kafkaconnect,
+  mypy-boto3-kendra,
+  mypy-boto3-kendra-ranking,
+  mypy-boto3-keyspaces,
+  mypy-boto3-kinesis,
+  mypy-boto3-kinesis-video-archived-media,
+  mypy-boto3-kinesis-video-media,
+  mypy-boto3-kinesis-video-signaling,
+  mypy-boto3-kinesis-video-webrtc-storage,
+  mypy-boto3-kinesisanalytics,
+  mypy-boto3-kinesisanalyticsv2,
+  mypy-boto3-kinesisvideo,
+  mypy-boto3-kms,
+  mypy-boto3-lakeformation,
+  mypy-boto3-lambda,
+  mypy-boto3-lex-models,
+  mypy-boto3-lex-runtime,
+  mypy-boto3-lexv2-models,
+  mypy-boto3-lexv2-runtime,
+  mypy-boto3-license-manager,
+  mypy-boto3-license-manager-linux-subscriptions,
+  mypy-boto3-license-manager-user-subscriptions,
+  mypy-boto3-lightsail,
+  mypy-boto3-location,
+  mypy-boto3-logs,
+  mypy-boto3-lookoutequipment,
+  mypy-boto3-lookoutmetrics,
+  mypy-boto3-lookoutvision,
+  mypy-boto3-m2,
+  mypy-boto3-machinelearning,
+  mypy-boto3-macie,
+  mypy-boto3-macie2,
+  mypy-boto3-managedblockchain,
+  mypy-boto3-managedblockchain-query,
+  mypy-boto3-marketplace-catalog,
+  mypy-boto3-marketplace-entitlement,
+  mypy-boto3-marketplacecommerceanalytics,
+  mypy-boto3-mediaconnect,
+  mypy-boto3-mediaconvert,
+  mypy-boto3-medialive,
+  mypy-boto3-mediapackage,
+  mypy-boto3-mediapackage-vod,
+  mypy-boto3-mediapackagev2,
+  mypy-boto3-mediastore,
+  mypy-boto3-mediastore-data,
+  mypy-boto3-mediatailor,
+  mypy-boto3-medical-imaging,
+  mypy-boto3-memorydb,
+  mypy-boto3-meteringmarketplace,
+  mypy-boto3-mgh,
+  mypy-boto3-mgn,
+  mypy-boto3-migration-hub-refactor-spaces,
+  mypy-boto3-migrationhub-config,
+  mypy-boto3-migrationhuborchestrator,
+  mypy-boto3-migrationhubstrategy,
+  mypy-boto3-mobile,
+  mypy-boto3-mq,
+  mypy-boto3-mturk,
+  mypy-boto3-mwaa,
+  mypy-boto3-neptune,
+  mypy-boto3-network-firewall,
+  mypy-boto3-networkmanager,
+  mypy-boto3-nimble,
+  mypy-boto3-oam,
+  mypy-boto3-omics,
+  mypy-boto3-opensearch,
+  mypy-boto3-opensearchserverless,
+  mypy-boto3-opsworks,
+  mypy-boto3-opsworkscm,
+  mypy-boto3-organizations,
+  mypy-boto3-osis,
+  mypy-boto3-outposts,
+  mypy-boto3-panorama,
+  mypy-boto3-payment-cryptography,
+  mypy-boto3-payment-cryptography-data,
+  mypy-boto3-personalize,
+  mypy-boto3-personalize-events,
+  mypy-boto3-personalize-runtime,
+  mypy-boto3-pi,
+  mypy-boto3-pinpoint,
+  mypy-boto3-pinpoint-email,
+  mypy-boto3-pinpoint-sms-voice,
+  mypy-boto3-pinpoint-sms-voice-v2,
+  mypy-boto3-pipes,
+  mypy-boto3-polly,
+  mypy-boto3-pricing,
+  mypy-boto3-privatenetworks,
+  mypy-boto3-proton,
+  mypy-boto3-qldb,
+  mypy-boto3-qldb-session,
+  mypy-boto3-quicksight,
+  mypy-boto3-ram,
+  mypy-boto3-rbin,
+  mypy-boto3-rds,
+  mypy-boto3-rds-data,
+  mypy-boto3-redshift,
+  mypy-boto3-redshift-data,
+  mypy-boto3-redshift-serverless,
+  mypy-boto3-rekognition,
+  mypy-boto3-resiliencehub,
+  mypy-boto3-resource-explorer-2,
+  mypy-boto3-resource-groups,
+  mypy-boto3-resourcegroupstaggingapi,
+  mypy-boto3-robomaker,
+  mypy-boto3-rolesanywhere,
+  mypy-boto3-route53,
+  mypy-boto3-route53-recovery-cluster,
+  mypy-boto3-route53-recovery-control-config,
+  mypy-boto3-route53-recovery-readiness,
+  mypy-boto3-route53domains,
+  mypy-boto3-route53resolver,
+  mypy-boto3-rum,
+  mypy-boto3-s3,
+  mypy-boto3-s3control,
+  mypy-boto3-s3outposts,
+  mypy-boto3-sagemaker,
+  mypy-boto3-sagemaker-a2i-runtime,
+  mypy-boto3-sagemaker-edge,
+  mypy-boto3-sagemaker-featurestore-runtime,
+  mypy-boto3-sagemaker-geospatial,
+  mypy-boto3-sagemaker-metrics,
+  mypy-boto3-sagemaker-runtime,
+  mypy-boto3-savingsplans,
+  mypy-boto3-scheduler,
+  mypy-boto3-schemas,
+  mypy-boto3-sdb,
+  mypy-boto3-secretsmanager,
+  mypy-boto3-securityhub,
+  mypy-boto3-securitylake,
+  mypy-boto3-serverlessrepo,
+  mypy-boto3-service-quotas,
+  mypy-boto3-servicecatalog,
+  mypy-boto3-servicecatalog-appregistry,
+  mypy-boto3-servicediscovery,
+  mypy-boto3-ses,
+  mypy-boto3-sesv2,
+  mypy-boto3-shield,
+  mypy-boto3-signer,
+  mypy-boto3-simspaceweaver,
+  mypy-boto3-sms,
+  mypy-boto3-sms-voice,
+  mypy-boto3-snow-device-management,
+  mypy-boto3-snowball,
+  mypy-boto3-sns,
+  mypy-boto3-sqs,
+  mypy-boto3-ssm,
+  mypy-boto3-ssm-contacts,
+  mypy-boto3-ssm-incidents,
+  mypy-boto3-ssm-sap,
+  mypy-boto3-sso,
+  mypy-boto3-sso-admin,
+  mypy-boto3-sso-oidc,
+  mypy-boto3-stepfunctions,
+  mypy-boto3-storagegateway,
+  mypy-boto3-sts,
+  mypy-boto3-support,
+  mypy-boto3-support-app,
+  mypy-boto3-swf,
+  mypy-boto3-synthetics,
+  mypy-boto3-textract,
+  mypy-boto3-timestream-query,
+  mypy-boto3-timestream-write,
+  mypy-boto3-tnb,
+  mypy-boto3-transcribe,
+  mypy-boto3-transfer,
+  mypy-boto3-translate,
+  mypy-boto3-verifiedpermissions,
+  mypy-boto3-voice-id,
+  mypy-boto3-vpc-lattice,
+  mypy-boto3-waf,
+  mypy-boto3-waf-regional,
+  mypy-boto3-wafv2,
+  mypy-boto3-wellarchitected,
+  mypy-boto3-wisdom,
+  mypy-boto3-workdocs,
+  mypy-boto3-worklink,
+  mypy-boto3-workmail,
+  mypy-boto3-workmailmessageflow,
+  mypy-boto3-workspaces,
+  mypy-boto3-workspaces-web,
+  mypy-boto3-xray,
+  pythonOlder,
+  setuptools,
+  types-s3transfer,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.78";
+  version = "1.34.84";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-bjW+/VCh1dgpL1VYnHDFvGzOjnUxCoX5FJMRJxqdkU8=";
+    pname = "boto3_stubs";
+    inherit version;
+    hash = "sha256-c7u1CaacSsjM4DivsVEGhriDmMvUbV3x4yOPzmbfmvU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     botocore-stubs
     types-s3transfer
     typing-extensions
   ];
 
   passthru.optional-dependencies = {
-    accessanalyzer = [
-      mypy-boto3-accessanalyzer
-    ];
-    account = [
-      mypy-boto3-account
-    ];
-    acm = [
-      mypy-boto3-acm
-    ];
-    acm-pca = [
-      mypy-boto3-acm-pca
-    ];
-    alexaforbusiness = [
-      mypy-boto3-alexaforbusiness
-    ];
+    accessanalyzer = [ mypy-boto3-accessanalyzer ];
+    account = [ mypy-boto3-account ];
+    acm = [ mypy-boto3-acm ];
+    acm-pca = [ mypy-boto3-acm-pca ];
+    alexaforbusiness = [ mypy-boto3-alexaforbusiness ];
     all = [
       mypy-boto3-accessanalyzer
       mypy-boto3-account
@@ -756,355 +746,125 @@ buildPythonPackage rec {
       mypy-boto3-workspaces-web
       mypy-boto3-xray
     ];
-    amp = [
-      mypy-boto3-amp
-    ];
-    amplify = [
-      mypy-boto3-amplify
-    ];
-    amplifybackend = [
-      mypy-boto3-amplifybackend
-    ];
-    amplifyuibuilder = [
-      mypy-boto3-amplifyuibuilder
-    ];
-    apigateway = [
-      mypy-boto3-apigateway
-    ];
-    apigatewaymanagementapi = [
-      mypy-boto3-apigatewaymanagementapi
-    ];
-    apigatewayv2 = [
-      mypy-boto3-apigatewayv2
-    ];
-    appconfig = [
-      mypy-boto3-appconfig
-    ];
-    appconfigdata = [
-      mypy-boto3-appconfigdata
-    ];
-    appfabric = [
-      mypy-boto3-appfabric
-    ];
-    appflow = [
-      mypy-boto3-appflow
-    ];
-    appintegrations = [
-      mypy-boto3-appintegrations
-    ];
-    application-autoscaling = [
-      mypy-boto3-application-autoscaling
-    ];
-    application-insights = [
-      mypy-boto3-application-insights
-    ];
-    applicationcostprofiler = [
-      mypy-boto3-applicationcostprofiler
-    ];
-    appmesh = [
-      mypy-boto3-appmesh
-    ];
-    apprunner = [
-      mypy-boto3-apprunner
-    ];
-    appstream = [
-      mypy-boto3-appstream
-    ];
-    appsync = [
-      mypy-boto3-appsync
-    ];
-    arc-zonal-shift = [
-      mypy-boto3-arc-zonal-shift
-    ];
-    athena = [
-      mypy-boto3-athena
-    ];
-    auditmanager = [
-      mypy-boto3-auditmanager
-    ];
-    autoscaling = [
-      mypy-boto3-autoscaling
-    ];
-    autoscaling-plans = [
-      mypy-boto3-autoscaling-plans
-    ];
-    backup = [
-      mypy-boto3-backup
-    ];
-    backup-gateway = [
-      mypy-boto3-backup-gateway
-    ];
-    backupstorage = [
-      mypy-boto3-backupstorage
-    ];
-    batch = [
-      mypy-boto3-batch
-    ];
-    billingconductor = [
-      mypy-boto3-billingconductor
-    ];
+    amp = [ mypy-boto3-amp ];
+    amplify = [ mypy-boto3-amplify ];
+    amplifybackend = [ mypy-boto3-amplifybackend ];
+    amplifyuibuilder = [ mypy-boto3-amplifyuibuilder ];
+    apigateway = [ mypy-boto3-apigateway ];
+    apigatewaymanagementapi = [ mypy-boto3-apigatewaymanagementapi ];
+    apigatewayv2 = [ mypy-boto3-apigatewayv2 ];
+    appconfig = [ mypy-boto3-appconfig ];
+    appconfigdata = [ mypy-boto3-appconfigdata ];
+    appfabric = [ mypy-boto3-appfabric ];
+    appflow = [ mypy-boto3-appflow ];
+    appintegrations = [ mypy-boto3-appintegrations ];
+    application-autoscaling = [ mypy-boto3-application-autoscaling ];
+    application-insights = [ mypy-boto3-application-insights ];
+    applicationcostprofiler = [ mypy-boto3-applicationcostprofiler ];
+    appmesh = [ mypy-boto3-appmesh ];
+    apprunner = [ mypy-boto3-apprunner ];
+    appstream = [ mypy-boto3-appstream ];
+    appsync = [ mypy-boto3-appsync ];
+    arc-zonal-shift = [ mypy-boto3-arc-zonal-shift ];
+    athena = [ mypy-boto3-athena ];
+    auditmanager = [ mypy-boto3-auditmanager ];
+    autoscaling = [ mypy-boto3-autoscaling ];
+    autoscaling-plans = [ mypy-boto3-autoscaling-plans ];
+    backup = [ mypy-boto3-backup ];
+    backup-gateway = [ mypy-boto3-backup-gateway ];
+    backupstorage = [ mypy-boto3-backupstorage ];
+    batch = [ mypy-boto3-batch ];
+    billingconductor = [ mypy-boto3-billingconductor ];
     boto3 = [
       boto3
       botocore
     ];
-    braket = [
-      mypy-boto3-braket
-    ];
-    budgets = [
-      mypy-boto3-budgets
-    ];
-    ce = [
-      mypy-boto3-ce
-    ];
-    chime = [
-      mypy-boto3-chime
-    ];
-    chime-sdk-identity = [
-      mypy-boto3-chime-sdk-identity
-    ];
-    chime-sdk-media-pipelines = [
-      mypy-boto3-chime-sdk-media-pipelines
-    ];
-    chime-sdk-meetings = [
-      mypy-boto3-chime-sdk-meetings
-    ];
-    chime-sdk-messaging = [
-      mypy-boto3-chime-sdk-messaging
-    ];
-    chime-sdk-voice = [
-      mypy-boto3-chime-sdk-voice
-    ];
-    cleanrooms = [
-      mypy-boto3-cleanrooms
-    ];
-    cloud9 = [
-      mypy-boto3-cloud9
-    ];
-    cloudcontrol = [
-      mypy-boto3-cloudcontrol
-    ];
-    clouddirectory = [
-      mypy-boto3-clouddirectory
-    ];
-    cloudformation = [
-      mypy-boto3-cloudformation
-    ];
-    cloudfront = [
-      mypy-boto3-cloudfront
-    ];
-    cloudhsm = [
-      mypy-boto3-cloudhsm
-    ];
-    cloudhsmv2 = [
-      mypy-boto3-cloudhsmv2
-    ];
-    cloudsearch = [
-      mypy-boto3-cloudsearch
-    ];
-    cloudsearchdomain = [
-      mypy-boto3-cloudsearchdomain
-    ];
-    cloudtrail = [
-      mypy-boto3-cloudtrail
-    ];
-    cloudtrail-data = [
-      mypy-boto3-cloudtrail-data
-    ];
-    cloudwatch = [
-      mypy-boto3-cloudwatch
-    ];
-    codeartifact = [
-      mypy-boto3-codeartifact
-    ];
-    codebuild = [
-      mypy-boto3-codebuild
-    ];
-    codecatalyst = [
-      mypy-boto3-codecatalyst
-    ];
-    codecommit = [
-      mypy-boto3-codecommit
-    ];
-    codedeploy = [
-      mypy-boto3-codedeploy
-    ];
-    codeguru-reviewer = [
-      mypy-boto3-codeguru-reviewer
-    ];
-    codeguru-security = [
-      mypy-boto3-codeguru-security
-    ];
-    codeguruprofiler = [
-      mypy-boto3-codeguruprofiler
-    ];
-    codepipeline = [
-      mypy-boto3-codepipeline
-    ];
-    codestar = [
-      mypy-boto3-codestar
-    ];
-    codestar-connections = [
-      mypy-boto3-codestar-connections
-    ];
-    codestar-notifications = [
-      mypy-boto3-codestar-notifications
-    ];
-    cognito-identity = [
-      mypy-boto3-cognito-identity
-    ];
-    cognito-idp = [
-      mypy-boto3-cognito-idp
-    ];
-    cognito-sync = [
-      mypy-boto3-cognito-sync
-    ];
-    comprehend = [
-      mypy-boto3-comprehend
-    ];
-    comprehendmedical = [
-      mypy-boto3-comprehendmedical
-    ];
-    compute-optimizer = [
-      mypy-boto3-compute-optimizer
-    ];
-    config = [
-      mypy-boto3-config
-    ];
-    connect = [
-      mypy-boto3-connect
-    ];
-    connect-contact-lens = [
-      mypy-boto3-connect-contact-lens
-    ];
-    connectcampaigns = [
-      mypy-boto3-connectcampaigns
-    ];
-    connectcases = [
-      mypy-boto3-connectcases
-    ];
-    connectparticipant = [
-      mypy-boto3-connectparticipant
-    ];
-    controltower = [
-      mypy-boto3-controltower
-    ];
-    cur = [
-      mypy-boto3-cur
-    ];
-    customer-profiles = [
-      mypy-boto3-customer-profiles
-    ];
-    databrew = [
-      mypy-boto3-databrew
-    ];
-    dataexchange = [
-      mypy-boto3-dataexchange
-    ];
-    datapipeline = [
-      mypy-boto3-datapipeline
-    ];
-    datasync = [
-      mypy-boto3-datasync
-    ];
-    dax = [
-      mypy-boto3-dax
-    ];
-    detective = [
-      mypy-boto3-detective
-    ];
-    devicefarm = [
-      mypy-boto3-devicefarm
-    ];
-    devops-guru = [
-      mypy-boto3-devops-guru
-    ];
-    directconnect = [
-      mypy-boto3-directconnect
-    ];
-    discovery = [
-      mypy-boto3-discovery
-    ];
-    dlm = [
-      mypy-boto3-dlm
-    ];
-    dms = [
-      mypy-boto3-dms
-    ];
-    docdb = [
-      mypy-boto3-docdb
-    ];
-    docdb-elastic = [
-      mypy-boto3-docdb-elastic
-    ];
-    drs = [
-      mypy-boto3-drs
-    ];
-    ds = [
-      mypy-boto3-ds
-    ];
-    dynamodb = [
-      mypy-boto3-dynamodb
-    ];
-    dynamodbstreams = [
-      mypy-boto3-dynamodbstreams
-    ];
-    ebs = [
-      mypy-boto3-ebs
-    ];
-    ec2 = [
-      mypy-boto3-ec2
-    ];
-    ec2-instance-connect = [
-      mypy-boto3-ec2-instance-connect
-    ];
-    ecr = [
-      mypy-boto3-ecr
-    ];
-    ecr-public = [
-      mypy-boto3-ecr-public
-    ];
-    ecs = [
-      mypy-boto3-ecs
-    ];
-    efs = [
-      mypy-boto3-efs
-    ];
-    eks = [
-      mypy-boto3-eks
-    ];
-    elastic-inference = [
-      mypy-boto3-elastic-inference
-    ];
-    elasticache = [
-      mypy-boto3-elasticache
-    ];
-    elasticbeanstalk = [
-      mypy-boto3-elasticbeanstalk
-    ];
-    elastictranscoder = [
-      mypy-boto3-elastictranscoder
-    ];
-    elb = [
-      mypy-boto3-elb
-    ];
-    elbv2 = [
-      mypy-boto3-elbv2
-    ];
-    emr = [
-      mypy-boto3-emr
-    ];
-    emr-containers = [
-      mypy-boto3-emr-containers
-    ];
-    emr-serverless = [
-      mypy-boto3-emr-serverless
-    ];
-    entityresolution = [
-      mypy-boto3-entityresolution
-    ];
-    es = [
-      mypy-boto3-es
-    ];
+    braket = [ mypy-boto3-braket ];
+    budgets = [ mypy-boto3-budgets ];
+    ce = [ mypy-boto3-ce ];
+    chime = [ mypy-boto3-chime ];
+    chime-sdk-identity = [ mypy-boto3-chime-sdk-identity ];
+    chime-sdk-media-pipelines = [ mypy-boto3-chime-sdk-media-pipelines ];
+    chime-sdk-meetings = [ mypy-boto3-chime-sdk-meetings ];
+    chime-sdk-messaging = [ mypy-boto3-chime-sdk-messaging ];
+    chime-sdk-voice = [ mypy-boto3-chime-sdk-voice ];
+    cleanrooms = [ mypy-boto3-cleanrooms ];
+    cloud9 = [ mypy-boto3-cloud9 ];
+    cloudcontrol = [ mypy-boto3-cloudcontrol ];
+    clouddirectory = [ mypy-boto3-clouddirectory ];
+    cloudformation = [ mypy-boto3-cloudformation ];
+    cloudfront = [ mypy-boto3-cloudfront ];
+    cloudhsm = [ mypy-boto3-cloudhsm ];
+    cloudhsmv2 = [ mypy-boto3-cloudhsmv2 ];
+    cloudsearch = [ mypy-boto3-cloudsearch ];
+    cloudsearchdomain = [ mypy-boto3-cloudsearchdomain ];
+    cloudtrail = [ mypy-boto3-cloudtrail ];
+    cloudtrail-data = [ mypy-boto3-cloudtrail-data ];
+    cloudwatch = [ mypy-boto3-cloudwatch ];
+    codeartifact = [ mypy-boto3-codeartifact ];
+    codebuild = [ mypy-boto3-codebuild ];
+    codecatalyst = [ mypy-boto3-codecatalyst ];
+    codecommit = [ mypy-boto3-codecommit ];
+    codedeploy = [ mypy-boto3-codedeploy ];
+    codeguru-reviewer = [ mypy-boto3-codeguru-reviewer ];
+    codeguru-security = [ mypy-boto3-codeguru-security ];
+    codeguruprofiler = [ mypy-boto3-codeguruprofiler ];
+    codepipeline = [ mypy-boto3-codepipeline ];
+    codestar = [ mypy-boto3-codestar ];
+    codestar-connections = [ mypy-boto3-codestar-connections ];
+    codestar-notifications = [ mypy-boto3-codestar-notifications ];
+    cognito-identity = [ mypy-boto3-cognito-identity ];
+    cognito-idp = [ mypy-boto3-cognito-idp ];
+    cognito-sync = [ mypy-boto3-cognito-sync ];
+    comprehend = [ mypy-boto3-comprehend ];
+    comprehendmedical = [ mypy-boto3-comprehendmedical ];
+    compute-optimizer = [ mypy-boto3-compute-optimizer ];
+    config = [ mypy-boto3-config ];
+    connect = [ mypy-boto3-connect ];
+    connect-contact-lens = [ mypy-boto3-connect-contact-lens ];
+    connectcampaigns = [ mypy-boto3-connectcampaigns ];
+    connectcases = [ mypy-boto3-connectcases ];
+    connectparticipant = [ mypy-boto3-connectparticipant ];
+    controltower = [ mypy-boto3-controltower ];
+    cur = [ mypy-boto3-cur ];
+    customer-profiles = [ mypy-boto3-customer-profiles ];
+    databrew = [ mypy-boto3-databrew ];
+    dataexchange = [ mypy-boto3-dataexchange ];
+    datapipeline = [ mypy-boto3-datapipeline ];
+    datasync = [ mypy-boto3-datasync ];
+    dax = [ mypy-boto3-dax ];
+    detective = [ mypy-boto3-detective ];
+    devicefarm = [ mypy-boto3-devicefarm ];
+    devops-guru = [ mypy-boto3-devops-guru ];
+    directconnect = [ mypy-boto3-directconnect ];
+    discovery = [ mypy-boto3-discovery ];
+    dlm = [ mypy-boto3-dlm ];
+    dms = [ mypy-boto3-dms ];
+    docdb = [ mypy-boto3-docdb ];
+    docdb-elastic = [ mypy-boto3-docdb-elastic ];
+    drs = [ mypy-boto3-drs ];
+    ds = [ mypy-boto3-ds ];
+    dynamodb = [ mypy-boto3-dynamodb ];
+    dynamodbstreams = [ mypy-boto3-dynamodbstreams ];
+    ebs = [ mypy-boto3-ebs ];
+    ec2 = [ mypy-boto3-ec2 ];
+    ec2-instance-connect = [ mypy-boto3-ec2-instance-connect ];
+    ecr = [ mypy-boto3-ecr ];
+    ecr-public = [ mypy-boto3-ecr-public ];
+    ecs = [ mypy-boto3-ecs ];
+    efs = [ mypy-boto3-efs ];
+    eks = [ mypy-boto3-eks ];
+    elastic-inference = [ mypy-boto3-elastic-inference ];
+    elasticache = [ mypy-boto3-elasticache ];
+    elasticbeanstalk = [ mypy-boto3-elasticbeanstalk ];
+    elastictranscoder = [ mypy-boto3-elastictranscoder ];
+    elb = [ mypy-boto3-elb ];
+    elbv2 = [ mypy-boto3-elbv2 ];
+    emr = [ mypy-boto3-emr ];
+    emr-containers = [ mypy-boto3-emr-containers ];
+    emr-serverless = [ mypy-boto3-emr-serverless ];
+    entityresolution = [ mypy-boto3-entityresolution ];
+    es = [ mypy-boto3-es ];
     essential = [
       mypy-boto3-cloudformation
       mypy-boto3-dynamodb
@@ -1114,718 +874,253 @@ buildPythonPackage rec {
       mypy-boto3-s3
       mypy-boto3-sqs
     ];
-    events = [
-      mypy-boto3-events
-    ];
-    evidently = [
-      mypy-boto3-evidently
-    ];
-    finspace = [
-      mypy-boto3-finspace
-    ];
-    finspace-data = [
-      mypy-boto3-finspace-data
-    ];
-    firehose = [
-      mypy-boto3-firehose
-    ];
-    fis = [
-      mypy-boto3-fis
-    ];
-    fms = [
-      mypy-boto3-fms
-    ];
-    forecast = [
-      mypy-boto3-forecast
-    ];
-    forecastquery = [
-      mypy-boto3-forecastquery
-    ];
-    frauddetector = [
-      mypy-boto3-frauddetector
-    ];
-    fsx = [
-      mypy-boto3-fsx
-    ];
-    gamelift = [
-      mypy-boto3-gamelift
-    ];
-    gamesparks = [
-      mypy-boto3-gamesparks
-    ];
-    glacier = [
-      mypy-boto3-glacier
-    ];
-    globalaccelerator = [
-      mypy-boto3-globalaccelerator
-    ];
-    glue = [
-      mypy-boto3-glue
-    ];
-    grafana = [
-      mypy-boto3-grafana
-    ];
-    greengrass = [
-      mypy-boto3-greengrass
-    ];
-    greengrassv2 = [
-      mypy-boto3-greengrassv2
-    ];
-    groundstation = [
-      mypy-boto3-groundstation
-    ];
-    guardduty = [
-      mypy-boto3-guardduty
-    ];
-    health = [
-      mypy-boto3-health
-    ];
-    healthlake = [
-      mypy-boto3-healthlake
-    ];
-    honeycode = [
-      mypy-boto3-honeycode
-    ];
-    iam = [
-      mypy-boto3-iam
-    ];
-    identitystore = [
-      mypy-boto3-identitystore
-    ];
-    imagebuilder = [
-      mypy-boto3-imagebuilder
-    ];
-    importexport = [
-      mypy-boto3-importexport
-    ];
-    inspector = [
-      mypy-boto3-inspector
-    ];
-    inspector2 = [
-      mypy-boto3-inspector2
-    ];
-    internetmonitor = [
-      mypy-boto3-internetmonitor
-    ];
-    iot = [
-      mypy-boto3-iot
-    ];
-    iot-data = [
-      mypy-boto3-iot-data
-    ];
-    iot-jobs-data = [
-      mypy-boto3-iot-jobs-data
-    ];
-    iot-roborunner = [
-      mypy-boto3-iot-roborunner
-    ];
-    iot1click-devices = [
-      mypy-boto3-iot1click-devices
-    ];
-    iot1click-projects = [
-      mypy-boto3-iot1click-projects
-    ];
-    iotanalytics = [
-      mypy-boto3-iotanalytics
-    ];
-    iotdeviceadvisor = [
-      mypy-boto3-iotdeviceadvisor
-    ];
-    iotevents = [
-      mypy-boto3-iotevents
-    ];
-    iotevents-data = [
-      mypy-boto3-iotevents-data
-    ];
-    iotfleethub = [
-      mypy-boto3-iotfleethub
-    ];
-    iotfleetwise = [
-      mypy-boto3-iotfleetwise
-    ];
-    iotsecuretunneling = [
-      mypy-boto3-iotsecuretunneling
-    ];
-    iotsitewise = [
-      mypy-boto3-iotsitewise
-    ];
-    iotthingsgraph = [
-      mypy-boto3-iotthingsgraph
-    ];
-    iottwinmaker = [
-      mypy-boto3-iottwinmaker
-    ];
-    iotwireless = [
-      mypy-boto3-iotwireless
-    ];
-    ivs = [
-      mypy-boto3-ivs
-    ];
-    ivs-realtime = [
-      mypy-boto3-ivs-realtime
-    ];
-    ivschat = [
-      mypy-boto3-ivschat
-    ];
-    kafka = [
-      mypy-boto3-kafka
-    ];
-    kafkaconnect = [
-      mypy-boto3-kafkaconnect
-    ];
-    kendra = [
-      mypy-boto3-kendra
-    ];
-    kendra-ranking = [
-      mypy-boto3-kendra-ranking
-    ];
-    keyspaces = [
-      mypy-boto3-keyspaces
-    ];
-    kinesis = [
-      mypy-boto3-kinesis
-    ];
-    kinesis-video-archived-media = [
-      mypy-boto3-kinesis-video-archived-media
-    ];
-    kinesis-video-media = [
-      mypy-boto3-kinesis-video-media
-    ];
-    kinesis-video-signaling = [
-      mypy-boto3-kinesis-video-signaling
-    ];
-    kinesis-video-webrtc-storage = [
-      mypy-boto3-kinesis-video-webrtc-storage
-    ];
-    kinesisanalytics = [
-      mypy-boto3-kinesisanalytics
-    ];
-    kinesisanalyticsv2 = [
-      mypy-boto3-kinesisanalyticsv2
-    ];
-    kinesisvideo = [
-      mypy-boto3-kinesisvideo
-    ];
-    kms = [
-      mypy-boto3-kms
-    ];
-    lakeformation = [
-      mypy-boto3-lakeformation
-    ];
-    lambda = [
-      mypy-boto3-lambda
-    ];
-    lex-models = [
-      mypy-boto3-lex-models
-    ];
-    lex-runtime = [
-      mypy-boto3-lex-runtime
-    ];
-    lexv2-models = [
-      mypy-boto3-lexv2-models
-    ];
-    lexv2-runtime = [
-      mypy-boto3-lexv2-runtime
-    ];
-    license-manager = [
-      mypy-boto3-license-manager
-    ];
-    license-manager-linux-subscriptions = [
-      mypy-boto3-license-manager-linux-subscriptions
-    ];
-    license-manager-user-subscriptions = [
-      mypy-boto3-license-manager-user-subscriptions
-    ];
-    lightsail = [
-      mypy-boto3-lightsail
-    ];
-    location = [
-      mypy-boto3-location
-    ];
-    logs = [
-      mypy-boto3-logs
-    ];
-    lookoutequipment = [
-      mypy-boto3-lookoutequipment
-    ];
-    lookoutmetrics = [
-      mypy-boto3-lookoutmetrics
-    ];
-    lookoutvision = [
-      mypy-boto3-lookoutvision
-    ];
-    m2 = [
-      mypy-boto3-m2
-    ];
-    machinelearning = [
-      mypy-boto3-machinelearning
-    ];
-    macie = [
-      mypy-boto3-macie
-    ];
-    macie2 = [
-      mypy-boto3-macie2
-    ];
-    managedblockchain = [
-      mypy-boto3-managedblockchain
-    ];
-    managedblockchain-query = [
-      mypy-boto3-managedblockchain-query
-    ];
-    marketplace-catalog = [
-      mypy-boto3-marketplace-catalog
-    ];
-    marketplace-entitlement = [
-      mypy-boto3-marketplace-entitlement
-    ];
-    marketplacecommerceanalytics = [
-      mypy-boto3-marketplacecommerceanalytics
-    ];
-    mediaconnect = [
-      mypy-boto3-mediaconnect
-    ];
-    mediaconvert = [
-      mypy-boto3-mediaconvert
-    ];
-    medialive = [
-      mypy-boto3-medialive
-    ];
-    mediapackage = [
-      mypy-boto3-mediapackage
-    ];
-    mediapackage-vod = [
-      mypy-boto3-mediapackage-vod
-    ];
-    mediapackagev2 = [
-      mypy-boto3-mediapackagev2
-    ];
-    mediastore = [
-      mypy-boto3-mediastore
-    ];
-    mediastore-data = [
-      mypy-boto3-mediastore-data
-    ];
-    mediatailor = [
-      mypy-boto3-mediatailor
-    ];
-    medical-imaging = [
-      mypy-boto3-medical-imaging
-    ];
-    memorydb = [
-      mypy-boto3-memorydb
-    ];
-    meteringmarketplace = [
-      mypy-boto3-meteringmarketplace
-    ];
-    mgh = [
-      mypy-boto3-mgh
-    ];
-    mgn = [
-      mypy-boto3-mgn
-    ];
-    migration-hub-refactor-spaces = [
-      mypy-boto3-migration-hub-refactor-spaces
-    ];
-    migrationhub-config = [
-      mypy-boto3-migrationhub-config
-    ];
-    migrationhuborchestrator = [
-      mypy-boto3-migrationhuborchestrator
-    ];
-    migrationhubstrategy = [
-      mypy-boto3-migrationhubstrategy
-    ];
-    mobile = [
-      mypy-boto3-mobile
-    ];
-    mq = [
-      mypy-boto3-mq
-    ];
-    mturk = [
-      mypy-boto3-mturk
-    ];
-    mwaa = [
-      mypy-boto3-mwaa
-    ];
-    neptune = [
-      mypy-boto3-neptune
-    ];
-    network-firewall = [
-      mypy-boto3-network-firewall
-    ];
-    networkmanager = [
-      mypy-boto3-networkmanager
-    ];
-    nimble = [
-      mypy-boto3-nimble
-    ];
-    oam = [
-      mypy-boto3-oam
-    ];
-    omics = [
-      mypy-boto3-omics
-    ];
-    opensearch = [
-      mypy-boto3-opensearch
-    ];
-    opensearchserverless = [
-      mypy-boto3-opensearchserverless
-    ];
-    opsworks = [
-      mypy-boto3-opsworks
-    ];
-    opsworkscm = [
-      mypy-boto3-opsworkscm
-    ];
-    organizations = [
-      mypy-boto3-organizations
-    ];
-    osis = [
-      mypy-boto3-osis
-    ];
-    outposts = [
-      mypy-boto3-outposts
-    ];
-    panorama = [
-      mypy-boto3-panorama
-    ];
-    payment-cryptography = [
-      mypy-boto3-payment-cryptography
-    ];
-    payment-cryptography-data = [
-      mypy-boto3-payment-cryptography-data
-    ];
-    personalize = [
-      mypy-boto3-personalize
-    ];
-    personalize-events = [
-      mypy-boto3-personalize-events
-    ];
-    personalize-runtime = [
-      mypy-boto3-personalize-runtime
-    ];
-    pi = [
-      mypy-boto3-pi
-    ];
-    pinpoint = [
-      mypy-boto3-pinpoint
-    ];
-    pinpoint-email = [
-      mypy-boto3-pinpoint-email
-    ];
-    pinpoint-sms-voice = [
-      mypy-boto3-pinpoint-sms-voice
-    ];
-    pinpoint-sms-voice-v2 = [
-      mypy-boto3-pinpoint-sms-voice-v2
-    ];
-    pipes = [
-      mypy-boto3-pipes
-    ];
-    polly = [
-      mypy-boto3-polly
-    ];
-    pricing = [
-      mypy-boto3-pricing
-    ];
-    privatenetworks = [
-      mypy-boto3-privatenetworks
-    ];
-    proton = [
-      mypy-boto3-proton
-    ];
-    qldb = [
-      mypy-boto3-qldb
-    ];
-    qldb-session = [
-      mypy-boto3-qldb-session
-    ];
-    quicksight = [
-      mypy-boto3-quicksight
-    ];
-    ram = [
-      mypy-boto3-ram
-    ];
-    rbin = [
-      mypy-boto3-rbin
-    ];
-    rds = [
-      mypy-boto3-rds
-    ];
-    rds-data = [
-      mypy-boto3-rds-data
-    ];
-    redshift = [
-      mypy-boto3-redshift
-    ];
-    redshift-data = [
-      mypy-boto3-redshift-data
-    ];
-    redshift-serverless = [
-      mypy-boto3-redshift-serverless
-    ];
-    rekognition = [
-      mypy-boto3-rekognition
-    ];
-    resiliencehub = [
-      mypy-boto3-resiliencehub
-    ];
-    resource-explorer-2 = [
-      mypy-boto3-resource-explorer-2
-    ];
-    resource-groups = [
-      mypy-boto3-resource-groups
-    ];
-    resourcegroupstaggingapi = [
-      mypy-boto3-resourcegroupstaggingapi
-    ];
-    robomaker = [
-      mypy-boto3-robomaker
-    ];
-    rolesanywhere = [
-      mypy-boto3-rolesanywhere
-    ];
-    route53 = [
-      mypy-boto3-route53
-    ];
-    route53-recovery-cluster = [
-      mypy-boto3-route53-recovery-cluster
-    ];
-    route53-recovery-control-config = [
-      mypy-boto3-route53-recovery-control-config
-    ];
-    route53-recovery-readiness = [
-      mypy-boto3-route53-recovery-readiness
-    ];
-    route53domains = [
-      mypy-boto3-route53domains
-    ];
-    route53resolver = [
-      mypy-boto3-route53resolver
-    ];
-    rum = [
-      mypy-boto3-rum
-    ];
-    s3 = [
-      mypy-boto3-s3
-    ];
-    s3control = [
-      mypy-boto3-s3control
-    ];
-    s3outposts = [
-      mypy-boto3-s3outposts
-    ];
-    sagemaker = [
-      mypy-boto3-sagemaker
-    ];
-    sagemaker-a2i-runtime = [
-      mypy-boto3-sagemaker-a2i-runtime
-    ];
-    sagemaker-edge = [
-      mypy-boto3-sagemaker-edge
-    ];
-    sagemaker-featurestore-runtime = [
-      mypy-boto3-sagemaker-featurestore-runtime
-    ];
-    sagemaker-geospatial = [
-      mypy-boto3-sagemaker-geospatial
-    ];
-    sagemaker-metrics = [
-      mypy-boto3-sagemaker-metrics
-    ];
-    sagemaker-runtime = [
-      mypy-boto3-sagemaker-runtime
-    ];
-    savingsplans = [
-      mypy-boto3-savingsplans
-    ];
-    scheduler = [
-      mypy-boto3-scheduler
-    ];
-    schemas = [
-      mypy-boto3-schemas
-    ];
-    sdb = [
-      mypy-boto3-sdb
-    ];
-    secretsmanager = [
-      mypy-boto3-secretsmanager
-    ];
-    securityhub = [
-      mypy-boto3-securityhub
-    ];
-    securitylake = [
-      mypy-boto3-securitylake
-    ];
-    serverlessrepo = [
-      mypy-boto3-serverlessrepo
-    ];
-    service-quotas = [
-      mypy-boto3-service-quotas
-    ];
-    servicecatalog = [
-      mypy-boto3-servicecatalog
-    ];
-    servicecatalog-appregistry = [
-      mypy-boto3-servicecatalog-appregistry
-    ];
-    servicediscovery = [
-      mypy-boto3-servicediscovery
-    ];
-    ses = [
-      mypy-boto3-ses
-    ];
-    sesv2 = [
-      mypy-boto3-sesv2
-    ];
-    shield = [
-      mypy-boto3-shield
-    ];
-    signer = [
-      mypy-boto3-signer
-    ];
-    simspaceweaver = [
-      mypy-boto3-simspaceweaver
-    ];
-    sms = [
-      mypy-boto3-sms
-    ];
-    sms-voice = [
-      mypy-boto3-sms-voice
-    ];
-    snow-device-management = [
-      mypy-boto3-snow-device-management
-    ];
-    snowball = [
-      mypy-boto3-snowball
-    ];
-    sns = [
-      mypy-boto3-sns
-    ];
-    sqs = [
-      mypy-boto3-sqs
-    ];
-    ssm = [
-      mypy-boto3-ssm
-    ];
-    ssm-contacts = [
-      mypy-boto3-ssm-contacts
-    ];
-    ssm-incidents = [
-      mypy-boto3-ssm-incidents
-    ];
-    ssm-sap = [
-      mypy-boto3-ssm-sap
-    ];
-    sso = [
-      mypy-boto3-sso
-    ];
-    sso-admin = [
-      mypy-boto3-sso-admin
-    ];
-    sso-oidc = [
-      mypy-boto3-sso-oidc
-    ];
-    stepfunctions = [
-      mypy-boto3-stepfunctions
-    ];
-    storagegateway = [
-      mypy-boto3-storagegateway
-    ];
-    sts = [
-      mypy-boto3-sts
-    ];
-    support = [
-      mypy-boto3-support
-    ];
-    support-app = [
-      mypy-boto3-support-app
-    ];
-    swf = [
-      mypy-boto3-swf
-    ];
-    synthetics = [
-      mypy-boto3-synthetics
-    ];
-    textract = [
-      mypy-boto3-textract
-    ];
-    timestream-query = [
-      mypy-boto3-timestream-query
-    ];
-    timestream-write = [
-      mypy-boto3-timestream-write
-    ];
-    tnb = [
-      mypy-boto3-tnb
-    ];
-    transcribe = [
-      mypy-boto3-transcribe
-    ];
-    transfer = [
-      mypy-boto3-transfer
-    ];
-    translate = [
-      mypy-boto3-translate
-    ];
-    verifiedpermissions = [
-      mypy-boto3-verifiedpermissions
-    ];
-    voice-id = [
-      mypy-boto3-voice-id
-    ];
-    vpc-lattice = [
-      mypy-boto3-vpc-lattice
-    ];
-    waf = [
-      mypy-boto3-waf
-    ];
-    waf-regional = [
-      mypy-boto3-waf-regional
-    ];
-    wafv2 = [
-      mypy-boto3-wafv2
-    ];
-    wellarchitected = [
-      mypy-boto3-wellarchitected
-    ];
-    wisdom = [
-      mypy-boto3-wisdom
-    ];
-    workdocs = [
-      mypy-boto3-workdocs
-    ];
-    worklink = [
-      mypy-boto3-worklink
-    ];
-    workmail = [
-      mypy-boto3-workmail
-    ];
-    workmailmessageflow = [
-      mypy-boto3-workmailmessageflow
-    ];
-    workspaces = [
-      mypy-boto3-workspaces
-    ];
-    workspaces-web = [
-      mypy-boto3-workspaces-web
-    ];
-    xray = [
-      mypy-boto3-xray
-    ];
+    events = [ mypy-boto3-events ];
+    evidently = [ mypy-boto3-evidently ];
+    finspace = [ mypy-boto3-finspace ];
+    finspace-data = [ mypy-boto3-finspace-data ];
+    firehose = [ mypy-boto3-firehose ];
+    fis = [ mypy-boto3-fis ];
+    fms = [ mypy-boto3-fms ];
+    forecast = [ mypy-boto3-forecast ];
+    forecastquery = [ mypy-boto3-forecastquery ];
+    frauddetector = [ mypy-boto3-frauddetector ];
+    fsx = [ mypy-boto3-fsx ];
+    gamelift = [ mypy-boto3-gamelift ];
+    gamesparks = [ mypy-boto3-gamesparks ];
+    glacier = [ mypy-boto3-glacier ];
+    globalaccelerator = [ mypy-boto3-globalaccelerator ];
+    glue = [ mypy-boto3-glue ];
+    grafana = [ mypy-boto3-grafana ];
+    greengrass = [ mypy-boto3-greengrass ];
+    greengrassv2 = [ mypy-boto3-greengrassv2 ];
+    groundstation = [ mypy-boto3-groundstation ];
+    guardduty = [ mypy-boto3-guardduty ];
+    health = [ mypy-boto3-health ];
+    healthlake = [ mypy-boto3-healthlake ];
+    honeycode = [ mypy-boto3-honeycode ];
+    iam = [ mypy-boto3-iam ];
+    identitystore = [ mypy-boto3-identitystore ];
+    imagebuilder = [ mypy-boto3-imagebuilder ];
+    importexport = [ mypy-boto3-importexport ];
+    inspector = [ mypy-boto3-inspector ];
+    inspector2 = [ mypy-boto3-inspector2 ];
+    internetmonitor = [ mypy-boto3-internetmonitor ];
+    iot = [ mypy-boto3-iot ];
+    iot-data = [ mypy-boto3-iot-data ];
+    iot-jobs-data = [ mypy-boto3-iot-jobs-data ];
+    iot-roborunner = [ mypy-boto3-iot-roborunner ];
+    iot1click-devices = [ mypy-boto3-iot1click-devices ];
+    iot1click-projects = [ mypy-boto3-iot1click-projects ];
+    iotanalytics = [ mypy-boto3-iotanalytics ];
+    iotdeviceadvisor = [ mypy-boto3-iotdeviceadvisor ];
+    iotevents = [ mypy-boto3-iotevents ];
+    iotevents-data = [ mypy-boto3-iotevents-data ];
+    iotfleethub = [ mypy-boto3-iotfleethub ];
+    iotfleetwise = [ mypy-boto3-iotfleetwise ];
+    iotsecuretunneling = [ mypy-boto3-iotsecuretunneling ];
+    iotsitewise = [ mypy-boto3-iotsitewise ];
+    iotthingsgraph = [ mypy-boto3-iotthingsgraph ];
+    iottwinmaker = [ mypy-boto3-iottwinmaker ];
+    iotwireless = [ mypy-boto3-iotwireless ];
+    ivs = [ mypy-boto3-ivs ];
+    ivs-realtime = [ mypy-boto3-ivs-realtime ];
+    ivschat = [ mypy-boto3-ivschat ];
+    kafka = [ mypy-boto3-kafka ];
+    kafkaconnect = [ mypy-boto3-kafkaconnect ];
+    kendra = [ mypy-boto3-kendra ];
+    kendra-ranking = [ mypy-boto3-kendra-ranking ];
+    keyspaces = [ mypy-boto3-keyspaces ];
+    kinesis = [ mypy-boto3-kinesis ];
+    kinesis-video-archived-media = [ mypy-boto3-kinesis-video-archived-media ];
+    kinesis-video-media = [ mypy-boto3-kinesis-video-media ];
+    kinesis-video-signaling = [ mypy-boto3-kinesis-video-signaling ];
+    kinesis-video-webrtc-storage = [ mypy-boto3-kinesis-video-webrtc-storage ];
+    kinesisanalytics = [ mypy-boto3-kinesisanalytics ];
+    kinesisanalyticsv2 = [ mypy-boto3-kinesisanalyticsv2 ];
+    kinesisvideo = [ mypy-boto3-kinesisvideo ];
+    kms = [ mypy-boto3-kms ];
+    lakeformation = [ mypy-boto3-lakeformation ];
+    lambda = [ mypy-boto3-lambda ];
+    lex-models = [ mypy-boto3-lex-models ];
+    lex-runtime = [ mypy-boto3-lex-runtime ];
+    lexv2-models = [ mypy-boto3-lexv2-models ];
+    lexv2-runtime = [ mypy-boto3-lexv2-runtime ];
+    license-manager = [ mypy-boto3-license-manager ];
+    license-manager-linux-subscriptions = [ mypy-boto3-license-manager-linux-subscriptions ];
+    license-manager-user-subscriptions = [ mypy-boto3-license-manager-user-subscriptions ];
+    lightsail = [ mypy-boto3-lightsail ];
+    location = [ mypy-boto3-location ];
+    logs = [ mypy-boto3-logs ];
+    lookoutequipment = [ mypy-boto3-lookoutequipment ];
+    lookoutmetrics = [ mypy-boto3-lookoutmetrics ];
+    lookoutvision = [ mypy-boto3-lookoutvision ];
+    m2 = [ mypy-boto3-m2 ];
+    machinelearning = [ mypy-boto3-machinelearning ];
+    macie = [ mypy-boto3-macie ];
+    macie2 = [ mypy-boto3-macie2 ];
+    managedblockchain = [ mypy-boto3-managedblockchain ];
+    managedblockchain-query = [ mypy-boto3-managedblockchain-query ];
+    marketplace-catalog = [ mypy-boto3-marketplace-catalog ];
+    marketplace-entitlement = [ mypy-boto3-marketplace-entitlement ];
+    marketplacecommerceanalytics = [ mypy-boto3-marketplacecommerceanalytics ];
+    mediaconnect = [ mypy-boto3-mediaconnect ];
+    mediaconvert = [ mypy-boto3-mediaconvert ];
+    medialive = [ mypy-boto3-medialive ];
+    mediapackage = [ mypy-boto3-mediapackage ];
+    mediapackage-vod = [ mypy-boto3-mediapackage-vod ];
+    mediapackagev2 = [ mypy-boto3-mediapackagev2 ];
+    mediastore = [ mypy-boto3-mediastore ];
+    mediastore-data = [ mypy-boto3-mediastore-data ];
+    mediatailor = [ mypy-boto3-mediatailor ];
+    medical-imaging = [ mypy-boto3-medical-imaging ];
+    memorydb = [ mypy-boto3-memorydb ];
+    meteringmarketplace = [ mypy-boto3-meteringmarketplace ];
+    mgh = [ mypy-boto3-mgh ];
+    mgn = [ mypy-boto3-mgn ];
+    migration-hub-refactor-spaces = [ mypy-boto3-migration-hub-refactor-spaces ];
+    migrationhub-config = [ mypy-boto3-migrationhub-config ];
+    migrationhuborchestrator = [ mypy-boto3-migrationhuborchestrator ];
+    migrationhubstrategy = [ mypy-boto3-migrationhubstrategy ];
+    mobile = [ mypy-boto3-mobile ];
+    mq = [ mypy-boto3-mq ];
+    mturk = [ mypy-boto3-mturk ];
+    mwaa = [ mypy-boto3-mwaa ];
+    neptune = [ mypy-boto3-neptune ];
+    network-firewall = [ mypy-boto3-network-firewall ];
+    networkmanager = [ mypy-boto3-networkmanager ];
+    nimble = [ mypy-boto3-nimble ];
+    oam = [ mypy-boto3-oam ];
+    omics = [ mypy-boto3-omics ];
+    opensearch = [ mypy-boto3-opensearch ];
+    opensearchserverless = [ mypy-boto3-opensearchserverless ];
+    opsworks = [ mypy-boto3-opsworks ];
+    opsworkscm = [ mypy-boto3-opsworkscm ];
+    organizations = [ mypy-boto3-organizations ];
+    osis = [ mypy-boto3-osis ];
+    outposts = [ mypy-boto3-outposts ];
+    panorama = [ mypy-boto3-panorama ];
+    payment-cryptography = [ mypy-boto3-payment-cryptography ];
+    payment-cryptography-data = [ mypy-boto3-payment-cryptography-data ];
+    personalize = [ mypy-boto3-personalize ];
+    personalize-events = [ mypy-boto3-personalize-events ];
+    personalize-runtime = [ mypy-boto3-personalize-runtime ];
+    pi = [ mypy-boto3-pi ];
+    pinpoint = [ mypy-boto3-pinpoint ];
+    pinpoint-email = [ mypy-boto3-pinpoint-email ];
+    pinpoint-sms-voice = [ mypy-boto3-pinpoint-sms-voice ];
+    pinpoint-sms-voice-v2 = [ mypy-boto3-pinpoint-sms-voice-v2 ];
+    pipes = [ mypy-boto3-pipes ];
+    polly = [ mypy-boto3-polly ];
+    pricing = [ mypy-boto3-pricing ];
+    privatenetworks = [ mypy-boto3-privatenetworks ];
+    proton = [ mypy-boto3-proton ];
+    qldb = [ mypy-boto3-qldb ];
+    qldb-session = [ mypy-boto3-qldb-session ];
+    quicksight = [ mypy-boto3-quicksight ];
+    ram = [ mypy-boto3-ram ];
+    rbin = [ mypy-boto3-rbin ];
+    rds = [ mypy-boto3-rds ];
+    rds-data = [ mypy-boto3-rds-data ];
+    redshift = [ mypy-boto3-redshift ];
+    redshift-data = [ mypy-boto3-redshift-data ];
+    redshift-serverless = [ mypy-boto3-redshift-serverless ];
+    rekognition = [ mypy-boto3-rekognition ];
+    resiliencehub = [ mypy-boto3-resiliencehub ];
+    resource-explorer-2 = [ mypy-boto3-resource-explorer-2 ];
+    resource-groups = [ mypy-boto3-resource-groups ];
+    resourcegroupstaggingapi = [ mypy-boto3-resourcegroupstaggingapi ];
+    robomaker = [ mypy-boto3-robomaker ];
+    rolesanywhere = [ mypy-boto3-rolesanywhere ];
+    route53 = [ mypy-boto3-route53 ];
+    route53-recovery-cluster = [ mypy-boto3-route53-recovery-cluster ];
+    route53-recovery-control-config = [ mypy-boto3-route53-recovery-control-config ];
+    route53-recovery-readiness = [ mypy-boto3-route53-recovery-readiness ];
+    route53domains = [ mypy-boto3-route53domains ];
+    route53resolver = [ mypy-boto3-route53resolver ];
+    rum = [ mypy-boto3-rum ];
+    s3 = [ mypy-boto3-s3 ];
+    s3control = [ mypy-boto3-s3control ];
+    s3outposts = [ mypy-boto3-s3outposts ];
+    sagemaker = [ mypy-boto3-sagemaker ];
+    sagemaker-a2i-runtime = [ mypy-boto3-sagemaker-a2i-runtime ];
+    sagemaker-edge = [ mypy-boto3-sagemaker-edge ];
+    sagemaker-featurestore-runtime = [ mypy-boto3-sagemaker-featurestore-runtime ];
+    sagemaker-geospatial = [ mypy-boto3-sagemaker-geospatial ];
+    sagemaker-metrics = [ mypy-boto3-sagemaker-metrics ];
+    sagemaker-runtime = [ mypy-boto3-sagemaker-runtime ];
+    savingsplans = [ mypy-boto3-savingsplans ];
+    scheduler = [ mypy-boto3-scheduler ];
+    schemas = [ mypy-boto3-schemas ];
+    sdb = [ mypy-boto3-sdb ];
+    secretsmanager = [ mypy-boto3-secretsmanager ];
+    securityhub = [ mypy-boto3-securityhub ];
+    securitylake = [ mypy-boto3-securitylake ];
+    serverlessrepo = [ mypy-boto3-serverlessrepo ];
+    service-quotas = [ mypy-boto3-service-quotas ];
+    servicecatalog = [ mypy-boto3-servicecatalog ];
+    servicecatalog-appregistry = [ mypy-boto3-servicecatalog-appregistry ];
+    servicediscovery = [ mypy-boto3-servicediscovery ];
+    ses = [ mypy-boto3-ses ];
+    sesv2 = [ mypy-boto3-sesv2 ];
+    shield = [ mypy-boto3-shield ];
+    signer = [ mypy-boto3-signer ];
+    simspaceweaver = [ mypy-boto3-simspaceweaver ];
+    sms = [ mypy-boto3-sms ];
+    sms-voice = [ mypy-boto3-sms-voice ];
+    snow-device-management = [ mypy-boto3-snow-device-management ];
+    snowball = [ mypy-boto3-snowball ];
+    sns = [ mypy-boto3-sns ];
+    sqs = [ mypy-boto3-sqs ];
+    ssm = [ mypy-boto3-ssm ];
+    ssm-contacts = [ mypy-boto3-ssm-contacts ];
+    ssm-incidents = [ mypy-boto3-ssm-incidents ];
+    ssm-sap = [ mypy-boto3-ssm-sap ];
+    sso = [ mypy-boto3-sso ];
+    sso-admin = [ mypy-boto3-sso-admin ];
+    sso-oidc = [ mypy-boto3-sso-oidc ];
+    stepfunctions = [ mypy-boto3-stepfunctions ];
+    storagegateway = [ mypy-boto3-storagegateway ];
+    sts = [ mypy-boto3-sts ];
+    support = [ mypy-boto3-support ];
+    support-app = [ mypy-boto3-support-app ];
+    swf = [ mypy-boto3-swf ];
+    synthetics = [ mypy-boto3-synthetics ];
+    textract = [ mypy-boto3-textract ];
+    timestream-query = [ mypy-boto3-timestream-query ];
+    timestream-write = [ mypy-boto3-timestream-write ];
+    tnb = [ mypy-boto3-tnb ];
+    transcribe = [ mypy-boto3-transcribe ];
+    transfer = [ mypy-boto3-transfer ];
+    translate = [ mypy-boto3-translate ];
+    verifiedpermissions = [ mypy-boto3-verifiedpermissions ];
+    voice-id = [ mypy-boto3-voice-id ];
+    vpc-lattice = [ mypy-boto3-vpc-lattice ];
+    waf = [ mypy-boto3-waf ];
+    waf-regional = [ mypy-boto3-waf-regional ];
+    wafv2 = [ mypy-boto3-wafv2 ];
+    wellarchitected = [ mypy-boto3-wellarchitected ];
+    wisdom = [ mypy-boto3-wisdom ];
+    workdocs = [ mypy-boto3-workdocs ];
+    worklink = [ mypy-boto3-worklink ];
+    workmail = [ mypy-boto3-workmail ];
+    workmailmessageflow = [ mypy-boto3-workmailmessageflow ];
+    workspaces = [ mypy-boto3-workspaces ];
+    workspaces-web = [ mypy-boto3-workspaces-web ];
+    xray = [ mypy-boto3-xray ];
   };
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "boto3-stubs"
-  ];
+  pythonImportsCheck = [ "boto3-stubs" ];
 
   meta = with lib; {
     description = "Type annotations for boto3";
     homepage = "https://pypi.org/project/boto3-stubs/";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab mbalatsko ];
+    maintainers = with maintainers; [
+      fab
+      mbalatsko
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bring-api/default.nix b/pkgs/development/python-modules/bring-api/default.nix
new file mode 100644
index 0000000000000..720d06e55560e
--- /dev/null
+++ b/pkgs/development/python-modules/bring-api/default.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-dotenv,
+  pythonOlder,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "bring-api";
+  version = "0.7.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "miaucl";
+    repo = "bring-api";
+    rev = "refs/tags/${version}";
+    hash = "sha256-fhZMn0v908VzV+JLuS8tM+BPKJBoj77vEh1pINL4Cco=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
+
+  nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+    python-dotenv
+  ];
+
+  pythonImportsCheck = [ "bring_api" ];
+
+  meta = with lib; {
+    description = "Module to access the Bring! shopping lists API";
+    homepage = "https://github.com/miaucl/bring-api";
+    changelog = "https://github.com/miaucl/bring-api/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/brother/default.nix b/pkgs/development/python-modules/brother/default.nix
index 60907fe7f1392..b4f163dd9928a 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 = "4.0.2";
+  version = "4.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "bieniu";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-n1CIozKuF0+N8Vg3QA2jy5xNLDBJPdnhVT/xg1R+t90=";
+    hash = "sha256-W7bakj/94l0pL5fOb+CK+Z6k1cbv/CY9XjXGYZfLFY4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/capstone/4.nix b/pkgs/development/python-modules/capstone/4.nix
new file mode 100644
index 0000000000000..7c79cfe819428
--- /dev/null
+++ b/pkgs/development/python-modules/capstone/4.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, capstone_4
+, stdenv
+, setuptools
+, pythonAtLeast
+}:
+
+buildPythonPackage {
+  pname = "capstone";
+  inherit (capstone_4) version src;
+
+  sourceRoot = "source/bindings/python";
+
+  postPatch = ''
+    ln -s ${capstone_4}/lib/libcapstone${stdenv.targetPlatform.extensions.sharedLibrary} prebuilt/
+    ln -s ${capstone_4}/lib/libcapstone${stdenv.targetPlatform.extensions.staticLibrary} prebuilt/
+    substituteInPlace setup.py --replace manylinux1 manylinux2014
+  '';
+
+  # aarch64 only available from MacOS SDK 11 onwards, so fix the version tag.
+  # otherwise, bdist_wheel may detect "macosx_10_6_arm64" which doesn't make sense.
+  setupPyBuildFlags = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ "--plat-name" "macosx_11_0" ];
+
+  propagatedBuildInputs = [ setuptools ];
+
+  checkPhase = ''
+    mv capstone capstone.hidden
+    patchShebangs test_*
+    make check
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.capstone-engine.org/";
+    license = licenses.bsdOriginal;
+    description = "Python bindings for Capstone disassembly engine";
+    maintainers = with maintainers; [ bennofs ris ];
+    broken = pythonAtLeast "3.12"; # uses distutils
+  };
+}
diff --git a/pkgs/development/python-modules/capstone/default.nix b/pkgs/development/python-modules/capstone/default.nix
index be8fa4fba9f46..405dbe767da6c 100644
--- a/pkgs/development/python-modules/capstone/default.nix
+++ b/pkgs/development/python-modules/capstone/default.nix
@@ -17,9 +17,11 @@ buildPythonPackage rec {
   src = capstone.src;
   sourceRoot = "${src.name}/bindings/python";
 
+  # libcapstone.a is not built with BUILD_SHARED_LIBS. For some reason setup.py
+  # checks if it exists but it is not really needed. Most likely a bug in setup.py.
   postPatch = ''
     ln -s ${capstone}/lib/libcapstone${stdenv.targetPlatform.extensions.sharedLibrary} prebuilt/
-    ln -s ${capstone}/lib/libcapstone.a prebuilt/
+    touch prebuilt/libcapstone${stdenv.targetPlatform.extensions.staticLibrary}
     substituteInPlace setup.py --replace manylinux1 manylinux2014
   '';
 
diff --git a/pkgs/development/python-modules/catppuccin/default.nix b/pkgs/development/python-modules/catppuccin/default.nix
index b3134003cfbda..72b0a4ff42fe9 100644
--- a/pkgs/development/python-modules/catppuccin/default.nix
+++ b/pkgs/development/python-modules/catppuccin/default.nix
@@ -10,10 +10,7 @@
 
 buildPythonPackage rec {
   pname = "catppuccin";
-  version = "1.3.2";
-  # Note: updating to later versions breaks catppuccin-gtk
-  # It would be ideal to only update this after catppuccin-gtk
-  # gets support for the newer version
+  version = "2.2.0";
 
   pyproject = true;
 
@@ -21,7 +18,7 @@ buildPythonPackage rec {
     owner = "catppuccin";
     repo = "python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-spPZdQ+x3isyeBXZ/J2QE6zNhyHRfyRQGiHreuXzzik=";
+    hash = "sha256-+V1rln3FlFvs1FEIANIch7k/b2EsI9xBxhg3Bwg99+I=";
   };
 
   build-system = [
@@ -38,11 +35,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  # can be removed next version
-  disabledTestPaths = [
-    "tests/test_flavour.py" # would download a json to check correctness of flavours
-  ];
-
   pythonImportsCheck = [ "catppuccin" ];
 
   meta = {
diff --git a/pkgs/development/python-modules/clarabel/default.nix b/pkgs/development/python-modules/clarabel/default.nix
index 9d196200f8421..7e098000002df 100644
--- a/pkgs/development/python-modules/clarabel/default.nix
+++ b/pkgs/development/python-modules/clarabel/default.nix
@@ -56,6 +56,6 @@ buildPythonPackage rec {
     description = "Conic Interior Point Solver";
     homepage = "https://github.com/oxfordcontrol/Clarabel.rs";
     license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ a-n-n-a-l-e-e ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/clarifai-grpc/default.nix b/pkgs/development/python-modules/clarifai-grpc/default.nix
index abea00d207986..ce7929e5a3455 100644
--- a/pkgs/development/python-modules/clarifai-grpc/default.nix
+++ b/pkgs/development/python-modules/clarifai-grpc/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, googleapis-common-protos
-, grpcio
-, protobuf
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  googleapis-common-protos,
+  grpcio,
+  protobuf,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "clarifai-grpc";
-  version = "10.2.3";
+  version = "10.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,12 +21,10 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python-grpc";
     rev = "refs/tags/${version}";
-    hash = "sha256-Dim0ZRYNzmlBqrqqs0CG+I/XQYpH9DuPISXoYxi92Dc=";
+    hash = "sha256-JdRqZCDU5ScI3ZUTsWnFHYQ7Zog6V2xcbBDvFcHPnCk=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     googleapis-common-protos
diff --git a/pkgs/development/python-modules/clarifai/default.nix b/pkgs/development/python-modules/clarifai/default.nix
index 54faa5fd47c81..ee6a1eb6bc644 100644
--- a/pkgs/development/python-modules/clarifai/default.nix
+++ b/pkgs/development/python-modules/clarifai/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, clarifai-grpc
-, fetchFromGitHub
-, inquirerpy
-, llama-index-core
-, numpy
-, opencv4
-, pandas
-, pillow
-, pycocotools
-, pypdf
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, rich
-, schema
-, setuptools
-, tabulate
-, tqdm
-, tritonclient
+{
+  lib,
+  buildPythonPackage,
+  clarifai-grpc,
+  fetchFromGitHub,
+  inquirerpy,
+  llama-index-core,
+  numpy,
+  opencv4,
+  pandas,
+  pillow,
+  pycocotools,
+  pypdf,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pyyaml,
+  rich,
+  schema,
+  setuptools,
+  tabulate,
+  tqdm,
+  tritonclient,
 }:
 
 buildPythonPackage rec {
   pname = "clarifai";
-  version = "10.2.1";
+  version = "10.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -33,21 +34,16 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-jI85xMApeEd0Hl6h4Am5qxWoSSTWHsmb7FxUjJPmBQM=";
+    hash = "sha256-8EPs6kGB+Px9Fs2Z+YwDcmEYI5+z/kOIKLraJFMykF0=";
   };
 
-  pythonRelaxDeps = [
-    "clarifai-grpc"
-  ];
+  pythonRelaxDeps = [ "clarifai-grpc" ];
 
-  pythonRemoveDeps = [
-    "opencv-python"
-  ];
+  pythonRemoveDeps = [ "opencv-python" ];
 
-  build-system = [
-    pythonRelaxDepsHook
-    setuptools
-  ];
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     clarifai-grpc
@@ -67,14 +63,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    all = [
-      pycocotools
-    ];
+    all = [ pycocotools ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
@@ -99,9 +91,7 @@ buildPythonPackage rec {
     "clarifai/models/model_serving/repo_build/static_files/base_test.py"
   ];
 
-  pythonImportsCheck = [
-    "clarifai"
-  ];
+  pythonImportsCheck = [ "clarifai" ];
 
   meta = with lib; {
     description = "Clarifai Python Utilities";
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index 5f0cec61b1edc..0da9d861642fe 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, cachetools
-, decorator
-, fetchFromGitHub
-, pysmt
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, z3-solver
+{
+  lib,
+  buildPythonPackage,
+  cachetools,
+  decorator,
+  fetchFromGitHub,
+  pysmt,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  setuptools,
+  z3-solver,
 }:
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.2.97";
+  version = "9.2.98";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -22,13 +23,11 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "claripy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZSDG1KmVi0kZX4WmrYIyd5+zRR/rjrugm8UjFlI5pfU=";
+    hash = "sha256-qGkVGRDVX8YMWgvRAqKM9Pxjv9uqu4UNSDtvhzVVeSU=";
   };
 
   # z3 does not provide a dist-info, so python-runtime-deps-check will fail
-  pythonRemoveDeps = [
-    "z3-solver"
-  ];
+  pythonRemoveDeps = [ "z3-solver" ];
 
   build-system = [
     pythonRelaxDepsHook
@@ -42,13 +41,9 @@ buildPythonPackage rec {
     z3-solver
   ] ++ z3-solver.requiredPythonModules;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "claripy"
-  ];
+  pythonImportsCheck = [ "claripy" ];
 
   meta = with lib; {
     description = "Python abstraction layer for constraint solvers";
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index 543c14407476d..a2dda712f417c 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -1,32 +1,32 @@
-{ lib
-, archinfo
-, buildPythonPackage
-, cffi
-, fetchFromGitHub
-, minidump
-, pefile
-, pyelftools
-, pynose
-, pytestCheckHook
-, pythonOlder
-, pyvex
-, pyxbe
-, setuptools
-, sortedcontainers
+{
+  lib,
+  archinfo,
+  buildPythonPackage,
+  cffi,
+  fetchFromGitHub,
+  minidump,
+  pefile,
+  pyelftools,
+  pynose,
+  pytestCheckHook,
+  pythonOlder,
+  pyvex,
+  pyxbe,
+  setuptools,
+  sortedcontainers,
 }:
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.2.97";
+  version = "9.2.98";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
     owner = "angr";
     repo = "binaries";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FiPEqfNaAXI+xSWE+So//Uwz9k3bANHQ++nRSPKkddM=";
+    hash = "sha256-hnYMAgEnDHXg1jUrzhLWuun+Gv+2xnd4Da6OC9IGa2Q=";
   };
-
 in
 buildPythonPackage rec {
   pname = "cle";
@@ -39,12 +39,10 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "cle";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tain1I7Td+0v7n+px3mQnz7reKZUbGYDWfKnDhvmU8I=";
+    hash = "sha256-6gJKhyjKBgtSwGk5lqkaQVxe0ZC5WHVIYQMeREfz9A0=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     archinfo
@@ -82,9 +80,7 @@ buildPythonPackage rec {
     "test_remote_file_map"
   ];
 
-  pythonImportsCheck = [
-    "cle"
-  ];
+  pythonImportsCheck = [ "cle" ];
 
   meta = with lib; {
     description = "Python loader for many binary formats";
diff --git a/pkgs/development/python-modules/clickhouse-connect/default.nix b/pkgs/development/python-modules/clickhouse-connect/default.nix
index 277216a3f9685..93568adafee2a 100644
--- a/pkgs/development/python-modules/clickhouse-connect/default.nix
+++ b/pkgs/development/python-modules/clickhouse-connect/default.nix
@@ -23,7 +23,7 @@
 }:
 buildPythonPackage rec {
   pname = "clickhouse-connect";
-  version = "0.7.4";
+  version = "0.7.7";
 
   format = "setuptools";
 
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     repo = "clickhouse-connect";
     owner = "ClickHouse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YEtcM9+GO8mYv2pyaBYmXdmWLXVuteKtQIJR4H+Xsd4=";
+    hash = "sha256-EnASrc4yUxSQ5kgaY5xcjZG7y8ZWLabUFAcdF5ZZNBQ=";
   };
 
   nativeBuildInputs = [ cython_3 ];
diff --git a/pkgs/development/python-modules/clifford/default.nix b/pkgs/development/python-modules/clifford/default.nix
index 84859729c5b1d..6a590af483a75 100644
--- a/pkgs/development/python-modules/clifford/default.nix
+++ b/pkgs/development/python-modules/clifford/default.nix
@@ -7,6 +7,7 @@
 , numba
 , numpy
 , pytestCheckHook
+, setuptools
 , scipy
 , sparse
 }:
@@ -14,7 +15,7 @@
 buildPythonPackage rec {
   pname = "clifford";
   version = "1.4.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
@@ -23,7 +24,11 @@ buildPythonPackage rec {
     hash = "sha256-eVE8FrD0YHoRreY9CrNb8v4v4KrG83ZU0oFz+V+p+Q0=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     h5py
     numba
     numpy
@@ -62,7 +67,11 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Numerical Geometric Algebra Module";
     homepage = "https://clifford.readthedocs.io";
+    changelog = "https://github.com/pygae/clifford/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    # Broken with numba >= 0.54
+    # see https://github.com/pygae/clifford/issues/430
+    broken = versionAtLeast numba.version "0.58";
   };
 }
diff --git a/pkgs/development/python-modules/cloudsmith-api/default.nix b/pkgs/development/python-modules/cloudsmith-api/default.nix
index bd17a7791f1bc..5f51009f4bd77 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.11";
+  version = "2.0.12";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cloudsmith_api";
     inherit format version;
-    hash = "sha256-GwRN3nVMf/OusgJICf/GCCcZ4szEIGl8AZQ7J7LBzro=";
+    hash = "sha256-a33t963Q5+gnZI9pha4viuyWz3xLHUdcGE4ccw/w0s8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/craft-grammar/default.nix b/pkgs/development/python-modules/craft-grammar/default.nix
index 3907317db924f..61a07f4d7c069 100644
--- a/pkgs/development/python-modules/craft-grammar/default.nix
+++ b/pkgs/development/python-modules/craft-grammar/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "craft-grammar";
-  version = "1.1.2";
+  version = "1.2.0";
 
   pyproject = true;
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "canonical";
     repo = "craft-grammar";
     rev = "refs/tags/${version}";
-    hash = "sha256-23KLIO2yHXGe/zb3B8LirJsh+LY9z0c5ZGtF392Kszo";
+    hash = "sha256-YQpxgdmUxYLkhAXDLlkLAK6VpjIEycLFY3nsE/M4o2g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/credstash/default.nix b/pkgs/development/python-modules/credstash/default.nix
index 8ed90b65f7a28..dd950001c3d0d 100644
--- a/pkgs/development/python-modules/credstash/default.nix
+++ b/pkgs/development/python-modules/credstash/default.nix
@@ -1,19 +1,36 @@
-{ lib, buildPythonPackage, fetchPypi, cryptography, boto3, pyyaml, docutils, pytest, fetchpatch }:
+{
+  lib,
+  boto3,
+  buildPythonPackage,
+  cryptography,
+  docutils,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "credstash";
   version = "1.17.1";
-  format = "setuptools";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6c04e8734ef556ab459018da142dd0b244093ef176b3be5583e582e9a797a120";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fugue";
+    repo = "credstash";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-a6OzffGt5piHgi0AWEXJED0R/+8RETh/9hYJi/lUVu0=";
   };
 
   patches = [
+    # setup_requires -> tests_requires for pytest
     (fetchpatch {
       url = "https://github.com/fugue/credstash/commit/9c02ee43ed6e37596cafbca2fe80c532ec19d2d8.patch";
-      sha256 = "dlybrpfLK+PqwWWhH9iXgXHYysZGmcZAFGWNOwsG0xA=";
+      hash = "sha256-dlybrpfLK+PqwWWhH9iXgXHYysZGmcZAFGWNOwsG0xA=";
     })
   ];
   # The install phase puts an executable and a copy of the library it imports in
@@ -24,17 +41,29 @@ buildPythonPackage rec {
   # file ensures that Python imports the module from site-packages library.
   postInstall = "rm $out/bin/credstash.py";
 
-  nativeBuildInputs = [ pytest ];
+  build-system = [ setuptools ];
+
+  dependencies = [
+    boto3
+    cryptography
+    docutils
+    pyyaml
+  ];
 
-  propagatedBuildInputs = [ cryptography boto3 pyyaml docutils ];
+  nativeBuildInputs = [ pytestCheckHook ];
 
-  # No tests in archive
-  doCheck = false;
+  disabledTestPaths = [
+    # Tests require a region
+    "integration_tests/test_credstash_lib.py"
+    "tests/key_service_test.py"
+  ];
 
   meta = with lib; {
     description = "A utility for managing secrets in the cloud using AWS KMS and DynamoDB";
-    mainProgram = "credstash";
     homepage = "https://github.com/LuminalOSS/credstash";
+    changelog = "https://github.com/fugue/credstash/releases/tag/v${version}";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
+    mainProgram = "credstash";
   };
 }
diff --git a/pkgs/development/python-modules/crytic-compile/default.nix b/pkgs/development/python-modules/crytic-compile/default.nix
index 8ef955f56f8f3..2bcda1d7fd72e 100644
--- a/pkgs/development/python-modules/crytic-compile/default.nix
+++ b/pkgs/development/python-modules/crytic-compile/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "crytic-compile";
-  version = "0.3.6";
+  version = "0.3.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "crytic";
     repo = "crytic-compile";
     rev = "refs/tags/${version}";
-    hash = "sha256-dQynnILHt6YO5qtvVVwcxRwtBJgokyfsQ5ubH15dkuA=";
+    hash = "sha256-SMkFzGZg/6akclQ0XLUvjK3uoypsHfRru+B4VurjOrM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cvss/default.nix b/pkgs/development/python-modules/cvss/default.nix
index 267cd94f41d8b..640ad9720c743 100644
--- a/pkgs/development/python-modules/cvss/default.nix
+++ b/pkgs/development/python-modules/cvss/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "cvss";
-  version = "3.0";
+  version = "3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "RedHatProductSecurity";
     repo = "cvss";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xrkWpE13Y4KgQEZjitWE3Ka+IyfShqE2cj0/yzsAnX4=";
+    hash = "sha256-e/zwOfbt3YLlRiLFObjps3tFFk6BAWBKdanio6sus8c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cwl-utils/default.nix b/pkgs/development/python-modules/cwl-utils/default.nix
index aaa57e86ae00d..fe6c94829e0e4 100644
--- a/pkgs/development/python-modules/cwl-utils/default.nix
+++ b/pkgs/development/python-modules/cwl-utils/default.nix
@@ -1,34 +1,38 @@
-{ lib
-, buildPythonPackage
-, cwl-upgrader
-, cwlformat
-, fetchFromGitHub
-, packaging
-, pytest-mock
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, rdflib
-, requests
-, ruamel-yaml
-, schema-salad
+{
+  lib,
+  buildPythonPackage,
+  cwl-upgrader,
+  cwlformat,
+  fetchFromGitHub,
+  packaging,
+  pytest-mock,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  rdflib,
+  requests,
+  ruamel-yaml,
+  schema-salad,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "cwl-utils";
-  version = "0.32";
-  format = "setuptools";
+  version = "0.33";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "common-workflow-language";
-    repo = pname;
+    repo = "cwl-utils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CM2UlJ86FcjsOm0msBNpY2li8bhm5T/aMD1q292HpLM=";
+    hash = "sha256-+GvG5Uu2nQWYCcuAkBkegsmMCWhf269jH6Zcex99I4M=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cwl-upgrader
     packaging
     rdflib
@@ -44,9 +48,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "cwl_utils"
-  ];
+  pythonImportsCheck = [ "cwl_utils" ];
 
   disabledTests = [
     # Don't run tests which require Node.js
diff --git a/pkgs/development/python-modules/dazl/default.nix b/pkgs/development/python-modules/dazl/default.nix
index f913501e0da5f..8e26c9194f9ba 100644
--- a/pkgs/development/python-modules/dazl/default.nix
+++ b/pkgs/development/python-modules/dazl/default.nix
@@ -69,6 +69,6 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "High-level Ledger API client for Daml ledgers";
-    license = licenses.apsl20;
+    license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/dfdiskcache/default.nix b/pkgs/development/python-modules/dfdiskcache/default.nix
new file mode 100644
index 0000000000000..d7a7de367a286
--- /dev/null
+++ b/pkgs/development/python-modules/dfdiskcache/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pandas
+, setuptools
+, simplesqlite
+, typing-extensions
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "df-diskcache";
+  version = "0.0.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "thombashi";
+    repo = "df-diskcache";
+    rev = "v${version}";
+    hash = "sha256-s+sqEPXw6tbEz9mnG+qeUSF6BmDssYhaDYOmraFaRbw=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    pandas
+    simplesqlite
+    typing-extensions
+  ];
+
+  preCheck = ''
+    # Needed for Permission denied: '/homeless-shelter'
+    export HOME=$(mktemp -d)
+  '';
+
+  nativeCheckInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "dfdiskcache" ];
+
+  meta = with lib; {
+    description = "Python library for caching pandas.DataFrame objects to local disk";
+    homepage = "https://github.com/thombashi/df-diskcache";
+    license = licenses.mit;
+    maintainers = with maintainers; [ henrirosten ];
+  };
+}
diff --git a/pkgs/development/python-modules/dirigera/default.nix b/pkgs/development/python-modules/dirigera/default.nix
index 95beb921230c1..705d03cbe6d8c 100644
--- a/pkgs/development/python-modules/dirigera/default.nix
+++ b/pkgs/development/python-modules/dirigera/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "dirigera";
-  version = "1.0.14";
+  version = "1.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Leggin";
     repo = "dirigera";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FsW7ewKAvIONOjEXIOq7/GqOs564PpeMFKjS4crJtJ0=";
+    hash = "sha256-k5xChz3qfClWU131WH0CqaY8qrJXh85NQ0y1iPfnX5Y=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/django-countries/default.nix b/pkgs/development/python-modules/django-countries/default.nix
index 95da90866e655..69262c0840626 100644
--- a/pkgs/development/python-modules/django-countries/default.nix
+++ b/pkgs/development/python-modules/django-countries/default.nix
@@ -2,10 +2,10 @@
 , buildPythonPackage
 , fetchFromGitHub
 
-# build
+# build-system
 , setuptools
 
-# propagates
+# dependencies
 , asgiref
 , typing-extensions
 
@@ -19,21 +19,21 @@
 
 buildPythonPackage rec {
   pname = "django-countries";
-  version = "7.5.1";
-  format = "pyproject";
+  version = "7.6.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "SmileyChris";
     repo = "django-countries";
     rev = "refs/tags/v${version}";
-    hash = "sha256-se6s0sgIfMLW0sIMp/3vK4KdDPQ5ahg6OQCDAs4my4M=";
+    hash = "sha256-IR9cJbDVkZrcF3Ti70mV8VeXINQDK8OpwUTWVjD4Zn0=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asgiref
     typing-extensions
   ];
diff --git a/pkgs/development/python-modules/django-filter/default.nix b/pkgs/development/python-modules/django-filter/default.nix
index 8f91712ba0b78..926851b7fe005 100644
--- a/pkgs/development/python-modules/django-filter/default.nix
+++ b/pkgs/development/python-modules/django-filter/default.nix
@@ -6,22 +6,21 @@
 , djangorestframework
 , pytestCheckHook
 , pytest-django
-, python
 }:
 
 buildPythonPackage rec {
   pname = "django-filter";
-  version = "23.5";
-  format = "pyproject";
+  version = "24.2";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Z1g6pDuR/oxJ90qDLZX02EQr5ij9TG1l6fgR9RU6Tlw=";
+    hash = "sha256-SOX8HaPM1soNX5u1UJc1GM6Xek7d6dKooVSn9PC5+W4=";
   };
 
-  nativeBuildInputs = [ flit-core ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [ django ];
+  dependencies = [ django ];
 
   pythonImportsCheck = [
     "django_filters"
@@ -38,7 +37,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Reusable Django application for allowing users to filter querysets dynamically";
     homepage = "https://github.com/carltongibson/django-filter";
-    changelog = "https://github.com/carltongibson/django-filter/blob/v${version}/CHANGES.rst";
+    changelog = "https://github.com/carltongibson/django-filter/blob/${version}/CHANGES.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ mmai ];
   };
diff --git a/pkgs/development/python-modules/django-import-export/default.nix b/pkgs/development/python-modules/django-import-export/default.nix
index 4c901273ab020..50e60202dc975 100644
--- a/pkgs/development/python-modules/django-import-export/default.nix
+++ b/pkgs/development/python-modules/django-import-export/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "django-import-export";
-  version = "3.3.7";
+  version = "3.3.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "django-import-export";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-xcvBavXrA1XhBKYBkbaOuzG6yYkSnX2USvjg5djoXQ8=";
+    hash = "sha256-9BsaYLAkd6UvQxMtwk+pI7HyOWNU4rUmingkyemRCz4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-vite/default.nix b/pkgs/development/python-modules/django-vite/default.nix
index 607d0b6e818f8..b3527b9176b85 100644
--- a/pkgs/development/python-modules/django-vite/default.nix
+++ b/pkgs/development/python-modules/django-vite/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "django-vite";
-  version = "3.0.3";
+  version = "3.0.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "MrBin99";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-FH42auBm/YRfGgjL9TGQLed/p0P8POb7DOLmpUK1d9c=";
+    hash = "sha256-rIT4WA45v353vSV56fBOa0euiuwnXWmhbxniAWPAkMo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-webpack-loader/default.nix b/pkgs/development/python-modules/django-webpack-loader/default.nix
index 3850c7cbd8915..ea1d808aed5ae 100644
--- a/pkgs/development/python-modules/django-webpack-loader/default.nix
+++ b/pkgs/development/python-modules/django-webpack-loader/default.nix
@@ -1,32 +1,32 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "django-webpack-loader";
-  version = "3.0.1";
-  format = "setuptools";
+  version = "3.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UTMbM9p2aI60078+o7tWQ0sMHfstzYjL+wo5YY9o3Xo=";
+    hash = "sha256-sGuDyoGe1Lu4WKtXuNjLZ6JcSlftgi3t1On+5MCXr9U=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  build-system = [ setuptools-scm ];
+
+  dependencies = [ django ];
 
   # django.core.exceptions.ImproperlyConfigured (path issue with DJANGO_SETTINGS_MODULE?)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "webpack_loader"
-  ];
+  pythonImportsCheck = [ "webpack_loader" ];
 
   meta = with lib; {
     description = "Use webpack to generate your static bundles";
diff --git a/pkgs/development/python-modules/django/5.nix b/pkgs/development/python-modules/django/5.nix
index d359df1c9a45d..2bcf41dc39d92 100644
--- a/pkgs/development/python-modules/django/5.nix
+++ b/pkgs/development/python-modules/django/5.nix
@@ -6,7 +6,7 @@
 , pythonOlder
 , substituteAll
 
-# build
+# build-system
 , setuptools
 
 # patched in
@@ -14,11 +14,11 @@
 , gdal
 , withGdal ? false
 
-# propagates
+# dependencies
 , asgiref
 , sqlparse
 
-# extras
+# optional-dependencies
 , argon2-cffi
 , bcrypt
 
@@ -43,7 +43,7 @@
 
 buildPythonPackage rec {
   pname = "django";
-  version = "5.0.3";
+  version = "5.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -51,7 +51,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Django";
     inherit version;
-    hash = "sha256-X7N1gNz0omL5JYwfQ3OBmqzKkGQx9QXkaI4386mRld8=";
+    hash = "sha256-S9AajIMLt3qKOw59iyW4h+U2rReoG6Lc5UdhNcczEr0=";
   };
 
   patches = [
@@ -83,16 +83,16 @@ buildPythonPackage rec {
       --replace-fail "test_files" "dont_test_files"
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asgiref
     sqlparse
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     argon2 = [
       argon2-cffi
     ];
@@ -118,7 +118,7 @@ buildPythonPackage rec {
     selenium
     tblib
     tzdata
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
   doCheck = !stdenv.isDarwin;
 
diff --git a/pkgs/development/python-modules/dsnap/default.nix b/pkgs/development/python-modules/dsnap/default.nix
index d67cb02aa1123..f14636df06547 100644
--- a/pkgs/development/python-modules/dsnap/default.nix
+++ b/pkgs/development/python-modules/dsnap/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aws-sam-cli
-, boto3
-, buildPythonPackage
-, cfn-lint
-, fetchFromGitHub
-, mock
-, moto
-, mypy-boto3-ebs
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, typer
-, urllib3
+{
+  lib,
+  aws-sam-cli,
+  boto3,
+  buildPythonPackage,
+  cfn-lint,
+  fetchFromGitHub,
+  mock,
+  moto,
+  mypy-boto3-ebs,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  typer,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -31,22 +32,18 @@ buildPythonPackage rec {
   postPatch = ''
     # Is no direct dependency
     substituteInPlace pyproject.toml \
-      --replace 'urllib3 = "^1.26.4"' 'urllib3 = "*"'
+      --replace-fail 'urllib3 = "^1.26.4"' 'urllib3 = "*"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     boto3
     urllib3
   ];
 
   passthru.optional-dependencies = {
-    cli = [
-      typer
-    ];
+    cli = [ typer ];
     scannerd = [
       aws-sam-cli
       cfn-lint
@@ -60,17 +57,18 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "dsnap"
-  ];
+  # https://github.com/RhinoSecurityLabs/dsnap/issues/26
+  # ImportError: cannot import name 'mock_iam' from 'moto'
+  doCheck = false;
+
+  pythonImportsCheck = [ "dsnap" ];
 
   meta = with lib; {
     description = "Utility for downloading and mounting EBS snapshots using the EBS Direct API's";
-    mainProgram = "dsnap";
     homepage = "https://github.com/RhinoSecurityLabs/dsnap";
     changelog = "https://github.com/RhinoSecurityLabs/dsnap/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "dsnap";
   };
 }
-
diff --git a/pkgs/development/python-modules/dvc-render/default.nix b/pkgs/development/python-modules/dvc-render/default.nix
index fc0a13004970a..2cab268fecf6e 100644
--- a/pkgs/development/python-modules/dvc-render/default.nix
+++ b/pkgs/development/python-modules/dvc-render/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, flatten-dict
-, funcy
-, matplotlib
-, tabulate
-, pytestCheckHook
-, pytest-mock
-, pytest-test-utils
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flatten-dict,
+  funcy,
+  matplotlib,
+  tabulate,
+  pytestCheckHook,
+  pytest-mock,
+  pytest-test-utils,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "dvc-render";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,12 +25,10 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvc-render";
     rev = "refs/tags/${version}";
-    hash = "sha256-7rmmhf6Y6teoHR8u1+Ce1Xq0rdtC1/MWLXb282OOEnc=";
+    hash = "sha256-V4QVZu4PSOW9poT6YUWbgTjJpIJ8YUtGDAE4Ijgm5Ac=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   passthru.optional-dependencies = {
     table = [
@@ -47,17 +46,11 @@ buildPythonPackage rec {
     pytestCheckHook
     pytest-mock
     pytest-test-utils
-  ]
-  ++ passthru.optional-dependencies.table
-  ++ passthru.optional-dependencies.markdown;
+  ] ++ passthru.optional-dependencies.table ++ passthru.optional-dependencies.markdown;
 
-  disabledTestPaths = lib.optionals stdenv.isDarwin [
-    "tests/test_vega.py"
-  ];
+  disabledTestPaths = lib.optionals stdenv.isDarwin [ "tests/test_vega.py" ];
 
-  pythonImportsCheck = [
-    "dvc_render"
-  ];
+  pythonImportsCheck = [ "dvc_render" ];
 
   meta = with lib; {
     description = "Library for rendering DVC plots";
diff --git a/pkgs/development/python-modules/elastic-apm/default.nix b/pkgs/development/python-modules/elastic-apm/default.nix
index 61ad6705fe9b7..25ef39efea064 100644
--- a/pkgs/development/python-modules/elastic-apm/default.nix
+++ b/pkgs/development/python-modules/elastic-apm/default.nix
@@ -1,37 +1,39 @@
-{ lib
-, stdenv
-, aiohttp
-, blinker
-, buildPythonPackage
-, certifi
-, ecs-logging
-, fetchFromGitHub
-, httpx
-, jinja2
-, jsonschema
-, logbook
-, mock
-, pytest-asyncio
-, pytest-bdd
-, pytest-localserver
-, pytest-mock
-, pytest-random-order
-, pytestCheckHook
-, pythonOlder
-, sanic
-, sanic-testing
-, setuptools
-, starlette
-, structlog
-, tornado
-, urllib3
-, webob
-, wrapt
+{
+  lib,
+  stdenv,
+  aiohttp,
+  blinker,
+  buildPythonPackage,
+  certifi,
+  ecs-logging,
+  fetchFromGitHub,
+  httpx,
+  jinja2,
+  jsonschema,
+  logbook,
+  mock,
+  pytest-asyncio,
+  pytest-bdd,
+  pytest-localserver,
+  pytest-mock,
+  pytest-random-order,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  sanic,
+  sanic-testing,
+  setuptools,
+  starlette,
+  structlog,
+  tornado,
+  urllib3,
+  webob,
+  wrapt,
 }:
 
 buildPythonPackage rec {
   pname = "elastic-apm";
-  version = "6.21.3";
+  version = "6.22.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,14 +42,16 @@ buildPythonPackage rec {
     owner = "elastic";
     repo = "apm-agent-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ejix31cMyHOc/IGe4bRp/Nchm9Ps1cRYE8jIaIYlJjs=";
+    hash = "sha256-VuVx+QUiV4M/ebyv2uF/YZwfvcaPDJAEi55fXfoIttU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  pythonRelaxDeps = [ "wrapt" ];
+
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     blinker
     certifi
@@ -76,21 +80,19 @@ buildPythonPackage rec {
     webob
   ];
 
-  disabledTests = [
-    "elasticapm_client"
-  ];
+  disabledTests = [ "elasticapm_client" ];
 
-  disabledTestPaths = [
-    # Exclude tornado tests
-    "tests/contrib/asyncio/tornado/tornado_tests.py"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Flaky tests on Darwin
-    "tests/utils/threading_tests.py"
-  ];
+  disabledTestPaths =
+    [
+      # Exclude tornado tests
+      "tests/contrib/asyncio/tornado/tornado_tests.py"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Flaky tests on Darwin
+      "tests/utils/threading_tests.py"
+    ];
 
-  pythonImportsCheck = [
-    "elasticapm"
-  ];
+  pythonImportsCheck = [ "elasticapm" ];
 
   meta = with lib; {
     description = "Python agent for the Elastic APM";
diff --git a/pkgs/development/python-modules/elasticsearch-dsl/default.nix b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
index 263786e3e404b..53778ce0b4e1f 100644
--- a/pkgs/development/python-modules/elasticsearch-dsl/default.nix
+++ b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "elasticsearch-dsl";
-  version = "8.12.0";
+  version = "8.13.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zjK4UpiIqXvpEVMedZCBbPOx9ggmPv9vt1qnEG4jPIg=";
+    sha256 = "sha256-cy/IEae7B2O8P7WJLk6nzwbTG7o1XoezM1PpLfrNebQ=";
   };
 
   propagatedBuildInputs = [ elasticsearch python-dateutil six ];
diff --git a/pkgs/development/python-modules/es-client/default.nix b/pkgs/development/python-modules/es-client/default.nix
index 0a1b0bad5ad67..3204da1d5a977 100644
--- a/pkgs/development/python-modules/es-client/default.nix
+++ b/pkgs/development/python-modules/es-client/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, certifi
-, click
-, ecs-logging
-, elastic-transport
-, elasticsearch8
-, fetchFromGitHub
-, hatchling
-, mock
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, requests
-, six
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  click,
+  ecs-logging,
+  elastic-transport,
+  elasticsearch8,
+  fetchFromGitHub,
+  hatchling,
+  mock,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pyyaml,
+  requests,
+  six,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
   pname = "es-client";
-  version = "8.12.8";
+  version = "8.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,17 +30,16 @@ buildPythonPackage rec {
     owner = "untergeek";
     repo = "es_client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qv06zb3hIK/TeOZwtMXrV+n8mYSA/UKiyHvRyKEvZkQ=";
+    hash = "sha256-4v9SRWVG9p4kCob4C3by2JxNqX6L3yMHpbnMYEAM7A0=";
   };
 
   pythonRelaxDeps = true;
 
-  nativeBuildInputs = [
-    hatchling
-    pythonRelaxDepsHook
-  ];
+  build-system = [ hatchling ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     certifi
     click
     ecs-logging
@@ -57,9 +57,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "es_client"
-  ];
+  pythonImportsCheck = [ "es_client" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/eval-type-backport/default.nix b/pkgs/development/python-modules/eval-type-backport/default.nix
new file mode 100644
index 0000000000000..1231d106fa58e
--- /dev/null
+++ b/pkgs/development/python-modules/eval-type-backport/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "eval-type-backport";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "alexmojaki";
+    repo = "eval_type_backport";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-EiYJQUnK10lqjyJ89KacbZ+ZZuOmkRQ9bqTFQFN2iMA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = {
+    description = "Like `typing._eval_type`, but lets older Python versions use newer typing features.";
+    homepage = "https://github.com/alexmojaki/eval_type_backport";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ perchun ];
+  };
+}
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index 20e3cc1433a42..b61753c6fe492 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, backports-zoneinfo
-, buildPythonPackage
-, cached-property
-, defusedxml
-, dnspython
-, fetchFromGitHub
-, flake8
-, isodate
-, lxml
-, oauthlib
-, psutil
-, pygments
-, python-dateutil
-, pythonOlder
-, pytz
-, pyyaml
-, requests
-, requests-ntlm
-, requests-gssapi
-, requests-oauthlib
-, requests-kerberos
-, requests-mock
-, setuptools
-, tzdata
-, tzlocal
+{
+  lib,
+  backports-zoneinfo,
+  buildPythonPackage,
+  cached-property,
+  defusedxml,
+  dnspython,
+  fetchFromGitHub,
+  flake8,
+  isodate,
+  lxml,
+  oauthlib,
+  psutil,
+  pygments,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  requests,
+  requests-ntlm,
+  requests-gssapi,
+  requests-oauthlib,
+  requests-kerberos,
+  requests-mock,
+  setuptools,
+  tzdata,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "5.2.0";
+  version = "5.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -37,12 +38,10 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = "exchangelib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-q45aYVyp75PUiqYSMSvSFMy3vaclv93QVkjKWVrxWc4=";
+    hash = "sha256-4XcJNbnBCaSrGwfgDAlo4wCOjlwq2rLjSxRXniuzdzk=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     cached-property
@@ -58,18 +57,14 @@ buildPythonPackage rec {
     requests-kerberos
     tzdata
     tzlocal
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   passthru.optional-dependencies = {
     complete = [
       requests-gssapi
       # requests-negotiate-sspi
     ];
-    kerberos = [
-      requests-gssapi
-    ];
+    kerberos = [ requests-gssapi ];
     # sspi = [
     #   requests-negotiate-sspi
     # ];
@@ -84,9 +79,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "exchangelib"
-  ];
+  pythonImportsCheck = [ "exchangelib" ];
 
   meta = with lib; {
     description = "Client for Microsoft Exchange Web Services (EWS)";
diff --git a/pkgs/development/python-modules/flask-admin/default.nix b/pkgs/development/python-modules/flask-admin/default.nix
index c4d686c014782..ae12e6353e2b8 100644
--- a/pkgs/development/python-modules/flask-admin/default.nix
+++ b/pkgs/development/python-modules/flask-admin/default.nix
@@ -1,15 +1,10 @@
 { lib
-, arrow
 , azure-storage-blob
 , boto
 , buildPythonPackage
-, colour
-, email-validator
-, enum34
 , fetchpatch
-, fetchPypi
+, fetchFromGitHub
 , flask
-, flask-babelex
 , flask-mongoengine
 , flask-sqlalchemy
 , geoalchemy2
@@ -19,10 +14,9 @@
 , pymongo
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , shapely
 , sqlalchemy
-, sqlalchemy-citext
-, sqlalchemy-utils
 , wtf-peewee
 , wtforms
 }:
@@ -30,14 +24,15 @@
 buildPythonPackage rec {
   pname = "flask-admin";
   version = "1.6.1";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "Flask-Admin";
-    inherit version;
-    hash = "sha256-JMrir4MramEaAdfcNfQtJmwdbHWkJrhp2MskG3gjM2k=";
+  src = fetchFromGitHub {
+    owner = "flask-admin";
+    repo = "flask-admin";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-L8Q9uPpoen6ZvuF2bithCMSgc6X5khD1EqH2FJPspZc=";
   };
 
   patches = [
@@ -49,66 +44,51 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     flask
     wtforms
   ];
 
-  passthru.optional-dependencies = {
-    aws = [
-      boto
-    ];
-    azure = [
-      azure-storage-blob
-    ];
+  optional-dependencies = {
+    aws = [ boto ];
+    azure = [ azure-storage-blob ];
   };
 
   nativeCheckInputs = [
-    arrow
-    colour
-    email-validator
-    flask-babelex
+    pillow
+    mongoengine
+    pymongo
+    wtf-peewee
+    sqlalchemy
     flask-mongoengine
     flask-sqlalchemy
+    # flask-babelex # broken and removed
+    shapely
     geoalchemy2
-    mongoengine
-    pillow
     psycopg2
-    pymongo
     pytestCheckHook
-    shapely
-    sqlalchemy
-    sqlalchemy-citext
-    sqlalchemy-utils
-    wtf-peewee
-  ];
-
-  disabledTests = [
-    # Incompatible with werkzeug 2.1
-    "test_mockview"
-    # Tests are outdated and don't work with peewee
-    "test_nested_flask_views"
-    "test_export_csv"
-    "test_list_row_actions"
-    "test_column_editable_list"
-    "test_column_filters"
-    "test_export_csv"
   ];
 
   disabledTestPaths = [
-    # Tests have additional requirements
-    "flask_admin/tests/geoa/test_basic.py"
-    "flask_admin/tests/mongoengine/test_basic.py"
-    "flask_admin/tests/pymongo/test_basic.py"
+    # depends on flask-babelex
     "flask_admin/tests/sqla/test_basic.py"
     "flask_admin/tests/sqla/test_form_rules.py"
-    "flask_admin/tests/sqla/test_inlineform.py"
+    "flask_admin/tests/sqla/test_multi_pk.py"
     "flask_admin/tests/sqla/test_postgres.py"
     "flask_admin/tests/sqla/test_translation.py"
-    # RuntimeError: Working outside of application context.
-    "flask_admin/tests/sqla/test_multi_pk.py"
-    # Broken test
+    # broken
+    "flask_admin/tests/sqla/test_inlineform.py"
+    "flask_admin/tests/test_model.py"
     "flask_admin/tests/fileadmin/test_fileadmin.py"
+    # requires database
+    "flask_admin/tests/geoa/test_basic.py"
+    "flask_admin/tests/pymongo/test_basic.py"
+    "flask_admin/tests/mongoengine/test_basic.py"
+    "flask_admin/tests/peeweemodel/test_basic.py"
   ];
 
   pythonImportsCheck = [
@@ -120,6 +100,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/flask-admin/flask-admin/";
     changelog = "https://github.com/flask-admin/flask-admin/releases/tag/v${version}";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ nickcao ];
   };
 }
diff --git a/pkgs/development/python-modules/flask-paginate/default.nix b/pkgs/development/python-modules/flask-paginate/default.nix
index ec2082b0ec188..ee15641a9d5cb 100644
--- a/pkgs/development/python-modules/flask-paginate/default.nix
+++ b/pkgs/development/python-modules/flask-paginate/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "flask-paginate";
-  version = "2024.3.28";
-  format = "setuptools";
+  version = "2024.4.12";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -17,24 +19,18 @@ buildPythonPackage rec {
     owner = "lixxu";
     repo = "flask-paginate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-HqjgmqRH83N+CbTnkkEJnuo+c+n5wLwdsPXyY2i5XRg=";
+    hash = "sha256-YaAgl+iuoXB0eWVzhmNq2UTOpM/tHfDISIb9CyaXiuA=";
   };
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ flask ];
 
-  pythonImportsCheck = [
-    "flask_paginate"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/tests.py"
-  ];
+  pythonImportsCheck = [ "flask_paginate" ];
+
+  pytestFlagsArray = [ "tests/tests.py" ];
 
   meta = with lib; {
     description = "Pagination support for Flask";
diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix
index 15404df86d814..3076e6a4c469c 100644
--- a/pkgs/development/python-modules/fontbakery/default.nix
+++ b/pkgs/development/python-modules/fontbakery/default.nix
@@ -15,10 +15,12 @@
 , font-v
 , freetype-py
 , gflanguages
+, gfsubsets
 , git
 , glyphsets
 , lxml
 , installShellFiles
+, jinja2
 , munkres
 , opentypespec
 , ots-python
@@ -32,6 +34,7 @@
 , requests
 , requests-mock
 , rich
+, setuptools
 , setuptools-scm
 , shaperglot
 , stringbrewer
@@ -45,23 +48,15 @@
 buildPythonPackage rec {
   pname = "fontbakery";
   version = "0.11.2";
-  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-61EXlf+d5kJeUF41OEnGNLaOcSvFWUDFgarVvHQZYmw=";
   };
 
-  patches = [
-    # Mock HTTP requests in tests (note we still have to skip some below)
-    # https://github.com/googlefonts/fontbakery/pull/4124
-    (fetchpatch {
-      url = "https://github.com/fonttools/fontbakery/pull/4124.patch";
-      hash = "sha256-NXuC2+TtxpHYMdd0t+cF0FJ3lrh4exP5yxspEasKKd0=";
-    })
-  ];
+  pyproject = true;
 
-  propagatedBuildInputs = [
+  dependencies = [
     axisregistry
     babelfont
     beautifulsoup4
@@ -74,8 +69,10 @@ buildPythonPackage rec {
     font-v
     freetype-py
     gflanguages
+    gfsubsets
     glyphsets
     lxml
+    jinja2
     munkres
     ots-python
     opentypespec
@@ -93,10 +90,13 @@ buildPythonPackage rec {
     vharfbuzz
     ufo2ft
   ];
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
   nativeBuildInputs = [
     installShellFiles
     pythonRelaxDepsHook
-    setuptools-scm
   ];
 
   pythonRelaxDeps = [
@@ -125,7 +125,14 @@ buildPythonPackage rec {
   '';
   disabledTests = [
     # These require network access:
+    "test_check_description_broken_links"
+    "test_check_description_family_update"
+    "test_check_metadata_designer_profiles"
+    "test_check_metadata_has_tags"
+    "test_check_metadata_includes_production_subsets"
+    "test_check_vertical_metrics"
     "test_check_vertical_metrics_regressions"
+    "test_check_cjk_vertical_metrics"
     "test_check_cjk_vertical_metrics_regressions"
     "test_check_fontbakery_version_live_apis"
   ];
diff --git a/pkgs/development/python-modules/forecast-solar/default.nix b/pkgs/development/python-modules/forecast-solar/default.nix
index 9f4b199c56718..4e329a100c8e4 100644
--- a/pkgs/development/python-modules/forecast-solar/default.nix
+++ b/pkgs/development/python-modules/forecast-solar/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , pythonOlder
 , aiodns
 , aiohttp
@@ -10,20 +11,23 @@
 
 buildPythonPackage rec {
   pname = "forecast-solar";
-  version = "3.0.0";
-
-  format = "setuptools";
+  version = "3.1.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
     repo = "forecast_solar";
-    rev = "refs/tags/${version}";
-    hash = "sha256-Go0DF2qyVyGVYEeoEEuxsSR9Ge8Pg4S77zM1HL83ELc=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-iol0XtfPZI95o/uEyBcXgeQjcfl2kI+4mugtywa6BXI=";
   };
 
-  PACKAGE_VERSION = version;
+  build-system = [
+    setuptools
+  ];
+
+  env.PACKAGE_VERSION = version;
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiodns
     aiohttp
   ] ++ lib.optionals (pythonOlder "3.9") [
@@ -37,6 +41,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
+    changelog = "https://github.com/home-assistant-libs/forecast_solar/releases/tag/v${version}";
     description = "Asynchronous Python client for getting forecast solar information";
     homepage = "https://github.com/home-assistant-libs/forecast_solar";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/fyta-cli/default.nix b/pkgs/development/python-modules/fyta-cli/default.nix
new file mode 100644
index 0000000000000..7e0b2971be508
--- /dev/null
+++ b/pkgs/development/python-modules/fyta-cli/default.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "fyta-cli";
+  version = "0.4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dontinelli";
+    repo = "fyta_cli";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ThxC+s0vkvFQw9FKMWO+cHJB1ci+USdxQa4PRqHrKLM=";
+  };
+
+  build-system = [ hatchling ];
+
+  dependencies = [ aiohttp ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "fyta_cli" ];
+
+  meta = with lib; {
+    description = "Module to access the FYTA API";
+    homepage = "https://github.com/dontinelli/fyta_cli";
+    changelog = "https://github.com/dontinelli/fyta_cli/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/garminconnect/default.nix b/pkgs/development/python-modules/garminconnect/default.nix
index 3e039ec5aac9d..57d4b58136a5e 100644
--- a/pkgs/development/python-modules/garminconnect/default.nix
+++ b/pkgs/development/python-modules/garminconnect/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, garth
-, pdm-backend
-, pythonOlder
-, requests
-, withings-sync
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  garth,
+  pdm-backend,
+  pythonOlder,
+  requests,
+  withings-sync,
 }:
 
 buildPythonPackage rec {
   pname = "garminconnect";
-  version = "0.2.15";
+  version = "0.2.16";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,14 +20,12 @@ buildPythonPackage rec {
     owner = "cyberjunky";
     repo = "python-garminconnect";
     rev = "refs/tags/${version}";
-    hash = "sha256-N6PJLsT8BnjGaOLeohDo3ACOyVb/iOCw3LAXZMjwoyw=";
+    hash = "sha256-mjFDM59fF9HpkO0a8fVW+dXYmjFxu7gn+rOrnTgN39s=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  build-system = [ pdm-backend ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     garth
     requests
     withings-sync
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Tests require a token
   doCheck = false;
 
-  pythonImportsCheck = [
-    "garminconnect"
-  ];
+  pythonImportsCheck = [ "garminconnect" ];
 
   meta = with lib; {
     description = "Garmin Connect Python API wrapper";
diff --git a/pkgs/development/python-modules/gdb-pt-dump/default.nix b/pkgs/development/python-modules/gdb-pt-dump/default.nix
new file mode 100644
index 0000000000000..5687828e9e503
--- /dev/null
+++ b/pkgs/development/python-modules/gdb-pt-dump/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+}:
+
+buildPythonPackage rec {
+  pname = "gdb-pt-dump";
+  version = "0-unstable-2024-04-01";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "martinradev";
+    repo = "gdb-pt-dump";
+    rev = "50227bda0b6332e94027f811a15879588de6d5cb";
+    hash = "sha256-yiP3KY1oDwhy9DmNQEht/ryys9vpgkFS+EJcSA6R+cI=";
+  };
+
+  build-system = [ poetry-core ];
+
+  pythonImportsCheck = [ "pt" ];
+
+  meta = with lib; {
+    description = "GDB script to enhance debugging of a QEMU-based virtual machine";
+    homepage = "https://github.com/martinradev/gdb-pt-dump";
+    license = licenses.mit;
+    maintainers = with maintainers; [ msanft ];
+  };
+}
diff --git a/pkgs/development/python-modules/gekko/default.nix b/pkgs/development/python-modules/gekko/default.nix
index 94d07a88b5951..24fd7423b8c39 100644
--- a/pkgs/development/python-modules/gekko/default.nix
+++ b/pkgs/development/python-modules/gekko/default.nix
@@ -1,35 +1,37 @@
-{ fetchPypi
-, lib
-, buildPythonPackage
-, setuptools
-, numpy
-, wheel
-,
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pythonOlder,
+  setuptools,
 }:
+
 buildPythonPackage rec {
   pname = "gekko";
-  version = "1.1.0";
+  version = "1.1.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dImIf5zR6SCztgrFbaRrz4nLl1ZzJIyPLDNGIVLoOdg=";
+    hash = "sha256-xc6NfPCvkEYjUG82QmFqDuu02QNwKfoS6DDpkdaMWJ8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [ "gekko" ];
+  dependencies = [ numpy ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  # Module has no tests
+  doCHeck = false;
+
+  pythonImportsCheck = [ "gekko" ];
 
   meta = with lib; {
+    description = "Module for machine learning and optimization";
     homepage = "https://github.com/BYU-PRISM/GEKKO";
-    description = "A Python package for machine learning and optimization";
+    changelog = "https://github.com/BYU-PRISM/GEKKO/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ayes-web ];
   };
diff --git a/pkgs/development/python-modules/gflanguages/default.nix b/pkgs/development/python-modules/gflanguages/default.nix
index 2e1e2ab36fdea..9a3f77f957c02 100644
--- a/pkgs/development/python-modules/gflanguages/default.nix
+++ b/pkgs/development/python-modules/gflanguages/default.nix
@@ -5,6 +5,7 @@
 , pytestCheckHook
 , pythonOlder
 , pythonRelaxDepsHook
+, setuptools
 , setuptools-scm
 , uharfbuzz
 , youseedee
@@ -12,16 +13,17 @@
 
 buildPythonPackage rec {
   pname = "gflanguages";
-  version = "5.0.4";
-  format = "setuptools";
+  version = "0.5.17";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AGXpg9EhwdhrcbdcHqz2v9TLaWH1F5gr0QhSuEN2GDA=";
+    hash = "sha256-dScgRQ6usjSqV0FqDyP+KGvHL06wlTFVcO+MmZ2NMAs=";
   };
 
+  pyproject = true;
+
   # Relax the dependency on protobuf 3. Other packages in the Google Fonts
   # ecosystem have begun upgrading from protobuf 3 to protobuf 4,
   # so we need to use protobuf 4 here as well to avoid a conflict
@@ -30,11 +32,12 @@ buildPythonPackage rec {
     "protobuf"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     protobuf
   ];
 
diff --git a/pkgs/development/python-modules/gfsubsets/default.nix b/pkgs/development/python-modules/gfsubsets/default.nix
new file mode 100644
index 0000000000000..31aa36151644b
--- /dev/null
+++ b/pkgs/development/python-modules/gfsubsets/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fonttools
+, importlib-resources
+, setuptools
+, setuptools-scm
+, youseedee
+}:
+
+buildPythonPackage rec {
+  pname = "gfsubsets";
+  version = "2024.2.5";
+  gitTag = "v2024.02.05";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-g9QxLa3B1MMTs+jmj4CyJySZRU0zoFNYdbOZwHjKPaQ=";
+  };
+
+  pyproject = true;
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    fonttools
+    importlib-resources
+    youseedee
+  ];
+
+  # Package has no unit tests.
+  doCheck = false;
+  pythonImportsCheck = [
+    "gfsubsets"
+  ];
+
+  meta = with lib; {
+    description = "Codepoint definitions for the Google Fonts subsetter";
+    homepage = "https://github.com/googlefonts/nam-files";
+    changelog = "https://github.com/googlefonts/nam-files/releases/tag/${gitTag}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch b/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch
deleted file mode 100644
index 96a4047c5cedf..0000000000000
--- a/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From de2e02a41b11a708d58dfd1e24d335b8882dd7bd Mon Sep 17 00:00:00 2001
-From: Dan Callaghan <djc@djc.id.au>
-Date: Sun, 23 Apr 2023 12:15:47 +1000
-Subject: [PATCH] relax setuptools-scm dep
-
-
-diff --git a/setup.py b/setup.py
-index 2c122a7..42f9b61 100644
---- a/setup.py
-+++ b/setup.py
-@@ -55,7 +55,7 @@
-         'Programming Language :: Python :: 3'
-     ],
-     python_requires=">=3.7",
--    setup_requires=['setuptools_scm>=4,<6.1'],
-+    setup_requires=['setuptools_scm'],
-     install_requires=[
-         'setuptools',
-         'FontTools[ufo]',
--- 
-2.38.4
-
diff --git a/pkgs/development/python-modules/glyphsets/default.nix b/pkgs/development/python-modules/glyphsets/default.nix
index ac1625471011c..f59e7f09607d7 100644
--- a/pkgs/development/python-modules/glyphsets/default.nix
+++ b/pkgs/development/python-modules/glyphsets/default.nix
@@ -3,8 +3,10 @@
 , fetchPypi
 , defcon
 , fonttools
+, gflanguages
 , glyphslib
 , pytestCheckHook
+, requests
 , setuptools
 , setuptools-scm
 , unicodedata2
@@ -13,29 +15,23 @@
 buildPythonPackage rec {
   pname = "glyphsets";
   version = "0.6.14";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-lMRgchadgKyfFLw6ZF1sJAKBAK75zmw77L34MW9p7TI=";
   };
 
-  patches = [
-    # Upstream has a needlessly strict version range for setuptools_scm, our
-    # setuptools-scm is newer. We can't use pythonRelaxDepsHook for this
-    # because it's in setup_requires which means we'll fail the requirement
-    # before pythonRelaxDepsHook can run.
-    ./0001-relax-setuptools-scm-dep.patch
-  ];
-
-  propagatedBuildInputs = [
+  dependencies = [
     defcon
     fonttools
+    gflanguages
     glyphslib
+    requests
     setuptools
     unicodedata2
   ];
-  nativeBuildInputs = [
+  build-system = [
     setuptools-scm
   ];
 
@@ -46,6 +42,10 @@ buildPythonPackage rec {
   preCheck = ''
     export PATH="$out/bin:$PATH"
   '';
+  disabledTests = [
+    # This "test" just tries to connect to PyPI and look for newer releases. Not needed.
+    "test_dependencies"
+  ];
 
   meta = with lib; {
     description = "Google Fonts glyph set metadata";
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index 26387b8760181..7ad1ad90b9eed 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.3.1";
+  version = "0.3.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +18,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = "goodwe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6KCIfCyViiBU/cez9m34FMPkTUTkmEYc/e/xYqOyJLY=";
+    hash = "sha256-0N2aimDj9HF0y1pitg7E2OzGk4o4kopSlvXy9x6jplk=";
   };
 
   postPatch = ''
@@ -26,18 +27,11 @@ buildPythonPackage rec {
       --replace-fail "version: file: VERSION" "version = ${version}"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [
-    "goodwe"
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "goodwe" ];
 
   meta = with lib; {
     description = "Python library for connecting to GoodWe inverter";
diff --git a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
index 83c296a5294b0..afceccaf270ff 100644
--- a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
+++ b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
@@ -1,31 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, grpc-google-iam-v1
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  grpc-google-iam-v1,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "1.30.0";
+  version = "1.30.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Tq+Uicfk1SqvisYEdBfREngICvWP8NyFJy4hJp9qD8Y=";
+    hash = "sha256-99yI4stPZ0FSOgypdOoUJn85JmzRS+VUHNAh4Chak74=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     grpc-google-iam-v1
diff --git a/pkgs/development/python-modules/google-cloud-speech/default.nix b/pkgs/development/python-modules/google-cloud-speech/default.nix
index 1fc4624e85091..2780b5bdfc7fe 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.25.1";
+  version = "2.26.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-W3RwqUn1p3xAURw2ZKwzn+CkcESC+bazorpVS30rLNw=";
+    hash = "sha256-0xVqeElq6s/0A0KUCKGxPv6ZbabwVEolVnkErYAWcdU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-generativeai/default.nix b/pkgs/development/python-modules/google-generativeai/default.nix
index dfcc2e06034a6..a63b61ca09c21 100644
--- a/pkgs/development/python-modules/google-generativeai/default.nix
+++ b/pkgs/development/python-modules/google-generativeai/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, google-ai-generativelanguage
-, google-api-core
-, google-auth
-, protobuf
-, pythonOlder
-, pythonRelaxDepsHook
-, pydantic
-, setuptools
-, tqdm
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  google-ai-generativelanguage,
+  google-api-core,
+  google-api-python-client,
+  google-auth,
+  protobuf,
+  pydantic,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  setuptools,
+  tqdm,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "google-generativeai";
-  version = "0.4.1";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,22 +26,20 @@ buildPythonPackage rec {
     owner = "google";
     repo = "generative-ai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+PRsxwy8Um6wCku9s7h8ERKEhcFsomEYAwYg+vpAGyg=";
+    hash = "sha256-WFkzqsiYADrxVUHClBHY0+oYz2sF52DrVblHT+94QYw=";
   };
 
-  pythonRelaxDeps = [
-    "google-ai-generativelanguage"
-  ];
+  pythonRelaxDeps = [ "google-ai-generativelanguage" ];
 
-  build-system = [
-    pythonRelaxDepsHook
-    setuptools
-  ];
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     google-ai-generativelanguage
-    google-auth
     google-api-core
+    google-api-python-client
+    google-auth
     protobuf
     pydantic
     tqdm
@@ -49,9 +49,7 @@ buildPythonPackage rec {
   # Issue with the google.ai module. Check with the next release
   doCheck = false;
 
-  pythonImportsCheck = [
-    "google.generativeai"
-  ];
+  pythonImportsCheck = [ "google.generativeai" ];
 
   meta = with lib; {
     description = "Python client library for Google's large language model PaLM API";
diff --git a/pkgs/development/python-modules/gradio-pdf/default.nix b/pkgs/development/python-modules/gradio-pdf/default.nix
index a029f427ca2ec..caa3ddbaa6b80 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.5";
+  version = "0.0.7";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "gradio_pdf";
     inherit version;
-    hash = "sha256-yHISYpkZ5YgUBxCfu2rw3R+g9t4h1WogXXCuBiV92Vk=";
+    hash = "sha256-3OJiBnp79woCUtiNiaePwfJCAS42WYkv9GFeScesFv8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/graphene-django/default.nix b/pkgs/development/python-modules/graphene-django/default.nix
index 64d07a538429b..e2c0ea0fdd7ae 100644
--- a/pkgs/development/python-modules/graphene-django/default.nix
+++ b/pkgs/development/python-modules/graphene-django/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "graphene-django";
-  version = "3.2.0";
+  version = "3.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "graphql-python";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-SOLY3NogovwQ5gr2gnvOcROWpbk9p134wI2f9FKr+5M=";
+    hash = "sha256-wzU9U4mYvBf43qBQi20ewKtmw1eFskQk+nnsdaM7HQM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index 1ff20bf488738..dc31b0a9af321 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -13,37 +13,35 @@
 , voluptuous
 , websocket-client
 , xmltodict
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2024.3.1";
+  version = "2024.4.6";
   pyproject = true;
 
-  disabled = pythonOlder "3.11";
+  disabled = pythonOlder "3.12";
 
   src = fetchFromGitHub {
     owner = "danielperna84";
     repo = "hahomematic";
     rev = "refs/tags/${version}";
-    hash = "sha256-/ulqUyplNu8YTHJKcfNPYzyzPvGkLFtoJDu5SqvfQrs=";
+    hash = "sha256-w+sSaadbbfc1cNCTx5YYIm8eAKRQxyqZZKK2QPFZv7Y=";
   };
 
   __darwinAllowLocalNetworking = true;
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-fail "setuptools~=69.1.0" "setuptools" \
-      --replace-fail "wheel~=0.42.0" "wheel"
+      --replace-fail "setuptools~=69.2.0" "setuptools" \
+      --replace-fail "wheel~=0.43.0" "wheel"
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
-    wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     orjson
     python-slugify
@@ -64,8 +62,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module to interact with HomeMatic devices";
     homepage = "https://github.com/danielperna84/hahomematic";
-    changelog = "https://github.com/danielperna84/hahomematic/releases/tag/${version}";
-    license = with licenses; [ mit ];
+    changelog = "https://github.com/danielperna84/hahomematic/blob/${src.rev}/changelog.md";
+    license = licenses.mit;
     maintainers = with maintainers; [ dotlambda fab ];
   };
 }
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index 9ee4c0e3f9686..ac32e43cf9322 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, acme
-, aiohttp
-, atomicwrites-homeassistant
-, attrs
-, buildPythonPackage
-, ciso8601
-, cryptography
-, fetchFromGitHub
-, pycognito
-, pyjwt
-, pytest-aiohttp
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, snitun
-, syrupy
-, xmltodict
+{
+  lib,
+  acme,
+  aiohttp,
+  atomicwrites-homeassistant,
+  attrs,
+  buildPythonPackage,
+  ciso8601,
+  cryptography,
+  fetchFromGitHub,
+  pycognito,
+  pyjwt,
+  pytest-aiohttp,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  setuptools,
+  snitun,
+  syrupy,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.79.0";
+  version = "0.80.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -31,19 +32,16 @@ buildPythonPackage rec {
     owner = "nabucasa";
     repo = "hass-nabucasa";
     rev = "refs/tags/${version}";
-    hash = "sha256-7VhafefF7imvnhdFo6K+18h5kmXvIatKerJ+Qn5zwdQ=";
+    hash = "sha256-8KxnS6LTK077/hr81JOiOj8GaNWBXO8XlvpYBm/sZbI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    pythonRelaxDepsHook
-  ];
+  pythonRelaxDeps = [ "acme" ];
 
-  pythonRelaxDeps = [
-    "acme"
-  ];
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     acme
     aiohttp
     atomicwrites-homeassistant
@@ -63,13 +61,11 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  pythonImportsCheck = [
-    "hass_nabucasa"
-  ];
+  pythonImportsCheck = [ "hass_nabucasa" ];
 
   meta = with lib; {
-    homepage = "https://github.com/NabuCasa/hass-nabucasa";
     description = "Python module for the Home Assistant cloud integration";
+    homepage = "https://github.com/NabuCasa/hass-nabucasa";
     changelog = "https://github.com/NabuCasa/hass-nabucasa/releases/tag/${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Scriptkiddi ];
diff --git a/pkgs/development/python-modules/herepy/default.nix b/pkgs/development/python-modules/herepy/default.nix
index 07a8aec79c75d..ac7ad29191391 100644
--- a/pkgs/development/python-modules/herepy/default.nix
+++ b/pkgs/development/python-modules/herepy/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "herepy";
-  version = "3.6.1";
+  version = "3.6.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "abdullahselek";
     repo = "HerePy";
     rev = "refs/tags/${version}";
-    hash = "sha256-DOtlXoVelTGY/fKkHW/K0d0w52Q7N91Whi9AHG4tRZQ=";
+    hash = "sha256-+DI9wjYVAUKdGEXWhbV9Xp0oOazcB+sS89ugIZuZM2w=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/hikari/default.nix b/pkgs/development/python-modules/hikari/default.nix
new file mode 100644
index 0000000000000..e76d7780c0bfa
--- /dev/null
+++ b/pkgs/development/python-modules/hikari/default.nix
@@ -0,0 +1,80 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
+, pytest-runner
+, aiohttp
+, attrs
+, multidict
+, colorlog
+, pynacl
+, pytest-cov
+, pytest-randomly
+, pytest-asyncio
+, mock
+}:
+buildPythonPackage rec {
+  pname = "hikari";
+  version = "2.0.0.dev124";
+
+  src = fetchFromGitHub {
+    owner = "hikari-py";
+    repo = "hikari";
+    rev = version;
+    hash = "sha256-zDgU3Ol/I3YNnwXm+aBh20KwonW746p5TObuwuWORog=";
+    # The git commit is part of the `hikari.__git_sha1__` original output;
+    # leave that output the same in nixpkgs. Use the `.git` directory
+    # to retrieve the commit SHA, and remove the directory afterwards,
+    # since it is not needed after that.
+    leaveDotGit = true;
+    postFetch = ''
+      cd "$out"
+      git rev-parse HEAD > $out/COMMIT
+      find "$out" -name .git -print0 | xargs -0 rm -rf
+    '';
+  };
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    attrs
+    multidict
+    colorlog
+  ];
+
+  pythonRelaxDeps = true;
+
+  passthru.optional-dependencies = {
+    server = [ pynacl ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-runner
+    pytest-asyncio
+    pytest-cov
+    pytest-randomly
+    mock
+  ];
+
+  pythonImportChecks = [ "hikari" ];
+
+  disabled = pythonOlder "3.7";
+
+  postPatch = ''
+    substituteInPlace hikari/_about.py --replace "__git_sha1__: typing.Final[str] = \"HEAD\"" "__git_sha1__: typing.Final[str] = \"$(cat $src/COMMIT)\""
+  '';
+
+  meta = with lib; {
+    description = "Discord API wrapper for Python written with asyncio";
+    homepage = "https://www.hikari-py.dev/";
+    changelog = "https://github.com/hikari-py/hikari/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tomodachi94 ];
+  };
+}
diff --git a/pkgs/development/python-modules/homeassistant-bring-api/default.nix b/pkgs/development/python-modules/homeassistant-bring-api/default.nix
deleted file mode 100644
index 2912e26f5c80c..0000000000000
--- a/pkgs/development/python-modules/homeassistant-bring-api/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-}:
-
-buildPythonPackage rec {
-  pname = "homeassistant-bring-api";
-  version = "0.5.6";
-  pyproject = true;
-
-  disabled = pythonOlder "3.8";
-
-  src = fetchFromGitHub {
-    owner = "miaucl";
-    repo = "homeassistant-bring-api";
-    rev = "refs/tags/${version}";
-    hash = "sha256-vfc4xKLeGF2FuBFwqU99qbkUDBK5Uz66S4F2ODRDPa8=";
-  };
-
-  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/htmldate/default.nix b/pkgs/development/python-modules/htmldate/default.nix
index 68602cb2cdc9f..7ba14ca5e7147 100644
--- a/pkgs/development/python-modules/htmldate/default.nix
+++ b/pkgs/development/python-modules/htmldate/default.nix
@@ -1,62 +1,59 @@
-{ lib
-, backports-datetime-fromisoformat
-, buildPythonPackage
-, charset-normalizer
-, dateparser
-, faust-cchardet
-, fetchPypi
-, lxml
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, setuptools
-, urllib3
+{
+  lib,
+  backports-datetime-fromisoformat,
+  buildPythonPackage,
+  charset-normalizer,
+  dateparser,
+  faust-cchardet,
+  fetchPypi,
+  lxml,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "htmldate";
-  version = "1.8.0";
+  version = "1.8.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+Ux9AX9Coc9CLlp8XvEMrLridohjFPJ6mGRkYn8wuxU=";
+    hash = "sha256-yvFobPdcYd0fBh7eXXpG51mxXV+Zh82OE8jEI3URJj0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     charset-normalizer
     dateparser
     lxml
     python-dateutil
     urllib3
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    backports-datetime-fromisoformat
-  ];
+  ] ++ lib.optionals (pythonOlder "3.7") [ backports-datetime-fromisoformat ];
 
   passthru.optional-dependencies = {
-    speed = [
-      faust-cchardet
-      urllib3
-    ] ++ lib.optionals (pythonOlder "3.11") [
-      backports-datetime-fromisoformat
-    ] ++ urllib3.optional-dependencies.brotli;
-    all = [
-      faust-cchardet
-      urllib3
-    ] ++ lib.optionals (pythonOlder "3.11") [
-      backports-datetime-fromisoformat
-    ] ++ urllib3.optional-dependencies.brotli;
+    speed =
+      [
+        faust-cchardet
+        urllib3
+      ]
+      ++ lib.optionals (pythonOlder "3.11") [ backports-datetime-fromisoformat ]
+      ++ urllib3.optional-dependencies.brotli;
+    all =
+      [
+        faust-cchardet
+        urllib3
+      ]
+      ++ lib.optionals (pythonOlder "3.11") [ backports-datetime-fromisoformat ]
+      ++ urllib3.optional-dependencies.brotli;
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # disable tests that require an internet connection
   disabledTests = [
@@ -65,15 +62,13 @@ buildPythonPackage rec {
     "test_download"
   ];
 
-  pythonImportsCheck = [
-    "htmldate"
-  ];
+  pythonImportsCheck = [ "htmldate" ];
 
   meta = with lib; {
     description = "Module for the extraction of original and updated publication dates from URLs and web pages";
     homepage = "https://htmldate.readthedocs.io";
     changelog = "https://github.com/adbar/htmldate/blob/v${version}/CHANGELOG.md";
-    license = licenses.gpl3Plus;
+    license = licenses.asl20;
     maintainers = with maintainers; [ jokatzke ];
     mainProgram = "htmldate";
   };
diff --git a/pkgs/development/python-modules/httpsig/default.nix b/pkgs/development/python-modules/httpsig/default.nix
index f1529bf212da2..fe7ed11c2fffe 100644
--- a/pkgs/development/python-modules/httpsig/default.nix
+++ b/pkgs/development/python-modules/httpsig/default.nix
@@ -1,30 +1,38 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 , setuptools-scm
 , pycryptodome
 , requests
 , six
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "httpsig";
   version = "1.3.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rkc3zwsq53rjsmc47335m4viljiwdbmw3y2zry4z70j8q1dbmki";
+    hash = "sha256-cdbVAkYSnE98/sIPXlfjUdK4SS1jHMKqlnkUrPkfbOY=";
   };
 
-  buildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pycryptodome
     requests
     six
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [ "httpsig" ];
diff --git a/pkgs/development/python-modules/hwi/default.nix b/pkgs/development/python-modules/hwi/default.nix
index 0f4c21e86e7c9..311036b388247 100644
--- a/pkgs/development/python-modules/hwi/default.nix
+++ b/pkgs/development/python-modules/hwi/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "hwi";
-  version = "2.4.0";
+  version = "3.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bitcoin-core";
     repo = "HWI";
     rev = "refs/tags/${version}";
-    hash = "sha256-a1ppYDuY7CtNrKSvuAofS79nvDaYUMIm4FCHiiQYrtQ=";
+    hash = "sha256-hpMH3Zy3/TTBYUukJQZw63f0KuE3O9G2aYcGdL6Q3eM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/indexed-bzip2/default.nix b/pkgs/development/python-modules/indexed-bzip2/default.nix
index 53788b566e529..d15e075e5d57e 100644
--- a/pkgs/development/python-modules/indexed-bzip2/default.nix
+++ b/pkgs/development/python-modules/indexed-bzip2/default.nix
@@ -1,13 +1,15 @@
 { lib
 , buildPythonPackage
+, cython
 , fetchPypi
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "indexed_bzip2";
   version = "1.6.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -16,6 +18,8 @@ buildPythonPackage rec {
     hash = "sha256-3HUiigZR91/nbOAMOuSHGcPtqkkEaj3VepyMhmKOHpI=";
   };
 
+  nativeBuildInputs = [ cython setuptools ];
+
   # has no tests
   doCheck = false;
 
@@ -27,6 +31,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/mxmlnkn/indexed_bzip2";
     license = licenses.mit; # dual MIT and asl20, https://internals.rust-lang.org/t/rationale-of-apache-dual-licensing/8952
     maintainers = with lib.maintainers; [ mxmlnkn ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/indexed-gzip/default.nix b/pkgs/development/python-modules/indexed-gzip/default.nix
index 7b0bf177bf199..bfe9e894ce5fb 100644
--- a/pkgs/development/python-modules/indexed-gzip/default.nix
+++ b/pkgs/development/python-modules/indexed-gzip/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, setuptools
 , cython
 , zlib
 }:
@@ -9,7 +10,7 @@
 buildPythonPackage rec {
   pname = "indexed_gzip";
   version = "1.8.7";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-dryq1LLC+lVHj/i+m60ubGGItlX5/clCnwNGrexI92I=";
   };
 
-  nativeBuildInputs = [ cython ];
+  nativeBuildInputs = [ cython setuptools ];
 
   buildInputs = [ zlib ];
 
@@ -32,6 +33,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/pauldmccarthy/indexed_gzip";
     license = licenses.zlib;
     maintainers = with lib.maintainers; [ mxmlnkn ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/indexed-zstd/default.nix b/pkgs/development/python-modules/indexed-zstd/default.nix
index f9d643c8ff497..88cb6f05930ae 100644
--- a/pkgs/development/python-modules/indexed-zstd/default.nix
+++ b/pkgs/development/python-modules/indexed-zstd/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, setuptools
 , cython
 , zstd
 }:
@@ -9,7 +10,7 @@
 buildPythonPackage rec {
   pname = "indexed_zstd";
   version = "1.6.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -18,10 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-icCerrv6ihBjSTS4Fsw7qhoA5ha8yegfMVRiIOhTvvY=";
   };
 
-  nativeBuildInputs = [ cython ];
+  nativeBuildInputs = [ cython setuptools ];
 
   buildInputs = [ zstd.dev ];
 
+  postPatch = "cython -3 --cplus indexed_zstd/indexed_zstd.pyx";
+
   # has no tests
   doCheck = false;
 
@@ -32,6 +35,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/martinellimarco/indexed_zstd";
     license = licenses.mit;
     maintainers = with lib.maintainers; [ mxmlnkn ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index 1caa71211c5fd..761ab5852a0c2 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.3";
+  version = "6.29.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4UwlDR+eo5iUkCJcwaVCeBsJWhihlEf88rXq99CsW9I=";
+    hash = "sha256-PUQHAGD5R1rCCSt2ASP63xBdLiSTwkhItmkafE9Cr1w=";
   };
 
   # debugpy is optional, see https://github.com/ipython/ipykernel/pull/767
diff --git a/pkgs/development/python-modules/ipyparallel/default.nix b/pkgs/development/python-modules/ipyparallel/default.nix
index 2ad3df50dfc94..b5b2713182b6e 100644
--- a/pkgs/development/python-modules/ipyparallel/default.nix
+++ b/pkgs/development/python-modules/ipyparallel/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "ipyparallel";
-  version = "8.7.0";
+  version = "8.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QDwJca5Wwrajn/6PNfMcf9FwzhJ5JGKUWc3X96C058M=";
+    hash = "sha256-JATVn4ajqqO9J79rV993e/9cE2PBxuYEA3WdFu1C3Hs=";
   };
 
   # We do not need the jupyterlab build dependency, because we do not need to
diff --git a/pkgs/development/python-modules/ipyvuetify/default.nix b/pkgs/development/python-modules/ipyvuetify/default.nix
index 8c3bbf654c2bd..cd2a597d6c171 100644
--- a/pkgs/development/python-modules/ipyvuetify/default.nix
+++ b/pkgs/development/python-modules/ipyvuetify/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "ipyvuetify";
-  version = "1.9.2";
+  version = "1.9.4";
   pyproject = true;
 
   # GitHub version tries to run npm (Node JS)
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kAcL/PR3jThbmfDKMBQRPbcDyZ7GrRwuzDLWE8bC1M4=";
+    hash = "sha256-wpwfN68wpj2+lLb4w0erAZYa7OrbVhNfGMv0635oiVs=";
   };
 
   # drop pynpm which tries to install node_modules
diff --git a/pkgs/development/python-modules/jaraco-abode/default.nix b/pkgs/development/python-modules/jaraco-abode/default.nix
index c19c5c64286f6..d113028361fe2 100644
--- a/pkgs/development/python-modules/jaraco-abode/default.nix
+++ b/pkgs/development/python-modules/jaraco-abode/default.nix
@@ -24,27 +24,18 @@
 
 buildPythonPackage rec {
   pname = "jaraco-abode";
-  version = "5.1.0";
-  format = "pyproject";
+  version = "5.1.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "jaraco";
     repo = "jaraco.abode";
     rev = "refs/tags/v${version}";
-    hash = "sha256-guLgmhjFgYLRZsQ0j92NXkktZ80bwVvMUJLZeg3dgxE=";
+    hash = "sha256-TUxljF1k/fvQoNcHx6jMRJrYgzxjXefvMl+mBD0DL8o=";
   };
 
-  postPatch = ''
-    # https://github.com/jaraco/jaraco.abode/issues/19
-    echo "graft jaraco" > MANIFEST.in
-
-    # https://github.com/jaraco/jaraco.abode/commit/9e3e789efc96cddcaa15f920686bbeb79a7469e0
-    substituteInPlace jaraco/abode/helpers/timeline.py \
-      --replace "call_aside" "invoke"
-  '';
-
   nativeBuildInputs = [
     setuptools
     setuptools-scm
diff --git a/pkgs/development/python-modules/javaobj-py3/default.nix b/pkgs/development/python-modules/javaobj-py3/default.nix
index 1d8566a6f3261..2c303784a87a8 100644
--- a/pkgs/development/python-modules/javaobj-py3/default.nix
+++ b/pkgs/development/python-modules/javaobj-py3/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "javaobj-py3";
-  version = "0.4.3";
+  version = "0.4.4";
   format = "setuptools";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "38f74db3a57e9998a9774e3614afb95cb396f139f29b3fdb130c5af554435259";
+    sha256 = "sha256-5OMlfvLPgaMzl4ek1c+STlTJHwlacj9tJYTa5h1Dlu0=";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix
index 47734c8a89736..852b529e8bcc1 100644
--- a/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "6.1.0";
+  version = "6.2.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9IXhzdXVEk0M2O01eHysiDziZWmEy6Ehb7nHC6OHCwc=";
+    hash = "sha256-kV2g1qbS5L7bEqfPijj60eK+pbTc8SAs/tctpNv0PFs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/junos-eznc/default.nix b/pkgs/development/python-modules/junos-eznc/default.nix
index 35a8e38ec0f0d..55e34c9e30aa4 100644
--- a/pkgs/development/python-modules/junos-eznc/default.nix
+++ b/pkgs/development/python-modules/junos-eznc/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jinja2
-, lxml
-, mock
-, ncclient
-, netaddr
-, nose2
-, ntc-templates
-, paramiko
-, pyparsing
-, pyserial
-, pythonOlder
-, pyyaml
-, scp
-, setuptools
-, pytestCheckHook
-, six
-, transitions
-, yamlordereddictloader
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  lxml,
+  mock,
+  ncclient,
+  netaddr,
+  nose2,
+  ntc-templates,
+  paramiko,
+  pyparsing,
+  pyserial,
+  pythonOlder,
+  pyyaml,
+  scp,
+  setuptools,
+  pytestCheckHook,
+  six,
+  transitions,
+  yamlordereddictloader,
 }:
 
 buildPythonPackage rec {
   pname = "junos-eznc";
-  version = "2.7.0";
+  version = "2.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -32,14 +33,12 @@ buildPythonPackage rec {
     owner = "Juniper";
     repo = "py-junos-eznc";
     rev = "refs/tags/${version}";
-    hash = "sha256-06OV6UrF2i4SxL5dCvVxsEX2e8ef8UBFx/oMbvCZDaM=";
+    hash = "sha256-aoi+in5A8qSdQNY3V4S4wBBfPchR1an7G6GQHDhgxpQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jinja2
     lxml
     ncclient
@@ -61,9 +60,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-   "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
   disabledTests = [
     # jnpr.junos.exception.FactLoopError: A loop was detected while gathering the...
@@ -76,9 +73,7 @@ buildPythonPackage rec {
     "test_domain_fact_from_config"
   ];
 
-  pythonImportsCheck = [
-    "jnpr.junos"
-  ];
+  pythonImportsCheck = [ "jnpr.junos" ];
 
   meta = with lib; {
     description = "Junos 'EZ' automation for non-programmers";
diff --git a/pkgs/development/python-modules/jupyterhub/default.nix b/pkgs/development/python-modules/jupyterhub/default.nix
index 8ee4d3ef09dc9..2aa83c6f85af6 100644
--- a/pkgs/development/python-modules/jupyterhub/default.nix
+++ b/pkgs/development/python-modules/jupyterhub/default.nix
@@ -72,14 +72,14 @@ in
 
 buildPythonPackage rec {
   pname = "jupyterhub";
-  version = "4.1.3";
+  version = "4.1.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-61RxYcVwl0SkUHPYePPgyWVAhZouZBmTHDbu986Ii4I=";
+    hash = "sha256-Y7ofxxhDbBUZRqWKO0A+xP6LP2JPsZW8HY5ww5sz4ZQ=";
   };
 
   # Most of this only applies when building from source (e.g. js/css assets are
diff --git a/pkgs/development/python-modules/jupyterlab-server/default.nix b/pkgs/development/python-modules/jupyterlab-server/default.nix
index c1470c58893d4..f295ce204ad29 100644
--- a/pkgs/development/python-modules/jupyterlab-server/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-server/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-server";
-  version = "2.25.4";
+  version = "2.26.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "jupyterlab_server";
     inherit version;
-    hash = "sha256-IJgZjh6C4NuYJED5tRNhddc76izUKmSAqm/VAssjxPk=";
+    hash = "sha256-mzupHPKDf38ST8o21j88qArOK+1ImKY91H5lmMGrAG8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index 768fd085b74b0..dc48c597d5489 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "4.1.5";
+  version = "4.1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ya11KQyxC/r/NiS/P7uFIxm0zOTEVmE/jruqmNA1JNs=";
+    hash = "sha256-eTXza6JuthUYOk9cK7yleRtRCM4qALVQX4z9EA1TZI4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/kaggle/default.nix b/pkgs/development/python-modules/kaggle/default.nix
index 29a6cdae62f29..f6e0a7fcfaeb5 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.8";
+  version = "1.6.11";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gBwqC+XN9vTJprs2cSV2AgayZvQ9RLVXx+052EiUlwA=";
+    sha256 = "sha256-oN3jld3SB5XZTqoM9mIj4bdgMuzOX6Rj3VQhbedvX1Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/labelbox/default.nix b/pkgs/development/python-modules/labelbox/default.nix
index 25314acd50267..98c7adcc8e11b 100644
--- a/pkgs/development/python-modules/labelbox/default.nix
+++ b/pkgs/development/python-modules/labelbox/default.nix
@@ -15,9 +15,11 @@
 , pytestCheckHook
 , python-dateutil
 , pythonOlder
+, pythonRelaxDepsHook
 , requests
 , setuptools
 , shapely
+, strenum
 , tqdm
 , typeguard
 , typing-extensions
@@ -25,36 +27,49 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "3.65";
+  version = "3.67.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Labelbox";
     repo = "labelbox-python";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-i0hbVxGrb2C/bMcVPNzaPBxhKm+5r3o1GlToZvIS35k=";
+    rev = "refs/tags/v.${version}";
+    hash = "sha256-JQTjmYxPBS8JC4HQTtbQ7hb80LPLYE4OEj1lFA6cZ1Y=";
   };
 
   postPatch = ''
     substituteInPlace pytest.ini \
-      --replace "--reruns 5 --reruns-delay 10" ""
+      --replace-fail "--reruns 2 --reruns-delay 10 --durations=20 -n 10" ""
+
+    # disable pytest_plugins which requires `pygeotile`
+    substituteInPlace tests/conftest.py \
+      --replace-fail "pytest_plugins" "_pytest_plugins"
   '';
 
   nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "python-dateutil"
+  ];
+
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     google-api-core
     pydantic
     python-dateutil
     requests
+    strenum
     tqdm
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     data = [
       shapely
       geojson
@@ -74,13 +89,7 @@ buildPythonPackage rec {
     nbconvert
     nbformat
     pytestCheckHook
-  ] ++ passthru.optional-dependencies.data;
-
-  # disable pytest_plugins which requires `pygeotile`
-  preCheck = ''
-    substituteInPlace tests/conftest.py \
-      --replace "pytest_plugins" "_pytest_plugins"
-  '';
+  ] ++ optional-dependencies.data;
 
   disabledTestPaths = [
     # Requires network access
diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix
index a23a1df69c64d..6832aeffeaf48 100644
--- a/pkgs/development/python-modules/langchain-community/default.nix
+++ b/pkgs/development/python-modules/langchain-community/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.31";
+  version = "0.0.32";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_community";
     inherit version;
-    hash = "sha256-mpcLwrtZu0wgS2ltjGLCU09t2zEAUAXMG31/k05Ypfw=";
+    hash = "sha256-FRAhfWRsg4D1TphQNR9tKgsN1zxQG2Zsb0tAuqgWCyk=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix
index 20a98496dbf79..e7c3361e7158f 100644
--- a/pkgs/development/python-modules/langchain-core/default.nix
+++ b/pkgs/development/python-modules/langchain-core/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.40";
+  version = "0.1.42";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_core";
     inherit version;
-    hash = "sha256-NMBvwObTU0tzjGP4VANEa0vnEWFmW34JH5uxnJFOwQA=";
+    hash = "sha256-QHUb9g6l2OKy7+ZSkNtDRxfuODSHDAAuQOKBHwnYFOY=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix
index 3b8cc793697d2..48c2c0db93a1b 100644
--- a/pkgs/development/python-modules/langchain/default.nix
+++ b/pkgs/development/python-modules/langchain/default.nix
@@ -51,7 +51,7 @@
 
 buildPythonPackage rec {
   pname = "langchain";
-  version = "0.1.14";
+  version = "0.1.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -60,7 +60,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langchain";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wV6QFeJ/kV0nDVlA2qsJ9p1n3Yxy8Q/NZ1IX8cFtzcg=";
+    hash = "sha256-Xv8juma/1qGC2Rb659dJBvRzRh5W+zU+O8W6peElFGc=";
   };
 
   sourceRoot = "${src.name}/libs/langchain";
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index 6c340d28211eb..db00f39cfe899 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.1.40";
+  version = "0.1.45";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LdHCTPFrIhIOWV4m9pJx7GWQX1Xs6ajaXMgPFO+JQ8w=";
+    hash = "sha256-8A9wqhM8U5Q8o0uMyu+LQKhV+1Nsyg4opJjwylc6kkI=";
   };
 
   sourceRoot = "${src.name}/python";
diff --git a/pkgs/development/python-modules/linien-common/default.nix b/pkgs/development/python-modules/linien-common/default.nix
index f0fd4b920707b..88da8560db467 100644
--- a/pkgs/development/python-modules/linien-common/default.nix
+++ b/pkgs/development/python-modules/linien-common/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "linien-common";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "linien-org";
     repo = "linien";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZgAp1SEiHijyjK74VZyRLYY3Hzfc3BQ6cnoO3hZzvbE=";
+    hash = "sha256-V6oo0a4cNlvn4pIwzchvCTOu7qtUGS+Pc0qpbEsvGZo=";
   };
 
   sourceRoot = "${src.name}/linien-common";
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index 5d5a7884ded2c..6fc8f23d754fe 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "litellm";
-  version = "1.34.20";
+  version = "1.35.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9MZOqNhrBFtflznqroRUc/B7dUgy9t5HdUW/LGYQOYw=";
+    hash = "sha256-bFAoaKH1y+Q5JE7OEY8w5hX3+6LAgswaCx1bKYmLZX0=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/llama-index-core/default.nix b/pkgs/development/python-modules/llama-index-core/default.nix
index 6eea1a140ab70..c31ec174efa80 100644
--- a/pkgs/development/python-modules/llama-index-core/default.nix
+++ b/pkgs/development/python-modules/llama-index-core/default.nix
@@ -31,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-core";
-  version = "0.10.27";
+  version = "0.10.28.post1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     owner = "run-llama";
     repo = "llama_index";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jfmoj9TOrFngHs8s7qeMHit/7YGdGX8GrqJMu3avWs4=";
+    hash = "sha256-BOpKaOP0DdBdVB0bMrAwXG5xaZ3AXnHX3/sHt1GRWJs=";
   };
 
   sourceRoot = "${src.name}/${pname}";
diff --git a/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix b/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
index 21b9f3bc3f02a..722139cfdedc8 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-generativeai
-, llama-index-core
-, poetry-core
-, pytestCheckHook
-, pythonRelaxDepsHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-generativeai,
+  llama-index-core,
+  poetry-core,
+  pytestCheckHook,
+  pythonRelaxDepsHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-gemini";
-  version = "0.1.5";
+  version = "0.1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,15 +20,16 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_gemini";
     inherit version;
-    hash = "sha256-FQzZ+MjuAApOImpxQhuaCFDIKdojzD5zqDOepo8fCNo=";
+    hash = "sha256-HYwYA67/7gDxE7ZxQkkyblgwE83gZXuDmUuseXujr5g=";
   };
 
-  pythonRelaxDeps = [
-    "google-generativeai"
-  ];
+  pythonRelaxDeps = [ "google-generativeai" ];
 
   build-system = [
     poetry-core
+  ];
+
+  nativeBuildInputs = [
     pythonRelaxDepsHook
   ];
 
@@ -39,9 +41,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.embeddings.gemini"
-  ];
+  pythonImportsCheck = [ "llama_index.embeddings.gemini" ];
 
   meta = with lib; {
     description = "LlamaIndex Llms Integration for Gemini";
diff --git a/pkgs/development/python-modules/llama-index-embeddings-google/default.nix b/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
index eb378f7ca3af2..cebedfe90b629 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-generativeai
-, llama-index-core
-, poetry-core
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-generativeai,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
+  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-google";
-  version = "0.1.4";
+  version = "0.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,17 +19,14 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_google";
     inherit version;
-    hash = "sha256-jQYN/5XPCrMjvwXBARdRDLC+3JhqgZjlcVajmcRlVJw=";
+    hash = "sha256-mJ+H4klmGlpTGXLErlLNWH5IUpGyXnbAhNsgT5fwCHs=";
   };
 
-  pythonRelaxDeps = [
-    "google-generativeai"
-  ];
+  pythonRelaxDeps = [ "google-generativeai" ];
 
-  build-system = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     google-generativeai
@@ -38,9 +36,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.embeddings.google"
-  ];
+  pythonImportsCheck = [ "llama_index.embeddings.google" ];
 
   meta = with lib; {
     description = "LlamaIndex Embeddings Integration for Google";
diff --git a/pkgs/development/python-modules/llama-index-llms-openai/default.nix b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
index fbb23ae82bdce..121cfee981e87 100644
--- a/pkgs/development/python-modules/llama-index-llms-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-llms-openai";
-  version = "0.1.14";
+  version = "0.1.15";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,23 +17,17 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_llms_openai";
     inherit version;
-    hash = "sha256-frpmiCroT6QrGIlBI0uEJnxI5EnvIU9RF1bcrT+fC2I=";
+    hash = "sha256-a9vzB7HUOpp8KlL3K6fbYcuW2QT5nn6l2IndeBjxCBQ=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    llama-index-core
-  ];
+  dependencies = [ llama-index-core ];
 
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.llms.openai"
-  ];
+  pythonImportsCheck = [ "llama_index.llms.openai" ];
 
   meta = with lib; {
     description = "LlamaIndex LLMS Integration for OpenAI";
diff --git a/pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix b/pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix
index 3df214e8bffdd..389f2c6fe763f 100644
--- a/pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, llama-index-llms-openai
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  llama-index-llms-openai,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-multi-modal-llms-openai";
-  version = "0.1.4";
+  version = "0.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,12 +18,10 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_multi_modal_llms_openai";
     inherit version;
-    hash = "sha256-al1lhMM6nRsGz1yHTGOvJgP8k7ZgveSBqMVH6HbG4sM=";
+    hash = "sha256-miN/T4htHiDCfpST6As+H4dThZSB/xtY/iW3qjmxmKI=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     llama-index-core
@@ -32,9 +31,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.multi_modal_llms.openai"
-  ];
+  pythonImportsCheck = [ "llama_index.multi_modal_llms.openai" ];
 
   meta = with lib; {
     description = "LlamaIndex Multi-Modal-Llms Integration for OpenAI";
diff --git a/pkgs/development/python-modules/llama-index-readers-file/default.nix b/pkgs/development/python-modules/llama-index-readers-file/default.nix
index 18a126dd3822c..f62da3ce969fb 100644
--- a/pkgs/development/python-modules/llama-index-readers-file/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-file/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pymupdf
-, pypdf
-, pythonOlder
-, pythonRelaxDepsHook
-, striprtf
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pymupdf,
+  pypdf,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  striprtf,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-readers-file";
-  version = "0.1.13";
+  version = "0.1.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_file";
     inherit version;
-    hash = "sha256-gw8G7Hs0Q3/Du18mjSNcXHZAKWrbFI2Pkid9zrfwhG0=";
+    hash = "sha256-fyW4/drxqRusBsZnJ7kTtI4m72hxT81RlwUbP3EPTPo=";
   };
 
   pythonRelaxDeps = [
@@ -29,14 +30,9 @@ buildPythonPackage rec {
     "pypdf"
   ];
 
-  pythonRemoveDeps = [
-    "bs4"
-  ];
+  build-system = [ poetry-core ];
 
-  build-system = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     beautifulsoup4
@@ -49,9 +45,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.readers.file"
-  ];
+  pythonImportsCheck = [ "llama_index.readers.file" ];
 
   meta = with lib; {
     description = "LlamaIndex Readers Integration for files";
diff --git a/pkgs/development/python-modules/llama-index-readers-s3/default.nix b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
index 947a81bb76c47..b43eb933ff780 100644
--- a/pkgs/development/python-modules/llama-index-readers-s3/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, llama-index-readers-file
-, poetry-core
-, pythonOlder
-, s3fs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  llama-index-readers-file,
+  poetry-core,
+  pythonOlder,
+  s3fs,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-readers-s3";
-  version = "0.1.5";
+  version = "0.1.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,12 +19,10 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_s3";
     inherit version;
-    hash = "sha256-x3XaPKxnvYYzrJYDmXIKC9YOAOr1HOU1XnaaHIuQnhk=";
+    hash = "sha256-xj7uRsc56Wv/SF4OPo/jc+43PabJ4vaM5HcxhnxTzY8=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     llama-index-core
@@ -34,9 +33,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.readers.s3"
-  ];
+  pythonImportsCheck = [ "llama_index.readers.s3" ];
 
   meta = with lib; {
     description = "LlamaIndex Readers Integration for S3";
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
index 195af9c19d2d2..3b8ccd2a6f3b6 100644
--- a/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
+++ b/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-vector-stores-qdrant";
-  version = "0.1.6";
+  version = "0.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_vector_stores_qdrant";
     inherit version;
-    hash = "sha256-MKmtxcHUqF3CzakGNXxvXy3jemoJNbdkCaqrgZ5Rtyo=";
+    hash = "sha256-eYgp2S4KubjyL0bgaL7nRCyFhvTuLU7c7vjw4tJ+9wA=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llamaindex-py-client/default.nix b/pkgs/development/python-modules/llamaindex-py-client/default.nix
index d80b1b28ab9e4..46af937a382ce 100644
--- a/pkgs/development/python-modules/llamaindex-py-client/default.nix
+++ b/pkgs/development/python-modules/llamaindex-py-client/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "llamaindex-py-client";
-  version = "0.1.16";
+  version = "0.1.18";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llamaindex_py_client";
     inherit version;
-    hash = "sha256-6Zu8CFXmyqp166IZzbPPbJQ66U+hXMu2ijoI1FL9Y4A=";
+    hash = "sha256-CR7kmpJZLjiUd3reElFsITcJP51kQaVJ9AZGGRfOm34=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/marimo/default.nix b/pkgs/development/python-modules/marimo/default.nix
index 5ebd6708f362f..871ba7bffbf0d 100644
--- a/pkgs/development/python-modules/marimo/default.nix
+++ b/pkgs/development/python-modules/marimo/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "marimo";
-  version = "0.3.9";
+  version = "0.3.12";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tkBCfOMevhYcDvRNps00zvGx45S/aVF/KHDxNTCBq98=";
+    hash = "sha256-4OwTY4OFkTQcQqHntjcfwPTx4w+2GPEUBy/XgW/nATU=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/memory-allocator/default.nix b/pkgs/development/python-modules/memory-allocator/default.nix
index 90c75d0bb7fe5..9f680255e1889 100644
--- a/pkgs/development/python-modules/memory-allocator/default.nix
+++ b/pkgs/development/python-modules/memory-allocator/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "memory-allocator";
-  version = "0.1.3";
+  version = "0.1.4";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "memory_allocator";
-    hash = "sha256-E4BcKuHAG3SJ+rXo6sk2FmK08sAkEuNlLuzkj/aVMWI=";
+    hash = "sha256-1gkhawMDGWfitFqASxL/kClXj07AGf3kLPau1soJ7+Q=";
   };
 
   propagatedBuildInputs = [ cython_3 ];
diff --git a/pkgs/development/python-modules/meshtastic/default.nix b/pkgs/development/python-modules/meshtastic/default.nix
index bc00d859f6b83..7fab04572aa61 100644
--- a/pkgs/development/python-modules/meshtastic/default.nix
+++ b/pkgs/development/python-modules/meshtastic/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, bleak
-, buildPythonPackage
-, dotmap
-, fetchFromGitHub
-, pexpect
-, protobuf
-, pygatt
-, pypubsub
-, pyqrcode
-, pyserial
-, pytap2
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
-, setuptools
-, tabulate
-, timeago
+{
+  lib,
+  bleak,
+  buildPythonPackage,
+  dotmap,
+  fetchFromGitHub,
+  pexpect,
+  protobuf,
+  pygatt,
+  pypubsub,
+  pyqrcode,
+  pyserial,
+  pytap2,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  setuptools,
+  tabulate,
+  timeago,
 }:
 
 buildPythonPackage rec {
   pname = "meshtastic";
-  version = "2.3.3";
+  version = "2.3.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,12 +31,10 @@ buildPythonPackage rec {
     owner = "meshtastic";
     repo = "Meshtastic-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-kydZgOiQHDovQ5RwyLru2nyHoCEVZClq8wJit/mnbvU=";
+    hash = "sha256-WxiddF1n9lyxKkZk1MU40NzLh6goLVs81mbJZ3F33R8=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     bleak
@@ -54,9 +53,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    tunnel = [
-      pytap2
-    ];
+    tunnel = [ pytap2 ];
   };
 
   nativeCheckInputs = [
@@ -68,19 +65,21 @@ buildPythonPackage rec {
     export PATH="$PATH:$out/bin";
   '';
 
-  pythonImportsCheck = [
-    "meshtastic"
-  ];
+  pythonImportsCheck = [ "meshtastic" ];
 
   disabledTests = [
     # TypeError
-    "test_main_info"
-    "test_main_support"
+    "test_main_info_with_seriallog_output_txt"
+    "test_main_info_with_seriallog_stdout"
     "test_main_info_with_tcp_interfa"
+    "test_main_info"
     "test_main_no_proto"
-    "test_main_info_with_seriallog_stdout"
-    "test_main_info_with_seriallog_output_txt"
+    "test_main_support"
+    "test_MeshInterface"
+    "test_message_to_json_shows_all"
+    "test_SerialInterface_single_port"
     "test_support_info"
+    "test_TCPInterface"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/midea-beautiful-air/default.nix b/pkgs/development/python-modules/midea-beautiful-air/default.nix
new file mode 100644
index 0000000000000..1fde2c7a34f48
--- /dev/null
+++ b/pkgs/development/python-modules/midea-beautiful-air/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, cryptography
+, requests
+, pytestCheckHook
+, pytest-socket
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "midea-beautiful-air";
+  version = "0.10.5";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "nbogojevic";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-786Q085bv8Zsm0c55I4XalRhEfwElRTJds5qnb0cWhk=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    cryptography
+    requests
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-socket
+    requests-mock
+  ];
+
+  disabledTestPaths = [
+    # tests optional dependencies + network
+    "tests/test_cli.py"
+  ];
+
+  pythonImportsCheck = [ "midea_beautiful" ];
+
+  meta = with lib; {
+    description = "Python client for accessing Midea air conditioners and dehumidifiers (Midea, Comfee, Inventor EVO) via local network";
+    homepage = "https://github.com/nbogojevic/midea-beautiful-air";
+    changelog = "https://github.com/nbogojevic/midea-beautiful-air/releases/tag/v${version}";
+    maintainers = with maintainers; [ k900 ];
+    mainProgram = "midea-beautiful-air-cli";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/mido/default.nix b/pkgs/development/python-modules/mido/default.nix
index 90b5128e47479..fc2a97689806d 100644
--- a/pkgs/development/python-modules/mido/default.nix
+++ b/pkgs/development/python-modules/mido/default.nix
@@ -6,6 +6,7 @@
 , portmidi
 , python-rtmidi
 , pytestCheckHook
+, pythonRelaxDepsHook
 , pythonOlder
 , setuptools
 , setuptools-scm
@@ -33,6 +34,11 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     setuptools
     setuptools-scm
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "packaging"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mitogen/default.nix b/pkgs/development/python-modules/mitogen/default.nix
index ea710516df68b..a7de51b4f8cb1 100644
--- a/pkgs/development/python-modules/mitogen/default.nix
+++ b/pkgs/development/python-modules/mitogen/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "mitogen";
-  version = "0.3.6";
+  version = "0.3.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "mitogen-hq";
     repo = "mitogen";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zQTto4SGPvQIXPAcTQx8FA+n/5RcpqKKn0UqlFM2yqI=";
+    hash = "sha256-RcgAyBF5qNw8Hp//aq6UuvElhUjJXS+ySSXsSweyFXE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/mkdocs-material/default.nix b/pkgs/development/python-modules/mkdocs-material/default.nix
index 5a609b8b3306f..3b4e459669e41 100644
--- a/pkgs/development/python-modules/mkdocs-material/default.nix
+++ b/pkgs/development/python-modules/mkdocs-material/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-material";
-  version = "9.5.15";
+  version = "9.5.17";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "squidfunk";
     repo = "mkdocs-material";
     rev = "refs/tags/${version}";
-    hash = "sha256-u5XRLAh1X/Y6p6HcKMeCEeDe98tCieGdF9oxqh69ris=";
+    hash = "sha256-r+w3Nf7mAfWiDUeOelO+ykizeqxRiKWBnbUjakXov3U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mkdocstrings-python/default.nix b/pkgs/development/python-modules/mkdocstrings-python/default.nix
index de1ae5e6c72e0..7a57a73338ad2 100644
--- a/pkgs/development/python-modules/mkdocstrings-python/default.nix
+++ b/pkgs/development/python-modules/mkdocstrings-python/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, griffe
-, mkdocs-material
-, mkdocstrings
-, pdm-backend
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  griffe,
+  mkdocs-material,
+  mkdocstrings,
+  pdm-backend,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "mkdocstrings-python";
-  version = "1.9.0";
+  version = "1.9.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,14 +21,12 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "python";
     rev = "refs/tags/${version}";
-    hash = "sha256-RzyOhlfjLtiG5jelrRG8yS7AWQJuaJMVuNkGpNBGO64=";
+    hash = "sha256-UJSDnkdohFn+U7i5fYiRVMLZZ8Nyb0fdihBZl2z2RBc=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  build-system = [ pdm-backend ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     griffe
     mkdocstrings
   ];
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "mkdocstrings_handlers"
-  ];
+  pythonImportsCheck = [ "mkdocstrings_handlers" ];
 
   meta = with lib; {
     description = "Python handler for mkdocstrings";
diff --git a/pkgs/development/python-modules/mkdocstrings/default.nix b/pkgs/development/python-modules/mkdocstrings/default.nix
index b09b819d33174..a8dc02b4a980c 100644
--- a/pkgs/development/python-modules/mkdocstrings/default.nix
+++ b/pkgs/development/python-modules/mkdocstrings/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, jinja2
-, markdown
-, markupsafe
-, mkdocs
-, mkdocs-autorefs
-, pdm-backend
-, pymdown-extensions
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  jinja2,
+  markdown,
+  markupsafe,
+  mkdocs,
+  mkdocs-autorefs,
+  pdm-backend,
+  pymdown-extensions,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "mkdocstrings";
-  version = "0.24.2";
+  version = "0.24.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "mkdocstrings";
     rev = "refs/tags/${version}";
-    hash = "sha256-RlEr9NA6GV/XXjGvX/Yipu6FQAi7HuE9SvIH/snQJRM=";
+    hash = "sha256-L3QQ2ll2sDbQwrmw88iwTW6WS2SNsiMR2TvuV4P1uj4=";
   };
 
   postPatch = ''
@@ -33,29 +34,25 @@ buildPythonPackage rec {
       --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  build-system = [
-    pdm-backend
-  ];
+  build-system = [ pdm-backend ];
 
-  dependencies = [
-    jinja2
-    markdown
-    markupsafe
-    mkdocs
-    mkdocs-autorefs
-    pymdown-extensions
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-    typing-extensions
-  ];
+  dependencies =
+    [
+      jinja2
+      markdown
+      markupsafe
+      mkdocs
+      mkdocs-autorefs
+      pymdown-extensions
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [
+      importlib-metadata
+      typing-extensions
+    ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mkdocstrings"
-  ];
+  pythonImportsCheck = [ "mkdocstrings" ];
 
   disabledTestPaths = [
     # Circular dependencies
diff --git a/pkgs/development/python-modules/moderngl-window/default.nix b/pkgs/development/python-modules/moderngl-window/default.nix
index 34b1b650da08a..abe68766a9ced 100644
--- a/pkgs/development/python-modules/moderngl-window/default.nix
+++ b/pkgs/development/python-modules/moderngl-window/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "moderngl-window";
-  version = "2.4.5";
+  version = "2.4.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "moderngl";
     repo = "moderngl_window";
     rev = "refs/tags/${version}";
-    hash = "sha256-OfvIxezeZyuv5LLbe+4o1X2UCGnXT2DNvAF7t2Isw6Y=";
+    hash = "sha256-zTygSXU/vQZaFCuHbRBpO9/BYYA2UOid+wvhyc2bWMI=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/molecule/default.nix b/pkgs/development/python-modules/molecule/default.nix
index 309a3cdcfadfa..170d0bd2f7413 100644
--- a/pkgs/development/python-modules/molecule/default.nix
+++ b/pkgs/development/python-modules/molecule/default.nix
@@ -1,38 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, testers
-, ansible-compat
-, ansible-core
-, click-help-colors
-, enrich
-, jsonschema
-, molecule
-, withPlugins ? true, molecule-plugins
-, packaging
-, pluggy
-, rich
-, setuptools
-, setuptools-scm
-, yamllint
-, wcmatch
-, wheel
+{
+  lib,
+  ansible-compat,
+  ansible-core,
+  buildPythonPackage,
+  click-help-colors,
+  enrich,
+  fetchPypi,
+  jsonschema,
+  molecule,
+  packaging,
+  pluggy,
+  pythonOlder,
+  rich,
+  setuptools,
+  setuptools-scm,
+  testers,
+  wcmatch,
+  withPlugins ? true,
+  molecule-plugins,
+  yamllint,
 }:
 
 buildPythonPackage rec {
   pname = "molecule";
-  version = "24.2.0";
-  format = "pyproject";
+  version = "24.2.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-R8mCp9Bdt4Rtp3/nFZ3rlG8myvsuOI/HGBK+AImkF3Y=";
+    hash = "sha256-g1IrqpuRVg6phic8qxScORVpdunWEkVxciYyCTWtVuQ=";
   };
 
   nativeBuildInputs = [
     setuptools
     setuptools-scm
-    wheel
   ];
 
   propagatedBuildInputs = [
@@ -53,19 +56,22 @@ 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)";
-  });
+  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";
-    mainProgram = "molecule";
     homepage = "https://github.com/ansible-community/molecule";
-    maintainers = with maintainers; [ dawidd6 ];
+    changelog = "https://github.com/ansible/molecule/releases/tag/v${version}";
     license = licenses.mit;
+    maintainers = with maintainers; [ dawidd6 ];
+    mainProgram = "molecule";
   };
 }
diff --git a/pkgs/development/python-modules/monty/default.nix b/pkgs/development/python-modules/monty/default.nix
index 77c7547e0b69f..a2af96582ca54 100644
--- a/pkgs/development/python-modules/monty/default.nix
+++ b/pkgs/development/python-modules/monty/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "monty";
-  version = "2024.2.26";
+  version = "2024.3.31";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "materialsvirtuallab";
     repo = "monty";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+NxgZ8JCoAih4nHq+KP4jym0xnKCjUXJqs+xPpKZPbs=";
+    hash = "sha256-Gg9KTsS7Np11jYBA8MgblQM6OmzOM/MPLsVZ6fUKT6g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mplhep/default.nix b/pkgs/development/python-modules/mplhep/default.nix
index fe00f97f25acd..3988db9a8d28c 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.44";
+  version = "0.3.46";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UyHjNtkULBzsa76ky+6zgjErXKCfnn2oaJPjG47Pgqw=";
+    hash = "sha256-MEYIvKwQLbQPgaEEpSXs6v1MUQ/txzU8D0Ivd/6TlMw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix
index 6b983174f05f3..a736cffb9b309 100644
--- a/pkgs/development/python-modules/msal/default.nix
+++ b/pkgs/development/python-modules/msal/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.27.0";
+  version = "1.28.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MQlQPAOLprMHFSsOjTT5gRPy56eJhuKNC69bUwOv2lI=";
+    hash = "sha256-gLur40Vny3NO/S7BhpstmBlcknRVNp2Ad7PFQgiMXJ0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mujoco/default.nix b/pkgs/development/python-modules/mujoco/default.nix
index 098e2a768cc00..9237dbb6501ca 100644
--- a/pkgs/development/python-modules/mujoco/default.nix
+++ b/pkgs/development/python-modules/mujoco/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "mujoco";
-  version = "3.1.3";
+  version = "3.1.4";
 
   pyproject = true;
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   # in the project's CI.
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9wDQdAMQYLRhEd22BDLQBCX4Ie7q8MzHbtldR4Yb1N4=";
+    hash = "sha256-GdeL1zMri/ArjXyjXTgan48WVPTHDA1/SZxtTYB8QFk=";
   };
 
   nativeBuildInputs = [ cmake setuptools ];
diff --git a/pkgs/development/python-modules/multiset/default.nix b/pkgs/development/python-modules/multiset/default.nix
index c8d813047d5f9..27476e44b17f1 100644
--- a/pkgs/development/python-modules/multiset/default.nix
+++ b/pkgs/development/python-modules/multiset/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "multiset";
-  version = "3.0.2";
+  version = "3.1.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oqUSMaQtkiriJFwpTCNaKfioiOBoZdL84hxuyvER//8=";
+    hash = "sha256-jpPlhvaI0uKwD6WEPiqC9p6XHhrHrT14+dKkdgjem6Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix
index 30ff6d456d214..f37179b9d192c 100644
--- a/pkgs/development/python-modules/mypy-boto3/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3/default.nix
@@ -111,7 +111,7 @@ rec {
 
   mypy-boto3-backupstorage = buildMypyBoto3Package "backupstorage" "1.34.0" "sha256-Y8kjZ+ov8OsiJ8Sm1LlvP8YbgVc+AkLkbZIhOh4y7ZY=";
 
-  mypy-boto3-batch = buildMypyBoto3Package "batch" "1.34.72" "sha256-ha5OZVVcO/+slxQOPIrd+D1Ehaw6YpGqCWofSgFj5JI=";
+  mypy-boto3-batch = buildMypyBoto3Package "batch" "1.34.83" "sha256-mJ6t+8ov7x8tfJNavY6qZpHxwenVGhTXy6NRlD7muPc=";
 
   mypy-boto3-billingconductor = buildMypyBoto3Package "billingconductor" "1.34.1" "sha256-uXxQkoe2u3idcYta9YFbjxoK8HsvUiRQSyYrYhVi1kU=";
 
@@ -133,7 +133,7 @@ rec {
 
   mypy-boto3-chime-sdk-voice = buildMypyBoto3Package "chime-sdk-voice" "1.34.0" "sha256-9fQQgWFKeabSblJIhP6mN0CEnSixkz1r3mf/k6IL/BE=";
 
-  mypy-boto3-cleanrooms = buildMypyBoto3Package "cleanrooms" "1.34.78" "sha256-76zy6rTsSqmKdwrZwBsf7m6qPZXSdi6GpQEXMvN82Tw=";
+  mypy-boto3-cleanrooms = buildMypyBoto3Package "cleanrooms" "1.34.82" "sha256-KaCs/P3NM3IeZ9V9khIwysyBXBG/8RuGFBAlrbMYn4Y=";
 
   mypy-boto3-cloud9 = buildMypyBoto3Package "cloud9" "1.34.24" "sha256-fryD7UfO5cdFS7vMxmZaT9LW4nNSGTQCd3NyD60f9wA=";
 
@@ -143,7 +143,7 @@ rec {
 
   mypy-boto3-cloudformation = buildMypyBoto3Package "cloudformation" "1.34.77" "sha256-mQAUGCaB+d8iV/GFBWEmwNswvxJg9s09Rs7bPPRn8K0=";
 
-  mypy-boto3-cloudfront = buildMypyBoto3Package "cloudfront" "1.34.0" "sha256-3n/WEiQdcE253J+CFsskoYlNMXASdzkhPTWneSHDKoM=";
+  mypy-boto3-cloudfront = buildMypyBoto3Package "cloudfront" "1.34.83" "sha256-glPRMg4IS/5Mz6ckyQWgZuu9G3IlPsfA97fx41YpSw0=";
 
   mypy-boto3-cloudhsm = buildMypyBoto3Package "cloudhsm" "1.34.0" "sha256-Sd/YlKNm/1VRoJ+e+3YlOf4jKoewYVGM4FNYlST+9AY=";
 
@@ -157,11 +157,11 @@ rec {
 
   mypy-boto3-cloudtrail-data = buildMypyBoto3Package "cloudtrail-data" "1.34.0" "sha256-ACiJrI+VTHr06i8PKgDY/K8houFUZQNS1lluouadCTQ=";
 
-  mypy-boto3-cloudwatch = buildMypyBoto3Package "cloudwatch" "1.34.75" "sha256-Q0Qz809o6FcN5OVotLLF3fgebt+2mbFnhfBCKTZO0aU=";
+  mypy-boto3-cloudwatch = buildMypyBoto3Package "cloudwatch" "1.34.83" "sha256-dm4WbFtGPZiFpZKdwWu1kuD6fXvq9WmqT1AdhahIvBM=";
 
   mypy-boto3-codeartifact = buildMypyBoto3Package "codeartifact" "1.34.68" "sha256-Ey0cmx0OxN1/VXIyvn0EOBP9qYIuc/XyFVZniHLaNEY=";
 
-  mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.74" "sha256-A8SRNosqzXQab2J9gnYUWNkIdju8QqX44GJnFSNE4DQ=";
+  mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.83" "sha256-nf1rO/BmEFenb/Z/bWKHRDpZVG3WZb9OPIsxcKOdATo=";
 
   mypy-boto3-codecatalyst = buildMypyBoto3Package "codecatalyst" "1.34.73" "sha256-jQ/DIoWXQWo1oVWi4Gn88cxr78QCs45EVtgfc6fZkFk=";
 
@@ -197,7 +197,7 @@ rec {
 
   mypy-boto3-config = buildMypyBoto3Package "config" "1.34.45" "sha256-LN1CcIOj9cgzSNCvnUVwLRNPXlitHAlt+5jj6wu6i8E=";
 
-  mypy-boto3-connect = buildMypyBoto3Package "connect" "1.34.67" "sha256-kWjC/FacCsC0xevx2dOs67UxaKG1WM3xMahcO3CqZL8=";
+  mypy-boto3-connect = buildMypyBoto3Package "connect" "1.34.82" "sha256-QyZteRrk1d+Qwqj87uUb4f2ZK5SjPdMJV4NGv6kwrl4=";
 
   mypy-boto3-connect-contact-lens = buildMypyBoto3Package "connect-contact-lens" "1.34.0" "sha256-Wx9vcjlgXdWZ2qP3Y/hTY2LAeTd+hyyV5JSIuKQ5I5k=";
 
@@ -335,7 +335,7 @@ rec {
 
   mypy-boto3-honeycode = buildMypyBoto3Package "honeycode" "1.34.0" "sha256-HNp/STFuMLoO4qyL0iaYeiPpnMV3uzNBNFUDgzrHt9s=";
 
-  mypy-boto3-iam = buildMypyBoto3Package "iam" "1.34.8" "sha256-b69oz4ABgpJGh7ZxGz+a+o2UCtmT8lmjuR5V6CiS1kE=";
+  mypy-boto3-iam = buildMypyBoto3Package "iam" "1.34.83" "sha256-cmExVhZ1fr91Cd8OmwkdWULkcOtRxLI8ZioGhzqajso=";
 
   mypy-boto3-identitystore = buildMypyBoto3Package "identitystore" "1.34.0" "sha256-OdJsMjraTe4qhpblBOuwr++4QfiMXtaaMHDAEOTBII4=";
 
@@ -467,9 +467,9 @@ rec {
 
   mypy-boto3-mediaconnect = buildMypyBoto3Package "mediaconnect" "1.34.7" "sha256-A8Sal8qNijZ/PdwLLC3mGAt8btMGOHXzOAOVFn+JDtU=";
 
-  mypy-boto3-mediaconvert = buildMypyBoto3Package "mediaconvert" "1.34.33" "sha256-7OwfjcWDE1AHvpyOu3fE5YBwjQscpa+VnE7eylk1unA=";
+  mypy-boto3-mediaconvert = buildMypyBoto3Package "mediaconvert" "1.34.81" "sha256-MGULtrMziQpOXF4eNZabcu83rR13AHBMZrN5RgkqATk=";
 
-  mypy-boto3-medialive = buildMypyBoto3Package "medialive" "1.34.77" "sha256-2SRqRzh96HS6KKN0Xpbf8xq2XedS1etMm316rnIpu9k=";
+  mypy-boto3-medialive = buildMypyBoto3Package "medialive" "1.34.83" "sha256-VFyz2fNgx2fFFsU3843vwpZBQxGrVzNbyZWF1kv6KaY=";
 
   mypy-boto3-mediapackage = buildMypyBoto3Package "mediapackage" "1.34.0" "sha256-4DJ2zVk0satmVn+TZdDExx/+ClJpc1bdmbvl72Joe5U=";
 
@@ -491,7 +491,7 @@ rec {
 
   mypy-boto3-mgh = buildMypyBoto3Package "mgh" "1.34.0" "sha256-tyA+ywgjdRkIU2vbZwCsQfWIYctw/kLjIGTEAZuf8oU=";
 
-  mypy-boto3-mgn = buildMypyBoto3Package "mgn" "1.34.0" "sha256-BKzXdrkbnMw4m53xIRBSLta7wxeQpOEMgK6Yj9hmLf0=";
+  mypy-boto3-mgn = buildMypyBoto3Package "mgn" "1.34.80" "sha256-eLfAHkhqlU9HK6bLfBFOZ+UzFI1q/vJLFmxQcBRJNt8=";
 
   mypy-boto3-migration-hub-refactor-spaces = buildMypyBoto3Package "migration-hub-refactor-spaces" "1.34.0" "sha256-T37s/ubwuU1zsKk8DmTFum6Ml3+WNZCJ+q8T6F75iUY=";
 
@@ -521,7 +521,7 @@ rec {
 
   mypy-boto3-oam = buildMypyBoto3Package "oam" "1.34.73" "sha256-MAnS/E6BKcaubeOdblitGzS7y7YUZr35M4679iJL6lE=";
 
-  mypy-boto3-omics = buildMypyBoto3Package "omics" "1.34.7" "sha256-Mtb11Oe2j28u+MFaycvMMNiqi7ZdVDcKQV/X/7npze4=";
+  mypy-boto3-omics = buildMypyBoto3Package "omics" "1.34.83" "sha256-66IykobW8D/oemTVIGf0xw7H+mb4yNzXMQHv/dnzqGg=";
 
   mypy-boto3-opensearch = buildMypyBoto3Package "opensearch" "1.34.43" "sha256-EOl56YqzuIUWlSewnVCtEdzt3Ei5yueP4emtTQq3QrA=";
 
@@ -553,7 +553,7 @@ rec {
 
   mypy-boto3-pi = buildMypyBoto3Package "pi" "1.34.0" "sha256-97giGYtpINPHxtcUU6cE/mPF0/r6YfLixAdcC/LGKC0=";
 
-  mypy-boto3-pinpoint = buildMypyBoto3Package "pinpoint" "1.34.0" "sha256-oa8RAEtGeoyGpXq2sJSbEnLXorS6liInO196SGO6D/E=";
+  mypy-boto3-pinpoint = buildMypyBoto3Package "pinpoint" "1.34.81" "sha256-vs7gJCsMrpXBhPFwcHmQ/IT4sOYBMJ6IlcCLGMPuog8=";
 
   mypy-boto3-pinpoint-email = buildMypyBoto3Package "pinpoint-email" "1.34.0" "sha256-AHwJtYsAxFiEX16L0HZXz9JzjNZck9V40bFwzicMKUE=";
 
@@ -561,7 +561,7 @@ rec {
 
   mypy-boto3-pinpoint-sms-voice-v2 = buildMypyBoto3Package "pinpoint-sms-voice-v2" "1.34.0" "sha256-Ci/nnvgq6YbVPHLZVmLDHjF8GHpViVP7mfUJREFKndg=";
 
-  mypy-boto3-pipes = buildMypyBoto3Package "pipes" "1.34.0" "sha256-c/N5SaT4BS0Ldv/P6yi43gB4LzDeqB9y1Xx1UAHf6dU=";
+  mypy-boto3-pipes = buildMypyBoto3Package "pipes" "1.34.83" "sha256-Z//eO1IEEolh+5loNBmS5R5W5sdyGt/0T88kI726PKA=";
 
   mypy-boto3-polly = buildMypyBoto3Package "polly" "1.34.43" "sha256-rx5sW32N6H47fpy5yGvwlKKVKS/uIKOtLfsjoGoNPJg=";
 
@@ -575,13 +575,13 @@ rec {
 
   mypy-boto3-qldb-session = buildMypyBoto3Package "qldb-session" "1.34.0" "sha256-JHePiaFCfIJPxZzvC1U38xrBGkDvB9+yKwPecaZl7BY=";
 
-  mypy-boto3-quicksight = buildMypyBoto3Package "quicksight" "1.34.73" "sha256-tbO9V8EiPR1OyCYImQHYmMsZtvclNK7Mnoqt3s0YRFM=";
+  mypy-boto3-quicksight = buildMypyBoto3Package "quicksight" "1.34.79" "sha256-oHaZrX3aRoaFs5VLC7dQMihSocWLmCupHGhReXPbGBo=";
 
   mypy-boto3-ram = buildMypyBoto3Package "ram" "1.34.0" "sha256-9sOspEfirpVQ8cT9ILUSWypxBswpAD75A0hHRV7glNg=";
 
   mypy-boto3-rbin = buildMypyBoto3Package "rbin" "1.34.0" "sha256-Y+a/p3r5IgWk4oH6MOeq0e7rMiNvLCqoz1ZE+xXNtOw=";
 
-  mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.65" "sha256-uEgsI/MsacidGZEYWhvXDVE2RUFdtuh027YZbL4Lyb8=";
+  mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.83" "sha256-/H99xDRpX9egs39pRaYkvJ3GM6syh+famJmTTRsCgYs=";
 
   mypy-boto3-rds-data = buildMypyBoto3Package "rds-data" "1.34.6" "sha256-d+WXt3cSUe5ZxynSjPSJxXgv6evP/rhZrX1ua9rtSx8=";
 
@@ -591,13 +591,13 @@ rec {
 
   mypy-boto3-redshift-serverless = buildMypyBoto3Package "redshift-serverless" "1.34.16" "sha256-ag5tKb1+4cHiG99OszDNGdnX9RPRPraaqM8p3IqgLBg=";
 
-  mypy-boto3-rekognition = buildMypyBoto3Package "rekognition" "1.34.20" "sha256-zKJX/AlDoDKUbrI1LZq2kk5fr+SNqES6gniM0FQGeaM=";
+  mypy-boto3-rekognition = buildMypyBoto3Package "rekognition" "1.34.82" "sha256-qy7yacSuG6cARR2L/YjBGWYM1BU5/qtMr/H08x3XFIM=";
 
   mypy-boto3-resiliencehub = buildMypyBoto3Package "resiliencehub" "1.34.0" "sha256-F/ZRCp/M/6kBI4Apb3mISzqe1Zi4Y7gq/vu0dvyyTvM=";
 
   mypy-boto3-resource-explorer-2 = buildMypyBoto3Package "resource-explorer-2" "1.34.41" "sha256-Q4MCAvEZkYRnDLEF9d8x+FOMUJ9O2eCb2mZr/e8Ut24=";
 
-  mypy-boto3-resource-groups = buildMypyBoto3Package "resource-groups" "1.34.0" "sha256-Wz1Oo/Ze6ROHkg5EAas7ZKLOWE6RS+uKpNea79WUrLY=";
+  mypy-boto3-resource-groups = buildMypyBoto3Package "resource-groups" "1.34.79" "sha256-tSCHhtaSb+dnXD8D2aNR6DBAlhHbvU3zx6YceGTlzgM=";
 
   mypy-boto3-resourcegroupstaggingapi = buildMypyBoto3Package "resourcegroupstaggingapi" "1.34.0" "sha256-ko55TJeH/EGsAp1Y8ZTYhmGEqWGKQTnN3IQEF31V6Ns=";
 
@@ -621,7 +621,7 @@ rec {
 
   mypy-boto3-s3 = buildMypyBoto3Package "s3" "1.34.65" "sha256-L830Es4pJLLws021mr8GqcC75M0zYfFPDSweIRwPfd0=";
 
-  mypy-boto3-s3control = buildMypyBoto3Package "s3control" "1.34.18" "sha256-53s5ii1gFX9toigiazEtS5Jogg3VFFr+1/uiLzoU7Uo=";
+  mypy-boto3-s3control = buildMypyBoto3Package "s3control" "1.34.83" "sha256-A0P6rAebwt9IUKTderlE8tWQJexUjthpO6KClrDbNyc=";
 
   mypy-boto3-s3outposts = buildMypyBoto3Package "s3outposts" "1.34.0" "sha256-xLuGP9Fe0S7zRimt1AKd9KOrytmNd/GTRg5OVi5Xpos=";
 
@@ -727,7 +727,7 @@ rec {
 
   mypy-boto3-translate = buildMypyBoto3Package "translate" "1.34.0" "sha256-4tjjmwMtIPpMwKZ3yqB96XEb1WidCxMIj2Cfjn0nTy8=";
 
-  mypy-boto3-verifiedpermissions = buildMypyBoto3Package "verifiedpermissions" "1.34.78" "sha256-k3Rv2K9/i6VVH0WSb35Izr/g2LWIEXiiFgSWEtQUdY0=";
+  mypy-boto3-verifiedpermissions = buildMypyBoto3Package "verifiedpermissions" "1.34.79" "sha256-su6Lq/NVOp2Shgb6UPdrJLqAv9qG8Mx3bQk9PwihybM=";
 
   mypy-boto3-voice-id = buildMypyBoto3Package "voice-id" "1.34.0" "sha256-c6HseKIqRPs8NmFZYsg+9jWCMGpMi+VpvM9BiWq16PY=";
 
diff --git a/pkgs/development/python-modules/nbformat/default.nix b/pkgs/development/python-modules/nbformat/default.nix
index 8207fd2eaef8c..588c5823ec34b 100644
--- a/pkgs/development/python-modules/nbformat/default.nix
+++ b/pkgs/development/python-modules/nbformat/default.nix
@@ -15,27 +15,31 @@
 
 buildPythonPackage rec {
   pname = "nbformat";
-  version = "5.10.3";
-  format = "pyproject";
+  version = "5.10.4";
+  pyproject = true;
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YO1ekQ73xiZLh9ZE8naxtJ4kARkw3u9UYFGI3eshFoU=";
+    hash = "sha256-MiFosU+Tel0RNimI7KwqSVLT2OOiy+sjGVhGMSJtWzo=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     hatch-nodejs-version
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     fastjsonschema
     jsonschema
     jupyter-core
     traitlets
   ];
 
+  pythonImportsCheck = [
+    "nbformat"
+  ];
+
   nativeCheckInputs = [
     pep440
     pytestCheckHook
diff --git a/pkgs/development/python-modules/niaarm/default.nix b/pkgs/development/python-modules/niaarm/default.nix
index 747cf394f4ad0..ff61dfd1eb8de 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.8";
+  version = "0.3.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "firefly-cpp";
     repo = "NiaARM";
     rev = "refs/tags/${version}";
-    hash = "sha256-p07SuCl433rj6IEMO1eg5QHAUTVfgqYo5gsprMvQg2Y=";
+    hash = "sha256-J3126RSJYBCSyxoPsvsDgmx9E+9fP2h6avPiCHISL7c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix
index b0ca879248e83..2df58149ba4ac 100644
--- a/pkgs/development/python-modules/numba/default.nix
+++ b/pkgs/development/python-modules/numba/default.nix
@@ -32,7 +32,7 @@ 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.59.0";
+  version = "0.59.1";
   pname = "numba";
   pyproject = true;
 
@@ -54,7 +54,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-wd4TujPhV2Jy/HUUXLHAlcbVFm4gfQNWxWFXD+jeZC4=";
+    hash = "sha256-4udpgLLHbHNtxPiYVkj+gxAjTWV3ClZOv98Y313/qbc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/oci/default.nix b/pkgs/development/python-modules/oci/default.nix
index b4ad1c942d45f..ebb27d0dfe7e5 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.125.0";
+  version = "2.125.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "oracle";
     repo = "oci-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-H4LGMl2SuXAGD2cdaDQYkWkYqhjp+EDFOnrku6cG6jk=";
+    hash = "sha256-tpWaH/uiUm0wmJrSyxiy9H8I/c44KmGjWEecBk6Yq40=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/oncalendar/default.nix b/pkgs/development/python-modules/oncalendar/default.nix
new file mode 100644
index 0000000000000..5b4920a6cef75
--- /dev/null
+++ b/pkgs/development/python-modules/oncalendar/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "oncalendar";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "cuu508";
+    repo = "oncalendar";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-eQYxOnL4/TJbY/nijcPl8TqK2MrwcdISKGfZQoI7828=";
+  };
+
+  nativeBuildInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "oncalendar" ];
+
+  meta = with lib; {
+    description = "A systemd OnCalendar expression parser and evaluator";
+    homepage = "https://github.com/cuu508/oncalendar";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ phaer ];
+  };
+}
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index b61fc611b9d2d..67532ed5e6df3 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "1.16.2";
+  version = "1.17.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7.1";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-7JWwEoVEdAy+tPcaYUPN7xA62Egzlv/2NNcDqvmDYh4=";
+    hash = "sha256-NAfG8edQB9L72MlESqMXw6fo/s2F/BjAf5yRAmx+J/s=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/optimum/default.nix b/pkgs/development/python-modules/optimum/default.nix
index 2b8a9415fc2c9..1bdda5a5afa4f 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.18.0";
+  version = "1.18.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "optimum";
     rev = "refs/tags/v${version}";
-    hash = "sha256-svNavPO/3ARqcBDpvaAdbbSqFpzgUY72vy2J1d4Bt90=";
+    hash = "sha256-Y+KWvpd/ULthCOr18hQjP0REQPcs2Ql2aUi3DIKIOpQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/optuna/default.nix b/pkgs/development/python-modules/optuna/default.nix
index dd423b87a2266..97f065323c728 100644
--- a/pkgs/development/python-modules/optuna/default.nix
+++ b/pkgs/development/python-modules/optuna/default.nix
@@ -43,7 +43,7 @@
 
 buildPythonPackage rec {
   pname = "optuna";
-  version = "3.6.0";
+  version = "3.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -52,7 +52,7 @@ buildPythonPackage rec {
     owner = "optuna";
     repo = "optuna";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KYSefIVGBUsN+A7nOWPBJyD4a+Wa+pO9WLyTpg8Cuy4=";
+    hash = "sha256-+ZqMRIza4K5VWTUm7tC87S08SI+C8GKd2Uh3rGoHwd0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/oras/default.nix b/pkgs/development/python-modules/oras/default.nix
index b1d0c07b0c3c2..16a8a9d9fd6b6 100644
--- a/pkgs/development/python-modules/oras/default.nix
+++ b/pkgs/development/python-modules/oras/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jsonschema
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonschema,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "oras";
-  version = "0.1.28";
+  version = "0.1.29";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,25 +20,19 @@ buildPythonPackage rec {
     owner = "oras-project";
     repo = "oras-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-yka4TypKqGczW+NugmCGa8PgtaSJeaQ4sPphPsIPLow=";
+    hash = "sha256-ZV+J5zqRBRIddWdmLzzjpZi3M5E/HfkG8lWK9xzy5tw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jsonschema
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "oras"
-  ];
+  pythonImportsCheck = [ "oras" ];
 
   disabledTests = [
     # Test requires network access
diff --git a/pkgs/development/python-modules/orbax-checkpoint/default.nix b/pkgs/development/python-modules/orbax-checkpoint/default.nix
index 37ecfccc6d701..aa5a5572dec99 100644
--- a/pkgs/development/python-modules/orbax-checkpoint/default.nix
+++ b/pkgs/development/python-modules/orbax-checkpoint/default.nix
@@ -1,28 +1,29 @@
-{ 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
+{
+  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.7";
+  version = "0.5.9";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -30,14 +31,12 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "orbax_checkpoint";
     inherit version;
-    hash = "sha256-3hRUm4mSIKT0RUU5Z8GsLXFluBUlM0JYd0YAXwOpgTs=";
+    hash = "sha256-H96IkUM3IxV79uddNBCU0dq+0dvPx8/Ps4HeCItGi2A=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     absl-py
     cached-property
     etils
diff --git a/pkgs/development/python-modules/osc/default.nix b/pkgs/development/python-modules/osc/default.nix
index a51352785f537..ef96910759625 100644
--- a/pkgs/development/python-modules/osc/default.nix
+++ b/pkgs/development/python-modules/osc/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "osc";
-  version = "1.3.1";
+  version = "1.6.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "osc";
     rev = version;
-    sha256 = "sha256-pywSXGM3IX3cTr1uJIP7pNGIYE/skMIoJeoaMU75zwc=";
+    hash = "sha256-U76nAE7NdLIdrKzRC0sP8hy6G6A8Tr4Qe2PGZI2xvyk=";
   };
 
   buildInputs = [ bashInteractive ]; # needed for bash-completion helper
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/openSUSE/osc";
     description = "opensuse-commander with svn like handling";
     mainProgram = "osc";
-    maintainers = [ maintainers.peti ];
+    maintainers = with maintainers; [ peti saschagrunert ];
     license = licenses.gpl2;
   };
 
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
index 9248eca812557..a13706dacb549 100644
--- a/pkgs/development/python-modules/paste/default.nix
+++ b/pkgs/development/python-modules/paste/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "paste";
-  version = "3.8.0";
+  version = "3.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "cdent";
     repo = "paste";
     rev = "refs/tags/${version}";
-    hash = "sha256-T9VG91Y8hap1nt3FkuCGsv8nglWNlRajvsvljXexH3Y=";
+    hash = "sha256-HdeShtslnvjmuiUb0W3ASnSWcZnyDJcthsIOjYmuD8I=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pbs-installer/default.nix b/pkgs/development/python-modules/pbs-installer/default.nix
new file mode 100644
index 0000000000000..ab892b5260e77
--- /dev/null
+++ b/pkgs/development/python-modules/pbs-installer/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pdm-backend
+, httpx
+, zstandard
+}:
+
+buildPythonPackage rec {
+  pname = "pbs-installer";
+  version = "2024.4.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "frostming";
+    repo = "pbs-installer";
+    rev = version;
+    hash = "sha256-0LuajPD/sM0LoyRoCkGJ9medUcWNEPqvY76GgK2rIac=";
+  };
+
+  build-system = [
+    pdm-backend
+  ];
+
+  optional-dependencies = {
+    all = optional-dependencies.install ++ optional-dependencies.download;
+    download = [
+      httpx
+    ];
+    install = [
+      zstandard
+    ];
+  };
+
+  pythonImportsCheck = [ "pbs_installer" ];
+
+  # upstream has no test
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Installer for Python Build Standalone";
+    homepage = "https://github.com/frostming/pbs-installer";
+    changelog = "https://github.com/frostming/pbs-installer/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/pillow-heif/default.nix b/pkgs/development/python-modules/pillow-heif/default.nix
index 10edc6edb8bd1..6560c63ac2832 100644
--- a/pkgs/development/python-modules/pillow-heif/default.nix
+++ b/pkgs/development/python-modules/pillow-heif/default.nix
@@ -27,14 +27,14 @@
 
 buildPythonPackage rec {
   pname = "pillow-heif";
-  version = "0.15.0";
+  version = "0.16.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bigcat88";
     repo = "pillow_heif";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zSPbOb7+U45Vmad6IwNtkunLXdT3ledKAE4QWlSeP0g=";
+    hash = "sha256-TpK6VK2YoOtc4ueag33m5n1umcUWOUgcda/MZEEOR7g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ping3/default.nix b/pkgs/development/python-modules/ping3/default.nix
index 998904bd98754..52f780cfad934 100644
--- a/pkgs/development/python-modules/ping3/default.nix
+++ b/pkgs/development/python-modules/ping3/default.nix
@@ -1,32 +1,37 @@
-{ lib
-, buildPythonPackage
-, setuptools
-, wheel
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ping3";
-  version = "4.0.5";
-  format = "pyproject";
+  version = "4.0.8";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HwkYXokyFDZSSZayEtID08q1rSJofedGRXDxx/udwFE=";
+    hash = "sha256-mrRg61fwBrcfl3ppPRVyFaq9a7y8bNZCi2lR6q4MKHU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
+  build-system = [ setuptools ];
+
+  # Tests require additional permissions
+  doCheck = false;
 
   pythonImportsCheck = [ "ping3" ];
 
   meta = with lib; {
-    description = "A pure python3 version of ICMP ping implementation using raw socket";
-    mainProgram = "ping3";
-    homepage = "https://pypi.org/project/ping3";
+    description = "ICMP ping implementation using raw socket";
+    homepage = "https://github.com/kyan001/ping3";
+    changelog = "https://github.com/kyan001/ping3/blob/master/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "ping3";
   };
 }
diff --git a/pkgs/development/python-modules/playwrightcapture/default.nix b/pkgs/development/python-modules/playwrightcapture/default.nix
index e619ebeb89d8a..283a9ae38f312 100644
--- a/pkgs/development/python-modules/playwrightcapture/default.nix
+++ b/pkgs/development/python-modules/playwrightcapture/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, dateparser
-, fetchFromGitHub
-, playwright
-, playwright-stealth
-, poetry-core
-, puremagic
-, pydub
-, pythonOlder
-, pythonRelaxDepsHook
-, pytz
-, requests
-, setuptools
-, speechrecognition
-, tzdata
-, w3lib
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  dateparser,
+  fetchFromGitHub,
+  playwright,
+  playwright-stealth,
+  poetry-core,
+  puremagic,
+  pydub,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pytz,
+  requests,
+  setuptools,
+  speechrecognition,
+  tzdata,
+  w3lib,
 }:
 
 buildPythonPackage rec {
   pname = "playwrightcapture";
-  version = "1.24.1";
+  version = "1.24.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = "Lookyloo";
     repo = "PlaywrightCapture";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+2BxXgIC595FM3FDIbFjFpWIEkqQrDILWFjQkyN5nao=";
+    hash = "sha256-T/6WfDFW4m9bB09mBwKw1I0iQ0HF0I2Pzf2MXExJVGY=";
   };
 
   pythonRelaxDeps = [
@@ -39,10 +40,9 @@ buildPythonPackage rec {
     "tzdata"
   ];
 
-  build-system = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     beautifulsoup4
@@ -68,9 +68,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "playwrightcapture"
-  ];
+  pythonImportsCheck = [ "playwrightcapture" ];
 
   meta = with lib; {
     description = "Capture a URL with Playwright";
diff --git a/pkgs/development/python-modules/pplpy/default.nix b/pkgs/development/python-modules/pplpy/default.nix
index c3a1f8192acf3..56797bcb55862 100644
--- a/pkgs/development/python-modules/pplpy/default.nix
+++ b/pkgs/development/python-modules/pplpy/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "pplpy";
-  version = "0.8.9";
+  version = "0.8.10";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-23o7Vx1u8FP3UTeXXpR8OhweRaMLq5Dq8hW05cwVeX4=";
+    sha256 = "sha256-1CohbIKRTc9NfAAN68mLsza4+D4Ca6XZUszNn4B07/0=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pre-commit-hooks/default.nix b/pkgs/development/python-modules/pre-commit-hooks/default.nix
index aa8722e56ff43..11f226aa0c54b 100644
--- a/pkgs/development/python-modules/pre-commit-hooks/default.nix
+++ b/pkgs/development/python-modules/pre-commit-hooks/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pre-commit-hooks";
-  version = "4.5.0";
+  version = "4.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pre-commit";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-EiPGdrpD4e9izRNJCjHRp+gR+ClzFtLjs6P57WXDs7I=";
+    hash = "sha256-p/pPpuuNjVxHSPyi4RL2DJlj9weSq8QinugQ4zmv9Ck=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/psd-tools/default.nix b/pkgs/development/python-modules/psd-tools/default.nix
index f9a59e620d909..fbee76dfa02b8 100644
--- a/pkgs/development/python-modules/psd-tools/default.nix
+++ b/pkgs/development/python-modules/psd-tools/default.nix
@@ -10,8 +10,9 @@
 , numpy
 , aggdraw
 , pytestCheckHook
+, pytest-cov
 , ipython
-, cython
+, cython_3
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    cython
+    cython_3
   ];
 
   propagatedBuildInputs = [
@@ -45,6 +46,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
+    pytest-cov
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/publicsuffix/default.nix b/pkgs/development/python-modules/publicsuffix/default.nix
index 9de169f696dd1..11f331cd67929 100644
--- a/pkgs/development/python-modules/publicsuffix/default.nix
+++ b/pkgs/development/python-modules/publicsuffix/default.nix
@@ -1,25 +1,37 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "publicsuffix";
   version = "1.1.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "22ce1d65ab6af5e9b2122e2443facdb93fb5c4abf24138099cb10fe7989f43b6";
+    hash = "sha256-Is4dZatq9emyEi4kQ/rNuT+1xKvyQTgJnLEP55ifQ7Y=";
   };
 
-
   # disable test_fetch and the doctests (which also invoke fetch)
   postPatch = ''
     sed -i -e "/def test_fetch/i\\
     \\t@unittest.skip('requires internet')" -e "/def additional_tests():/,+1d" tests.py
   '';
 
+  build-system = [ setuptools ];
+
+  pythonImportsCheck = [ "publicsuffix" ];
+
   meta = with lib; {
     description = "Allows to get the public suffix of a domain name";
     homepage = "https://pypi.python.org/pypi/publicsuffix/";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/publicsuffix2/default.nix b/pkgs/development/python-modules/publicsuffix2/default.nix
index 064dc3f5f94f8..02a686c31025b 100644
--- a/pkgs/development/python-modules/publicsuffix2/default.nix
+++ b/pkgs/development/python-modules/publicsuffix2/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+}:
 let
   tagVersion = "2.2019-12-21";
 in
@@ -6,16 +11,18 @@ buildPythonPackage {
   pname = "publicsuffix2";
   # tags have dashes, while the library version does not
   # see https://github.com/nexB/python-publicsuffix2/issues/12
-  version = lib.replaceStrings ["-"] [""] tagVersion;
-  format = "setuptools";
+  version = lib.replaceStrings [ "-" ] [ "" ] tagVersion;
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nexB";
     repo = "python-publicsuffix2";
     rev = "release-${tagVersion}";
-    sha256 = "1dkvfvl0izq9hqzilnw8ipkbgjs9xyad9p21i3864hzinbh0wp9r";
+    hash = "sha256-OV0O4LLxQ2LQiEHc1JTvScu35o2IWxo/hgn/COh2e7Y=";
   };
 
+  build-system = [ setuptools ];
+
   postPatch = ''
     # only used to update the interal publicsuffix list
     substituteInPlace setup.py \
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index d30f8f1bca698..eb9b8e6a34639 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240403";
+  version = "0.10.0.20240412";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DQgjgr35l5I33BWLaOQTUnQpFhBMXUB0Jx4jQXbeBZU=";
+    hash = "sha256-G2hdl029MlirHH9HNEnPKlUnWnSplbYKhBDw8H1/W3g=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pubnub/default.nix b/pkgs/development/python-modules/pubnub/default.nix
index b6437f880ddb1..58b6bd159d508 100644
--- a/pkgs/development/python-modules/pubnub/default.nix
+++ b/pkgs/development/python-modules/pubnub/default.nix
@@ -1,35 +1,34 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, busypie
-, cbor2
-, fetchFromGitHub
-, pycryptodomex
-, pytestCheckHook
-, pytest-vcr
-, pytest-asyncio
-, requests
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  busypie,
+  cbor2,
+  fetchFromGitHub,
+  pycryptodomex,
+  pytestCheckHook,
+  pytest-vcr,
+  pytest-asyncio,
+  requests,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "7.4.3";
+  version = "7.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
-    owner = pname;
+    owner = "pubnub";
     repo = "python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-t3lNotfT3C2hv5AGPWZpL3wN68m8HRcjsccUz8QcY5I=";
+    hash = "sha256-4Paodw3t2RvAKrDMcWHIGLs5JNtH/9sP+BTyAm/hj4E=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -57,9 +56,7 @@ buildPythonPackage rec {
     "test_handshaking"
   ];
 
-  pythonImportsCheck = [
-    "pubnub"
-  ];
+  pythonImportsCheck = [ "pubnub" ];
 
   meta = with lib; {
     description = "Python-based APIs for PubNub";
diff --git a/pkgs/development/python-modules/pwndbg/default.nix b/pkgs/development/python-modules/pwndbg/default.nix
new file mode 100644
index 0000000000000..7bee0345afdb7
--- /dev/null
+++ b/pkgs/development/python-modules/pwndbg/default.nix
@@ -0,0 +1,80 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, capstone
+, future
+, ipython
+, psutil
+, pwntools
+, pycparser
+, pyelftools
+, pygments
+, requests
+, rpyc
+, sortedcontainers
+, tabulate
+, typing-extensions
+, unicorn
+, gdb-pt-dump
+, poetry-core
+, pythonRelaxDepsHook
+}:
+let
+  # The newest gdb-pt-dump is incompatible with pwndbg 2024.02.14.
+  # See https://github.com/martinradev/gdb-pt-dump/issues/29
+  gdb-pt-dump' = gdb-pt-dump.overrideAttrs (oldAttrs: {
+    version = "0-unstable-2023-11-11";
+
+    src = fetchFromGitHub {
+      inherit (oldAttrs.src) owner repo;
+      rev = "89ea252f6efc5d75eacca16fc17ff8966a389690";
+      hash = "sha256-i+SAcZ/kgfKstJnkyCVMh/lWtrJJOHTYoJH4tVfYHrE=";
+    };
+
+    # This revision relies on the package being imported from within GDB, which
+    # won't work with pythonImportsCheck.
+    pythonImportsCheck = [ ];
+  });
+in
+buildPythonPackage rec {
+  pname = "pwndbg";
+  version = "2024.02.14";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pwndbg";
+    repo = "pwndbg";
+    rev = version;
+    hash = "sha256-/pDo2J5EtpWWCurD7H34AlTlQi7WziIRRxHxGm3K2yk=";
+  };
+
+  nativeBuildInputs = [ poetry-core pythonRelaxDepsHook ];
+  pythonRelaxDeps = true;
+
+  propagatedBuildInputs = [
+    capstone
+    future
+    ipython
+    psutil
+    pwntools
+    pycparser
+    pyelftools
+    pygments
+    requests
+    rpyc
+    sortedcontainers
+    tabulate
+    typing-extensions
+    unicorn
+    gdb-pt-dump'
+  ];
+
+  meta = {
+    description = "Exploit Development and Reverse Engineering with GDB Made Easy";
+    homepage = "https://pwndbg.re";
+    changelog = "https://github.com/pwndbg/pwndbg/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ msanft ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index 496ebc4e8fa7f..90b623c35ef49 100644
--- a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, aiohttp
-, aioredis
-, buildPythonPackage
-, coloredlogs
-, fastapi
-, fetchFromGitHub
-, hatchling
-, pillow
-, psutil
-, pytestCheckHook
-, pythonOlder
-, redis
-, requests
-, ujson
-, uvicorn
-, watchdog
+{
+  lib,
+  aiohttp,
+  aioredis,
+  buildPythonPackage,
+  coloredlogs,
+  fastapi,
+  fetchFromGitHub,
+  hatchling,
+  pillow,
+  psutil,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  requests,
+  ujson,
+  uvicorn,
+  watchdog,
 }:
 
 buildPythonPackage rec {
   pname = "pytelegrambotapi";
-  version = "4.16.0";
+  version = "4.17.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,55 +29,30 @@ buildPythonPackage rec {
     owner = "eternnoir";
     repo = "pyTelegramBotAPI";
     rev = "refs/tags/${version}";
-    hash = "sha256-w039aPK+PdOiiOj5ZZAUfyHQ6QDrKySVIijcOw+GIOk=";
+    hash = "sha256-Asw6wpZs0FgsUYLVQ4u4qQgIFdvShcsN3XvgHn48cbI=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   passthru.optional-dependencies = {
-    json = [
-      ujson
-    ];
-    PIL = [
-      pillow
-    ];
-    redis = [
-      redis
-    ];
-    aioredis = [
-      aioredis
-    ];
-    aiohttp = [
-      aiohttp
-    ];
-    fastapi = [
-      fastapi
-    ];
-    uvicorn = [
-      uvicorn
-    ];
-    psutil = [
-      psutil
-    ];
-    coloredlogs = [
-      coloredlogs
-    ];
-    watchdog = [
-      watchdog
-    ];
+    json = [ ujson ];
+    PIL = [ pillow ];
+    redis = [ redis ];
+    aioredis = [ aioredis ];
+    aiohttp = [ aiohttp ];
+    fastapi = [ fastapi ];
+    uvicorn = [ uvicorn ];
+    psutil = [ psutil ];
+    coloredlogs = [ coloredlogs ];
+    watchdog = [ watchdog ];
   };
 
   checkInputs = [
     pytestCheckHook
     requests
-  ] ++ passthru.optional-dependencies.watchdog
-  ++ passthru.optional-dependencies.aiohttp;
+  ] ++ passthru.optional-dependencies.watchdog ++ passthru.optional-dependencies.aiohttp;
 
-  pythonImportsCheck = [
-    "telebot"
-  ];
+  pythonImportsCheck = [ "telebot" ];
 
   meta = with lib; {
     description = "Python implementation for the Telegram Bot API";
diff --git a/pkgs/development/python-modules/pyads/default.nix b/pkgs/development/python-modules/pyads/default.nix
index bdedb2392af7d..68dd02bb721db 100644
--- a/pkgs/development/python-modules/pyads/default.nix
+++ b/pkgs/development/python-modules/pyads/default.nix
@@ -1,45 +1,44 @@
-{ lib
-, adslib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  adslib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyads";
-  version = "3.3.9";
-  format = "setuptools";
+  version = "3.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "stlehmann";
-    repo = pname;
-    rev = version;
-    hash = "sha256-eNouFJQDgp56fgkA7wZKfosKWOKU6OvXRjFwjCMvZqI=";
+    repo = "pyads";
+    rev = "refs/tags/${version}";
+    hash = "sha256-HJ/dlRuwFSY5j/mAp6rLMlTV59GFwrTV27n73TWlCUo=";
   };
 
-  buildInputs = [
-    adslib
-  ];
+  build-system = [ setuptools ];
+
+  buildInputs = [ adslib ];
 
   patchPhase = ''
     substituteInPlace pyads/pyads_ex.py \
-      --replace "ctypes.CDLL(adslib)" "ctypes.CDLL(\"${adslib}/lib/adslib.so\")"
+      --replace-fail "ctypes.CDLL(adslib)" "ctypes.CDLL(\"${adslib}/lib/adslib.so\")"
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyads"
-  ];
+  pythonImportsCheck = [ "pyads" ];
 
   meta = with lib; {
     description = "Python wrapper for TwinCAT ADS library";
     homepage = "https://github.com/MrLeeh/pyads";
+    changelog = "https://github.com/stlehmann/pyads/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ jamiemagee ];
   };
diff --git a/pkgs/development/python-modules/pybotvac/default.nix b/pkgs/development/python-modules/pybotvac/default.nix
index a104e1e1aeb7b..ae1d805712e0d 100644
--- a/pkgs/development/python-modules/pybotvac/default.nix
+++ b/pkgs/development/python-modules/pybotvac/default.nix
@@ -1,29 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
-, requests-oauthlib
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
+  voluptuous,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pybotvac";
-  version = "0.0.24";
-  format = "setuptools";
+  version = "0.0.25";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SXIs9AUXWm1H49MVDT4z6msNPaW5sAU20rcsWZ7ERdU=";
+    hash = "sha256-EvGBStEYgqFO9GMtxs1qtDixb4y2Ptom8xncRUv4ur4=";
   };
 
-  patches = [
-    ./urllib3-2.0-compat.patch
-  ];
+  postPatch = ''
+    substituteInPlace pybotvac/robot.py \
+      --replace-fail "import urllib3" "" \
+      --replace-fail "urllib3.disable_warnings(urllib3.exceptions.SubjectAltNameWarning)" "# urllib3.disable_warnings(urllib3.exceptions.SubjectAltNameWarning)"
+  '';
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     requests
     requests-oauthlib
     voluptuous
@@ -32,9 +38,7 @@ buildPythonPackage rec {
   # Module no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pybotvac"
-  ];
+  pythonImportsCheck = [ "pybotvac" ];
 
   meta = with lib; {
     description = "Python module for interacting with Neato Botvac Connected vacuum robots";
diff --git a/pkgs/development/python-modules/pybotvac/urllib3-2.0-compat.patch b/pkgs/development/python-modules/pybotvac/urllib3-2.0-compat.patch
deleted file mode 100644
index 8b6ef4e91cc31..0000000000000
--- a/pkgs/development/python-modules/pybotvac/urllib3-2.0-compat.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/pybotvac/robot.py b/pybotvac/robot.py
-index f87546f..e9a61de 100644
---- a/pybotvac/robot.py
-+++ b/pybotvac/robot.py
-@@ -6,7 +6,6 @@ from datetime import datetime, timezone
- from email.utils import format_datetime

- 

- import requests

--import urllib3

- from voluptuous import (

-     ALLOW_EXTRA,

-     All,

-@@ -21,8 +20,6 @@ from voluptuous import (
- from .exceptions import NeatoRobotException, NeatoUnsupportedDevice

- from .neato import Neato  # For default Vendor argument

- 

--# Disable warning due to SubjectAltNameWarning in certificate

--urllib3.disable_warnings(urllib3.exceptions.SubjectAltNameWarning)

- 

- _LOGGER = logging.getLogger(__name__)

- 

diff --git a/pkgs/development/python-modules/pycaption/default.nix b/pkgs/development/python-modules/pycaption/default.nix
index 3384ad516b5fc..900f93bbea879 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.5";
+  version = "2.2.6";
 
   disabled = pythonOlder "3.8";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pbs";
     repo = "pycaption";
     rev = "refs/tags/${version}";
-    hash = "sha256-zI5zRjvtsVgiIgWsQQgBQHhbYSGRBB6RLYgpbZWJQHs=";
+    hash = "sha256-XN83L6WsRyl9G0ia4uz3SCVcwwUNUyfNMB64RfZh+PA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index bb0a4bedde49a..59ec82ce829b1 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -23,6 +23,7 @@
 , faker
 , pytestCheckHook
 , pytest-mock
+, eval-type-backport
 }:
 
 buildPythonPackage rec {
@@ -45,7 +46,7 @@ buildPythonPackage rec {
       name = "fix-pytest8-compatibility.patch";
       url = "https://github.com/pydantic/pydantic/commit/825a6920e177a3b65836c13c7f37d82b810ce482.patch";
       hash = "sha256-Dap5DtDzHw0jS/QUo5CRI9sLDJ719GRyC4ZNDWEdzus=";
-     })
+    })
   ];
 
   buildInputs = lib.optionals (pythonOlder "3.9") [
@@ -69,13 +70,16 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    cloudpickle
-    dirty-equals
-    faker
-    pytest-mock
-    pytestCheckHook
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  nativeCheckInputs =
+    [
+      cloudpickle
+      dirty-equals
+      faker
+      pytest-mock
+      pytestCheckHook
+    ]
+    ++ lib.flatten (lib.attrValues passthru.optional-dependencies)
+    ++ lib.optionals (pythonOlder "3.10") [ eval-type-backport ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
diff --git a/pkgs/development/python-modules/pyfibaro/default.nix b/pkgs/development/python-modules/pyfibaro/default.nix
index 2f059d19a1b9f..7822fa8da6e6e 100644
--- a/pkgs/development/python-modules/pyfibaro/default.nix
+++ b/pkgs/development/python-modules/pyfibaro/default.nix
@@ -1,45 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyfibaro";
-  version = "0.7.6";
-  format = "pyproject";
+  version = "0.7.7";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "rappenze";
-    repo = pname;
+    repo = "pyfibaro";
     rev = "refs/tags/${version}";
-    hash = "sha256-yE9HkAlGj1t90FwmwHDsk3ea2UOl0bG3UtYXxz/SWbI=";
+    hash = "sha256-jsl2Xc6bzN7SVyMnFeCwMpFUEa6xUWGn/T96MrDXlCE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  dependencies = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "pyfibaro"
-  ];
+  pythonImportsCheck = [ "pyfibaro" ];
 
   meta = with lib; {
     description = "Library to access FIBARO Home center";
diff --git a/pkgs/development/python-modules/pyformlang/default.nix b/pkgs/development/python-modules/pyformlang/default.nix
index f5cc07c29e749..1f25eac53a9f1 100644
--- a/pkgs/development/python-modules/pyformlang/default.nix
+++ b/pkgs/development/python-modules/pyformlang/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pyformlang";
-  version = "1.0.9";
+  version = "1.0.10";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oCwYM4yQ1KYZpC7vVpeHSIDH2Q930JAuTDq9mds9zoc=";
+    hash = "sha256-VwsIkVIgRHczdT3QcW9Teg2FiaoPn6El17VHhy/x72s=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/pyftdi/default.nix b/pkgs/development/python-modules/pyftdi/default.nix
index f004ac7c88c4d..009d0fab1d809 100644
--- a/pkgs/development/python-modules/pyftdi/default.nix
+++ b/pkgs/development/python-modules/pyftdi/default.nix
@@ -1,26 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pythonOlder
-, pyusb
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pythonOlder,
+  pyusb,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyftdi";
-  version = "0.55.0";
-  format = "setuptools";
+  version = "0.55.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "eblot";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-EEMHY5EKftci72huF5UmJyh2wJAc8uNh/QhGSSAVXIU=";
+    repo = "pyftdi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-InJJnbAPYlV071EkEWECJC79HLZ6SWo2VP7PqMgOGow=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     pyserial
     pyusb
   ];
@@ -28,9 +32,7 @@ buildPythonPackage rec {
   # Tests require access to the serial port
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyftdi"
-  ];
+  pythonImportsCheck = [ "pyftdi" ];
 
   meta = with lib; {
     description = "User-space driver for modern FTDI devices";
diff --git a/pkgs/development/python-modules/pykakasi/default.nix b/pkgs/development/python-modules/pykakasi/default.nix
index 79ce3eeca8f4c..1cfb8739888da 100644
--- a/pkgs/development/python-modules/pykakasi/default.nix
+++ b/pkgs/development/python-modules/pykakasi/default.nix
@@ -8,30 +8,37 @@
 , pytest-benchmark
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "pykakasi";
   version = "2.2.1";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "miurahr";
-    repo = pname;
+    repo = "pykakasi";
     rev = "refs/tags/v${version}";
     hash = "sha256-ivlenHPD00bxc0c9G368tfTEckOC3vqDB5kMQzHXbVM==";
   };
 
-  nativeBuildInputs = [
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail ', "klepto"' ""
+  '';
+
+  build-system = [
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jaconv
     deprecated
+    setuptools
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
diff --git a/pkgs/development/python-modules/pylibftdi/default.nix b/pkgs/development/python-modules/pylibftdi/default.nix
index 32f20e2787541..f6c317cc924a0 100644
--- a/pkgs/development/python-modules/pylibftdi/default.nix
+++ b/pkgs/development/python-modules/pylibftdi/default.nix
@@ -1,42 +1,44 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, libftdi1
-, libusb1
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  libftdi1,
+  libusb1,
+  pythonOlder,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
   pname = "pylibftdi";
-  version = "0.21.0";
-  format = "setuptools";
+  version = "0.22.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-634vUFKFJUf0xsRgIqFmX510U0OWORcereVv3ICliDI=";
+    hash = "sha256-haaqtDj3ZTQoQ6otWbso+7DTCEemIfuYAJhRhZkPAa8=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ poetry-core ];
+
+  dependencies = [
     libftdi1
     libusb1
   ];
 
   postPatch = ''
     substituteInPlace src/pylibftdi/driver.py \
-      --replace "self._load_library('libusb')" "cdll.LoadLibrary('${libusb1.out}/lib/libusb-1.0.so')" \
-      --replace "self._load_library('libftdi')" "cdll.LoadLibrary('${libftdi1.out}/lib/libftdi1.so')"
+      --replace-fail 'self._load_library("libusb")' 'cdll.LoadLibrary("${libusb1.out}/lib/libusb-1.0.so")' \
+      --replace-fail 'self._load_library("libftdi")' 'cdll.LoadLibrary("${libftdi1.out}/lib/libftdi1.so")'
   '';
 
-  pythonImportsCheck = [
-    "pylibftdi"
-  ];
+  pythonImportsCheck = [ "pylibftdi" ];
 
   meta = with lib; {
     description = "Wrapper to Intra2net's libftdi driver for FTDI's USB devices";
     homepage = "https://pylibftdi.readthedocs.io/";
-    changelog = "https://github.com/codedstructure/pylibftdi/blob/${version}0/CHANGES.txt";
+    changelog = "https://github.com/codedstructure/pylibftdi/blob/${version}/CHANGES.txt";
     license = licenses.mit;
     maintainers = with maintainers; [ matthuszagh ];
   };
diff --git a/pkgs/development/python-modules/pylitterbot/default.nix b/pkgs/development/python-modules/pylitterbot/default.nix
index 65a519f0bdffd..0c33c0b2cdf58 100644
--- a/pkgs/development/python-modules/pylitterbot/default.nix
+++ b/pkgs/development/python-modules/pylitterbot/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pylitterbot";
-  version = "2023.4.9";
+  version = "2023.4.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "natekspencer";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-QsxzwmAdhx0diPJ/bT+DgJSs70YQ77M76rq2opMq/Ew=";
+    hash = "sha256-OTyQgcGGNktCgYJN33SZn7La7ec+gwR/yVDuH7kcEh4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pymodbus/default.nix b/pkgs/development/python-modules/pymodbus/default.nix
index 4229d30c022d5..f85b893c24bbd 100644
--- a/pkgs/development/python-modules/pymodbus/default.nix
+++ b/pkgs/development/python-modules/pymodbus/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, prompt-toolkit
-, pygments
-, pyserial
-, pytest-asyncio
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, redis
-, setuptools
-, sqlalchemy
-, twisted
-, typer
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  prompt-toolkit,
+  pygments,
+  pyserial,
+  pytest-asyncio,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  setuptools,
+  sqlalchemy,
+  twisted,
+  typer,
 }:
 
 buildPythonPackage rec {
   pname = "pymodbus";
-  version = "3.6.6";
+  version = "3.6.7";
   pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "pymodbus-dev";
     repo = "pymodbus";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CnMCHFwzNyzTgVyFDSlE7ggI6eXXYbtGuERIomUa3uA=";
+    hash = "sha256-SbfvVaIpTz4Mzojx9y13lYei4dEz+1NQEE/7bwz29tQ=";
   };
 
   postPatch = ''
@@ -36,9 +37,7 @@ buildPythonPackage rec {
       --replace-fail "--cov-report html " ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   passthru.optional-dependencies = {
     repl = [
@@ -48,9 +47,7 @@ buildPythonPackage rec {
       pygments
       click
     ] ++ typer.optional-dependencies.all;
-    serial = [
-      pyserial
-    ];
+    serial = [ pyserial ];
   };
 
   nativeCheckInputs = [
@@ -70,22 +67,21 @@ buildPythonPackage rec {
     popd
   '';
 
-  pythonImportsCheck = [
-    "pymodbus"
-  ];
+  pythonImportsCheck = [ "pymodbus" ];
 
-  disabledTests = [
-    # Tests often hang
-    "test_connected"
-  ] ++ lib.optionals (lib.versionAtLeast aiohttp.version "3.9.0") [
-    "test_split_serial_packet"
-    "test_serial_poll"
-    "test_simulator"
-  ];
+  disabledTests =
+    [
+      # Tests often hang
+      "test_connected"
+    ]
+    ++ lib.optionals (lib.versionAtLeast aiohttp.version "3.9.0") [
+      "test_split_serial_packet"
+      "test_serial_poll"
+      "test_simulator"
+    ];
 
   meta = with lib; {
     description = "Python implementation of the Modbus protocol";
-    mainProgram = "pymodbus.simulator";
     longDescription = ''
       Pymodbus is a full Modbus protocol implementation using twisted,
       torndo or asyncio for its asynchronous communications core. It can
@@ -96,5 +92,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/pymodbus-dev/pymodbus/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "pymodbus.simulator";
   };
 }
diff --git a/pkgs/development/python-modules/pymumble/default.nix b/pkgs/development/python-modules/pymumble/default.nix
index 2a59f3f9499b2..9b89805d5f40c 100644
--- a/pkgs/development/python-modules/pymumble/default.nix
+++ b/pkgs/development/python-modules/pymumble/default.nix
@@ -48,6 +48,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/azlux/pymumble";
     changelog = "https://github.com/azlux/pymumble/releases/tag/${version}";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ thelegy infinisil ];
+    maintainers = with maintainers; [ thelegy ];
   };
 }
diff --git a/pkgs/development/python-modules/pynitrokey/default.nix b/pkgs/development/python-modules/pynitrokey/default.nix
index 58f54f148866a..ad7502b695519 100644
--- a/pkgs/development/python-modules/pynitrokey/default.nix
+++ b/pkgs/development/python-modules/pynitrokey/default.nix
@@ -30,7 +30,7 @@
 
 let
   pname = "pynitrokey";
-  version = "0.4.45";
+  version = "0.4.46";
   mainProgram = "nitropy";
 in
 
@@ -40,7 +40,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-iY4ThrmXP7pEjTYYU4lePVAbuJGTdHX3iKswXzuf7W8=";
+    hash = "sha256-y+D90Ja3YkB6WLQuyGOhV56g6ey7iITzNtOCxpRkzXE=";
   };
 
   propagatedBuildInputs = [
@@ -101,7 +101,7 @@ buildPythonPackage {
     homepage = "https://github.com/Nitrokey/pynitrokey";
     changelog = "https://github.com/Nitrokey/pynitrokey/releases/tag/v${version}";
     license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ frogamic ];
+    maintainers = with maintainers; [ frogamic raitobezarius ];
     inherit mainProgram;
   };
 }
diff --git a/pkgs/development/python-modules/pynobo/default.nix b/pkgs/development/python-modules/pynobo/default.nix
index c4da63a0e333e..462d5c6cf71c6 100644
--- a/pkgs/development/python-modules/pynobo/default.nix
+++ b/pkgs/development/python-modules/pynobo/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pynobo";
-  version = "1.8.0";
+  version = "1.8.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -16,19 +17,15 @@ buildPythonPackage rec {
     owner = "echoromeo";
     repo = "pynobo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Hfyf7XGleDWTKKWNlItcBFuiS3UEwsYed7v5FPRdC0w=";
+    hash = "sha256-OSgpT9CLkfnv1BLAJApZUs3vMc1WE2eG7ZrinCLy/0U=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pynobo"
-  ];
+  pythonImportsCheck = [ "pynobo" ];
 
   meta = with lib; {
     description = "Python TCP/IP interface for Nobo Hub/Nobo Energy Control devices";
diff --git a/pkgs/development/python-modules/pyocd/default.nix b/pkgs/development/python-modules/pyocd/default.nix
index 19980b7c0ca21..1f09ed696da04 100644
--- a/pkgs/development/python-modules/pyocd/default.nix
+++ b/pkgs/development/python-modules/pyocd/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
-, capstone
+, capstone_4
 , cmsis-pack-manager
 , colorama
 , importlib-metadata
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    capstone
+    capstone_4
     cmsis-pack-manager
     colorama
     importlib-metadata
diff --git a/pkgs/development/python-modules/pyqt/6.x.nix b/pkgs/development/python-modules/pyqt/6.x.nix
index 92984dadc7964..a568257c59000 100644
--- a/pkgs/development/python-modules/pyqt/6.x.nix
+++ b/pkgs/development/python-modules/pyqt/6.x.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchPypi
+, fetchurl
 , pkg-config
 , dbus
 , lndir
@@ -23,15 +23,17 @@
 
 buildPythonPackage rec {
   pname = "pyqt6";
-  version = "6.6.1";
+  version = "6.7.0.dev2404081550";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    pname = "PyQt6";
-    inherit version;
-    hash = "sha256-nxWKop0gUULFbw810HeEuN8L4oN40gqXvNqL1k/9A3k=";
+  src = fetchurl {
+    urls = [
+      "https://riverbankcomputing.com/pypi/packages/PyQt6/PyQt6-${version}.tar.gz"
+      "http://web.archive.org/web/20240411124842if_/https://riverbankcomputing.com/pypi/packages/PyQt6/PyQt6-${version}.tar.gz"
+    ];
+    hash = "sha256-H5qZ/rnruGh+UVSXLZyTSvjagmmli/iYq+7BaIzl1YQ=";
   };
 
   patches = [
@@ -44,11 +46,15 @@ buildPythonPackage rec {
   ];
 
   # be more verbose
+  # and normalize version
   postPatch = ''
     cat >> pyproject.toml <<EOF
     [tool.sip.project]
     verbose = true
     EOF
+
+    substituteInPlace pyproject.toml \
+      --replace-fail 'version = "${version}"' 'version = "${lib.versions.pad 3 version}"'
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/python-modules/pyquil/default.nix b/pkgs/development/python-modules/pyquil/default.nix
index bbc45f49cc37f..dc718777af700 100644
--- a/pkgs/development/python-modules/pyquil/default.nix
+++ b/pkgs/development/python-modules/pyquil/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, buildPythonPackage
-, deprecated
-, fetchFromGitHub
-, importlib-metadata
-, ipython
-, lark
-, matplotlib-inline
-, nest-asyncio
-, networkx
-, numpy
-, packaging
-, poetry-core
-, pydantic
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, qcs-sdk-python
-, respx
-, rpcq
-, scipy
-, syrupy
-, tenacity
-, types-deprecated
-, types-python-dateutil
-, types-retry
+{
+  lib,
+  buildPythonPackage,
+  deprecated,
+  fetchFromGitHub,
+  importlib-metadata,
+  ipython,
+  lark,
+  matplotlib-inline,
+  nest-asyncio,
+  networkx,
+  numpy,
+  packaging,
+  poetry-core,
+  pydantic,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  qcs-sdk-python,
+  respx,
+  rpcq,
+  scipy,
+  syrupy,
+  tenacity,
+  types-deprecated,
+  types-python-dateutil,
+  types-retry,
 }:
 
 buildPythonPackage rec {
   pname = "pyquil";
-  version = "4.7.0";
+  version = "4.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -39,20 +40,21 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "pyquil";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jzQv9XBJSxdpSWDEEPuHwYfIemelpmVKJUigpz6NWdo=";
+    hash = "sha256-MGI+R3oteqDWsXP+SlAGSRGiQiAj44YG6V7o90A4Krc=";
   };
 
   pythonRelaxDeps = [
     "lark"
     "networkx"
+    "packaging"
+    "qcs-sdk-python"
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     deprecated
     lark
     matplotlib-inline
@@ -67,9 +69,7 @@ buildPythonPackage rec {
     types-deprecated
     types-python-dateutil
     types-retry
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     nest-asyncio
@@ -84,9 +84,7 @@ buildPythonPackage rec {
   # tests hang
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyquil"
-  ];
+  pythonImportsCheck = [ "pyquil" ];
 
   meta = with lib; {
     description = "Python library for creating Quantum Instruction Language (Quil) programs";
diff --git a/pkgs/development/python-modules/pyradios/default.nix b/pkgs/development/python-modules/pyradios/default.nix
index 42b46720fca2d..45e972ab5e285 100644
--- a/pkgs/development/python-modules/pyradios/default.nix
+++ b/pkgs/development/python-modules/pyradios/default.nix
@@ -32,6 +32,6 @@ buildPythonPackage rec {
     description = "Python client for the https://api.radio-browser.info";
     homepage = "https://github.com/andreztz/pyradios";
     license = licenses.mit;
-    maintainers = with maintainers; [ infinisil ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyrisco/default.nix b/pkgs/development/python-modules/pyrisco/default.nix
index 77c1e99332619..8c9ec561324a8 100644
--- a/pkgs/development/python-modules/pyrisco/default.nix
+++ b/pkgs/development/python-modules/pyrisco/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyrisco";
-  version = "0.5.10";
+  version = "0.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "OnFreund";
     repo = "pyrisco";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3wa6hayyjWdDVqbLPCqIZ4lgcy1/EdFH4ZVggSRizZU=";
+    hash = "sha256-+qnwJzf4nKio4IJo7NNA19B3tbOd+jhnGryiRMcdi6o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyside6/default.nix b/pkgs/development/python-modules/pyside6/default.nix
index 5a484637768ba..bfc34a23fcd55 100644
--- a/pkgs/development/python-modules/pyside6/default.nix
+++ b/pkgs/development/python-modules/pyside6/default.nix
@@ -12,14 +12,14 @@ stdenv.mkDerivation rec {
 
   inherit (shiboken6) version src;
 
-  sourceRoot = "pyside-setup-everywhere-src-${lib.removeSuffix ".0" version}/sources/${pname}";
+  sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
 
   # FIXME: cmake/Macros/PySideModules.cmake supposes that all Qt frameworks on macOS
   # reside in the same directory as QtCore.framework, which is not true for Nix.
   postPatch = lib.optionalString stdenv.isLinux ''
     # Don't ignore optional Qt modules
     substituteInPlace cmake/PySideHelpers.cmake \
-      --replace \
+      --replace-fail \
         'string(FIND "''${_module_dir}" "''${_core_abs_dir}" found_basepath)' \
         'set (found_basepath 0)'
   '';
diff --git a/pkgs/development/python-modules/pysmi-lextudio/default.nix b/pkgs/development/python-modules/pysmi-lextudio/default.nix
index 1ca9e1bd02c9b..184c8a8bd8f2c 100644
--- a/pkgs/development/python-modules/pysmi-lextudio/default.nix
+++ b/pkgs/development/python-modules/pysmi-lextudio/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pysmi-lextudio";
-  version = "1.3.3";
+  version = "1.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "lextudio";
     repo = "pysmi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GApjr7KUd7KkdxsbLTzFNdWWol7b/8udrY9q/lls2ro=";
+    hash = "sha256-JrWVoK7fqESUIJeprjB28iaqOEWgsTpTqUEmSZp9XDk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysnmp-lextudio/default.nix b/pkgs/development/python-modules/pysnmp-lextudio/default.nix
index ef50f244a430c..2f921aa8039a4 100644
--- a/pkgs/development/python-modules/pysnmp-lextudio/default.nix
+++ b/pkgs/development/python-modules/pysnmp-lextudio/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pysnmp-lextudio";
-  version = "6.0.11";
+  version = "6.1.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "lextudio";
     repo = "pysnmp";
     rev = "refs/tags/v${version}";
-    hash = "sha256-h/FxiGjBZqO82omkVqz+fws398Iz1EkHbZPMYIzG+t0=";
+    hash = "sha256-iVej39OmTPiZL11+IetnqHaxFAhZ/YR7tjiRoc7pu8U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytenable/default.nix b/pkgs/development/python-modules/pytenable/default.nix
index 0bf5ef3de39fe..2fba1b0b779f9 100644
--- a/pkgs/development/python-modules/pytenable/default.nix
+++ b/pkgs/development/python-modules/pytenable/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, fetchFromGitHub
-, marshmallow
-, pytest-datafiles
-, pytest-vcr
-, pytestCheckHook
-, python-box
-, python-dateutil
-, pythonOlder
-, requests
-, requests-pkcs12
-, responses
-, restfly
-, semver
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  fetchFromGitHub,
+  marshmallow,
+  pytest-datafiles,
+  pytest-vcr,
+  pytestCheckHook,
+  python-box,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  requests-pkcs12,
+  responses,
+  restfly,
+  semver,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pytenable";
-  version = "1.4.21";
+  version = "1.4.22";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,14 +30,12 @@ buildPythonPackage rec {
     owner = "tenable";
     repo = "pyTenable";
     rev = "refs/tags/${version}";
-    hash = "sha256-+P+6EmKpR+qlvLMgeg6iIxSx7jtC995v2eijkjJdc70=";
+    hash = "sha256-acMafLlO0yGEnW+0XeBWUpDWvOPFAB4RK/XyAb2JbPw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     defusedxml
     marshmallow
     python-box
@@ -71,9 +70,7 @@ buildPythonPackage rec {
     "test_events_list_vcr"
   ];
 
-  pythonImportsCheck = [
-    "tenable"
-  ];
+  pythonImportsCheck = [ "tenable" ];
 
   meta = with lib; {
     description = "Python library for the Tenable.io and TenableSC API";
diff --git a/pkgs/development/python-modules/pytest-aio/default.nix b/pkgs/development/python-modules/pytest-aio/default.nix
index 322de9c8746fd..ef643d765a7a9 100644
--- a/pkgs/development/python-modules/pytest-aio/default.nix
+++ b/pkgs/development/python-modules/pytest-aio/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, anyio
-, buildPythonPackage
-, curio
-, fetchFromGitHub
-, hypothesis
-, pytest
-, pytestCheckHook
-, pythonOlder
-, sniffio
-, trio
-, trio-asyncio
+{
+  lib,
+  anyio,
+  buildPythonPackage,
+  curio,
+  fetchFromGitHub,
+  hypothesis,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  poetry-core,
+  sniffio,
+  trio,
+  trio-asyncio,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-aio";
-  version = "1.5.0";
-  format = "setuptools";
+  version = "1.8.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -23,34 +25,30 @@ buildPythonPackage rec {
     owner = "klen";
     repo = "pytest-aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-BIVorMRWyboKFZCiELoBh/1oxSpdV263zfLce1fNVhU=";
+    hash = "sha256-MexIL9yFTzhkJ/61GgYoT54MWV8B0c1/CWkN5FVTvnw=";
   };
 
-  postPatch = ''
-    sed -i '/addopts/d' setup.cfg
-  '';
+  build-system = [ poetry-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
+  dependencies = [
     anyio
     curio
     hypothesis
-    pytestCheckHook
     sniffio
     trio
     trio-asyncio
   ];
 
-  pythonImportsCheck = [
-    "pytest_aio"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pytest_aio" ];
 
   meta = with lib; {
-    homepage = "https://github.com/klen/pytest-aio";
     description = "Pytest plugin for aiohttp support";
+    homepage = "https://github.com/klen/pytest-aio";
+    changelog = "https://github.com/klen/pytest-aio/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pytest-bdd/default.nix b/pkgs/development/python-modules/pytest-bdd/default.nix
index 3660dc709f31c..025938b942647 100644
--- a/pkgs/development/python-modules/pytest-bdd/default.nix
+++ b/pkgs/development/python-modules/pytest-bdd/default.nix
@@ -1,71 +1,56 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, mako
-, parse
-, parse-type
-, poetry-core
-, pytest
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mako,
+  parse,
+  parse-type,
+  poetry-core,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-bdd";
-  version = "6.1.1";
-  format = "pyproject";
+  version = "7.1.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pytest-dev";
-    repo = pname;
+    repo = "pytest-bdd";
     rev = "refs/tags/${version}";
-    hash = "sha256-+76jIgfDQPdIoesTr1+QUu8wmOnrdf4KT+TJr9F2Hqk=";
+    hash = "sha256-PC4VSsUU5qEFp/C/7OTgHINo8wmOo0w2d1Hpe0EnFzE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "remove-setuptools.patch";
-      url = "https://github.com/pytest-dev/pytest-bdd/commit/5d8eda3a30b47d3bd27849884a851adafca765cb.patch";
-      hash = "sha256-G2WHaRKlQ9HINufh8wl7+ly7HfDGobMLzzlbwDwd+o8=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     mako
     parse
     parse-type
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export PATH=$PATH:$out/bin
   '';
 
-  pythonImportsCheck = [
-    "pytest_bdd"
-  ];
+  pythonImportsCheck = [ "pytest_bdd" ];
 
   meta = with lib; {
     description = "BDD library for the pytest";
-    mainProgram = "pytest-bdd";
     homepage = "https://github.com/pytest-dev/pytest-bdd";
+    changelog = "https://github.com/pytest-dev/pytest-bdd/blob/${version}/CHANGES.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ jm2dev ];
+    mainProgram = "pytest-bdd";
   };
 }
diff --git a/pkgs/development/python-modules/pytest-jupyter/default.nix b/pkgs/development/python-modules/pytest-jupyter/default.nix
index c2da6b2e3043a..2cae0f7ef1b94 100644
--- a/pkgs/development/python-modules/pytest-jupyter/default.nix
+++ b/pkgs/development/python-modules/pytest-jupyter/default.nix
@@ -22,14 +22,14 @@
 
 let self = buildPythonPackage rec {
   pname = "pytest-jupyter";
-  version = "0.9.1";
+  version = "0.10.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jupyter-server";
     repo = "pytest-jupyter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+NtLyTpMpJ+asbiQZNLFs1qLr00UlEOlbxortQ1B4so=";
+    hash = "sha256-RTpXBbVCRj0oyZ1TXXDv3M7sAI4kA6f3ouzTr0rXjwY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-notebook/default.nix b/pkgs/development/python-modules/pytest-notebook/default.nix
index b20006641057c..104c334539717 100644
--- a/pkgs/development/python-modules/pytest-notebook/default.nix
+++ b/pkgs/development/python-modules/pytest-notebook/default.nix
@@ -70,6 +70,10 @@ buildPythonPackage rec {
     "test_diff_to_string"
     "test_execute_notebook_with_coverage"
     "test_regression_coverage"
+    "test_collection"
+    "test_setup_with_skip_meta"
+    "test_run_fail"
+    "test_run_pass_with_meta"
   ];
 
   meta = {
diff --git a/pkgs/development/python-modules/digitalocean/default.nix b/pkgs/development/python-modules/python-digitalocean/default.nix
index 3d756312dedab..c0ab09542d952 100644
--- a/pkgs/development/python-modules/digitalocean/default.nix
+++ b/pkgs/development/python-modules/python-digitalocean/default.nix
@@ -1,39 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, jsonpickle
-, mock
-, pytest
-, pytestCheckHook
-, requests
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonpickle,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "python-digitalocean";
   version = "1.17.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "koalalorenzo";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1c50ka4y712rr551gq3kdfw7fgfxr4w837sww6yy683yz7m1d1h8";
+    repo = "python-digitalocean";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-CIYW6vl+IOO94VyfgTjJ3T13uGtz4BdKyVmE44maoLA=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     jsonpickle
     requests
   ];
 
-  dontUseSetuptoolsCheck = true;
-
   nativeCheckInputs = [
-    pytest
     pytestCheckHook
     responses
-  ] ++ lib.optionals (!isPy3k) [
-    mock
   ];
 
   preCheck = ''
@@ -41,14 +41,18 @@ buildPythonPackage rec {
   '';
 
   # Test tries to access the network
-  disabledTests = ["TestFirewall"];
+  disabledTests = [ "TestFirewall" ];
 
   pythonImportsCheck = [ "digitalocean" ];
 
   meta = with lib; {
     description = "Python API to manage Digital Ocean Droplets and Images";
     homepage = "https://github.com/koalalorenzo/python-digitalocean";
+    changelog = "https://github.com/koalalorenzo/python-digitalocean/releases/tag/v${version}";
     license = with licenses; [ lgpl3Only ];
-    maintainers = with maintainers; [ kiwi teh ];
+    maintainers = with maintainers; [
+      kiwi
+      teh
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/python-docs-theme/default.nix b/pkgs/development/python-modules/python-docs-theme/default.nix
index 364f40f7ce26d..e464edc7cbc54 100644
--- a/pkgs/development/python-modules/python-docs-theme/default.nix
+++ b/pkgs/development/python-modules/python-docs-theme/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "python-docs-theme";
-  version = "2024.3";
+  version = "2024.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "python";
     repo = "python-docs-theme";
     rev = "refs/tags/${version}";
-    hash = "sha256-caQqoXKdKA0W5qLphYbTxrP8Qx5teJD5+MSyaifyf/A=";
+    hash = "sha256-x1r71/Urpqf0FtL2Bao5SgsRQfmwym34F7qYzxFkT5c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-homewizard-energy/default.nix b/pkgs/development/python-modules/python-homewizard-energy/default.nix
index 20bd7409f6cd6..8447c2bccbe9c 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.1";
+  version = "5.0.0";
   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-LpxXTzUb+N15lGno3pAhRSEJCb4NmwBcGQ/PshI9gYA=";
+    hash = "sha256-z9JJHS7w/lugV23xJjWHBWVQp38J3CKtj4IuDvpPQJw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-motionmount/default.nix b/pkgs/development/python-modules/python-motionmount/default.nix
new file mode 100644
index 0000000000000..be3a439c36074
--- /dev/null
+++ b/pkgs/development/python-modules/python-motionmount/default.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "python-motionmount";
+  version = "1.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "vogelsproducts";
+    repo = "python-MotionMount";
+    rev = "refs/tags/${version}";
+    hash = "sha256-GXgshCARH4VPYHIIeWXwOCRmKgCyel4ydj/oKUWuyUM=";
+  };
+
+  build-system = [ setuptools ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "motionmount" ];
+
+  meta = with lib; {
+    description = "Module to control the TVM7675 Pro (Signature) series of MotionMount";
+    homepage = "https://github.com/vogelsproducts/python-MotionMount";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-roborock/default.nix b/pkgs/development/python-modules/python-roborock/default.nix
index d874ec9c2a7a8..49ea2cc277d38 100644
--- a/pkgs/development/python-modules/python-roborock/default.nix
+++ b/pkgs/development/python-modules/python-roborock/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, stdenv
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, click
-, construct
-, dacite
-, fetchFromGitHub
-, paho-mqtt
-, poetry-core
-, pycryptodome
-, pycryptodomex
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  stdenv,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  click,
+  construct,
+  dacite,
+  fetchFromGitHub,
+  paho-mqtt,
+  poetry-core,
+  pycryptodome,
+  pycryptodomex,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "python-roborock";
-  version = "0.41.0";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -28,22 +29,19 @@ buildPythonPackage rec {
     owner = "humbertogontijo";
     repo = "python-roborock";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Kh7u1UWqmfmxY6yWaBaUpe20Xc/DTryoymKgIYg/kiM=";
+    hash = "sha256-vtT6hsyiP1FxWo5PezcjJACknCT9JEhqSQ6C4FpU+Jg=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "poetry-core==1.8.0" "poetry-core"
+      --replace-fail "poetry-core==1.8.0" "poetry-core"
   '';
 
-  pythonRelaxDeps = [
-    "pycryptodome"
-  ];
+  pythonRelaxDeps = [ "pycryptodome" ];
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -53,25 +51,21 @@ buildPythonPackage rec {
     dacite
     paho-mqtt
     pycryptodome
-  ] ++ lib.optionals stdenv.isDarwin [
-    pycryptodomex
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ pycryptodomex ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "roborock"
-  ];
+  pythonImportsCheck = [ "roborock" ];
 
   meta = with lib; {
     description = "Python library & console tool for controlling Roborock vacuum";
-    mainProgram = "roborock";
     homepage = "https://github.com/humbertogontijo/python-roborock";
     changelog = "https://github.com/humbertogontijo/python-roborock/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "roborock";
   };
 }
diff --git a/pkgs/development/python-modules/python-telegram-bot/default.nix b/pkgs/development/python-modules/python-telegram-bot/default.nix
index 238f5742ccc8b..adb2fc81c9775 100644
--- a/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "21.0.1";
+  version = "21.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "python-telegram-bot";
     repo = "python-telegram-bot";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jyDEfHkbB95fzFkRFKgV4y46AxT+yUPwfq1DJ3sF//I=";
+    hash = "sha256-s5C3f17VP5ooH78/4JQMkzuV1byi7rFPTmVr3lZliFc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytorch-metric-learning/default.nix b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
index 0ef7e51d2c389..a1d1f7f38a2ca 100644
--- a/pkgs/development/python-modules/pytorch-metric-learning/default.nix
+++ b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname   = "pytorch-metric-learning";
-  version = "2.4.1";
+  version = "2.5.0";
   format = "setuptools";
 
   disabled = isPy27;
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "KevinMusgrave";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-LftT/ATrvEkVJPS63LSN/7vCsHhobm6xk8hFEa+wrzE=";
+    hash = "sha256-1y7VCnzgwFOMeMloVdYyszNhf/zZlBJUjuF4qgA5c0A=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytorch-pfn-extras/default.nix b/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
index 2e3455b677e47..21da795609d9e 100644
--- a/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
+++ b/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
@@ -1,15 +1,17 @@
 { buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , lib
-, setuptools
 , numpy
 , onnx
 , packaging
 , pytestCheckHook
+, pythonAtLeast
+, setuptools
+, stdenv
 , torch
 , torchvision
 , typing-extensions
-, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -24,18 +26,27 @@ buildPythonPackage rec {
     hash = "sha256-vSon/0GxQfaRtSPsQbYAvE3s/F0HEN59VpzE3w1PnVE=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    (fetchpatch {
+      name = "relax-setuptools.patch";
+      url = "https://github.com/pfnet/pytorch-pfn-extras/commit/96abe38c4baa6a144d604bdd4744c55627e55440.patch";
+      hash = "sha256-85UDGcgJyQS5gINbgpNM58b3XJGvf+ArtGhwJ5EXdhk=";
+    })
+  ];
+
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [ numpy packaging torch typing-extensions ];
+  dependencies = [ numpy packaging torch typing-extensions ];
 
   nativeCheckInputs = [ onnx pytestCheckHook torchvision ];
 
-  # ignore all pytest warnings
-  preCheck = ''
-    rm pytest.ini
-  '';
+  pytestFlagsArray = [
+    # Requires CUDA access which is not possible in the nix environment.
+    "-m 'not gpu and not mpi'"
+    "-Wignore::DeprecationWarning"
+  ];
 
   pythonImportsCheck = [ "pytorch_pfn_extras" ];
 
@@ -45,31 +56,28 @@ buildPythonPackage rec {
 
     # requires onnxruntime which was removed because of poor maintainability
     # See https://github.com/NixOS/nixpkgs/pull/105951 https://github.com/NixOS/nixpkgs/pull/155058
+    "tests/pytorch_pfn_extras_tests/onnx_tests/test_annotate.py"
+    "tests/pytorch_pfn_extras_tests/onnx_tests/test_as_output.py"
     "tests/pytorch_pfn_extras_tests/onnx_tests/test_export.py"
+    "tests/pytorch_pfn_extras_tests/onnx_tests/test_export_testcase.py"
+    "tests/pytorch_pfn_extras_tests/onnx_tests/test_lax.py"
+    "tests/pytorch_pfn_extras_tests/onnx_tests/test_load_model.py"
     "tests/pytorch_pfn_extras_tests/onnx_tests/test_torchvision.py"
     "tests/pytorch_pfn_extras_tests/onnx_tests/utils.py"
-    "tests/pytorch_pfn_extras_tests/onnx_tests/test_lax.py"
 
     # RuntimeError: No Op registered for Gradient with domain_version of 9
     "tests/pytorch_pfn_extras_tests/onnx_tests/test_grad.py"
-
-    # Requires CUDA access which is not possible in the nix environment.
-    "tests/pytorch_pfn_extras_tests/cuda_tests/test_allocator.py"
-    "tests/pytorch_pfn_extras_tests/nn_tests/modules_tests/test_lazy_batchnorm.py"
-    "tests/pytorch_pfn_extras_tests/nn_tests/modules_tests/test_lazy_conv.py"
-    "tests/pytorch_pfn_extras_tests/nn_tests/modules_tests/test_lazy_linear.py"
-    "tests/pytorch_pfn_extras_tests/nn_tests/modules_tests/test_lazy.py"
-    "tests/pytorch_pfn_extras_tests/profiler_tests/test_record.py"
-    "tests/pytorch_pfn_extras_tests/runtime_tests/test_to.py"
-    "tests/pytorch_pfn_extras_tests/handler_tests/test_handler.py"
-    "tests/pytorch_pfn_extras_tests/test_reporter.py"
-    "tests/pytorch_pfn_extras_tests/training_tests/test_trainer.py"
-    "tests/pytorch_pfn_extras_tests/utils_tests/test_checkpoint.py"
-    "tests/pytorch_pfn_extras_tests/utils_tests/test_comparer.py"
-    "tests/pytorch_pfn_extras_tests/utils_tests/test_new_comparer.py"
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    # Remove this when https://github.com/NixOS/nixpkgs/pull/259068 is merged
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
+    # RuntimeError: Dynamo is not supported on Python 3.12+
     "tests/pytorch_pfn_extras_tests/dynamo_tests/test_compile.py"
+    "tests/pytorch_pfn_extras_tests/test_ops/test_register.py"
+  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
+    # torch.distributed is not available on darwin
+    "tests/pytorch_pfn_extras_tests/training_tests/extensions_tests/test_sharded_snapshot.py"
+  ] ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
+    # RuntimeError: internal error
+    # convolution (e.g. F.conv3d) causes runtime error
+    "tests/pytorch_pfn_extras_tests/nn_tests/modules_tests/test_lazy_conv.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index 659db729aadd2..3a166921591b9 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.2.97";
+  version = "9.2.98";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GIBsWtj8nLuzGX/C6Ioe8mSfKg3QXtEJf3+d5h9M02c=";
+    hash = "sha256-+X4G5jLG7c75XIItNlQLF5YV0XUQwdA6JyF1IGBfiE0=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index 6b542b7d04f0b..98e3b05812f1c 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, httpx
-, iso8601
-, poetry-core
-, pydantic
-, pyjwt
-, pytest-asyncio
-, pytestCheckHook
-, python-dateutil
-, pythonAtLeast
-, pythonOlder
-, pythonRelaxDepsHook
-, respx
-, retrying
-, rfc3339
-, toml
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  httpx,
+  iso8601,
+  poetry-core,
+  pydantic,
+  pyjwt,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-dateutil,
+  pythonAtLeast,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  respx,
+  retrying,
+  rfc3339,
+  toml,
 }:
 
 buildPythonPackage rec {
   pname = "qcs-api-client";
-  version = "0.23.1";
+  version = "0.25.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -31,7 +32,7 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "qcs-api-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Z+RCjpSpfYU3oU5HQ8CzZfwqUjMHvCKVn+p2tq+VDxQ=";
+    hash = "sha256-dKjiicrPLRlaIwHwSqpY5dBMTzrZD4xfw3h54IN3rh0=";
   };
 
   patches = [
@@ -50,12 +51,11 @@ buildPythonPackage rec {
     "pydantic"
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     httpx
     iso8601
@@ -76,9 +76,7 @@ buildPythonPackage rec {
   # Tests are failing on Python 3.11, Fatal Python error: Aborted
   doCheck = !(pythonAtLeast "3.11");
 
-  pythonImportsCheck = [
-    "qcs_api_client"
-  ];
+  pythonImportsCheck = [ "qcs_api_client" ];
 
   meta = with lib; {
     description = "Python library for accessing the Rigetti QCS API";
diff --git a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
index 08a2ffb732ac0..0c1265d5ac40c 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
+++ b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
@@ -37,9 +37,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "approx"
@@ -53,26 +53,27 @@ dependencies = [
 
 [[package]]
 name = "arc-swap"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f"
 
 [[package]]
 name = "assert2"
-version = "0.3.11"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaf98d1183406dcb8f8b545e1f24829d75c1a9d35eec4b86309a22aa8b6d8e95"
+checksum = "844ca3172d927ddd9d01f63b6c80f4ebd3e01c3f787c204626635450dfe3edba"
 dependencies = [
  "assert2-macros",
+ "diff",
  "is-terminal",
  "yansi",
 ]
 
 [[package]]
 name = "assert2-macros"
-version = "0.3.11"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c55bdf3e6f792f8f1c750bb6886b7ca40fa5a354ddb7a4dee550b93985a9235"
+checksum = "9ec0e42bd0fe1c8d72c7bde53ac8686764cea0fd86f412b92fcad20fea08b489"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -110,18 +111,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -187,6 +188,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "backoff"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+dependencies = [
+ "futures-core",
+ "getrandom",
+ "instant",
+ "pin-project-lite",
+ "rand",
+ "tokio",
+]
+
+[[package]]
 name = "backtrace"
 version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -209,9 +224,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "bindgen"
@@ -245,9 +260,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "block-buffer"
@@ -269,9 +284,9 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytecount"
@@ -323,9 +338,9 @@ dependencies = [
 
 [[package]]
 name = "cached_proc_macro_types"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663"
+checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0"
 
 [[package]]
 name = "cargo-lock"
@@ -341,9 +356,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
  "jobserver",
  "libc",
@@ -360,9 +375,9 @@ dependencies = [
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.5"
+version = "0.15.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -381,6 +396,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "chrono"
+version = "0.4.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
 name = "clang-sys"
 version = "0.29.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -408,14 +432,14 @@ dependencies = [
 
 [[package]]
 name = "console"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
 dependencies = [
  "encode_unicode",
  "lazy_static",
  "libc",
- "windows-sys 0.45.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -442,20 +466,19 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crossbeam"
-version = "0.8.2"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
 dependencies = [
- "cfg-if 1.0.0",
  "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-epoch",
@@ -465,56 +488,46 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
- "cfg-if 1.0.0",
  "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 1.0.0",
  "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 1.0.0",
  "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 1.0.0",
  "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 1.0.0",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crypto-common"
@@ -572,9 +585,12 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
 
 [[package]]
 name = "derive_builder"
@@ -621,6 +637,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "diff"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+
+[[package]]
 name = "digest"
 version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -632,9 +654,9 @@ dependencies = [
 
 [[package]]
 name = "dircpy"
-version = "0.3.15"
+version = "0.3.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8466f8d28ca6da4c9dfbbef6ad4bff6f2fdd5e412d821025b0d3f0a9d74a8c1e"
+checksum = "29259db751c34980bfc44100875890c507f585323453b91936960ab1104272ca"
 dependencies = [
  "jwalk",
  "log",
@@ -643,9 +665,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "encode_unicode"
@@ -668,7 +690,7 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -750,9 +772,9 @@ dependencies = [
 
 [[package]]
 name = "futures"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -765,9 +787,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -775,15 +797,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -792,44 +814,44 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-timer"
-version = "3.0.2"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
 
 [[package]]
 name = "futures-util"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -855,9 +877,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -880,9 +902,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "h2"
-version = "0.3.24"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
@@ -890,7 +912,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "slab",
  "tokio",
  "tokio-util",
@@ -921,7 +943,7 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "headers-core",
  "http",
@@ -946,6 +968,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
 name = "hermit-abi"
 version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -956,9 +984,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -968,18 +996,18 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[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 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -988,9 +1016,9 @@ 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",
@@ -998,6 +1026,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "http-range-header"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
+
+[[package]]
 name = "httparse"
 version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1020,9 +1054,9 @@ dependencies = [
 
 [[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",
@@ -1035,7 +1069,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.10",
+ "socket2",
  "tokio",
  "tower-service",
  "tracing",
@@ -1087,7 +1121,7 @@ dependencies = [
  "futures-util",
  "http",
  "hyper",
- "rustls 0.21.9",
+ "rustls 0.21.10",
  "tokio",
  "tokio-rustls 0.24.1",
 ]
@@ -1146,9 +1180,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1162,9 +1196,9 @@ checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
 
 [[package]]
 name = "insta"
-version = "1.34.0"
+version = "1.36.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
+checksum = "0a7c22c4d34ef4788c351e971c52bfdfe7ea2766f8c5466bc175dd46e52ac22e"
 dependencies = [
  "console",
  "lazy_static",
@@ -1184,9 +1218,9 @@ dependencies = [
 
 [[package]]
 name = "inventory"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0508c56cfe9bfd5dfeb0c22ab9a6abfda2f27bdca422132e494266351ed8d83c"
+checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767"
 
 [[package]]
 name = "ipnet"
@@ -1196,66 +1230,67 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
- "hermit-abi 0.3.3",
- "rustix",
- "windows-sys 0.48.0",
+ "hermit-abi 0.3.9",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "itertools"
-version = "0.10.5"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+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 = "jobserver"
-version = "0.1.27"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "jsonwebtoken"
-version = "8.3.0"
+version = "9.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
+checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
+ "js-sys",
  "pem",
- "ring 0.16.20",
+ "ring 0.17.8",
  "serde",
  "serde_json",
  "simple_asn1",
@@ -1358,9 +1393,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libloading"
@@ -1374,12 +1409,12 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.8.1"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if 1.0.0",
- "windows-sys 0.48.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -1391,7 +1426,7 @@ dependencies = [
  "bindgen",
  "cc",
  "libc",
- "libloading 0.8.1",
+ "libloading 0.8.3",
  "num-complex",
  "paste",
  "pkg-config",
@@ -1407,9 +1442,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
@@ -1423,9 +1458,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "maplit"
@@ -1451,9 +1486,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memoffset"
@@ -1488,18 +1523,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi",
@@ -1596,29 +1631,34 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "num-traits",
  "serde",
 ]
 
 [[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"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -1640,9 +1680,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
@@ -1653,7 +1693,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi 0.3.9",
  "libc",
 ]
 
@@ -1674,18 +1714,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 = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "openssl-probe"
@@ -1797,27 +1837,42 @@ checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "pbjson"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "048f9ac93c1eab514f9470c4bc8d97ca2a0a236b84f45cc19d69a59fc11467f6"
+checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.21.7",
  "serde",
 ]
 
 [[package]]
 name = "pbjson-build"
-version = "0.5.1"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdbb7b706f2afc610f3853550cdbbf6372fd324824a087806bd4480ea4996e24"
+checksum = "2580e33f2292d34be285c5bc3dba5259542b083cfad6037b6d70345f24dcb735"
 dependencies = [
- "heck",
- "itertools 0.10.5",
+ "heck 0.4.1",
+ "itertools 0.11.0",
  "prost",
  "prost-types",
 ]
 
 [[package]]
+name = "pbjson-types"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18f596653ba4ac51bdecbb4ef6773bc7f56042dc13927910de1684ad3d32aa12"
+dependencies = [
+ "bytes",
+ "chrono",
+ "pbjson",
+ "pbjson-build",
+ "prost",
+ "prost-build",
+ "serde",
+]
+
+[[package]]
 name = "peeking_take_while"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1825,11 +1880,12 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pem"
-version = "1.1.1"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.21.7",
+ "serde",
 ]
 
 [[package]]
@@ -1845,27 +1901,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
 ]
 
 [[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1882,9 +1938,21 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
 name = "ppv-lite86"
@@ -1894,28 +1962,28 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "prettyplease"
-version = "0.1.25"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
+checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
 dependencies = [
  "proc-macro2",
- "syn 1.0.109",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "prost"
-version = "0.11.9"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
+checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
 dependencies = [
  "bytes",
  "prost-derive",
@@ -1923,53 +1991,53 @@ dependencies = [
 
 [[package]]
 name = "prost-build"
-version = "0.11.9"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270"
+checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2"
 dependencies = [
  "bytes",
- "heck",
- "itertools 0.10.5",
- "lazy_static",
+ "heck 0.4.1",
+ "itertools 0.11.0",
  "log",
  "multimap",
+ "once_cell",
  "petgraph",
  "prettyplease",
  "prost",
  "prost-types",
  "regex",
- "syn 1.0.109",
+ "syn 2.0.53",
  "tempfile",
  "which 4.4.2",
 ]
 
 [[package]]
 name = "prost-derive"
-version = "0.11.9"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
+checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
 dependencies = [
  "anyhow",
- "itertools 0.10.5",
+ "itertools 0.11.0",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "prost-types"
-version = "0.11.9"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13"
+checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e"
 dependencies = [
  "prost",
 ]
 
 [[package]]
 name = "pyo3"
-version = "0.20.0"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04e8453b658fe480c3e70c8ed4e3d3ec33eb74988bd186561b0cc66b85c3bc4b"
+checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
 dependencies = [
  "cfg-if 1.0.0",
  "indoc",
@@ -1978,6 +2046,7 @@ dependencies = [
  "memoffset",
  "num-complex",
  "parking_lot",
+ "portable-atomic",
  "pyo3-build-config",
  "pyo3-ffi",
  "pyo3-macros",
@@ -1999,9 +2068,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.20.0"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a96fe70b176a89cff78f2fa7b3c930081e163d5379b4dcdf993e3ae29ca662e5"
+checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
 dependencies = [
  "once_cell",
  "target-lexicon",
@@ -2009,9 +2078,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-ffi"
-version = "0.20.0"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "214929900fd25e6604661ed9cf349727c8920d47deff196c4e28165a6ef2a96b"
+checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
 dependencies = [
  "libc",
  "pyo3-build-config",
@@ -2030,31 +2099,32 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros"
-version = "0.20.0"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dac53072f717aa1bfa4db832b39de8c875b7c7af4f4a6fe93cdbf9264cf8383b"
+checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
 dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.20.0"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7774b5a8282bd4f25f803b1f0d945120be959a36c72e08e7cd031c792fdfd424"
+checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
+ "pyo3-build-config",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "qcs"
-version = "0.20.4"
+version = "0.21.4"
 dependencies = [
  "assert2",
  "async-trait",
@@ -2114,11 +2184,12 @@ dependencies = [
 
 [[package]]
 name = "qcs-api-client-common"
-version = "0.7.9"
+version = "0.7.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc3356caa74bb697c4271c950a3040e8dbb9448a9bd0124411b9b43155b8e192"
+checksum = "e96a94ca1f4ac3e094d51d90deb5d158dddfd0723cca1b50d302acfd2e4e78ef"
 dependencies = [
  "async-trait",
+ "backoff",
  "futures",
  "home",
  "http",
@@ -2126,6 +2197,7 @@ dependencies = [
  "reqwest",
  "serde",
  "thiserror",
+ "time",
  "tokio",
  "toml 0.7.8",
  "tracing",
@@ -2135,10 +2207,11 @@ dependencies = [
 
 [[package]]
 name = "qcs-api-client-grpc"
-version = "0.7.9"
+version = "0.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37bd1842ca3485e8c0abf36be4cbcee1ea12e97da15ac731ce9dae20f7f58f41"
+checksum = "b82196be0676c8dc24749a830e886ffda6e34b3130c6a7078354c24dec07933a"
 dependencies = [
+ "backoff",
  "http",
  "http-body",
  "hyper",
@@ -2149,13 +2222,16 @@ dependencies = [
  "opentelemetry_api",
  "pbjson",
  "pbjson-build",
+ "pbjson-types",
  "prost",
  "prost-build",
  "qcs-api-client-common",
  "serde",
  "thiserror",
+ "tokio",
  "tonic",
  "tonic-build",
+ "tonic-web",
  "tower",
  "tracing",
  "url",
@@ -2164,9 +2240,9 @@ dependencies = [
 
 [[package]]
 name = "qcs-api-client-openapi"
-version = "0.8.9"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c605c4bdf887f487dbe7c0055f303728a992a6d508eedc55d7efa41b36adba07"
+checksum = "0e318c4bffb689688d4f95afb2b5a52a70e12a191da402e0dded093102fcb1e9"
 dependencies = [
  "anyhow",
  "qcs-api-client-common",
@@ -2176,6 +2252,7 @@ dependencies = [
  "serde",
  "serde_json",
  "task-local-extensions",
+ "tokio",
  "tracing",
  "url",
  "urlpattern",
@@ -2183,7 +2260,7 @@ dependencies = [
 
 [[package]]
 name = "qcs-sdk-python"
-version = "0.16.3"
+version = "0.17.4"
 dependencies = [
  "async-trait",
  "numpy",
@@ -2213,12 +2290,12 @@ 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"
+version = "0.23.0"
+source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.7.0#3bb618124c2165b7329c58c0f217d8ee9d816e67"
 dependencies = [
  "approx",
- "indexmap 1.9.3",
- "itertools 0.11.0",
+ "indexmap 2.2.5",
+ "itertools 0.12.1",
  "lexical",
  "ndarray",
  "nom 7.1.3",
@@ -2234,9 +2311,9 @@ dependencies = [
 
 [[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",
 ]
@@ -2279,9 +2356,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
 dependencies = [
  "either",
  "rayon-core",
@@ -2289,9 +2366,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",
@@ -2308,9 +2385,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2320,9 +2397,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2337,11 +2414,11 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.22"
+version = "0.11.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -2359,12 +2436,13 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls 0.21.9",
+ "rustls 0.21.10",
  "rustls-native-certs 0.6.3",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
  "system-configuration",
  "tokio",
  "tokio-rustls 0.24.1",
@@ -2380,9 +2458,9 @@ dependencies = [
 
 [[package]]
 name = "reqwest-middleware"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a3e86aa6053e59030e7ce2d2a3b258dd08fc2d337d52f73f6cb480f5858690"
+checksum = "5a735987236a8e238bf0296c7e351b999c188ccc11477f311b82b55c93984216"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -2395,9 +2473,9 @@ dependencies = [
 
 [[package]]
 name = "reqwest-tracing"
-version = "0.4.6"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14b1e66540e0cac90acadaf7109bf99c90d95abcc94b4c096bfa16a2d7aa7a71"
+checksum = "190838e54153d7a7e2ea98851304b3ce92daeabf14c54d32b01b84a3e636f683"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -2421,7 +2499,6 @@ dependencies = [
  "num-traits",
  "paste",
  "pyo3",
- "time",
 ]
 
 [[package]]
@@ -2441,16 +2518,17 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.7"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if 1.0.0",
  "getrandom",
  "libc",
  "spin 0.9.8",
  "untrusted 0.9.0",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2524,11 +2602,11 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.26"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -2550,17 +2628,31 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.9"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
- "ring 0.17.7",
- "rustls-webpki",
+ "ring 0.17.8",
+ "rustls-webpki 0.101.7",
  "sct 0.7.1",
 ]
 
 [[package]]
+name = "rustls"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+dependencies = [
+ "log",
+ "ring 0.17.8",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2579,7 +2671,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.4",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 2.1.1",
+ "rustls-pki-types",
  "schannel",
  "security-framework",
 ]
@@ -2590,16 +2695,43 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f48172685e6ff52a556baa527774f61fcaa884f59daf3375c62a3f1cd2549dab"
+dependencies = [
+ "base64 0.21.7",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8"
+
+[[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",
+ "ring 0.17.8",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+dependencies = [
+ "ring 0.17.8",
+ "rustls-pki-types",
  "untrusted 0.9.0",
 ]
 
@@ -2611,9 +2743,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -2626,11 +2758,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2661,7 +2793,7 @@ version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring 0.17.7",
+ "ring 0.17.8",
  "untrusted 0.9.0",
 ]
 
@@ -2690,38 +2822,38 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -2730,9 +2862,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -2777,9 +2909,9 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
 
 [[package]]
 name = "similar"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
 
 [[package]]
 name = "simple_asn1"
@@ -2795,9 +2927,9 @@ dependencies = [
 
 [[package]]
 name = "simple_logger"
-version = "4.3.0"
+version = "4.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0ca6504625ee1aa5fda33913d2005eab98c7a42dd85f116ecce3ff54c9d3ef"
+checksum = "8e7e46c8c90251d47d08b28b8a419ffb4aede0f87c2eea95e17d1d5bacbf3ef1"
 dependencies = [
  "log",
  "windows-sys 0.48.0",
@@ -2814,28 +2946,18 @@ dependencies = [
 
 [[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"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
-dependencies = [
- "libc",
- "winapi",
-]
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2870,27 +2992,33 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "strum"
-version = "0.24.1"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
 dependencies = [
  "strum_macros",
 ]
 
 [[package]]
 name = "strum_macros"
-version = "0.24.3"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 1.0.109",
+ "syn 2.0.53",
 ]
 
 [[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
 name = "syn"
 version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2903,9 +3031,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2941,22 +3069,22 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.2.0"
+version = "6.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
 dependencies = [
  "cfg-expr",
- "heck",
+ "heck 0.5.0",
  "pkg-config",
- "toml 0.8.8",
+ "toml 0.8.12",
  "version-compare",
 ]
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.12"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "task-local-extensions"
@@ -2969,22 +3097,21 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if 1.0.0",
  "fastrand",
- "redox_syscall",
  "rustix",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -3007,7 +3134,7 @@ dependencies = [
  "cfg-if 1.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3018,7 +3145,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
  "test-case-core",
 ]
 
@@ -3033,29 +3160,29 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if 1.0.0",
  "once_cell",
@@ -3063,12 +3190,14 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.28"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
+ "num-conv",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -3076,16 +3205,17 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.14"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -3106,9 +3236,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.34.0"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -3117,7 +3247,7 @@ dependencies = [
  "num_cpus",
  "parking_lot",
  "pin-project-lite",
- "socket2 0.5.5",
+ "socket2",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
@@ -3140,7 +3270,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3160,7 +3290,18 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls 0.21.9",
+ "rustls 0.21.10",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.2",
+ "rustls-pki-types",
  "tokio",
 ]
 
@@ -3178,9 +3319,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -3215,14 +3356,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.8",
 ]
 
 [[package]]
@@ -3240,39 +3381,37 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.22.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
 name = "tonic"
-version = "0.9.2"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
+checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
 dependencies = [
  "async-stream",
  "async-trait",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
- "futures-core",
- "futures-util",
  "h2",
  "http",
  "http-body",
@@ -3281,10 +3420,11 @@ dependencies = [
  "percent-encoding",
  "pin-project",
  "prost",
- "rustls-native-certs 0.6.3",
- "rustls-pemfile",
+ "rustls-native-certs 0.7.0",
+ "rustls-pemfile 2.1.1",
+ "rustls-pki-types",
  "tokio",
- "tokio-rustls 0.24.1",
+ "tokio-rustls 0.25.0",
  "tokio-stream",
  "tower",
  "tower-layer",
@@ -3294,15 +3434,35 @@ dependencies = [
 
 [[package]]
 name = "tonic-build"
-version = "0.9.2"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07"
+checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2"
 dependencies = [
  "prettyplease",
  "proc-macro2",
  "prost-build",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "tonic-web"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc3b0e1cedbf19fdfb78ef3d672cb9928e0a91a9cb4629cc0c916e8cff8aaaa1"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "http",
+ "http-body",
+ "hyper",
+ "pin-project",
+ "tokio-stream",
+ "tonic",
+ "tower-http",
+ "tower-layer",
+ "tower-service",
+ "tracing",
 ]
 
 [[package]]
@@ -3326,6 +3486,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "tower-http"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
+dependencies = [
+ "bitflags 2.5.0",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "http-range-header",
+ "pin-project-lite",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
 name = "tower-layer"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3357,7 +3535,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3422,9 +3600,9 @@ dependencies = [
 
 [[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "typenum"
@@ -3484,9 +3662,9 @@ dependencies = [
 
 [[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"
@@ -3496,9 +3674,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
@@ -3559,9 +3737,9 @@ dependencies = [
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
  "getrandom",
 ]
@@ -3580,9 +3758,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 
 [[package]]
 name = "version-compare"
-version = "0.1.1"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
 
 [[package]]
 name = "version_check"
@@ -3592,9 +3770,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -3626,7 +3804,7 @@ dependencies = [
  "mime_guess",
  "percent-encoding",
  "pin-project",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.4",
  "scoped-tls",
  "serde",
  "serde_json",
@@ -3646,9 +3824,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if 1.0.0",
  "wasm-bindgen-macro",
@@ -3656,24 +3834,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -3683,9 +3861,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3693,28 +3871,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.53",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "web-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -3732,9 +3910,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.3"
+version = "0.25.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
 name = "which"
@@ -3790,15 +3968,6 @@ 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"
@@ -3812,22 +3981,7 @@ 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",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -3847,42 +4001,30 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 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",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[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"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -3892,15 +4034,9 @@ 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"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -3910,15 +4046,9 @@ 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"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -3928,15 +4058,9 @@ 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"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -3946,15 +4070,9 @@ 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"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -3964,33 +4082,36 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.5"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
-name = "windows_x86_64_msvc"
-version = "0.52.0"
+name = "winnow"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "winnow"
-version = "0.5.25"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -4021,6 +4142,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
 name = "zeromq-src"
 version = "0.2.6+4.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/pkgs/development/python-modules/qcs-sdk-python/default.nix b/pkgs/development/python-modules/qcs-sdk-python/default.nix
index 8144cad691335..100a7874fd187 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/default.nix
+++ b/pkgs/development/python-modules/qcs-sdk-python/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, rustPlatform
-, quil
-, pytest-asyncio
-, pytestCheckHook
-, syrupy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  quil,
+  rustPlatform,
+  syrupy,
 }:
 
 buildPythonPackage rec {
   pname = "qcs-sdk-python";
-  version = "0.16.3";
+  version = "0.17.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,26 +21,24 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "qcs-sdk-rust";
     rev = "python/v${version}";
-    hash = "sha256-Q2PCARxaWqgVVnr2O+zhGcNHghC4gr31bxkv6+Rf/EQ=";
+    hash = "sha256-Z/NK+xnugFieJqAbvGaVvxUaz9RC1vpWb4ydZTVbZeU=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "quil-rs-0.22.5" = "sha256-HUp41mOBjyAavhjFO5IJXHh2dVPcpFuDJ03nyRRuCCk=";
+      "quil-rs-0.23.0" = "sha256-l9wj1j7PJ5L497dPlkEpJ4ctAfjUIada5Vbn2h5ioVE=";
     };
   };
 
   buildAndTestSubdir = "crates/python";
 
-  nativeBuildInputs = [
+  build-system = [
     rustPlatform.cargoSetupHook
     rustPlatform.maturinBuildHook
   ];
 
-  propagatedBuildInputs = [
-    quil
-  ];
+  dependencies = [ quil ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/qtile-extras/default.nix b/pkgs/development/python-modules/qtile-extras/default.nix
index 1661918152f1a..198cbdcdddf31 100644
--- a/pkgs/development/python-modules/qtile-extras/default.nix
+++ b/pkgs/development/python-modules/qtile-extras/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "qtile-extras";
-  version = "0.24.0";
+  version = "0.25.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "elParaguayo";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-DJmnJcqhfCfl39SF3Ypv0PGtI4r8heaVv9JmpiCBGJo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-OYzSKOVg4D5gKxaEreclYq3D16dl8ddLipSdifokDNY=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix
index 09a0c21a1f88a..9a3ecbafc049e 100644
--- a/pkgs/development/python-modules/qtile/default.nix
+++ b/pkgs/development/python-modules/qtile/default.nix
@@ -97,6 +97,6 @@ buildPythonPackage rec {
     description = "A small, flexible, scriptable tiling window manager written in Python";
     mainProgram = "qtile";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ kamilchm arjan-s ];
+    maintainers = with maintainers; [ arjan-s ];
   };
 }
diff --git a/pkgs/development/python-modules/quart/default.nix b/pkgs/development/python-modules/quart/default.nix
index 5a79054e89519..d0da424c9f672 100644
--- a/pkgs/development/python-modules/quart/default.nix
+++ b/pkgs/development/python-modules/quart/default.nix
@@ -31,17 +31,17 @@
 
 buildPythonPackage rec {
   pname = "quart";
-  version = "0.19.4";
-  format = "pyproject";
+  version = "0.19.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pallets";
     repo = "quart";
     rev = "refs/tags/${version}";
-    hash = "sha256-EgCZ0AXK2vGxo55BWAcDVv6zNUrWNbAYNnEXEBJk+84=";
+    hash = "sha256-T2+76AVvXrads7AbjNAExV0i4doQ2xIUEwekVB2JXAo=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
@@ -50,7 +50,7 @@ buildPythonPackage rec {
       --replace "--no-cov-on-fail " ""
   '';
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiofiles
     blinker
     click
@@ -79,11 +79,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    # pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
-    "-W" "ignore::pytest.PytestRemovedIn8Warning"
-  ];
-
   meta = with lib; {
     description = "An async Python micro framework for building web applications";
     mainProgram = "quart";
diff --git a/pkgs/development/python-modules/quil/default.nix b/pkgs/development/python-modules/quil/default.nix
index 181f82d5f4332..41f79d79bdf3d 100644
--- a/pkgs/development/python-modules/quil/default.nix
+++ b/pkgs/development/python-modules/quil/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, rustPlatform
-, numpy
-, pytestCheckHook
-, syrupy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  rustPlatform,
+  numpy,
+  pytestCheckHook,
+  syrupy,
 }:
 
 buildPythonPackage rec {
   pname = "quil";
-  version = "0.6.5";
+  version = "0.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,13 +20,13 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "quil-rs";
     rev = "quil-py/v${version}";
-    hash = "sha256-SYq0NOzYGJuXFPGjvYzGgKvioCk0hBxLR5S6VFU5d88=";
+    hash = "sha256-GFePbCJnVbzL4cpQ7fy1tk2l7NhAyTVW63lVYTv0/Oo=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
-    hash = "sha256-qZY9eQxxlH59DE/RrZFC3G6Pp3IdJupPN5AhUnrKSKs=";
+    hash = "sha256-catUGCFbkvov1z52f6eyxogflu61VcjIItgEVEWzkpY=";
   };
 
   buildAndTestSubdir = "quil-py";
@@ -34,14 +35,12 @@ buildPythonPackage rec {
     cargo metadata --offline
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     rustPlatform.cargoSetupHook
     rustPlatform.maturinBuildHook
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  dependencies = [ numpy ];
 
   pythonImportsCheck = [ "numpy" ];
 
diff --git a/pkgs/development/python-modules/radio-beam/default.nix b/pkgs/development/python-modules/radio-beam/default.nix
index 6d743125e8805..c0e9c31a5eca1 100644
--- a/pkgs/development/python-modules/radio-beam/default.nix
+++ b/pkgs/development/python-modules/radio-beam/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchPypi
+, fetchpatch2
 , buildPythonPackage
 , setuptools-scm
 , astropy
@@ -21,6 +22,15 @@ buildPythonPackage rec {
     hash = "sha256-7AFkuuYLzibwwgz6zrFw0fBXCnGLzdm4OgT+Chve5jU=";
   };
 
+  # Fix distutils deprecation in Python 3.12. See:
+  # https://github.com/radio-astro-tools/radio-beam/pull/124
+  patches = [
+    (fetchpatch2 {
+      url = "https://github.com/radio-astro-tools/radio-beam/commit/1eb0216c8d7f5a4494d8d1fe8c79b48425a9c491.patch";
+      hash = "sha256-kTJF/cnkJCjJI2psvs+4MWFn/+b8TvUWjdfYu5ot0XU=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools-scm
   ];
@@ -50,5 +60,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ smaret ];
   };
 }
-
-
diff --git a/pkgs/development/python-modules/randomfiletree/default.nix b/pkgs/development/python-modules/randomfiletree/default.nix
new file mode 100644
index 0000000000000..9326c7b3062b9
--- /dev/null
+++ b/pkgs/development/python-modules/randomfiletree/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "randomfiletree";
+  version = "1.2.0";
+  format = "setuptools";
+
+  src = fetchPypi {
+    pname = "RandomFileTree";
+    inherit version;
+    hash = "sha256-OpLhLsvwk9xrP8FAXGkDDtMts6ikpx8ockvTR/TEmvw=";
+  };
+
+  pythonImportsCheck = [ "randomfiletree" ];
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Create a random file/directory tree/structure in python fortesting purposes";
+    homepage = "https://pypi.org/project/RandomFileTree/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ twitchy0 ];
+  };
+}
diff --git a/pkgs/development/python-modules/rapidfuzz/default.nix b/pkgs/development/python-modules/rapidfuzz/default.nix
index 5a1a6296b48d2..6caf19c721abf 100644
--- a/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -18,16 +18,16 @@
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "3.7.0";
+  version = "3.8.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "maxbachmann";
     repo = "RapidFuzz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BwU9Ti35Dsaa+kT78h3lsjw4sI1RQdhukTPTeJDyBw0=";
+    hash = "sha256-ljuqezL/Iu4VQelPi7KApBknDrWzikX7FD5iw5NcOL4=";
   };
 
   postPatch = ''
@@ -35,7 +35,7 @@ buildPythonPackage rec {
       --replace-fail "Cython >=3.0.9, <3.1.0" "Cython"
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     cmake
     cython_3
     ninja
diff --git a/pkgs/development/python-modules/rapidgzip/default.nix b/pkgs/development/python-modules/rapidgzip/default.nix
index f50537524cbf9..69f9fb1388d72 100644
--- a/pkgs/development/python-modules/rapidgzip/default.nix
+++ b/pkgs/development/python-modules/rapidgzip/default.nix
@@ -1,23 +1,25 @@
 { lib
 , buildPythonPackage
+, cython
 , fetchPypi
 , pythonOlder
+, setuptools
 , nasm
 }:
 
 buildPythonPackage rec {
   pname = "rapidgzip";
-  version = "0.13.0";
-  format = "setuptools";
+  version = "0.13.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MwT4+wzlNXfDLT/o/oT1iy9cVlFIIXc18r7dg+x5SXY=";
+    hash = "sha256-t6mfOsCg0FoV7N4GfTIs1KwxeGIOORuxbEIEJN52nRw=";
   };
 
-  nativeBuildInputs = [ nasm ];
+  nativeBuildInputs = [ cython nasm setuptools ];
 
   # has no tests
   doCheck = false;
@@ -31,6 +33,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/mxmlnkn/rapidgzip/blob/rapidgzip-v${version}/python/rapidgzip/CHANGELOG.md";
     license = licenses.mit; # dual MIT and asl20, https://internals.rust-lang.org/t/rationale-of-apache-dual-licensing/8952
     maintainers = with lib.maintainers; [ mxmlnkn ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/rarfile/default.nix b/pkgs/development/python-modules/rarfile/default.nix
index 702e47b4bdf63..4f3cbc28ea770 100644
--- a/pkgs/development/python-modules/rarfile/default.nix
+++ b/pkgs/development/python-modules/rarfile/default.nix
@@ -8,15 +8,15 @@ assert !useUnrar -> libarchive != null;
 
 buildPythonPackage rec {
   pname = "rarfile";
-  version = "4.1";
+  version = "4.2";
   format = "setuptools";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "markokr";
     repo = "rarfile";
-    rev = "v${version}";
-    sha256 = "sha256-9PT4/KgkdFhTjZIia2xiSM5VnaZ4040Ww7bG9Nr3XDU=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-ZiwD2LG25fMd4Z+QWsh/x3ceG5QRBH4s/TZDwMnfpNI=";
   };
 
   nativeCheckInputs = [ pytestCheckHook nose glibcLocales ];
diff --git a/pkgs/development/python-modules/rasterio/default.nix b/pkgs/development/python-modules/rasterio/default.nix
index eef18524c2172..07dfa2c94aae5 100644
--- a/pkgs/development/python-modules/rasterio/default.nix
+++ b/pkgs/development/python-modules/rasterio/default.nix
@@ -5,6 +5,7 @@
 , pytestCheckHook
 , pythonOlder
 , stdenv
+, testers
 
 , affine
 , attrs
@@ -26,6 +27,8 @@
 , shapely
 , snuggs
 , wheel
+
+, rasterio  # required to run version test
 }:
 
 buildPythonPackage rec {
@@ -54,6 +57,12 @@ buildPythonPackage rec {
     })
   ];
 
+  postPatch = ''
+    # remove useless import statement requiring distutils to be present at the runtime
+    substituteInPlace rasterio/rio/calc.py \
+      --replace-fail "from distutils.version import LooseVersion" ""
+    '';
+
   nativeBuildInputs = [
     cython_3
     gdal
@@ -71,7 +80,6 @@ buildPythonPackage rec {
     click-plugins
     cligj
     numpy
-    setuptools
     snuggs
   ];
 
@@ -96,6 +104,12 @@ buildPythonPackage rec {
     shapely
   ];
 
+  # rio has runtime dependency on setuptools
+  setuptoolsPythonPath = [ setuptools ];
+  postInstall = ''
+    wrapPythonProgramsIn "$out/bin" "$out $setuptoolsPythonPath"
+  '';
+
   doCheck = true;
 
   preCheck = ''
@@ -104,6 +118,9 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     "-m 'not network'"
+
+    # pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
+    "-W ignore::pytest.PytestRemovedIn8Warning"
   ];
 
   disabledTests = [
@@ -117,6 +134,12 @@ buildPythonPackage rec {
     "rasterio"
   ];
 
+  passthru.tests.version = testers.testVersion {
+    package = rasterio;
+    version = version;
+    command = "${rasterio}/bin/rio --version";
+  };
+
   meta = with lib; {
     description = "Python package to read and write geospatial raster data";
     mainProgram = "rio";
diff --git a/pkgs/development/python-modules/ratarmount/default.nix b/pkgs/development/python-modules/ratarmount/default.nix
index 21bd26c45c865..6cfadadc8c1b4 100644
--- a/pkgs/development/python-modules/ratarmount/default.nix
+++ b/pkgs/development/python-modules/ratarmount/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "ratarmount";
-  version = "0.14.1";
+  version = "0.14.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TrOYf9kbcRM8E9vq6sjswK2BQ0eA5zSGAIiNAfIZtnk=";
+    hash = "sha256-CZh27X5EmUiRYfeV0KOnpMrFDfa+qDFHr2pInD90UO8=";
   };
 
   propagatedBuildInputs = [ ratarmountcore fusepy ];
diff --git a/pkgs/development/python-modules/ratarmountcore/default.nix b/pkgs/development/python-modules/ratarmountcore/default.nix
index 90a45cecdb7ad..844fa2c499230 100644
--- a/pkgs/development/python-modules/ratarmountcore/default.nix
+++ b/pkgs/development/python-modules/ratarmountcore/default.nix
@@ -1,12 +1,13 @@
 { lib
 , buildPythonPackage
-, fetchgit
+, fetchFromGitHub
 , pythonOlder
 , pytestCheckHook
 , indexed-bzip2
 , indexed-gzip
 , indexed-zstd
 , python-xz
+, setuptools
 , rapidgzip
 , rarfile
 , zstandard     # Python bindings
@@ -15,35 +16,42 @@
 
 buildPythonPackage rec {
   pname = "ratarmountcore";
-  version = "0.6.0";
-  format = "setuptools";
+  version = "0.6.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
-  src = fetchgit {
-    url = "https://github.com/mxmlnkn/ratarmount";
-    # The revision is hardcoded for now to fix problems with the tests, which are not worthy of a new release
-    # tag because releases do not officially contain tests. On the next release, use the commented revision,
-    # which points to a release tag, instead.
-    #rev = "core-v${version}";
-    rev = "ea43572dfbac4770a27ef2169f72ff73ee4a4ae9";
-    hash = "sha256-sPApM5OW+UbujFXHSL4ptMaegajz7FNtXz/KftTlw+U=";
+  src = fetchFromGitHub {
+    owner = "mxmlnkn";
+    repo = "ratarmount";
+    rev = "core-v${version}";
+    hash = "sha256-2jG066BUkhyHRqRyFAucQRJrjXQNw2ccCxERKkltO3Y=";
     fetchSubmodules = true;
   };
 
   sourceRoot = "${src.name}/core";
 
+  nativeBuildInputs = [ setuptools ];
   propagatedBuildInputs = [ indexed-gzip indexed-bzip2 indexed-zstd python-xz rapidgzip rarfile ];
 
   pythonImportsCheck = [ "ratarmountcore" ];
 
   nativeCheckInputs = [ pytestCheckHook zstandard zstd ];
 
+  disabledTestPaths = [
+    # Disable this test because for arcane reasons running pytest with nix-build uses 10-100x
+    # more virtual memory than running the test directly or inside a local development nix-shell.
+    # This virtual memory usage caused os.fork called by Python multiprocessing to fail with
+    # "OSError: [Errno 12] Cannot allocate memory" on a test system with 16 GB RAM. It worked fine
+    # on a system with 96 GB RAM. In order to avoid build errors on "low"-memory systems, this
+    # test is disabled for now.
+    "tests/test_BlockParallelReaders.py"
+  ];
+
   meta = with lib; {
     description = "Library for accessing archives by way of indexing";
     homepage = "https://github.com/mxmlnkn/ratarmount/tree/master/core";
     license = licenses.mit;
     maintainers = with lib.maintainers; [ mxmlnkn ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/reconplogger/default.nix b/pkgs/development/python-modules/reconplogger/default.nix
index 29f3c8b649aa2..319730e8168f5 100644
--- a/pkgs/development/python-modules/reconplogger/default.nix
+++ b/pkgs/development/python-modules/reconplogger/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, logmatic-python
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
-, setuptools
-, testfixtures
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  logmatic-python,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  setuptools,
+  testfixtures,
 }:
 
 buildPythonPackage rec {
   pname = "reconplogger";
-  version = "4.15.0";
+  version = "4.16.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,14 +23,12 @@ buildPythonPackage rec {
     owner = "omni-us";
     repo = "reconplogger";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0+YOrMqyDK6uAni2h5b6P850veIkUiifX6aHzCnRHD0=";
+    hash = "sha256-jBWy5oHyZpRUWb8OW0dRFfpu3m3hTd5dpIOQCRO5swM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     logmatic-python
     pyyaml
   ];
@@ -46,13 +45,9 @@ buildPythonPackage rec {
     testfixtures
   ];
 
-  pythonImportsCheck = [
-    "reconplogger"
-  ];
+  pythonImportsCheck = [ "reconplogger" ];
 
-  pytestFlagsArray = [
-    "reconplogger_tests.py"
-  ];
+  pytestFlagsArray = [ "reconplogger_tests.py" ];
 
   meta = with lib; {
     description = "Module to ease the standardization of logging within omni:us";
diff --git a/pkgs/development/python-modules/reptor/default.nix b/pkgs/development/python-modules/reptor/default.nix
index 3f472ef12733b..3c52cc3f49aa2 100644
--- a/pkgs/development/python-modules/reptor/default.nix
+++ b/pkgs/development/python-modules/reptor/default.nix
@@ -1,38 +1,39 @@
-{ lib
-, asgiref
-, buildPythonPackage
-, certifi
-, charset-normalizer
-, cvss
-, deepl
-, django
-, fetchFromGitHub
-, gql
-, idna
-, markdown-it-py
-, mdurl
-, pygments
-, pytest
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, reptor
-, requests
-, rich
-, setuptools
-, sqlparse
-, termcolor
-, tomli
-, tomli-w
-, tomlkit
-, urllib3
-, xmltodict
+{
+  lib,
+  asgiref,
+  buildPythonPackage,
+  certifi,
+  charset-normalizer,
+  cvss,
+  deepl,
+  django,
+  fetchFromGitHub,
+  gql,
+  idna,
+  markdown-it-py,
+  mdurl,
+  pygments,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pyyaml,
+  reptor,
+  requests,
+  rich,
+  setuptools,
+  sqlparse,
+  termcolor,
+  tomli,
+  tomli-w,
+  tomlkit,
+  urllib3,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
   pname = "reptor";
-  version = "0.17";
+  version = "0.18";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -41,15 +42,14 @@ buildPythonPackage rec {
     owner = "Syslifters";
     repo = "reptor";
     rev = "refs/tags/${version}";
-    hash = "sha256-3GINDFKgvFv03xF+77K+sTKSm0+kLF5m70dQ/iksZeM=";
+    hash = "sha256-sojU2Asop0b/b/gfKXoRseuT1zHEO00JNrRWhMYh0Vo=";
   };
 
   pythonRelaxDeps = true;
 
-  build-system = [
-    pythonRelaxDepsHook
-    setuptools
-  ];
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     asgiref
@@ -74,12 +74,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    ghostwriter = [
-      gql
-    ] ++ gql.optional-dependencies.aiohttp;
-    translate = [
-      deepl
-    ];
+    ghostwriter = [ gql ] ++ gql.optional-dependencies.aiohttp;
+    translate = [ deepl ];
   };
 
   nativeCheckInputs = [
@@ -91,9 +87,7 @@ buildPythonPackage rec {
     export PATH="$PATH:$out/bin";
   '';
 
-  pythonImportsCheck = [
-    "reptor"
-  ];
+  pythonImportsCheck = [ "reptor" ];
 
   disabledTestPaths = [
     # Tests want to use pip install dependencies
@@ -104,7 +98,6 @@ buildPythonPackage rec {
     # Tests need network access
     "TestDummy"
     "TestIntegration"
-
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/reuse/default.nix b/pkgs/development/python-modules/reuse/default.nix
index ee96a52fc0ebd..b0d9920830019 100644
--- a/pkgs/development/python-modules/reuse/default.nix
+++ b/pkgs/development/python-modules/reuse/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "reuse";
-  version = "3.0.1";
+  version = "3.0.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "fsfe";
     repo = "reuse-tool";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hDvOT9BP/E95FTa8rvtdxQoEDYgfMAkCSbX5KKV3qbQ=";
+    hash = "sha256-ZYmQtJ503HDmu+Cd6IxOrCcOVH+CcFnFe3oe6PqvcE0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ring-doorbell/default.nix b/pkgs/development/python-modules/ring-doorbell/default.nix
index 68c0ba09b1609..1ef168dbe4769 100644
--- a/pkgs/development/python-modules/ring-doorbell/default.nix
+++ b/pkgs/development/python-modules/ring-doorbell/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "ring-doorbell";
-  version = "0.8.10";
+  version = "0.8.11";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "ring_doorbell";
     inherit version;
-    hash = "sha256-MKN38SqSn97SF9Y7IzNO6PHsbExjRNXph0Pp1mTNjVI=";
+    hash = "sha256-XygVfIf6zlKy2kv/9TKLG8MpYX4YnzYIKiSG7nP5YI8=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/riscv-config/default.nix b/pkgs/development/python-modules/riscv-config/default.nix
index 2f7af9d474229..298772e12cc76 100644
--- a/pkgs/development/python-modules/riscv-config/default.nix
+++ b/pkgs/development/python-modules/riscv-config/default.nix
@@ -1,28 +1,37 @@
-{ lib
-, buildPythonPackage
-, cerberus
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, pyyaml
-, ruamel-yaml
+{
+  lib,
+  buildPythonPackage,
+  cerberus,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  pyyaml,
+  ruamel-yaml,
+  setuptools,
+  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "riscv-config";
-  version = "3.17.1";
-  format = "setuptools";
+  version = "3.18.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "riscv-software-src";
-    repo = pname;
+    repo = "riscv-config";
     rev = "refs/tags/${version}";
-    hash = "sha256-M36xS9rBnCPHWmHvAA6qC9J21K/zIjgsqEyhApJDKrE=";
+    hash = "sha256-lBjSHfnuNPi4Ks5ZCRLqJx3/l4GMmMEEIud8ZVl/S4Q=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [ "pyyaml" ];
+
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
     cerberus
     pyyaml
     ruamel-yaml
@@ -31,16 +40,14 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "riscv_config"
-  ];
+  pythonImportsCheck = [ "riscv_config" ];
 
   meta = with lib; {
     description = "RISC-V configuration validator";
-    mainProgram = "riscv-config";
     homepage = "https://github.com/riscv/riscv-config";
     changelog = "https://github.com/riscv-software-src/riscv-config/blob/${version}/CHANGELOG.md";
-    maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd3;
+    maintainers = with maintainers; [ genericnerdyusername ];
+    mainProgram = "riscv-config";
   };
 }
diff --git a/pkgs/development/python-modules/robotframework-requests/default.nix b/pkgs/development/python-modules/robotframework-requests/default.nix
index 6d009c61a80cc..d1b6f21df06be 100644
--- a/pkgs/development/python-modules/robotframework-requests/default.nix
+++ b/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "robotframework-requests";
-  version = "0.9.6";
+  version = "0.9.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "MarketSquare";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-TuKfR+pUcQ4kf9HsX6s9WYukhwLBbJkwModoreAgo60=";
+    hash = "sha256-NRhf3delcqUw9vWRPL6pJzpcmRMDou2pHmUHMstF8hw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/roombapy/default.nix b/pkgs/development/python-modules/roombapy/default.nix
index 81841aadebee9..465da76efe4ba 100644
--- a/pkgs/development/python-modules/roombapy/default.nix
+++ b/pkgs/development/python-modules/roombapy/default.nix
@@ -1,20 +1,22 @@
 { lib
 , amqtt
 , buildPythonPackage
+, click
 , fetchFromGitHub
+, mashumaro
 , orjson
 , paho-mqtt
 , poetry-core
-, pydantic
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
 , pythonRelaxDepsHook
+, tabulate
 }:
 
 buildPythonPackage rec {
   pname = "roombapy";
-  version = "1.7.0";
+  version = "1.8.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -23,7 +25,7 @@ buildPythonPackage rec {
     owner = "pschmitt";
     repo = "roombapy";
     rev = "refs/tags/${version}";
-    hash = "sha256-vB6+cGqeHFthCbz4q75EwsHb8w1H2vPSaKdtvquh5Kc=";
+    hash = "sha256-1yfmaTzZ7cZW2+Yb3Zbo8+5TfD+H1sA0+SzC1c9MdsQ=";
   };
 
   nativeBuildInputs = [
@@ -36,9 +38,14 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    mashumaro
     orjson
     paho-mqtt
-    pydantic
+  ];
+
+  optional-dependencies.cli = [
+    click
+    tabulate
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index 9f55a4e809ab5..a8b0d3f07cba4 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -2,7 +2,9 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, fetchpatch
 , pythonRelaxDepsHook
+, setuptools
 , attrs
 , boto3
 , cloudpickle
@@ -20,14 +22,18 @@
 , platformdirs
 , tblib
 , urllib3
+, requests
 , docker
+, tqdm
+, psutil
 , scipy
+, accelerate
 }:
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.214.1";
-  format = "setuptools";
+  version = "2.214.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -35,19 +41,33 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "sagemaker-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KDy3pVRuS/p32KlSBsXU8XFp6Eedgg809RmKD/FrZfQ=";
+    hash = "sha256-RE4uyIpFiZNDyS5R6+gMLlj0vcAIiHPattFPTSMGnCI=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    # Distutils removal, fix build with python 3.12
+    # https://github.com/aws/sagemaker-python-sdk/pull/4544
+    (fetchpatch {
+      url = "https://github.com/aws/sagemaker-python-sdk/commit/84447ba59e544c810aeb842fd058e20d89e3fc74.patch";
+      hash = "sha256-B8Q18ViB7xYy1F5LoL1NvXj2lnFPgt+C9wssSODyAXM=";
+    })
+    (fetchpatch {
+      url = "https://github.com/aws/sagemaker-python-sdk/commit/e9e08a30cb42d4b2d7299c1c4b42d680a8c78110.patch";
+      hash = "sha256-uGPtXSXfeaIvt9kkZZKQDuiZfoRgw3teffuxai1kKlY=";
+    })
+  ];
+
+  build-system = [
+    setuptools
     pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
-    "attrs"
-    "boto3"
+    "cloudpickle"
+    "importlib-metadata"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     boto3
     cloudpickle
@@ -64,6 +84,11 @@ buildPythonPackage rec {
     jsonschema
     platformdirs
     tblib
+    urllib3
+    requests
+    docker
+    tqdm
+    psutil
   ];
 
   doCheck = false; # many test dependencies are not available in nixpkgs
@@ -76,6 +101,7 @@ buildPythonPackage rec {
   passthru.optional-dependencies = {
     local = [ urllib3 docker pyyaml ];
     scipy = [ scipy ];
+    huggingface = [ accelerate ];
     # feature-processor = [ pyspark sagemaker-feature-store-pyspark ]; # not available in nixpkgs
   };
 
diff --git a/pkgs/development/python-modules/schema-salad/default.nix b/pkgs/development/python-modules/schema-salad/default.nix
index 7e20d1c39779e..8d267299add02 100644
--- a/pkgs/development/python-modules/schema-salad/default.nix
+++ b/pkgs/development/python-modules/schema-salad/default.nix
@@ -1,52 +1,63 @@
-{ lib
-, black
-, buildPythonPackage
-, cachecontrol
-, fetchFromGitHub
-, importlib-resources
-, mistune
-, mypy-extensions
-, pytestCheckHook
-, pythonOlder
-, rdflib
-, requests
-, ruamel-yaml
-, setuptools-scm
+{
+  lib,
+  black,
+  buildPythonPackage,
+  cachecontrol,
+  fetchFromGitHub,
+  importlib-resources,
+  mistune,
+  mypy,
+  mypy-extensions,
+  pytestCheckHook,
+  pythonRelaxDepsHook,
+  pythonOlder,
+  rdflib,
+  requests,
+  ruamel-yaml,
+  setuptools-scm,
+  types-dataclasses,
+  types-requests,
+  types-setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "schema-salad";
-  version = "8.5.20240311110950";
-  format = "setuptools";
+  version = "8.5.20240410123758";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "common-workflow-language";
     repo = "schema_salad";
     rev = "refs/tags/${version}";
-    hash = "sha256-bjeVgV9ovIVvGvSay24vKkzSXBbzgV05BkO5DojTX3o=";
+    hash = "sha256-AgXqeiA4sP7KBnUpb2uMWq45G0LhJ5uLtORrOG4UuB0=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "black>=19.10b0,<23.12" "black>=19.10b0"
+  '';
 
-  propagatedBuildInputs = [
-    cachecontrol
-    mistune
-    mypy-extensions
-    rdflib
-    requests
-    ruamel-yaml
-  ] ++ cachecontrol.optional-dependencies.filecache
-  ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  build-system = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.pycodegen;
+  dependencies =
+    [
+      cachecontrol
+      mistune
+      mypy
+      mypy-extensions
+      rdflib
+      requests
+      ruamel-yaml
+      types-dataclasses
+      types-requests
+      types-setuptools
+    ]
+    ++ cachecontrol.optional-dependencies.filecache
+    ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
+
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.pycodegen;
 
   preCheck = ''
     rm tox.ini
@@ -62,14 +73,10 @@ buildPythonPackage rec {
     "test_bad_schemas"
   ];
 
-  pythonImportsCheck = [
-    "schema_salad"
-  ];
+  pythonImportsCheck = [ "schema_salad" ];
 
   passthru.optional-dependencies = {
-    pycodegen = [
-      black
-    ];
+    pycodegen = [ black ];
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/scs/default.nix b/pkgs/development/python-modules/scs/default.nix
index c1ca83ed4ba1a..3584174bf2844 100644
--- a/pkgs/development/python-modules/scs/default.nix
+++ b/pkgs/development/python-modules/scs/default.nix
@@ -80,6 +80,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/cvxgrp/scs"; # upstream C package
     downloadPage = "https://github.com/bodono/scs-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ a-n-n-a-l-e-e drewrisinger ];
+    maintainers = with maintainers; [ drewrisinger ];
   };
 }
diff --git a/pkgs/development/python-modules/semver/default.nix b/pkgs/development/python-modules/semver/default.nix
index 7260baa5aa100..cb2ed61307b36 100644
--- a/pkgs/development/python-modules/semver/default.nix
+++ b/pkgs/development/python-modules/semver/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "semver";
   version = "3.0.2";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -21,35 +22,31 @@ buildPythonPackage rec {
     hash = "sha256-772PSUq1dqtn9aOol+Bo0S0OItBmoiCNP8q/YCBvKU4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    setuptools-scm
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
   postPatch = ''
     sed -i "/--cov/d" setup.cfg
     sed -i "/--no-cov-on-fail/d" setup.cfg
   '';
 
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
   disabledTestPaths = [
     # Don't test the documentation
     "docs/*.rst"
   ];
 
-  pythonImportsCheck = [
-    "semver"
-  ];
+  pythonImportsCheck = [ "semver" ];
 
   meta = with lib; {
     description = "Python package to work with Semantic Versioning (http://semver.org/)";
-    mainProgram = "pysemver";
     homepage = "https://python-semver.readthedocs.io/";
     changelog = "https://github.com/python-semver/python-semver/releases/tag/3.0.0";
     license = licenses.bsd3;
     maintainers = with maintainers; [ np ];
+    mainProgram = "pysemver";
   };
 }
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index f225853368b5c..3f57549a1e39d 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -1,44 +1,45 @@
-{ lib
-, stdenv
-, aiohttp
-, apache-beam
-, asttokens
-, blinker
-, bottle
-, buildPythonPackage
-, celery
-, certifi
-, chalice
-, django
-, executing
-, falcon
-, fetchFromGitHub
-, flask
-, gevent
-, httpx
-, jsonschema
-, mock
-, pure-eval
-, pyrsistent
-, pyspark
-, pysocks
-, pytest-forked
-, pytest-localserver
-, pytest-watch
-, pytestCheckHook
-, pythonOlder
-, quart
-, rq
-, sanic
-, setuptools
-, sqlalchemy
-, tornado
-, urllib3
+{
+  lib,
+  stdenv,
+  aiohttp,
+  apache-beam,
+  asttokens,
+  blinker,
+  bottle,
+  buildPythonPackage,
+  celery,
+  certifi,
+  chalice,
+  django,
+  executing,
+  falcon,
+  fetchFromGitHub,
+  flask,
+  gevent,
+  httpx,
+  jsonschema,
+  mock,
+  pure-eval,
+  pyrsistent,
+  pyspark,
+  pysocks,
+  pytest-forked,
+  pytest-localserver,
+  pytest-watch,
+  pytestCheckHook,
+  pythonOlder,
+  quart,
+  rq,
+  sanic,
+  setuptools,
+  sqlalchemy,
+  tornado,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.42.0";
+  version = "1.45.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -47,50 +48,30 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-LZn7oWwKdHi/KScitFnNDX7pI92mNkC6niGP+BixjtA=";
+    hash = "sha256-OWoMqJlf0vmBHWWsW6mF4u5X9USzxkFmCJyX7Ws0dD0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     certifi
     urllib3
   ];
 
   passthru.optional-dependencies = {
-    aiohttp = [
-      aiohttp
-    ];
-    beam = [
-      apache-beam
-    ];
-    bottle = [
-      bottle
-    ];
-    celery = [
-      celery
-    ];
-    chalice = [
-      chalice
-    ];
-    django = [
-      django
-    ];
-    falcon = [
-      falcon
-    ];
+    aiohttp = [ aiohttp ];
+    beam = [ apache-beam ];
+    bottle = [ bottle ];
+    celery = [ celery ];
+    chalice = [ chalice ];
+    django = [ django ];
+    falcon = [ falcon ];
     flask = [
       flask
       blinker
     ];
-    httpx = [
-      httpx
-    ];
-    pyspark = [
-      pyspark
-    ];
+    httpx = [ httpx ];
+    pyspark = [ pyspark ];
     pure_eval = [
       asttokens
       executing
@@ -100,18 +81,10 @@ buildPythonPackage rec {
       quart
       blinker
     ];
-    rq = [
-      rq
-    ];
-    sanic = [
-      sanic
-    ];
-    sqlalchemy = [
-      sqlalchemy
-    ];
-    tornado = [
-      tornado
-    ];
+    rq = [ rq ];
+    sanic = [ sanic ];
+    sqlalchemy = [ sqlalchemy ];
+    tornado = [ tornado ];
   };
 
   nativeCheckInputs = [
@@ -137,24 +110,27 @@ buildPythonPackage rec {
     "test_default_release"
   ];
 
-  disabledTestPaths = [
-    # Varius integration tests fail every once in a while when we
-    # upgrade dependencies, so don't bother testing them.
-    "tests/integrations/"
-  ] ++ lib.optionals (stdenv.buildPlatform != "x86_64-linux") [
-    # test crashes on aarch64
-    "tests/test_transport.py"
-  ];
+  disabledTestPaths =
+    [
+      # Varius integration tests fail every once in a while when we
+      # upgrade dependencies, so don't bother testing them.
+      "tests/integrations/"
+    ]
+    ++ lib.optionals (stdenv.buildPlatform != "x86_64-linux") [
+      # test crashes on aarch64
+      "tests/test_transport.py"
+    ];
 
-  pythonImportsCheck = [
-    "sentry_sdk"
-  ];
+  pythonImportsCheck = [ "sentry_sdk" ];
 
   meta = with lib; {
     description = "Python SDK for Sentry.io";
     homepage = "https://github.com/getsentry/sentry-python";
     changelog = "https://github.com/getsentry/sentry-python/blob/${version}/CHANGELOG.md";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ fab gebner ];
+    maintainers = with maintainers; [
+      fab
+      gebner
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/setuptools-git-versioning/default.nix b/pkgs/development/python-modules/setuptools-git-versioning/default.nix
index ea287302392c3..311de1fe5ff87 100644
--- a/pkgs/development/python-modules/setuptools-git-versioning/default.nix
+++ b/pkgs/development/python-modules/setuptools-git-versioning/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "setuptools-git-versioning";
-  version = "1.13.6";
+  version = "2.0.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "dolfinus";
     repo = "setuptools-git-versioning";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YUIh+dK4Sj85vhvI7u15a734tbQsox5VZ2WEAB/mpgc=";
+    hash = "sha256-xugK/JOVA53nCK8bB0gPkhIREmy0+/OthsydfYRCYno=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/shaperglot/default.nix b/pkgs/development/python-modules/shaperglot/default.nix
index c00f66394dda3..9201436d3b609 100644
--- a/pkgs/development/python-modules/shaperglot/default.nix
+++ b/pkgs/development/python-modules/shaperglot/default.nix
@@ -3,9 +3,11 @@
 , fetchFromGitHub
 , gflanguages
 , num2words
-, poetry-core
 , protobuf
 , pytestCheckHook
+, pyyaml
+, setuptools
+, setuptools-scm
 , strictyaml
 , termcolor
 , ufo2ft
@@ -27,18 +29,20 @@ buildPythonPackage rec {
 
   pyproject = true;
 
-  propagatedBuildInputs = [
+  dependencies = [
     gflanguages
     num2words
     protobuf
+    pyyaml
     strictyaml
     termcolor
     ufo2ft
     vharfbuzz
     youseedee
   ];
-  nativeBuildInputs = [
-    poetry-core
+  build-system = [
+    setuptools
+    setuptools-scm
   ];
 
   doCheck = true;
diff --git a/pkgs/development/python-modules/shiboken6/default.nix b/pkgs/development/python-modules/shiboken6/default.nix
index b2e8362be8b9b..57b7e64273d6e 100644
--- a/pkgs/development/python-modules/shiboken6/default.nix
+++ b/pkgs/development/python-modules/shiboken6/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchurl
-, fetchpatch
 , llvmPackages
 , python
 , cmake
@@ -13,25 +12,18 @@ let
 in
 stdenv'.mkDerivation rec {
   pname = "shiboken6";
-  version = "6.6.0";
+  version = "6.7.0";
 
   src = fetchurl {
     # https://download.qt.io/official_releases/QtForPython/shiboken6/
     url = "https://download.qt.io/official_releases/QtForPython/shiboken6/PySide6-${version}-src/pyside-setup-everywhere-src-${version}.tar.xz";
-    sha256 = "sha256-LdAC24hRqHFzNU84qoxuxC0P8frJnqQisp4t/OUtFjg=";
+    hash = "sha256-gurjcHN99ez1OcFl0J18gdX8YVOlQbjT03sRJ1+ePo8=";
   };
 
-  sourceRoot = "pyside-setup-everywhere-src-${lib.removeSuffix ".0" version}/sources/${pname}";
+  sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
 
   patches = [
     ./fix-include-qt-headers.patch
-    # TODO: remove after bumping above 6.6.0
-    (fetchpatch {
-      name = "shiboken6-improve-api-extractor-argument-parsing.patch";
-      url = "https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=6abde77c3df60ccac25089660df5797de7f6e68c";
-      hash = "sha256-uctp5rjY16X37BYzsZzg9AAgM2hwNVkcNxT1bCobb0I=";
-      stripLen = 2;
-    })
   ];
 
   nativeBuildInputs = [
@@ -57,7 +49,7 @@ stdenv'.mkDerivation rec {
   # We intentionally use single quotes around `${BASH}` since it expands from a CMake
   # variable available in this file.
   postPatch = ''
-    substituteInPlace cmake/ShibokenHelpers.cmake --replace '#!/bin/bash' '#!''${BASH}'
+    substituteInPlace cmake/ShibokenHelpers.cmake --replace-fail '#!/bin/bash' '#!''${BASH}'
   '';
 
   # Due to Shiboken.abi3.so being linked to libshiboken6.abi3.so.6.6 in the build tree,
diff --git a/pkgs/development/python-modules/sievelib/default.nix b/pkgs/development/python-modules/sievelib/default.nix
index 082aa5db01cab..4d4e15659c55e 100644
--- a/pkgs/development/python-modules/sievelib/default.nix
+++ b/pkgs/development/python-modules/sievelib/default.nix
@@ -1,36 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "sievelib";
-  version = "1.3.0";
-  format = "setuptools";
+  version = "1.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MxPX8fP4Mkq2qOISnknXbuCN8NQ+L1UOaBuPEuP0TNE=";
+    hash = "sha256-eM8es/WZENFBASjOk1KVbbwkmzxTr7NirOiSLt7F3N8=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
+
+  dependencies = [ typing-extensions ];
 
   nativeCheckInputs = [
     mock
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "sievelib"
-  ];
+  pythonImportsCheck = [ "sievelib" ];
 
   meta = with lib; {
     description = "Client-side Sieve and Managesieve library";
diff --git a/pkgs/development/python-modules/simplesqlite/default.nix b/pkgs/development/python-modules/simplesqlite/default.nix
new file mode 100644
index 0000000000000..c616841813652
--- /dev/null
+++ b/pkgs/development/python-modules/simplesqlite/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, dataproperty
+, mbstrdecoder
+, pathvalidate
+, sqliteschema
+, setuptools
+, tabledata
+, typepy
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "SimpleSQLite";
+  version = "1.5.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "thombashi";
+    repo = "SimpleSQLite";
+    rev = "v${version}";
+    hash = "sha256-Yr17T0/EwVaOjG+mzdxopivj0fuvQdZdX1bFj8vq0MM=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    dataproperty
+    mbstrdecoder
+    pathvalidate
+    sqliteschema
+    tabledata
+    typepy
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "simplesqlite" ];
+
+  meta = with lib; {
+    description = "Python library to simplify SQLite database operations";
+    homepage = "https://github.com/thombashi/simplesqlite";
+    license = licenses.mit;
+    maintainers = with maintainers; [ henrirosten ];
+  };
+}
diff --git a/pkgs/development/python-modules/snakemake-interface-common/default.nix b/pkgs/development/python-modules/snakemake-interface-common/default.nix
index 6ac47e4afedeb..2bc7a0672dba4 100644
--- a/pkgs/development/python-modules/snakemake-interface-common/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-common/default.nix
@@ -1,37 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, argparse-dataclass
-, configargparse
+{
+  lib,
+  argparse-dataclass,
+  buildPythonPackage,
+  configargparse,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "snakemake-interface-common";
-  version = "1.17.1";
-  format = "pyproject";
+  version = "1.17.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "snakemake";
-    repo = pname;
+    repo = "snakemake-interface-common";
     rev = "refs/tags/v${version}";
-    hash = "sha256-23PGKSBX7KMt0Q7sWiLIPfCkxr2HtBas7flYeNHABWM=";
+    hash = "sha256-N8mSS+gABAgXm01BcsMk89a3HsIsc3RHxCAi3GlxtRg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     argparse-dataclass
     configargparse
   ];
 
+  nativeCheckInputs = [ pytestCheckHook ];
+
   pythonImportsCheck = [ "snakemake_interface_common" ];
 
+  pytestFlagsArray = [ "tests/tests.py" ];
+
   meta = with lib; {
     description = "Common functions and classes for Snakemake and its plugins";
     homepage = "https://github.com/snakemake/snakemake-interface-common";
+    changelog = "https://github.com/snakemake/snakemake-interface-common/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
   };
diff --git a/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
index b493c4bcee96e..e40a0842b9086 100644
--- a/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "snakemake-interface-executor-plugins";
-  version = "9.1.0";
+  version = "9.1.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-DW8fxBBP6U7N0Hgk/enOzUz68L7pCjVl/8MFCy6PKxg=";
+    hash = "sha256-jANSGNdWmc6ERClLR/pExoboyz8gUL2FW3W7kDQDOQo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix b/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
new file mode 100644
index 0000000000000..9f194eb253570
--- /dev/null
+++ b/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, boto3
+, botocore
+, poetry-core
+, snakemake
+, snakemake-interface-storage-plugins
+, snakemake-interface-common
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "snakemake-storage-plugin-s3";
+  version = "0.2.10";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "snakemake";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-k21DRQdSUFkdwNb7MZJmClhIg+pdSc7H6FkDrbf4DT8=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace ">=2.0,<2.2" "*"
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    boto3
+    botocore
+    snakemake-interface-storage-plugins
+    snakemake-interface-common
+    urllib3
+  ];
+
+  nativeCheckInputs = [
+    snakemake
+  ];
+
+  pythonImportsCheck = [ "snakemake_storage_plugin_s3" ];
+
+  meta = with lib; {
+    description = "A Snakemake storage plugin for S3 API storage (AWS S3, MinIO, etc.)";
+    homepage = "https://github.com/snakemake/snakemake-storage-plugin-s3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix b/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix
new file mode 100644
index 0000000000000..82d8c2928c3cf
--- /dev/null
+++ b/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, snakemake
+, snakemake-interface-storage-plugins
+, snakemake-interface-common
+, xrootd
+}:
+
+buildPythonPackage rec {
+  pname = "snakemake-storage-plugin-xrootd";
+  version = "unstable-2023-12-16";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "snakemake";
+    repo = pname;
+    rev = "408f1e956b5427c34b49eeca340492a438e8eccb";
+    hash = "sha256-CcSG//D9kz0Q4LtaSngJpCtY0dbNFFuKMVmBxR1fcMo=";
+  };
+
+  # xrootd<6.0.0,>=5.6.4 not satisfied by version 5.7rc20240303
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'xrootd = "^5.6.4"' ""
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    snakemake-interface-storage-plugins
+    snakemake-interface-common
+    xrootd
+  ];
+
+  nativeCheckInputs = [
+    snakemake
+  ];
+
+  pythonImportsCheck = [ "snakemake_storage_plugin_xrootd" ];
+
+  meta = with lib; {
+    description = "A Snakemake storage plugin for handling input and output via XRootD";
+    homepage = "https://github.com/snakemake/snakemake-storage-plugin-xrootd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 085c21bfb59ba..f7d7743ef6e5b 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -1,70 +1,55 @@
-{ lib
-, asn1crypto
-, buildPythonPackage
-, pythonRelaxDepsHook
-, certifi
-, cffi
-, charset-normalizer
-, fetchPypi
-, filelock
-, idna
-, keyring
-, oscrypto
-, packaging
-, platformdirs
-, pycryptodomex
-, pyjwt
-, pyopenssl
-, pythonOlder
-, pytz
-, requests
-, setuptools
-, sortedcontainers
-, tomlkit
-, typing-extensions
-, wheel
+{
+  lib,
+  asn1crypto,
+  buildPythonPackage,
+  certifi,
+  cffi,
+  charset-normalizer,
+  cython,
+  fetchPypi,
+  filelock,
+  idna,
+  keyring,
+  oscrypto,
+  packaging,
+  pandas,
+  platformdirs,
+  pyarrow,
+  pycryptodomex,
+  pyjwt,
+  pyopenssl,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pytz,
+  requests,
+  setuptools,
+  sortedcontainers,
+  tomlkit,
+  typing-extensions,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "3.7.1";
-  format = "pyproject";
+  version = "3.8.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3GmC9lOGDt7xYUowR6FrywfiJ3Xm4JCAi79PdinEGR0=";
+    hash = "sha256-m8zhoNniEs7s9F7c6gLRjiBalfiMwEcK2kqLrLVCR9U=";
   };
 
-  # snowflake-connector-python requires arrow 10.0.1, which we don't have in
-  # nixpkgs, so we cannot build the C extensions that use it. thus, patch out
-  # cython and pyarrow from the build dependencies
-  #
-  # keep an eye on following issue for improvements to this situation:
-  #
-  #   https://github.com/snowflakedb/snowflake-connector-python/issues/1144
-  #
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace '"cython",' "" \
-      --replace '"pyarrow>=10.0.1,<10.1.0",' ""
-  '';
-
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
+  build-system = [
+    cython
     setuptools
     wheel
   ];
 
-  pythonRelaxDeps = [
-    "pyOpenSSL"
-    "charset-normalizer"
-    "cryptography"
-    "platformdirs"
-  ];
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asn1crypto
     certifi
     cffi
@@ -85,6 +70,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
+    pandas = [
+      pandas
+      pyarrow
+    ];
     secure-local-storage = [ keyring ];
   };
 
@@ -98,9 +87,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    changelog = "https://github.com/snowflakedb/snowflake-connector-python/blob/v${version}/DESCRIPTION.md";
     description = "Snowflake Connector for Python";
     homepage = "https://github.com/snowflakedb/snowflake-connector-python";
+    changelog = "https://github.com/snowflakedb/snowflake-connector-python/blob/v${version}/DESCRIPTION.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index 1ecf340e975e6..0c81e34350989 100644
--- a/pkgs/development/python-modules/sparse/default.nix
+++ b/pkgs/development/python-modules/sparse/default.nix
@@ -6,22 +6,34 @@
 , numpy
 , pytestCheckHook
 , pythonOlder
+, setuptools
+, setuptools-scm
 , scipy
 }:
 
 buildPythonPackage rec {
   pname = "sparse";
   version = "0.15.1";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-lzrcuIqNuOPYBHlTMx4m0/ZKVlf5tGprhZxHZjw+75k=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace pytest.ini \
+      --replace-fail "--cov-report term-missing --cov-report html --cov-report=xml --cov-report=term --cov sparse --cov-config .coveragerc --junitxml=junit/test-results.xml" ""
+  '';
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
     numba
     numpy
     scipy
@@ -36,6 +48,11 @@ buildPythonPackage rec {
     "sparse"
   ];
 
+  pytestFlagsArray = [
+    "-W"
+    "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   meta = with lib; {
     description = "Sparse n-dimensional arrays computations";
     homepage = "https://sparse.pydata.org/";
diff --git a/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix b/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
index 4db4049a378b9..240e51c724180 100644
--- a/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-confluencebuilder";
-  version = "2.4.0";
+  version = "2.5.1";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "sphinxcontrib_confluencebuilder";
     inherit version;
-    hash = "sha256-q3+GwMVWMRu4eWwbdXcbPQzpBhBXcZEMFTpbEO+teLk=";
+    hash = "sha256-PQpkwQ95UVJwDGTAq1xdcSvd07FZpZfA/4jq3ywlMas=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/spsdk/default.nix b/pkgs/development/python-modules/spsdk/default.nix
index 0764e6c6ccd01..b64ef4a3d910f 100644
--- a/pkgs/development/python-modules/spsdk/default.nix
+++ b/pkgs/development/python-modules/spsdk/default.nix
@@ -39,14 +39,14 @@
 
 buildPythonPackage rec {
   pname = "spsdk";
-  version = "2.1.0";
+  version = "2.1.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nxp-mcuxpresso";
     repo = "spsdk";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZXNqger5WBk2AjTszJLmemYDPClUPy+kNtBWSPcTDro=";
+    hash = "sha256-cWz2zML/gb9l2C5VEBti+nX3ZLyGbLFyLZGjk5GfTJw=";
   };
 
   nativeBuildInputs = [
@@ -56,6 +56,9 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [
     "click"
+    "cryptography"
+    "platformdirs"
+    "typing-extensions"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sqliteschema/default.nix b/pkgs/development/python-modules/sqliteschema/default.nix
new file mode 100644
index 0000000000000..cb73b6e5a606b
--- /dev/null
+++ b/pkgs/development/python-modules/sqliteschema/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mbstrdecoder
+, setuptools
+, simplesqlite
+, sqliteschema
+, tabledata
+, typepy
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "sqliteschema";
+  version = "1.4.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "thombashi";
+    repo = "sqliteschema";
+    rev = "v${version}";
+    hash = "sha256-IzHdYBnh6udVsanWTPSsX4p4PG934YCdzs9Ow/NW86E=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    mbstrdecoder
+    tabledata
+    typepy
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    simplesqlite
+    sqliteschema
+  ];
+
+  pythonImportsCheck = [ "sqliteschema" ];
+
+  # Enabling tests would trigger infinite recursion due to circular
+  # dependency between this package and simplesqlite.
+  # Therefore, we enable tests only when building passthru.tests.
+  doCheck = false;
+  passthru.tests.pytest = sqliteschema.overridePythonAttrs (_: {
+    doCheck = true;
+  });
+
+  meta = with lib; {
+    description = "Python library to dump table schema of a SQLite database file";
+    homepage = "https://github.com/thombashi/sqliteschema";
+    license = licenses.mit;
+    maintainers = with maintainers; [ henrirosten ];
+  };
+}
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index 0bb9375ebe44a..9771771c8d0f2 100644
--- a/pkgs/development/python-modules/sqlmap/default.nix
+++ b/pkgs/development/python-modules/sqlmap/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, file
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  file,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.8.3";
-  format = "setuptools";
+  version = "1.8.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-X3xz2ucuxr48q9gS9K19Zd7gYkRCpU+XLWMSrwiQMIo=";
+    hash = "sha256-zTFdGDzvPlNebsepPxXn2++22YANlDu82yprs7eHfac=";
   };
 
   postPatch = ''
@@ -27,19 +29,19 @@ buildPythonPackage rec {
     echo 'LAST_UPDATE_NAGGING_DAYS = float("inf")' >> sqlmap/lib/core/settings.py
   '';
 
+  build-system = [ setuptools ];
+
   # No tests in archive
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sqlmap"
-  ];
+  pythonImportsCheck = [ "sqlmap" ];
 
   meta = with lib; {
     description = "Automatic SQL injection and database takeover tool";
-    mainProgram = "sqlmap";
     homepage = "https://sqlmap.org";
     changelog = "https://github.com/sqlmapproject/sqlmap/releases/tag/${version}";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ bennofs ];
+    mainProgram = "sqlmap";
   };
 }
diff --git a/pkgs/development/python-modules/sse-starlette/default.nix b/pkgs/development/python-modules/sse-starlette/default.nix
index 149a37886ca0b..d2fc7de38bb17 100644
--- a/pkgs/development/python-modules/sse-starlette/default.nix
+++ b/pkgs/development/python-modules/sse-starlette/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, anyio
-, asgi-lifespan
-, buildPythonPackage
-, fastapi
-, fetchFromGitHub
-, httpx
-, pdm-backend
-, psutil
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, starlette
-, uvicorn
+{
+  lib,
+  anyio,
+  asgi-lifespan,
+  buildPythonPackage,
+  fastapi,
+  fetchFromGitHub,
+  httpx,
+  pdm-backend,
+  psutil,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  starlette,
+  uvicorn,
 }:
 
 buildPythonPackage rec {
   pname = "sse-starlette";
-  version = "2.0.0";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,12 +27,10 @@ buildPythonPackage rec {
     owner = "sysid";
     repo = "sse-starlette";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kDcSG/3foP7fMZKYrkKx6FHvT9c9rSzxyv2EHjQ2WSA=";
+    hash = "sha256-gBkEs1jSKIOme2rbLf+pM3jFDgJkxyU92q+GsUsp8Eo=";
   };
 
-  build-system = [
-    pdm-backend
-  ];
+  build-system = [ pdm-backend ];
 
   dependencies = [
     anyio
@@ -45,11 +45,10 @@ buildPythonPackage rec {
     psutil
     pytest-asyncio
     pytestCheckHook
+    requests
   ];
 
-  pythonImportsCheck = [
-    "sse_starlette"
-  ];
+  pythonImportsCheck = [ "sse_starlette" ];
 
   disabledTests = [
     # AssertionError
diff --git a/pkgs/development/python-modules/std-uritemplate/default.nix b/pkgs/development/python-modules/std-uritemplate/default.nix
index bc265fea72a3c..0c26a135d0ef1 100644
--- a/pkgs/development/python-modules/std-uritemplate/default.nix
+++ b/pkgs/development/python-modules/std-uritemplate/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "std-uritemplate";
-  version = "0.0.55";
+  version = "0.0.56";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -15,19 +16,15 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "std_uritemplate";
     inherit version;
-    hash = "sha256-kHP1anfkTQWD+2ZFw35KZAo08iolXQDjeTzT8w2limg=";
+    hash = "sha256-85dldY+2WB+Hn6fBBHoKJ7fIe7fDyddYxAjDD83lHGc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   # Module doesn't have unittest, only functional tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "stduritemplate"
-  ];
+  pythonImportsCheck = [ "stduritemplate" ];
 
   meta = with lib; {
     description = "Std-uritemplate implementation for Python";
diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix
index 4ce529ef5c06c..7dc7395749b39 100644
--- a/pkgs/development/python-modules/streamlit/default.nix
+++ b/pkgs/development/python-modules/streamlit/default.nix
@@ -33,14 +33,14 @@
 
 buildPythonPackage rec {
   pname = "streamlit";
-  version = "1.32.2";
+  version = "1.33.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Eli5y8P/lXv30Jsb/IXO3DCPEGWzB0hUUpWpr41Vd6s=";
+    hash = "sha256-qNqP9G9blIxW0tx6ynphz42ZX08hdEz4IliudeYwBLo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/survey/default.nix b/pkgs/development/python-modules/survey/default.nix
index 10373a9ecfa31..9564195c94779 100644
--- a/pkgs/development/python-modules/survey/default.nix
+++ b/pkgs/development/python-modules/survey/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "survey";
-  version = "5.2.4";
+  version = "5.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Hr7sYn6V2iw4r3P8mXhYVyUD8JpU2zGq4nG6hHM7gxU=";
+    hash = "sha256-jMTtsrEdt3NPy8NfeNPX4YNwjH2gaQfO89Iag/MBS+A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/systembridgemodels/default.nix b/pkgs/development/python-modules/systembridgemodels/default.nix
index ee7945ee20b93..82d581ff3e1e4 100644
--- a/pkgs/development/python-modules/systembridgemodels/default.nix
+++ b/pkgs/development/python-modules/systembridgemodels/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "systembridgemodels";
-  version = "4.0.3";
+  version = "4.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -18,12 +18,12 @@ buildPythonPackage rec {
     owner = "timmo001";
     repo = "system-bridge-models";
     rev = "refs/tags/${version}";
-    hash = "sha256-5rbj58E8iDu2Rjf0k9Y1UoF3hbN7ntkx6dm20HYpw6I=";
+    hash = "sha256-iFJ95ouhfbaC0D2Gkc1KO+JueYTFTOj1unnYSDyPAe8=";
   };
 
   postPatch = ''
     substituteInPlace systembridgemodels/_version.py \
-      --replace-fail ", dev=0" ""
+      --replace-fail ", dev=1" ""
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tcxreader/default.nix b/pkgs/development/python-modules/tcxreader/default.nix
index 7509b02e94e27..c9a965ae8145f 100644
--- a/pkgs/development/python-modules/tcxreader/default.nix
+++ b/pkgs/development/python-modules/tcxreader/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "tcxreader";
-  version = "0.4.9";
+  version = "0.4.10";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "alenrajsp";
     repo = "tcxreader";
     rev = "refs/tags/v${version}";
-    hash = "sha256-N/YsH1P8F9bSuzTgrYNU6xEO/yldXNIXMN0pQgIesfc=";
+    hash = "sha256-qTAqRzrHFj0nEujlkBohLaprIvvkSYhcDoRfqWIJMjo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index 610c20644aaa1..e90cae8f248a7 100644
--- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1122";
+  version = "3.0.1128";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -18,24 +19,16 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-rJpgtyBVJn6jURSSEVlT4BadDTr9npeISgKtQdQdgnM=";
+    hash = "sha256-SYR9vkeaVBPwke7FzjcDGSvsZE0vznNf/7zCKizaW+4=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    requests
-  ];
+  dependencies = [ requests ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tencentcloud"
-  ];
+  pythonImportsCheck = [ "tencentcloud" ];
 
   pytestFlagsArray = [
     # Other tests require credentials
diff --git a/pkgs/development/python-modules/testcontainers/default.nix b/pkgs/development/python-modules/testcontainers/default.nix
index 9302983c201a7..8b7ceb416b4b3 100644
--- a/pkgs/development/python-modules/testcontainers/default.nix
+++ b/pkgs/development/python-modules/testcontainers/default.nix
@@ -6,11 +6,12 @@
 , deprecation
 , docker
 , wrapt
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "testcontainers";
-  version = "4.3.1";
+  version = "4.3.3";
   disabled = pythonOlder "3.9";
 
   pyproject = true;
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "testcontainers";
     repo = "testcontainers-python";
     rev = "refs/tags/testcontainers-v${version}";
-    hash = "sha256-pS5YEcHDHpTIWLD4vMPWL4r86DOI+47jN7cTwhDeXHE=";
+    hash = "sha256-qb7mOtL+YJI24DOBgrqxc817k4fD2kTOtUNF2X0qEIc=";
   };
 
   postPatch = ''
@@ -36,6 +37,10 @@ buildPythonPackage rec {
     wrapt
   ];
 
+  dependencies = [
+    typing-extensions
+  ];
+
   # Tests require various container and database services running
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/testrail-api/default.nix b/pkgs/development/python-modules/testrail-api/default.nix
index a5b35de14213a..0e9daa6cdde99 100644
--- a/pkgs/development/python-modules/testrail-api/default.nix
+++ b/pkgs/development/python-modules/testrail-api/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   version = "1.13.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "tolstislon";
@@ -22,6 +22,11 @@ buildPythonPackage rec {
     hash = "sha256-NGdNpNJ9ejwneSacNmifGJ8TMUuBqMu9tHTyLxTB5Uk=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "setuptools_scm==7.1.0" "setuptools_scm"
+  '';
+
   nativeBuildInputs = [
     setuptools-scm
   ];
diff --git a/pkgs/development/python-modules/tololib/default.nix b/pkgs/development/python-modules/tololib/default.nix
index f0204e08f8d8c..ed530f95d1915 100644
--- a/pkgs/development/python-modules/tololib/default.nix
+++ b/pkgs/development/python-modules/tololib/default.nix
@@ -9,16 +9,16 @@
 
 buildPythonPackage rec {
   pname = "tololib";
-  version = "0.1.0b4";
-  format = "setuptools";
+  version = "1.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitLab {
     owner = "MatthiasLohr";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-2OQaJR70bx8qWs1IPErF+B3X1iRvHW74axTqtdvum3U=";
+    repo = "tololib";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TxWKV2nrnCxZmj6+wBDMSdJRvKV+MsPFbOyIlUJYJ3Q=";
   };
 
   nativeBuildInputs = [
@@ -29,6 +29,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  preCheck = ''
+    export PATH="$PATH:$out/bin";
+  '';
+
   disabledTests = [
     # Test requires network access
     "test_discovery"
diff --git a/pkgs/development/python-modules/torch/bin.nix b/pkgs/development/python-modules/torch/bin.nix
index bc0e36ba553c2..d92767b87d4b2 100644
--- a/pkgs/development/python-modules/torch/bin.nix
+++ b/pkgs/development/python-modules/torch/bin.nix
@@ -25,7 +25,7 @@ let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "2.2.1";
+  version = "2.2.2";
 in buildPythonPackage {
   inherit version;
 
diff --git a/pkgs/development/python-modules/torch/binary-hashes.nix b/pkgs/development/python-modules/torch/binary-hashes.nix
index 0fd4a5b36e4d8..8cd3bccc121cd 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.2.1" = {
+  "2.2.2" = {
     x86_64-linux-38 = {
-      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=";
+      name = "torch-2.2.2-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.2.2%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-wXi+srsB93NgF3e8SBx2Ub5bHxic8YDwwKzqwHiaqaU=";
     };
     x86_64-linux-39 = {
-      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=";
+      name = "torch-2.2.2-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.2.2%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-EU6TlYZ+6GAWZWLYzB8oCSJfnil4PdXnIXXZqaeoUFw=";
     };
     x86_64-linux-310 = {
-      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=";
+      name = "torch-2.2.2-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.2.2%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-yt5P1sjOfYJtvPq9ZfHVOw7goFjbjBgJ1lv9YFG1VTA=";
     };
     x86_64-linux-311 = {
-      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=";
+      name = "torch-2.2.2-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.2.2%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-TJTk0aItcKu9/3Ft7Jm6Xv+UtDQP+nO0+2KflA27inU=";
     };
     x86_64-darwin-38 = {
-      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=";
+      name = "torch-2.2.2-cp38-none-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp38-none-macosx_10_9_x86_64.whl";
+      hash = "sha256-gVF29iyPN8z7shCBwHaaiLG6pptxaRGapCtl7l8QTi0=";
     };
     x86_64-darwin-39 = {
-      name = "torch-2.2.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=";
+      name = "torch-2.2.2-cp39-none-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp39-none-macosx_10_9_x86_64.whl";
+      hash = "sha256-8TdigY3CgP7KfjD2CZWhe6jR0asz/vttB/0sj/FXHqo=";
     };
     x86_64-darwin-310 = {
-      name = "torch-2.2.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=";
+      name = "torch-2.2.2-cp310-none-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp310-none-macosx_10_9_x86_64.whl";
+      hash = "sha256-5nfE102wz8KxCSPeG95XXZgculRQXdwIKwUI2WQRmFA=";
     };
     x86_64-darwin-311 = {
-      name = "torch-2.2.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=";
+      name = "torch-2.2.2-cp311-none-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp311-none-macosx_10_9_x86_64.whl";
+      hash = "sha256-QwDLu00EKMUbXBlBkBaQGNW4GP2fb6/Ci76P2E3tF0A=";
     };
     aarch64-darwin-38 = {
-      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=";
+      name = "torch-2.2.2-cp38-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp38-none-macosx_11_0_arm64.whl";
+      hash = "sha256-7RTSpDZEIEkDg9JveQCj99XFDDLlzf3d3/+Dd22eD9Q=";
     };
     aarch64-darwin-39 = {
-      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=";
+      name = "torch-2.2.2-cp39-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp39-none-macosx_11_0_arm64.whl";
+      hash = "sha256-/q2//ddjTP40Xqh9fuQDGzAPnHZFIFkOA0idZYtpMds=";
     };
     aarch64-darwin-310 = {
-      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=";
+      name = "torch-2.2.2-cp310-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp310-none-macosx_11_0_arm64.whl";
+      hash = "sha256-tSDRTS8oEK1dp1i+oQyveXjvNkNWW8APkN6JLgDXeSU=";
     };
     aarch64-darwin-311 = {
-      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=";
+      name = "torch-2.2.2-cp311-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp311-none-macosx_11_0_arm64.whl";
+      hash = "sha256-gipYlnXLqKzwRX1qTltspEGtO0w6RKHLyPizGueWRF4=";
     };
     aarch64-linux-38 = {
-      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=";
+      name = "torch-2.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-mJTc3W71tbYDzYzqPjcR+eJ3CC/3sPFLFSb90ay4JSE=";
     };
     aarch64-linux-39 = {
-      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=";
+      name = "torch-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-1dhev9E/fNA+UGMlP4R57RpXBSZBZtXdH8abS5YjGyA=";
     };
     aarch64-linux-310 = {
-      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=";
+      name = "torch-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-OiwHUhgIHvnHv4xVxwbyNtrrt1PaQd5JispxYyVzgL0=";
     };
     aarch64-linux-311 = {
-      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=";
+      name = "torch-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-WUgt9dxA2uEF5z9I3Sk/TMxndkCCLCzjQnOjh1SZA64=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torch/default.nix b/pkgs/development/python-modules/torch/default.nix
index 620b8a3581e4f..3bd019375046c 100644
--- a/pkgs/development/python-modules/torch/default.nix
+++ b/pkgs/development/python-modules/torch/default.nix
@@ -130,7 +130,7 @@ let
 in buildPythonPackage rec {
   pname = "torch";
   # Don't forget to update torch-bin to the same version.
-  version = "2.2.1";
+  version = "2.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8.0";
@@ -148,7 +148,7 @@ in buildPythonPackage rec {
     repo = "pytorch";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-6z8G5nMbGHbpA+xfmOR726h9E4N9NoEtaFgcYE0DuUE=";
+    hash = "sha256-la9wL9pOlgrSfq5V8aRKXt3hjW+Er/6484m0oUujlzk=";
   };
 
   patches = lib.optionals cudaSupport [
diff --git a/pkgs/development/python-modules/torchaudio/bin.nix b/pkgs/development/python-modules/torchaudio/bin.nix
index 863fdc920a485..dc69195b693a3 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.2.1";
+  version = "2.2.2";
   format = "wheel";
 
   src =
diff --git a/pkgs/development/python-modules/torchaudio/binary-hashes.nix b/pkgs/development/python-modules/torchaudio/binary-hashes.nix
index eda82094c5111..a15dffc4856a9 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.2.1" = {
+  "2.2.2" = {
     x86_64-linux-38 = {
-      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=";
+      name = "torchaudio-2.2.2-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.2%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-KPwkn2+sVuS9GbZdk7f6lSJ956D1WLY2YS7k3qE3tog=";
     };
     x86_64-linux-39 = {
-      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=";
+      name = "torchaudio-2.2.2-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.2%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-YzzBeuAiMH0HPyZhvK/z9Q2bPW99MukXMFRCAybiDRs=";
     };
     x86_64-linux-310 = {
-      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=";
+      name = "torchaudio-2.2.2-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.2%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-/eGFVNhP0AR1iPC87QPXcPZVPxeFGjtEE3kWShPJmwc=";
     };
     x86_64-linux-311 = {
-      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=";
+      name = "torchaudio-2.2.2-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.2%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-DgdNBcIlizAU3aAu7wB60Xq0TP0B2XgMmpFOXZcqwAs=";
     };
     x86_64-darwin-38 = {
-      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=";
+      name = "torchaudio-2.2.2-cp38-cp38-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp38-cp38-macosx_10_13_x86_64.whl";
+      hash = "sha256-jOTfBlqUmRHStngqpME2h++t6iP/x8em8V9+euXIlSQ=";
     };
     x86_64-darwin-39 = {
-      name = "torchaudio-2.2.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=";
+      name = "torchaudio-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp39-cp39-macosx_10_13_x86_64.whl";
+      hash = "sha256-23CxOocaSUh72QQr8EsS90rtd7GofS++to0J2bZLxSg=";
     };
     x86_64-darwin-310 = {
-      name = "torchaudio-2.2.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=";
+      name = "torchaudio-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp310-cp310-macosx_10_13_x86_64.whl";
+      hash = "sha256-sdWCAdEI6F2z41uEMZ8ziE9h8yfDjq2GkTIYyMGsw90=";
     };
     x86_64-darwin-311 = {
-      name = "torchaudio-2.2.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=";
+      name = "torchaudio-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp311-cp311-macosx_10_13_x86_64.whl";
+      hash = "sha256-8agaUYo+hsAEEl64kfxDPOj7I0MpW11hLQ83sk4THv0=";
     };
     aarch64-darwin-38 = {
-      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=";
+      name = "torchaudio-2.2.2-cp38-cp38-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp38-cp38-macosx_11_0_arm64.whl";
+      hash = "sha256-s7ir4msGfpxKbj26FWuR16hSR+iN2nC3xDhZ9VuXjdw=";
     };
     aarch64-darwin-39 = {
-      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=";
+      name = "torchaudio-2.2.2-cp39-cp39-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp39-cp39-macosx_11_0_arm64.whl";
+      hash = "sha256-S3ioShib89pLlmN1zr3sxYSk3F9g4L3nIdc0Ae1crUU=";
     };
     aarch64-darwin-310 = {
-      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=";
+      name = "torchaudio-2.2.2-cp310-cp310-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp310-cp310-macosx_11_0_arm64.whl";
+      hash = "sha256-pSDhTqC6idncJ5IutGCfnqxcAcJ5gw4PIWucngF9Q4s=";
     };
     aarch64-darwin-311 = {
-      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=";
+      name = "torchaudio-2.2.2-cp311-cp311-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp311-cp311-macosx_11_0_arm64.whl";
+      hash = "sha256-AUgvyFEX+F7kT4qo6cEbHAIjJhc+B0h4ntQrIZECk38=";
     };
     aarch64-linux-38 = {
-      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=";
+      name = "torchaudio-2.2.2-cp38-cp38-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp38-cp38-linux_aarch64.whl";
+      hash = "sha256-T3VqbmZ92IQb8hoH6tPv7ap6J9VYUnecJm9vKhBkyZQ=";
     };
     aarch64-linux-39 = {
-      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=";
+      name = "torchaudio-2.2.2-cp39-cp39-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp39-cp39-linux_aarch64.whl";
+      hash = "sha256-cj9OV7XQwSA1fKYM1VtObPrIRbwOzMtLQXpEqk68Ums=";
     };
     aarch64-linux-310 = {
-      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=";
+      name = "torchaudio-2.2.2-cp310-cp310-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp310-cp310-linux_aarch64.whl";
+      hash = "sha256-sPOOfTVIkU14qvwn/wD3cBsaUL/N3FiWX1RfySzNSmY=";
     };
     aarch64-linux-311 = {
-      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=";
+      name = "torchaudio-2.2.2-cp311-cp311-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp311-cp311-linux_aarch64.whl";
+      hash = "sha256-CgOki21V0X1I9Bmn8dDUAY1IoEx2WFwWqbXmkoH5L5Q=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torchaudio/default.nix b/pkgs/development/python-modules/torchaudio/default.nix
index 73aec87cca611..3ca33cc36b656 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.2.1";
+  version = "2.2.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = "audio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ejgxWVIkusGi7zwg3nyAHHdjEPrFaS1TN7nN+PpSgOE=";
+    hash = "sha256-rW4xLUFTpGpUeMnTBdrI/2OjgZX1ihK0EfcVK6snmpk=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/torchvision/bin.nix b/pkgs/development/python-modules/torchvision/bin.nix
index e1bc7295cb2d4..70026bb363df8 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.17.1";
+  version = "0.17.2";
 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 d7cb16d01b61f..3a5654b18ca7e 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.17.1" = {
+  "0.17.2" = {
     x86_64-linux-38 = {
-      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=";
+      name = "torchvision-0.17.2-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.2%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-3450y7tN4KYPEc18KNggEWAnzTlJiT+XxVtvEjJr168=";
     };
     x86_64-linux-39 = {
-      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=";
+      name = "torchvision-0.17.2-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.2%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-839ZLjEovz2ZloraWhKPEY+a7R2rYJ4nKscjEUb8aEM=";
     };
     x86_64-linux-310 = {
-      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=";
+      name = "torchvision-0.17.2-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.2%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-wPMlY1+INPpV5pq2EHX7K7y7RTlamFu6HbN4sVYnEEs=";
     };
     x86_64-linux-311 = {
-      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=";
+      name = "torchvision-0.17.2-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.2%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-BZ+GocjSsnayZshKj1qSzIQm1DwqLCSNxzwUCrOoIvM=";
     };
     x86_64-darwin-38 = {
-      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=";
+      name = "torchvision-0.17.2-cp38-cp38-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp38-cp38-macosx_10_13_x86_64.whl";
+      hash = "sha256-uDqsjXj0iYEUbVghaNdbbJR8+wp2k/duIZ8ZJvbllaM=";
     };
     x86_64-darwin-39 = {
-      name = "torchvision-0.17.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=";
+      name = "torchvision-0.17.2-cp39-cp39-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp39-cp39-macosx_10_13_x86_64.whl";
+      hash = "sha256-SGi7+lV1jIEH5poOfdXne4kFYDXNOLdnrVuYzbccDw0=";
     };
     x86_64-darwin-310 = {
-      name = "torchvision-0.17.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=";
+      name = "torchvision-0.17.2-cp310-cp310-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp310-cp310-macosx_10_13_x86_64.whl";
+      hash = "sha256-HykQ/jwhrWh1snINRvrYNbLkszbpVT0xyjZNJMkLHU8=";
     };
     x86_64-darwin-311 = {
-      name = "torchvision-0.17.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=";
+      name = "torchvision-0.17.2-cp311-cp311-macosx_10_9_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp311-cp311-macosx_10_13_x86_64.whl";
+      hash = "sha256-m4PlXufQoXBPUrnArIc4jnptHZimveews1+atU172lQ=";
     };
     aarch64-darwin-38 = {
-      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=";
+      name = "torchvision-0.17.2-cp38-cp38-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp38-cp38-macosx_11_0_arm64.whl";
+      hash = "sha256-Hs5AVX4SLXmXWGCgBap+Kp4ubDUKA+eKAOwUUAgzEv0=";
     };
     aarch64-darwin-39 = {
-      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=";
+      name = "torchvision-0.17.2-cp39-cp39-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp39-cp39-macosx_11_0_arm64.whl";
+      hash = "sha256-79bQ3QZo4V0Bos/63HQGhDOzLLz1aS4MSqFfxcslDOc=";
     };
     aarch64-darwin-310 = {
-      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=";
+      name = "torchvision-0.17.2-cp310-cp310-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp310-cp310-macosx_11_0_arm64.whl";
+      hash = "sha256-7MHFA/qKVPurd34Gp8IoAyuKt47+vzWyi8jyL1RPUfE=";
     };
     aarch64-darwin-311 = {
-      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=";
+      name = "torchvision-0.17.2-cp311-cp311-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp311-cp311-macosx_11_0_arm64.whl";
+      hash = "sha256-4DEAShvEMsmAp71kL2wYmj78MW5CP8MLVWmDcWak4o0=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index a8e90f7211c42..496a8c08710b0 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.17.1";
+  version = "0.17.2";
 in
 buildPythonPackage {
   inherit pname version;
@@ -26,7 +26,7 @@ buildPythonPackage {
     owner = "pytorch";
     repo = "vision";
     rev = "refs/tags/v${version}";
-    hash = "sha256-K2irwwf6qgyfZqJH1NUasDmBSA4mH2Rclx7A7zP4kiQ=";
+    hash = "sha256-Y7TkdbdrdiXQO2pBkUePCLw1EYQjsAqkV2OTMzxbU78=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/trafilatura/default.nix b/pkgs/development/python-modules/trafilatura/default.nix
index cdfbf4b046002..35212c3434438 100644
--- a/pkgs/development/python-modules/trafilatura/default.nix
+++ b/pkgs/development/python-modules/trafilatura/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "trafilatura";
-  version = "1.8.0";
+  version = "1.8.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6lSHXtJPPq+vGZuKD4m1g1x880NzPDLvvEr50wV6j3I=";
+    hash = "sha256-a4eN/b1cXftV0Pgwfyt9wVrDRYBU90hh/5ihcvXjhyA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index 0cbed38ff7352..3ac3baf1525a9 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.2.4";
+  version = "4.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ausgFjhYe0b/hd+szti4GpMil3NF6/yuXSajy/1JZXY=";
+    hash = "sha256-kUXi26NhFGS3liGaGHfm0HTRWXlnaIa80lxgLQ/0FyM=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index d9cc9ae10312e..5e89da7f35049 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -25,14 +25,14 @@
 
 buildPythonPackage rec {
   pname = "trytond";
-  version = "7.0.8";
+  version = "7.0.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZpK3+DZi2U4TK7dHwIJnw5u/lFrvtBD+MhRLkdO8DLI=";
+    hash = "sha256-DlPuIaGTpJu4FyLOTNAy2CAEJHoe7+8e34wacz8C7d8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index e39dda5f4cb94..440a5db457ab6 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, aiohttp
-, aiohttp-retry
-, aiounittest
-, buildPythonPackage
-, cryptography
-, django
-, fetchFromGitHub
-, mock
-, multidict
-, pyngrok
-, pyjwt
-, pytestCheckHook
-, pythonOlder
-, pytz
-, requests
-, setuptools
+{
+  lib,
+  aiohttp,
+  aiohttp-retry,
+  aiounittest,
+  buildPythonPackage,
+  cryptography,
+  django,
+  fetchFromGitHub,
+  mock,
+  multidict,
+  pyngrok,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "9.0.3";
+  version = "9.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,12 +29,10 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-MyK5ICGNR3BEJtVhFM3A6azceU5HjSDep4tpuQ8D4Rs=";
+    hash = "sha256-3014wT7DXRlWvRxfqx/wIR9v9uX9QROQICDHXcgtOHs=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -68,9 +67,7 @@ buildPythonPackage rec {
     "tests/cluster/test_cluster.py"
   ];
 
-  pythonImportsCheck = [
-    "twilio"
-  ];
+  pythonImportsCheck = [ "twilio" ];
 
   meta = with lib; {
     description = "Twilio API client and TwiML generator";
diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix
index 84648b20c1e5a..31fb7a3ff43d2 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "typeguard";
-  version = "4.1.5";
+  version = "4.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6goRO7wRG8/8kHieuyFWJcljQR9wlqfpBi1ORjDBVf0=";
+    hash = "sha256-xVahuVlIIwUQBwylP6A0H7CWRhG9BdWY2H+1IRXWX+4=";
   };
 
   outputs = [
diff --git a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
index bb0bf9a5b313f..2e279af088707 100644
--- a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
@@ -22,11 +22,11 @@ let
         inherit pname version hash;
       };
 
-      nativeBuildInputs = [
+      build-system = [
         setuptools
       ];
 
-      propagatedBuildInputs = [
+      dependencies = [
         aiobotocore
         botocore
       ] ++ lib.optionals (pythonOlder "3.12") [
@@ -57,701 +57,701 @@ rec {
 
   types-aiobotocore-acm-pca = buildTypesAiobotocorePackage "acm-pca" "2.11.2" "sha256-g9a2ad5hZonlKWGnLQchfT5CAgwqsvseeQBQemCSCQw=";
 
-  types-aiobotocore-alexaforbusiness = buildTypesAiobotocorePackage "alexaforbusiness" "2.12.1" "sha256-3x/hagYKcLpkQcl2xs5E1BK86pBexCPEI9jXoapaupk=";
+  types-aiobotocore-alexaforbusiness = buildTypesAiobotocorePackage "alexaforbusiness" "2.12.2" "sha256-ETgvEva3QPzS0jDxGwL8H+4skV+1/vwzLCyUT01gkLE=";
 
-  types-aiobotocore-amp = buildTypesAiobotocorePackage "amp" "2.12.1" "sha256-nqfw8mMje6HZo6ZiOin1Ki3i/ldnxwcestf+7AYvfRo=";
+  types-aiobotocore-amp = buildTypesAiobotocorePackage "amp" "2.12.2" "sha256-1wUrSK52HpVAKdeWkGos2HwQaR2MaMae4OOVKicpp00=";
 
-  types-aiobotocore-amplify = buildTypesAiobotocorePackage "amplify" "2.12.1" "sha256-mI4T75e4J0jUy3zyhRQTf2BK1G0+dvAIteGUOeoTphg=";
+  types-aiobotocore-amplify = buildTypesAiobotocorePackage "amplify" "2.12.2" "sha256-b1J1tIlDcPuHkeZ978d3C2bLf6BSpq724BgkPaOAeXA=";
 
-  types-aiobotocore-amplifybackend = buildTypesAiobotocorePackage "amplifybackend" "2.12.1" "sha256-flDA+ENgxiTyUQYlv7B4Rj8avu+7/8HcDCm5gy1boRQ=";
+  types-aiobotocore-amplifybackend = buildTypesAiobotocorePackage "amplifybackend" "2.12.2" "sha256-4y3BHgzuyRQEefL4DpNyNXocvdD7KBcCbx4LfflIHY0=";
 
-  types-aiobotocore-amplifyuibuilder = buildTypesAiobotocorePackage "amplifyuibuilder" "2.12.1" "sha256-BqRPND+LfrMfs7VffO1GB9qk5WQgqPV+jCpwMp2351k=";
+  types-aiobotocore-amplifyuibuilder = buildTypesAiobotocorePackage "amplifyuibuilder" "2.12.2" "sha256-RxSPzqzifUOkDYq9K8XCG2kVSB/wU14BeoTtFTPWuSk=";
 
-  types-aiobotocore-apigateway = buildTypesAiobotocorePackage "apigateway" "2.12.1" "sha256-jYW4DedcNBTVplVdOfj6JV8zvY00b6xp8kB22ug5ejU=";
+  types-aiobotocore-apigateway = buildTypesAiobotocorePackage "apigateway" "2.12.2" "sha256-zTwooYIzXgPEIPG7gLoj2utBKGdqISuk1t7gOeBv3oQ=";
 
-  types-aiobotocore-apigatewaymanagementapi = buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.12.1" "sha256-y/vhZTSQVANxxNWkbcupu3JjhA1CYwcoY9FjDZMarEk=";
+  types-aiobotocore-apigatewaymanagementapi = buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.12.2" "sha256-i2bFFhuWrRiL1pvEn604JMpLyyYXDQp5hUuUIXYbQeg=";
 
-  types-aiobotocore-apigatewayv2 = buildTypesAiobotocorePackage "apigatewayv2" "2.12.1" "sha256-ZPqN6GmWiB9WOE5iiO86SFHoIF8kj0vKRbWvUupZEbQ=";
+  types-aiobotocore-apigatewayv2 = buildTypesAiobotocorePackage "apigatewayv2" "2.12.2" "sha256-R8Kz/5CJBQ+O3uq6jNUr2Oz0LzoaJZXRw79XeL/M4Es=";
 
-  types-aiobotocore-appconfig = buildTypesAiobotocorePackage "appconfig" "2.12.1" "sha256-icbJT3C4cHYWVDYDeQWmnFTLaxb1YgOwIOWHasrSEU4=";
+  types-aiobotocore-appconfig = buildTypesAiobotocorePackage "appconfig" "2.12.2" "sha256-Kae/vRF5DznNRmBOlVE6P9oDxJk+p6e/vWn+5rNdvGM=";
 
-  types-aiobotocore-appconfigdata = buildTypesAiobotocorePackage "appconfigdata" "2.12.1" "sha256-Uc+eRBHVAfztcsXcGbwjJi4JRM6kQtXkIqhuLGhjwL0=";
+  types-aiobotocore-appconfigdata = buildTypesAiobotocorePackage "appconfigdata" "2.12.2" "sha256-uQ8PZVutdFpx15FFgFvT85XRXNsk8vQFIIBuh7e96Kw=";
 
-  types-aiobotocore-appfabric = buildTypesAiobotocorePackage "appfabric" "2.12.1" "sha256-AlrHEE9y9q4D5q5M6YiWLTHdbsRBf5i+ifIGcuS8F38=";
+  types-aiobotocore-appfabric = buildTypesAiobotocorePackage "appfabric" "2.12.2" "sha256-oy8/kIKXpuAzQGDr1EGDxTsj32IfjwQe/pGW2XtRQGA=";
 
-  types-aiobotocore-appflow = buildTypesAiobotocorePackage "appflow" "2.12.1" "sha256-Jg2v0ygeP6UIvNrnyuilzbeCpKSs8L6yGTlh6aAMXko=";
+  types-aiobotocore-appflow = buildTypesAiobotocorePackage "appflow" "2.12.2" "sha256-hZVdVOMtTi3uhvZSRw+72CDexb6ZjmhSOM96EO+SPpk=";
 
-  types-aiobotocore-appintegrations = buildTypesAiobotocorePackage "appintegrations" "2.12.1" "sha256-x6EuJVZJl/mw7wXfJP5djkVKsZ9rxSlAMynlmIeYf7c=";
+  types-aiobotocore-appintegrations = buildTypesAiobotocorePackage "appintegrations" "2.12.2" "sha256-jABV4S+JUPWlApzb00SXx759wwm9aVQg3H8t0HJGII4=";
 
-  types-aiobotocore-application-autoscaling = buildTypesAiobotocorePackage "application-autoscaling" "2.12.1" "sha256-ZLgLJAGtiMUhWWXz2GxwOaxn9CzRh2lWTvhvOrzUDq4=";
+  types-aiobotocore-application-autoscaling = buildTypesAiobotocorePackage "application-autoscaling" "2.12.2" "sha256-bF2+A9EJi8f9uNGe73oCaOSzakuU2QX9XxpAsAHEXLg=";
 
-  types-aiobotocore-application-insights = buildTypesAiobotocorePackage "application-insights" "2.12.1" "sha256-p96BagoCjYHXqnCQqVMLlwNT6hlkIOhLFmXcXQKZsIM=";
+  types-aiobotocore-application-insights = buildTypesAiobotocorePackage "application-insights" "2.12.2" "sha256-3yWO7sXrNr6pkj5wZ7kLK5wwY9WKFILFVmuVPrqCjL4=";
 
-  types-aiobotocore-applicationcostprofiler = buildTypesAiobotocorePackage "applicationcostprofiler" "2.12.1" "sha256-bDuo8+w6NbWh7vFV488kuS/by+Bb8m3KvKqFtQRJbVY=";
+  types-aiobotocore-applicationcostprofiler = buildTypesAiobotocorePackage "applicationcostprofiler" "2.12.2" "sha256-XAkJJTPkXbOsJrdBnCHcWJJgO2k58zKvBXFprLpLcj8=";
 
-  types-aiobotocore-appmesh = buildTypesAiobotocorePackage "appmesh" "2.12.1" "sha256-IXg7ZyW6rnpb2XycRLnMcihim4pYIC0iiQlQf07mesY=";
+  types-aiobotocore-appmesh = buildTypesAiobotocorePackage "appmesh" "2.12.2" "sha256-R6BX6AYHflevTgiWD34F0k123kvFaXf/fzzjTa41EuU=";
 
-  types-aiobotocore-apprunner = buildTypesAiobotocorePackage "apprunner" "2.12.1" "sha256-bSEzv5bkO6L0VGrdAmsSeH62wjQWnJu34lGSsa5U/J0=";
+  types-aiobotocore-apprunner = buildTypesAiobotocorePackage "apprunner" "2.12.2" "sha256-K0J1y4HYpWRxeHQE5QPxncrXbTxsS8VaQFOA+6C7vJI=";
 
-  types-aiobotocore-appstream = buildTypesAiobotocorePackage "appstream" "2.12.1" "sha256-pMnJ6CcqhhBGpPG4sPsJUqcCohFZPHQ4nZbM82WhFQg=";
+  types-aiobotocore-appstream = buildTypesAiobotocorePackage "appstream" "2.12.2" "sha256-cTtqtK9K/HUFbuo7ZZJWOTB2pARECra2rcorHnyER18=";
 
-  types-aiobotocore-appsync = buildTypesAiobotocorePackage "appsync" "2.12.1" "sha256-8IyLcQLUg/t/WodMhJkrUnTYOVR5PmkjDtILnzYEqKM=";
+  types-aiobotocore-appsync = buildTypesAiobotocorePackage "appsync" "2.12.2" "sha256-1JlMGgf8JXrTSXfKpKUx2L2lmDofdJ90VywCjWaiBlk=";
 
-  types-aiobotocore-arc-zonal-shift = buildTypesAiobotocorePackage "arc-zonal-shift" "2.12.1" "sha256-8HP5cQS7p7QyncnccISZHOPIYwWEyMUIz0OEiwoZ0OQ=";
+  types-aiobotocore-arc-zonal-shift = buildTypesAiobotocorePackage "arc-zonal-shift" "2.12.2" "sha256-V6KpOu/nmoniDstaa8NFB+04cAyRv8rRlJAbCb+Bwd0=";
 
-  types-aiobotocore-athena = buildTypesAiobotocorePackage "athena" "2.12.1" "sha256-9wlWv7qFWj/bnLIEH2wXGHG0IYvPdEIolDyh9xJsY6I=";
+  types-aiobotocore-athena = buildTypesAiobotocorePackage "athena" "2.12.2" "sha256-9/W5aC286MsgPQPQoPdzAi1ia0834rSw7vumRKVrpU0=";
 
-  types-aiobotocore-auditmanager = buildTypesAiobotocorePackage "auditmanager" "2.12.1" "sha256-/IYKAlDmq/+5jsMcnwmhVV+OMvWP4IcMdrtZ3ocy0ls=";
+  types-aiobotocore-auditmanager = buildTypesAiobotocorePackage "auditmanager" "2.12.2" "sha256-PjU0CQJSVgovPKk6iCz6OZCfXTfcMg6gVge+D2C0R5A=";
 
-  types-aiobotocore-autoscaling = buildTypesAiobotocorePackage "autoscaling" "2.12.1" "sha256-pJZDPqRXSKlDYd57vfJdgbaszKhyvONsgRhHxT7PO3s=";
+  types-aiobotocore-autoscaling = buildTypesAiobotocorePackage "autoscaling" "2.12.2" "sha256-VP2Hoh3HUYqNY00sEKEoqAx4QOVh9REBPpVlxxvuxs0=";
 
-  types-aiobotocore-autoscaling-plans = buildTypesAiobotocorePackage "autoscaling-plans" "2.12.1" "sha256-VqO8b8JQX1OzvgHnZZCC6l3a73Ren2b2GphClJBZc/c=";
+  types-aiobotocore-autoscaling-plans = buildTypesAiobotocorePackage "autoscaling-plans" "2.12.2" "sha256-61htbEFwvUYZymxPs4u+DCAuemVIwhplmsyRy79EPFk=";
 
-  types-aiobotocore-backup = buildTypesAiobotocorePackage "backup" "2.12.1" "sha256-UMP61m/gcHfc5JUtAoEAIfxdbjntqL7HubUuTb4AfwI=";
+  types-aiobotocore-backup = buildTypesAiobotocorePackage "backup" "2.12.2" "sha256-Wa7iDrphEu/lLO9jI+8DvY7zpk7bDqoKhT85cUhQRsQ=";
 
-  types-aiobotocore-backup-gateway = buildTypesAiobotocorePackage "backup-gateway" "2.12.1" "sha256-bxXM19C5beGNvKV0bXpnU43e3h8UmFJpXc1kmsbeelw=";
+  types-aiobotocore-backup-gateway = buildTypesAiobotocorePackage "backup-gateway" "2.12.2" "sha256-31DD2XhktJJ5W4cfnzp7kq4I3O1cG02HNTTbHoKQ4c8=";
 
-  types-aiobotocore-backupstorage = buildTypesAiobotocorePackage "backupstorage" "2.12.1" "sha256-+y3Xqw/KJqcSC7VMwjN+FZN/MLt0E/UISk+CNRN0lTI=";
+  types-aiobotocore-backupstorage = buildTypesAiobotocorePackage "backupstorage" "2.12.2" "sha256-d3C54F9epPGdP0f+FBcDc57D0z0lTlwthV8yWZqoZKo=";
 
-  types-aiobotocore-batch = buildTypesAiobotocorePackage "batch" "2.12.1" "sha256-cX2aVftGdhLDfY3bSSIiFnOV0EPfmlcwrSG7ad+On1g=";
+  types-aiobotocore-batch = buildTypesAiobotocorePackage "batch" "2.12.2" "sha256-amRfVZeFXbCDXH5ZJkNxcn5LKrr3ImrnkCepdD+/BVA=";
 
-  types-aiobotocore-billingconductor = buildTypesAiobotocorePackage "billingconductor" "2.12.1" "sha256-GROhwMYXYrYTChJVlE/MN/EZ0NzOHeSXAfiIuHJG9u8=";
+  types-aiobotocore-billingconductor = buildTypesAiobotocorePackage "billingconductor" "2.12.2" "sha256-yGYcyqPGuEXNPRi9CrGvFgmuTquRVWV6Lvxpwz4vk88=";
 
-  types-aiobotocore-braket = buildTypesAiobotocorePackage "braket" "2.12.1" "sha256-d9oj+mAHxXapK+756DrglrqlYTOlZQtkFdbh+Ipanqc=";
+  types-aiobotocore-braket = buildTypesAiobotocorePackage "braket" "2.12.2" "sha256-Xb5/W8moxLZ4EcWxtk06p0QO+RNq7m/cg3sr1s9EEjU=";
 
-  types-aiobotocore-budgets = buildTypesAiobotocorePackage "budgets" "2.12.1" "sha256-kCXjo49wwgdVjbI45A+JV0gQbb7FxqSi2rqa41XgrbI=";
+  types-aiobotocore-budgets = buildTypesAiobotocorePackage "budgets" "2.12.2" "sha256-uOtU24KgXLPXbHKEjGLPa5cklGSTv+ubgrK7BqdegcE=";
 
-  types-aiobotocore-ce = buildTypesAiobotocorePackage "ce" "2.12.1" "sha256-RNGUxIvjKqJvOQ3CUjfJWHGD76wUqfev43aCU5Z+5Dg=";
+  types-aiobotocore-ce = buildTypesAiobotocorePackage "ce" "2.12.2" "sha256-8VE8GzjJpqSOhg12oVGRd9dvOgYHm46B3p11oYV/Hfk=";
 
-  types-aiobotocore-chime = buildTypesAiobotocorePackage "chime" "2.12.1" "sha256-/EHroPbg5w45i8vqpzLHf8ZpzIWbOLLwwAbP/MZvDyI=";
+  types-aiobotocore-chime = buildTypesAiobotocorePackage "chime" "2.12.2" "sha256-CsHu7oDQysHrteUU1fx875aqxah7tKcKcFVnjQRu56I=";
 
-  types-aiobotocore-chime-sdk-identity = buildTypesAiobotocorePackage "chime-sdk-identity" "2.12.1" "sha256-yZbk3/p11XA6y57z58ShBpYzbgmZaqXKFaSjRNLIHAs=";
+  types-aiobotocore-chime-sdk-identity = buildTypesAiobotocorePackage "chime-sdk-identity" "2.12.2" "sha256-LWcyeN84Ca91/FS3UYzE7wA0vqHQaYDRcsSvyjTQ/sw=";
 
-  types-aiobotocore-chime-sdk-media-pipelines = buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.12.1" "sha256-A45a8+rGxkkF+qMNWQOwp3keTnVqitC+T+1cXfpjh4s=";
+  types-aiobotocore-chime-sdk-media-pipelines = buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.12.2" "sha256-+/pHe/DzMI3eWFHS8M588S0cuvAqrIUYidV3BXIUN3o=";
 
-  types-aiobotocore-chime-sdk-meetings = buildTypesAiobotocorePackage "chime-sdk-meetings" "2.12.1" "sha256-CBOz1xzJF7502CCcdbVPTnC5lRgDHsRCRQjDhvUJQks=";
+  types-aiobotocore-chime-sdk-meetings = buildTypesAiobotocorePackage "chime-sdk-meetings" "2.12.2" "sha256-ZTMMAi2fEHsFL7T81t4DiL1IOHJTkL8A7IG2g/v8ND0=";
 
-  types-aiobotocore-chime-sdk-messaging = buildTypesAiobotocorePackage "chime-sdk-messaging" "2.12.1" "sha256-IzhApCA/D73+LPyxILQDrKTRABG3kgyVobNdY0L065M=";
+  types-aiobotocore-chime-sdk-messaging = buildTypesAiobotocorePackage "chime-sdk-messaging" "2.12.2" "sha256-qt0JzJL9EwU1+Sh4CqMBiMNJIwI6YdmUvAvNBJv2oVw=";
 
-  types-aiobotocore-chime-sdk-voice = buildTypesAiobotocorePackage "chime-sdk-voice" "2.12.1" "sha256-o+QL/ujJrHtggWUOTXgE5/EcE5Dsx4EYAOrRbLAV6qM=";
+  types-aiobotocore-chime-sdk-voice = buildTypesAiobotocorePackage "chime-sdk-voice" "2.12.2" "sha256-oFNY2oBIrj4OJATIkGeer00MDxqRf7Sh9whIm1Hr6Mk=";
 
-  types-aiobotocore-cleanrooms = buildTypesAiobotocorePackage "cleanrooms" "2.12.1" "sha256-haTOrvbpW3sM2cj4hhb1higAs/CcBM07bKbeSP29ox0=";
+  types-aiobotocore-cleanrooms = buildTypesAiobotocorePackage "cleanrooms" "2.12.2" "sha256-mG/fF8cgbI4xHdifOo4uXwCB0sLIeqHfDbFExRH1G1U=";
 
-  types-aiobotocore-cloud9 = buildTypesAiobotocorePackage "cloud9" "2.12.1" "sha256-lB7ETrEcEcUN0Wo0v5jfHS/7deB+RigE7QAsRtCm34s=";
+  types-aiobotocore-cloud9 = buildTypesAiobotocorePackage "cloud9" "2.12.2" "sha256-7Uw/ZVpdAu6TdwoqnoWFHOihoxTIyR9tMXawZ+FGZto=";
 
-  types-aiobotocore-cloudcontrol = buildTypesAiobotocorePackage "cloudcontrol" "2.12.1" "sha256-9wQePNZU01EZ0HsEri+NhyqbovxKvrq1Ym2X6ZjmpgQ=";
+  types-aiobotocore-cloudcontrol = buildTypesAiobotocorePackage "cloudcontrol" "2.12.2" "sha256-L+FL66LIIGf2jeNis0fjnO8Y1tnxq2Wf2OOu6/dIyn8=";
 
-  types-aiobotocore-clouddirectory = buildTypesAiobotocorePackage "clouddirectory" "2.12.1" "sha256-tcapX1pGlYT5I9psU/lhq+ltsYJzhJA8ECopImTBNG8=";
+  types-aiobotocore-clouddirectory = buildTypesAiobotocorePackage "clouddirectory" "2.12.2" "sha256-7wVsJpVN6dxNekF+Y41uS1gxXo11Ep6v7jigmKbtvv0=";
 
-  types-aiobotocore-cloudformation = buildTypesAiobotocorePackage "cloudformation" "2.12.1" "sha256-ZDPwZIVtYGjMVYGhwRqHhDgQuGRMPm9nDSf3yXyHDig=";
+  types-aiobotocore-cloudformation = buildTypesAiobotocorePackage "cloudformation" "2.12.2" "sha256-gcrzYBBMfnzkwRkSxvAdJ85pNS2wrVCJSpC+gWV+wFs=";
 
-  types-aiobotocore-cloudfront = buildTypesAiobotocorePackage "cloudfront" "2.12.1" "sha256-1SkPaujxS66tXJ7d37AOF5fWJfm6NMMFs3BdCzvFQ18=";
+  types-aiobotocore-cloudfront = buildTypesAiobotocorePackage "cloudfront" "2.12.2" "sha256-ZstNc2vk0Ri7O29YtxIdBnclbsWm/ZwlgRouDKO39VI=";
 
-  types-aiobotocore-cloudhsm = buildTypesAiobotocorePackage "cloudhsm" "2.12.1" "sha256-h/ukCEJa/sU2c54Yt0JccYHUkk57A48hBZy0dixo37Q=";
+  types-aiobotocore-cloudhsm = buildTypesAiobotocorePackage "cloudhsm" "2.12.2" "sha256-12LqtV/KBWHO77VFEruNBvODUFZVnbWVFuf9xS9UZ7U=";
 
-  types-aiobotocore-cloudhsmv2 = buildTypesAiobotocorePackage "cloudhsmv2" "2.12.1" "sha256-ErBwA+z2JvT5xfvoTzsIAVPU8tU08sphFXGw1g3f4yQ=";
+  types-aiobotocore-cloudhsmv2 = buildTypesAiobotocorePackage "cloudhsmv2" "2.12.2" "sha256-YBKCsDLOx9B+Eb5IhYcc84Nesn18ix3HON5u3lJTiuk=";
 
-  types-aiobotocore-cloudsearch = buildTypesAiobotocorePackage "cloudsearch" "2.12.1" "sha256-1olJgbAOkbh9vXli4pcwwJoi1THWtfU8oz9YCj6Ukes=";
+  types-aiobotocore-cloudsearch = buildTypesAiobotocorePackage "cloudsearch" "2.12.2" "sha256-iK0ZPBqilIPko8drXfVNrq2CY4GTxJkUTGfSE8X8izM=";
 
-  types-aiobotocore-cloudsearchdomain = buildTypesAiobotocorePackage "cloudsearchdomain" "2.12.1" "sha256-aGTQp3cmL7ZWu4g17Rrk5rmiJ4aQRmPk54AGSWkhFGs=";
+  types-aiobotocore-cloudsearchdomain = buildTypesAiobotocorePackage "cloudsearchdomain" "2.12.2" "sha256-kZ1tC8wgzThdUTb0ixjiL9tjCyi+YfGe/ET3tBAg9Wk=";
 
-  types-aiobotocore-cloudtrail = buildTypesAiobotocorePackage "cloudtrail" "2.12.1" "sha256-bM3LaR0mBX7i7hUB4maK7exCplszTtN+I5EllNdXy64=";
+  types-aiobotocore-cloudtrail = buildTypesAiobotocorePackage "cloudtrail" "2.12.2" "sha256-WOWt4li3Gf3MzLWxyUQoQ9jOADSzVdInMeeSmMEHLt8=";
 
-  types-aiobotocore-cloudtrail-data = buildTypesAiobotocorePackage "cloudtrail-data" "2.12.1" "sha256-GOm6+wQGXOmJJa7Thw1QwEh7qsfGrmlphlR9jbWVRwI=";
+  types-aiobotocore-cloudtrail-data = buildTypesAiobotocorePackage "cloudtrail-data" "2.12.2" "sha256-YmYmwjPk+3NjZekJ0jkS5c4JqY1pl1ASPymSBbAurzc=";
 
-  types-aiobotocore-cloudwatch = buildTypesAiobotocorePackage "cloudwatch" "2.12.1" "sha256-7HPW7wBHzEz3Wf+ExWt0EuLGyMenZLKitxg1vRRLvXg=";
+  types-aiobotocore-cloudwatch = buildTypesAiobotocorePackage "cloudwatch" "2.12.2" "sha256-Ym7e9ZkfMll1YLAa/C+RwvHcbVwkY1foEmmlaL7qFcU=";
 
-  types-aiobotocore-codeartifact = buildTypesAiobotocorePackage "codeartifact" "2.12.1" "sha256-vbVK79R9VPVVtpqvzhdRiVkLBhfRZgFYcoH7asbaE0c=";
+  types-aiobotocore-codeartifact = buildTypesAiobotocorePackage "codeartifact" "2.12.2" "sha256-GDySp3FuE0K/NZm4h/OxU7oYvDrGaL4g28ifzxdmTwg=";
 
-  types-aiobotocore-codebuild = buildTypesAiobotocorePackage "codebuild" "2.12.1" "sha256-eXPqgX5MD/aIBxIQjHqyP4I0FJ2l+AHnoiq6RofKY4Q=";
+  types-aiobotocore-codebuild = buildTypesAiobotocorePackage "codebuild" "2.12.2" "sha256-dLD5ovefqYEUxB0V+azNmfAbjKZ2K3ePjtCmPZpdt5I=";
 
-  types-aiobotocore-codecatalyst = buildTypesAiobotocorePackage "codecatalyst" "2.12.1" "sha256-xu7zEVV3AX9ygsYzTjyp1WcA5fEndCu6yCMsCuDnYOo=";
+  types-aiobotocore-codecatalyst = buildTypesAiobotocorePackage "codecatalyst" "2.12.2" "sha256-HtzCIUyhUvbK7dFGMFb472BiP9rvj7hmokOThk452uY=";
 
-  types-aiobotocore-codecommit = buildTypesAiobotocorePackage "codecommit" "2.12.1" "sha256-IshGyh7RTJDbmcjJ/t1SoeZKd7GnsRrr/kZAXpLZQXY=";
+  types-aiobotocore-codecommit = buildTypesAiobotocorePackage "codecommit" "2.12.2" "sha256-XQyTXh8D/9O5YhsShvGckTfscT/teYLAhTgwmGTMd04=";
 
-  types-aiobotocore-codedeploy = buildTypesAiobotocorePackage "codedeploy" "2.12.1" "sha256-1ess+WyiHaejghvuESxCHBu7XmGoR9uA3fL21WzhBPs=";
+  types-aiobotocore-codedeploy = buildTypesAiobotocorePackage "codedeploy" "2.12.2" "sha256-7uJ44TJ8hWKhmvWAKyMAL/5kU/XIm+icrXbiw5dWTQU=";
 
-  types-aiobotocore-codeguru-reviewer = buildTypesAiobotocorePackage "codeguru-reviewer" "2.12.1" "sha256-o9WfffjQPMU8pgUtQFrj7+CyP87rvalF1qxTTZp/UgM=";
+  types-aiobotocore-codeguru-reviewer = buildTypesAiobotocorePackage "codeguru-reviewer" "2.12.2" "sha256-PIUP1kHTEq3yXoozKFDdN9C0jODMeSPIV387vnAAWuY=";
 
-  types-aiobotocore-codeguru-security = buildTypesAiobotocorePackage "codeguru-security" "2.12.1" "sha256-RfKsb90lP57S6kyvfrFGampEGGHr1czQ/+49Oox0rEI=";
+  types-aiobotocore-codeguru-security = buildTypesAiobotocorePackage "codeguru-security" "2.12.2" "sha256-VN45VIrBplN5UnPZtd6yDnSY1nj0YRVKdDejg0CsDPE=";
 
-  types-aiobotocore-codeguruprofiler = buildTypesAiobotocorePackage "codeguruprofiler" "2.12.1" "sha256-1AkpcKCrwHIJHO9cFIyZrizSbNeLcjhRbTlvgDz6RJ4=";
+  types-aiobotocore-codeguruprofiler = buildTypesAiobotocorePackage "codeguruprofiler" "2.12.2" "sha256-+dI2LWqP1fmVMtQP247bo35yN0TxczXcPeCTSBNzMlM=";
 
-  types-aiobotocore-codepipeline = buildTypesAiobotocorePackage "codepipeline" "2.12.1" "sha256-0qNifbqbtK/XNo9un7snezMTBw5ED08UxZnHgVJj4HU=";
+  types-aiobotocore-codepipeline = buildTypesAiobotocorePackage "codepipeline" "2.12.2" "sha256-tlHbQTjTyZXJ2oPsOFepTn7BhNNaeLivDaqTw9dyte8=";
 
-  types-aiobotocore-codestar = buildTypesAiobotocorePackage "codestar" "2.12.1" "sha256-Du4dvdfqQjtRwnomiqtV+T3z65PjomCAkgl1vMAsZ2A=";
+  types-aiobotocore-codestar = buildTypesAiobotocorePackage "codestar" "2.12.2" "sha256-ICX4Mm4legH/D6zw83mAuGtnHnO44Xsym7BtQusfJhE=";
 
-  types-aiobotocore-codestar-connections = buildTypesAiobotocorePackage "codestar-connections" "2.12.1" "sha256-wHiMhzwCMPgrtZ650BAsZvgldAzGR6kjnHIQh0B8scA=";
+  types-aiobotocore-codestar-connections = buildTypesAiobotocorePackage "codestar-connections" "2.12.2" "sha256-iL50uXFV9blh6MJjqQ8lEClO7PEPHNbao+ZBr7eIKVY=";
 
-  types-aiobotocore-codestar-notifications = buildTypesAiobotocorePackage "codestar-notifications" "2.12.1" "sha256-rOKutC1NJS55XJ5sWks++sylGHLOwo1OElz+uZXMhQo=";
+  types-aiobotocore-codestar-notifications = buildTypesAiobotocorePackage "codestar-notifications" "2.12.2" "sha256-6ugH1IdRuG9VSX3BYvCRSqOzCeNUJK654YTOX4uUCZc=";
 
-  types-aiobotocore-cognito-identity = buildTypesAiobotocorePackage "cognito-identity" "2.12.1" "sha256-aBwQC4hoUaZWbICP74+vy3xocFGHWfB4B5hb+JwMKeA=";
+  types-aiobotocore-cognito-identity = buildTypesAiobotocorePackage "cognito-identity" "2.12.2" "sha256-zxUOfY/mTVciiGZ17ZxiMIgAHR9RVKRKbR2L65uCK1I=";
 
-  types-aiobotocore-cognito-idp = buildTypesAiobotocorePackage "cognito-idp" "2.12.1" "sha256-uVd9KNIMx1p26vaOzlPNM7a0+2SS5ZkfpMe5obGDXiw=";
+  types-aiobotocore-cognito-idp = buildTypesAiobotocorePackage "cognito-idp" "2.12.2" "sha256-mKAbWofTXdBvsKxsLUso9zqjT3fr6Nn08wM5z04F/Wo=";
 
-  types-aiobotocore-cognito-sync = buildTypesAiobotocorePackage "cognito-sync" "2.12.1" "sha256-NJVV8lN0HTmASQfqh9fbQSkg2KijOcbHTc8QYgTrY4I=";
+  types-aiobotocore-cognito-sync = buildTypesAiobotocorePackage "cognito-sync" "2.12.2" "sha256-riC2eCtEb0f32/hI593sbgLKEVf3jeWYO8LwsH0jvWk=";
 
-  types-aiobotocore-comprehend = buildTypesAiobotocorePackage "comprehend" "2.12.1" "sha256-+WMvk9yY5bGHPqd93TWS3XC6XDvTzh54oM9py52pzws=";
+  types-aiobotocore-comprehend = buildTypesAiobotocorePackage "comprehend" "2.12.2" "sha256-B/FxP4ia29VXS9urH6HfGvURM2Z7iOo8r8Zmp1Qwokc=";
 
-  types-aiobotocore-comprehendmedical = buildTypesAiobotocorePackage "comprehendmedical" "2.12.1" "sha256-KFeZxBzsAZVdpIlvKohBIP3p1yJ14/AHW7sItn6slY4=";
+  types-aiobotocore-comprehendmedical = buildTypesAiobotocorePackage "comprehendmedical" "2.12.2" "sha256-47wpqoxV3mrTdS+sHbD9mK/rwblLN3PK5eZQkx4eNBc=";
 
-  types-aiobotocore-compute-optimizer = buildTypesAiobotocorePackage "compute-optimizer" "2.12.1" "sha256-xCFDjZ+tkRs3UWhPu6BpabaKIFWITApu65gFk0hw/Vs=";
+  types-aiobotocore-compute-optimizer = buildTypesAiobotocorePackage "compute-optimizer" "2.12.2" "sha256-1Gnw5TOkU5qGjTjHGaU2Lf5CpRWl/XHKtA/MlH8ZM48=";
 
-  types-aiobotocore-config = buildTypesAiobotocorePackage "config" "2.12.1" "sha256-cQWccDw2YPdj5pXb/H2WaFlWg4BrAg/HNAq6RLAp4yY=";
+  types-aiobotocore-config = buildTypesAiobotocorePackage "config" "2.12.2" "sha256-smum6KC3n5Des0dkQ0dpWPAmsNp0syMzWsaYzWWzz3M=";
 
-  types-aiobotocore-connect = buildTypesAiobotocorePackage "connect" "2.12.1" "sha256-zbAIII9gaTJEZEcdd1go00s6PUAZdNtEYlOu0Hz2K5g=";
+  types-aiobotocore-connect = buildTypesAiobotocorePackage "connect" "2.12.2" "sha256-mlE5GRAkLUYXcywPzHvSjWLhzAZAwAEySK+xOmIGHxo=";
 
-  types-aiobotocore-connect-contact-lens = buildTypesAiobotocorePackage "connect-contact-lens" "2.12.1" "sha256-8QSM/rytw1tx8OfL3NQOaxT8D0hlFK4BmaxxPJGpeL0=";
+  types-aiobotocore-connect-contact-lens = buildTypesAiobotocorePackage "connect-contact-lens" "2.12.2" "sha256-YErrGkS78Ty8Hv95ofLKlYkL5MGmDnGjvHyDhNb7sc8=";
 
-  types-aiobotocore-connectcampaigns = buildTypesAiobotocorePackage "connectcampaigns" "2.12.1" "sha256-QJylFv6qLf+JS2FL2Fs9oXXkTbwgmcxChsXUjoJJIQ4=";
+  types-aiobotocore-connectcampaigns = buildTypesAiobotocorePackage "connectcampaigns" "2.12.2" "sha256-TF5Skwtx581enCSHNCDzbdzaf4o8L+JQlcUSZ69hVIU=";
 
-  types-aiobotocore-connectcases = buildTypesAiobotocorePackage "connectcases" "2.12.1" "sha256-5rHxLWeR6ElpegaV1lO6Wh8h0DBoZ8S4TblDPMlZvEg=";
+  types-aiobotocore-connectcases = buildTypesAiobotocorePackage "connectcases" "2.12.2" "sha256-nYzkrxhAGmkA1ZUPRxKmY6GWdG7io8yAfzo0D5znTmg=";
 
-  types-aiobotocore-connectparticipant = buildTypesAiobotocorePackage "connectparticipant" "2.12.1" "sha256-VSno3aW8mDf/yxg0bTERjsERvdd6+T4yOJQdA32o3bo=";
+  types-aiobotocore-connectparticipant = buildTypesAiobotocorePackage "connectparticipant" "2.12.2" "sha256-ggAybqHfPYJLMPM8DZUQfmUdFCJEpETqWhJZMg68GzU=";
 
-  types-aiobotocore-controltower = buildTypesAiobotocorePackage "controltower" "2.12.1" "sha256-3G2EarLZAonr/2noJ8sUlrvol6En37NfWqaKWkKUF40=";
+  types-aiobotocore-controltower = buildTypesAiobotocorePackage "controltower" "2.12.2" "sha256-HxUAm20R5OhvFz21KHOuZSYmnooU+SfAxCOqavnFZVA=";
 
-  types-aiobotocore-cur = buildTypesAiobotocorePackage "cur" "2.12.1" "sha256-Q22cMbQCNx57+z5gVRWzEu+NFre7nr43iCfZckmzUqU=";
+  types-aiobotocore-cur = buildTypesAiobotocorePackage "cur" "2.12.2" "sha256-XK4+EvPDByogTh8En2xCUCeJsIV2OROE9bjHekO2hpU=";
 
-  types-aiobotocore-customer-profiles = buildTypesAiobotocorePackage "customer-profiles" "2.12.1" "sha256-qMPLsa4euoHZiaRizphbpw4H66mCxZhNKZM1qjILwy8=";
+  types-aiobotocore-customer-profiles = buildTypesAiobotocorePackage "customer-profiles" "2.12.2" "sha256-K89ciuIiaSS9i7BOkwc3u0Rvv5teMtvheDPTNTQr4Q8=";
 
-  types-aiobotocore-databrew = buildTypesAiobotocorePackage "databrew" "2.12.1" "sha256-ekG77cZnn6V9InRjhqUzJWGs4/ear90bifUP+RwCXz8=";
+  types-aiobotocore-databrew = buildTypesAiobotocorePackage "databrew" "2.12.2" "sha256-3vBQsZB8Mjvo/T2f6BdWUlXWnvkTfdiEcZhrlRuHr8g=";
 
-  types-aiobotocore-dataexchange = buildTypesAiobotocorePackage "dataexchange" "2.12.1" "sha256-L6bedg9iqlsB+0mt5GaZzB8RRepZGW1BahDXUwfNc+I=";
+  types-aiobotocore-dataexchange = buildTypesAiobotocorePackage "dataexchange" "2.12.2" "sha256-PzdVdYYXNoJ17y5X+0jtmtajfCP7JcgFlRMHoyYil1U=";
 
-  types-aiobotocore-datapipeline = buildTypesAiobotocorePackage "datapipeline" "2.12.1" "sha256-EAkwiRw1PF3+6pdt15onwTBvXXf9f4BLQd6mqDLgYdk=";
+  types-aiobotocore-datapipeline = buildTypesAiobotocorePackage "datapipeline" "2.12.2" "sha256-cZj9t7Y4kNNS/l6JPihqd3ETu/9l9OrDIbn/PAvOcbc=";
 
-  types-aiobotocore-datasync = buildTypesAiobotocorePackage "datasync" "2.12.1" "sha256-JZuIbuaaci7scqF27/7KZtkfpTa+FkE3Ooq84ZjL4Fg=";
+  types-aiobotocore-datasync = buildTypesAiobotocorePackage "datasync" "2.12.2" "sha256-DGKdxsHlAEKb7USVM0FzFjsLLKwL5ZHEkhgjWSSgaAo=";
 
-  types-aiobotocore-dax = buildTypesAiobotocorePackage "dax" "2.12.1" "sha256-wtFXwUfDxUJSjt2FFvt6+eq1vSsHWwvBJvg1pyplX8Q=";
+  types-aiobotocore-dax = buildTypesAiobotocorePackage "dax" "2.12.2" "sha256-lUX2JV7SQk39k/ri56pL9FMaPLIvII30vrOkcMaOuZ8=";
 
-  types-aiobotocore-detective = buildTypesAiobotocorePackage "detective" "2.12.1" "sha256-ydMwZRT9F95KBrvlwGAqjiTiEUVnr0xKElMKz5dgRSM=";
+  types-aiobotocore-detective = buildTypesAiobotocorePackage "detective" "2.12.2" "sha256-9QYhpJGUFewUpSxd4KX+LSVBZLTJsNf8lkTaVBnMuX8=";
 
-  types-aiobotocore-devicefarm = buildTypesAiobotocorePackage "devicefarm" "2.12.1" "sha256-8GRf+xgsv8lTNuRlib78GMOV5gLMxiybo9gqgfL2s6g=";
+  types-aiobotocore-devicefarm = buildTypesAiobotocorePackage "devicefarm" "2.12.2" "sha256-v4wCi8MhkJCVscYqu0eD2dFwHcgZyFT6/Fl8IIRtmuY=";
 
-  types-aiobotocore-devops-guru = buildTypesAiobotocorePackage "devops-guru" "2.12.1" "sha256-Jg4yLzlZGjlHqgKECEgGndcVGc28KCE0C8K4JhpjAXA=";
+  types-aiobotocore-devops-guru = buildTypesAiobotocorePackage "devops-guru" "2.12.2" "sha256-sQmBJuQOhXWd4Ed6S8eck7lmyuHYbTEfKXXLyP8Hi/c=";
 
-  types-aiobotocore-directconnect = buildTypesAiobotocorePackage "directconnect" "2.12.1" "sha256-wk0y4voHIlDmBMGTsOukcM4yG9XP4wnQA1WgAUb9T1c=";
+  types-aiobotocore-directconnect = buildTypesAiobotocorePackage "directconnect" "2.12.2" "sha256-VjVTqn4vlu2IKAYN5sPX53ktjPQ7cxcW1SsS1IpyFe8=";
 
-  types-aiobotocore-discovery = buildTypesAiobotocorePackage "discovery" "2.12.1" "sha256-IctqTU+e65MHeo3Mm+MVzkyrzki8f0eSEWHvzTgTTlc=";
+  types-aiobotocore-discovery = buildTypesAiobotocorePackage "discovery" "2.12.2" "sha256-rFqFq8++FeWKR/Q7c3Hp7e5595RKimPM8wC6wCnzU18=";
 
-  types-aiobotocore-dlm = buildTypesAiobotocorePackage "dlm" "2.12.1" "sha256-dHKET+GhbmbRJzoziqtB2H1T36L9lFFU0HtNrPve4/o=";
+  types-aiobotocore-dlm = buildTypesAiobotocorePackage "dlm" "2.12.2" "sha256-16ctkHWUCptCGkqF2LV4aZbsQZPVcMCPnM4c4yYjr54=";
 
-  types-aiobotocore-dms = buildTypesAiobotocorePackage "dms" "2.12.1" "sha256-RIm9mkVCGtpMdib6ObpPxJgiME15tT9wm5UrQjLYicc=";
+  types-aiobotocore-dms = buildTypesAiobotocorePackage "dms" "2.12.2" "sha256-thXJTCeLzlZ8AgffEcWabZexjcXj6tzUdKcVUO2h+as=";
 
-  types-aiobotocore-docdb = buildTypesAiobotocorePackage "docdb" "2.12.1" "sha256-F3BHJezYz2fHG/76JnOrc8J5jgAEJx82I+Lzhput4Bs=";
+  types-aiobotocore-docdb = buildTypesAiobotocorePackage "docdb" "2.12.2" "sha256-mEb8ojz1H2a8K5Vk+YM2eMM7E2yCNLkPFlkJDp6u0+c=";
 
-  types-aiobotocore-docdb-elastic = buildTypesAiobotocorePackage "docdb-elastic" "2.12.1" "sha256-GA13WEdMqY8SUctSK5o9N6B6F35RySbUQS7XxleRak0=";
+  types-aiobotocore-docdb-elastic = buildTypesAiobotocorePackage "docdb-elastic" "2.12.2" "sha256-Gg8i3T7c9VyStoiO4IdvIpEkY4s9U0kdQkkrFToDGMo=";
 
-  types-aiobotocore-drs = buildTypesAiobotocorePackage "drs" "2.12.1" "sha256-oMsLU3UfvqACSteoKKALYNV2qnXnxDkmE+TaVJV9cG0=";
+  types-aiobotocore-drs = buildTypesAiobotocorePackage "drs" "2.12.2" "sha256-QjBZN5uD7c8TmAvDZkI0UmJttaryPmgp6jq3g3STIFA=";
 
-  types-aiobotocore-ds = buildTypesAiobotocorePackage "ds" "2.12.1" "sha256-2FfD3ck4faAK5s85ELfI1jPH7icQZh3a8ALDIGxpBz4=";
+  types-aiobotocore-ds = buildTypesAiobotocorePackage "ds" "2.12.2" "sha256-l8V/f2vcC6ztSaG+mjaYnWmOcsvbLogXE8tfIn+Fd8c=";
 
-  types-aiobotocore-dynamodb = buildTypesAiobotocorePackage "dynamodb" "2.12.1" "sha256-mi1byiYu/T2h65HtTgygYXS1tNxiDhnsIH+FGGpFq1A=";
+  types-aiobotocore-dynamodb = buildTypesAiobotocorePackage "dynamodb" "2.12.2" "sha256-dqfQ6X/jFhEWzkYf5Qt9++jk51OFNxv/7JCU4/YkGzw=";
 
-  types-aiobotocore-dynamodbstreams = buildTypesAiobotocorePackage "dynamodbstreams" "2.12.1" "sha256-y7lR076HGKvwzK4AFExfys6yvddmHmH/h0Klb7ExIKw=";
+  types-aiobotocore-dynamodbstreams = buildTypesAiobotocorePackage "dynamodbstreams" "2.12.2" "sha256-cay+xSJqhozKN5Qfm+ilYaOgL3wTDTrhWHHElD6Fq8o=";
 
-  types-aiobotocore-ebs = buildTypesAiobotocorePackage "ebs" "2.12.1" "sha256-ji1opGGeCLCMvpYkbwKQ+bkEGkeV9ZhuxZ3uIcT4Vmk=";
+  types-aiobotocore-ebs = buildTypesAiobotocorePackage "ebs" "2.12.2" "sha256-DnZe5HqyV+MUSR1O+XwgkJI4/xvS3KX2wKHxvmG3DL4=";
 
-  types-aiobotocore-ec2 = buildTypesAiobotocorePackage "ec2" "2.12.1" "sha256-Ep4MKh26Iv+2LE/BKQBF5gX539ujCIzb4uaeHdd3vK8=";
+  types-aiobotocore-ec2 = buildTypesAiobotocorePackage "ec2" "2.12.2" "sha256-KEkPeWcpFdo58ti8edX3lX9KZEw/9raJysLiozI79kI=";
 
-  types-aiobotocore-ec2-instance-connect = buildTypesAiobotocorePackage "ec2-instance-connect" "2.12.1" "sha256-UQJvL+kpS1A2ptVpWzDEBvLntIZiyLJu3IwASJQd+ik=";
+  types-aiobotocore-ec2-instance-connect = buildTypesAiobotocorePackage "ec2-instance-connect" "2.12.2" "sha256-Zy6EeikhwCsG8xZ/0QTOtECAYQFLn2fvdqwDob4Wq8U=";
 
-  types-aiobotocore-ecr = buildTypesAiobotocorePackage "ecr" "2.12.1" "sha256-dOp+qRCpF+1hLgdlQTaLQcCEpST44ajxeJeepOwcU+U=";
+  types-aiobotocore-ecr = buildTypesAiobotocorePackage "ecr" "2.12.2" "sha256-4SI+1chcCx/wArrTWqOn560EtfjIOaO92YyLM2PtMYI=";
 
-  types-aiobotocore-ecr-public = buildTypesAiobotocorePackage "ecr-public" "2.12.1" "sha256-wwcl/GCHz17YisIylvjtkMXiRlqcHX8pf3K0sy2GtL8=";
+  types-aiobotocore-ecr-public = buildTypesAiobotocorePackage "ecr-public" "2.12.2" "sha256-I6WPv0GmNp3aNrn7fnoSj660YojxsS/d+4qeHOzyZas=";
 
-  types-aiobotocore-ecs = buildTypesAiobotocorePackage "ecs" "2.12.1" "sha256-yVwVId7K3DLWTjgk3tLywZhgnAxFGEi2oAKfXfdO18w=";
+  types-aiobotocore-ecs = buildTypesAiobotocorePackage "ecs" "2.12.2" "sha256-aq0r9sYoVHccy7f3/WUtvWmbmeeGEu09nXU6nePf0gM=";
 
-  types-aiobotocore-efs = buildTypesAiobotocorePackage "efs" "2.12.1" "sha256-hk9CLjWumjbT4EUGQnXytjgc6qgeCQAJx51d2TK6u9U=";
+  types-aiobotocore-efs = buildTypesAiobotocorePackage "efs" "2.12.2" "sha256-ne7ORyHVEyZg5pGwS7Wypmd9ig6bAzfprvaJxEDz8qY=";
 
-  types-aiobotocore-eks = buildTypesAiobotocorePackage "eks" "2.12.1" "sha256-fGSU2Xx8VF/R3tFwqJlJGcgq4Mpv/NevgMsE0IVzRrY=";
+  types-aiobotocore-eks = buildTypesAiobotocorePackage "eks" "2.12.2" "sha256-SG2SbEjBjcr6wDYyo6Djt8seKHncW4XEY9HFQSbkg2E=";
 
-  types-aiobotocore-elastic-inference = buildTypesAiobotocorePackage "elastic-inference" "2.12.1" "sha256-4SkFFVNIyY0vJjZ2uIwwyrN0LiOTj/6Oo1vWagRJtM4=";
+  types-aiobotocore-elastic-inference = buildTypesAiobotocorePackage "elastic-inference" "2.12.2" "sha256-RzY7MJ3jV/DTylRkCKM74MOcDySSIwR1cxmHomW+a8s=";
 
-  types-aiobotocore-elasticache = buildTypesAiobotocorePackage "elasticache" "2.12.1" "sha256-5X5icBKyZRNawv5lJzfDcyD2tFC9eLlJNHogV3ZM3tQ=";
+  types-aiobotocore-elasticache = buildTypesAiobotocorePackage "elasticache" "2.12.2" "sha256-rMSkENOjnOtXZAMFXiWjhnFgTS2ihnp2U6FkuU4R88o=";
 
-  types-aiobotocore-elasticbeanstalk = buildTypesAiobotocorePackage "elasticbeanstalk" "2.12.1" "sha256-U9xp81RqyuAFNNYkYSjIpRBfsXKZanunVWAmAfR/ZVw=";
+  types-aiobotocore-elasticbeanstalk = buildTypesAiobotocorePackage "elasticbeanstalk" "2.12.2" "sha256-HAqBCMCTLcHR0I2spr41JvwZpmWTWIPENLQBWAWJ/FY=";
 
-  types-aiobotocore-elastictranscoder = buildTypesAiobotocorePackage "elastictranscoder" "2.12.1" "sha256-Ggq93JeHa5+2hSwyHcFGRU7rMGHGPMAqaJPZj2KIUUU=";
+  types-aiobotocore-elastictranscoder = buildTypesAiobotocorePackage "elastictranscoder" "2.12.2" "sha256-9XMdxrFLCbHQu7JeetSxwfUCo0eU16s5aA+xfwKxfiA=";
 
-  types-aiobotocore-elb = buildTypesAiobotocorePackage "elb" "2.12.1" "sha256-LzHkiRKqmdD/iXZhJu1G9eLltFJcIFwBhgiLgywyOcA=";
+  types-aiobotocore-elb = buildTypesAiobotocorePackage "elb" "2.12.2" "sha256-QwVs2TATqPbkl90h6hJQlUPM/gpdog+oB11uggeeLDc=";
 
-  types-aiobotocore-elbv2 = buildTypesAiobotocorePackage "elbv2" "2.12.1" "sha256-g1ozRS44owh8ogisOE7ydF7omi9LPdXLxO2JaEWDmlg=";
+  types-aiobotocore-elbv2 = buildTypesAiobotocorePackage "elbv2" "2.12.2" "sha256-Jisv5FUAiuwxRVTYFqM51eBZjFpNWrWSZqZI66YozEg=";
 
-  types-aiobotocore-emr = buildTypesAiobotocorePackage "emr" "2.12.1" "sha256-14akL+yzo3/uV9Qsdpewt4Y88ghxVbV9aL6e8Qe+FFo=";
+  types-aiobotocore-emr = buildTypesAiobotocorePackage "emr" "2.12.2" "sha256-06W9wHe+Pt4tUNjBrXmy6LTmX1YijR1Y2yHb8RzUyHA=";
 
-  types-aiobotocore-emr-containers = buildTypesAiobotocorePackage "emr-containers" "2.12.1" "sha256-zOLyra/2uaqKl1t5Z2FVyLqtMmlYRZFN9HaCd+ocXi0=";
+  types-aiobotocore-emr-containers = buildTypesAiobotocorePackage "emr-containers" "2.12.2" "sha256-vke/6UvOUwUSghwDnappBeZfafAWpsxg+H02LWZVQtE=";
 
-  types-aiobotocore-emr-serverless = buildTypesAiobotocorePackage "emr-serverless" "2.12.1" "sha256-clBwlUdU9v90NEm744l6OB3QHuB+aUC3kQjLuHNKFdU=";
+  types-aiobotocore-emr-serverless = buildTypesAiobotocorePackage "emr-serverless" "2.12.2" "sha256-pFmgcNqLig3bK/5XruA05Uw0IrtYQhutl0XFLWU+TcA=";
 
-  types-aiobotocore-entityresolution = buildTypesAiobotocorePackage "entityresolution" "2.12.1" "sha256-3onJrgPQlgcNGPIUypd/ke5y3j4qt6vWF0fVgcwYsOg=";
+  types-aiobotocore-entityresolution = buildTypesAiobotocorePackage "entityresolution" "2.12.2" "sha256-C9bhXADO2qhItCntG5OgtHoq5dTApS/dIuprUoeYQ2A=";
 
-  types-aiobotocore-es = buildTypesAiobotocorePackage "es" "2.12.1" "sha256-pgQ7UDfnBaITqhrRoxze9jTLaxyUR2MubCWc+VfQS6c=";
+  types-aiobotocore-es = buildTypesAiobotocorePackage "es" "2.12.2" "sha256-EvdippGNEv14xe1mOxcIHy9/gfY5sH59ERMqrwOMigM=";
 
-  types-aiobotocore-events = buildTypesAiobotocorePackage "events" "2.12.1" "sha256-zdeJ+xc6KaAc0wcBsRQq49GvkK735LgTBHOKALjXPPk=";
+  types-aiobotocore-events = buildTypesAiobotocorePackage "events" "2.12.2" "sha256-XLXuheQPfEoobrVP9SRA7CWUzpU+02V25zenwDKi9x4=";
 
-  types-aiobotocore-evidently = buildTypesAiobotocorePackage "evidently" "2.12.1" "sha256-BLolxhY1yHTi5jQajuJpBj7GtKAtxhVjkIN+X1yvGmY=";
+  types-aiobotocore-evidently = buildTypesAiobotocorePackage "evidently" "2.12.2" "sha256-VSCM6tR7hnykmKo9nzuhd0iaOmdoqjQ+pENJTvwUsoQ=";
 
-  types-aiobotocore-finspace = buildTypesAiobotocorePackage "finspace" "2.12.1" "sha256-Rc7iPcraCISAebFQzU+Yxll+fYwi5b2hYO/3d1I3RRY=";
+  types-aiobotocore-finspace = buildTypesAiobotocorePackage "finspace" "2.12.2" "sha256-H/7wQxERVxA699UgLSfrfVSc/YOLmhhap0fhc+neacw=";
 
-  types-aiobotocore-finspace-data = buildTypesAiobotocorePackage "finspace-data" "2.12.1" "sha256-B3RJZRLKtz+CBOnRo0YcqdHhUc3P1Owjk2EwNChrnK0=";
+  types-aiobotocore-finspace-data = buildTypesAiobotocorePackage "finspace-data" "2.12.2" "sha256-fDxf0eZTu05m6C0HPr3iD9JnBHi7NLj2oGir0PQZuZQ=";
 
-  types-aiobotocore-firehose = buildTypesAiobotocorePackage "firehose" "2.12.1" "sha256-D0+FLyDYDx4xroVaANmyQq5qLPGUdDfgPMtSKfVAiUg=";
+  types-aiobotocore-firehose = buildTypesAiobotocorePackage "firehose" "2.12.2" "sha256-CpXbwwSSkmX1gl83qXUcq1Hfm6qfPaaRQpZFQrjwCEs=";
 
-  types-aiobotocore-fis = buildTypesAiobotocorePackage "fis" "2.12.1" "sha256-C99pmPa7zV9DZrc9stWxV9EPbJXwxslMyynj2PhbtDA=";
+  types-aiobotocore-fis = buildTypesAiobotocorePackage "fis" "2.12.2" "sha256-U6pTTt4vfu0BpLTY+DWHhdCXABg8wNgU1HQHMFA464Q=";
 
-  types-aiobotocore-fms = buildTypesAiobotocorePackage "fms" "2.12.1" "sha256-/oj+/dwtRXH8WD5QWuxJTLfNfhqwJmdXJROHUzzzF68=";
+  types-aiobotocore-fms = buildTypesAiobotocorePackage "fms" "2.12.2" "sha256-U3ahHDszvVy7he1i+VHbByoINWLqulwjPwV0Q0JO2XA=";
 
-  types-aiobotocore-forecast = buildTypesAiobotocorePackage "forecast" "2.12.1" "sha256-POwSXbfBT9xTA+b2dNFv7ONfYSv+N/Td9FW7EPDYbmA=";
+  types-aiobotocore-forecast = buildTypesAiobotocorePackage "forecast" "2.12.2" "sha256-AF8zDThj/YYPydi+B53ovo7cu+GU7DIkeIMjxtRTOiY=";
 
-  types-aiobotocore-forecastquery = buildTypesAiobotocorePackage "forecastquery" "2.12.1" "sha256-twtNBD27WYeuJNI5FuA6C98b5wjkRJSRqHmZ1fmArAc=";
+  types-aiobotocore-forecastquery = buildTypesAiobotocorePackage "forecastquery" "2.12.2" "sha256-M53ScdaS31TmkhZVBjlohhOyBiWE99CZLPSmm/TfiOM=";
 
-  types-aiobotocore-frauddetector = buildTypesAiobotocorePackage "frauddetector" "2.12.1" "sha256-YDub5fFJg5efes6BtnwVEKnKhbbmDuyFHNTQ6O7SgOI=";
+  types-aiobotocore-frauddetector = buildTypesAiobotocorePackage "frauddetector" "2.12.2" "sha256-9aFNev9n1+PBR9btvbtJLFuSe+Mx0lGl9kLpbjleUVE=";
 
-  types-aiobotocore-fsx = buildTypesAiobotocorePackage "fsx" "2.12.1" "sha256-lsDu0YT6015Or5STid9M8mbLXWxu7UkKgQHwTkgwnpY=";
+  types-aiobotocore-fsx = buildTypesAiobotocorePackage "fsx" "2.12.2" "sha256-O8AuUIDjlOMos9RcJtlUP59HmdXXZs7G5dh48ACK3cQ=";
 
-  types-aiobotocore-gamelift = buildTypesAiobotocorePackage "gamelift" "2.12.1" "sha256-SX7bzOCoV3v6+CVb1eBfm6AxLRivUJ1zbZtxZ7D1jvg=";
+  types-aiobotocore-gamelift = buildTypesAiobotocorePackage "gamelift" "2.12.2" "sha256-VudsIk9Otibdq1Gnt7FDMLNuKWjGJNB9qpogv2A7upc=";
 
   types-aiobotocore-gamesparks = buildTypesAiobotocorePackage "gamesparks" "2.7.0" "sha256-oVbKtuLMPpCQcZYx/cH1Dqjv/t6/uXsveflfFVqfN+8=";
 
-  types-aiobotocore-glacier = buildTypesAiobotocorePackage "glacier" "2.12.1" "sha256-qKEzg0ruG6E8DPsi+xsJF5rbmcEraLrS0gQr3It8io0=";
+  types-aiobotocore-glacier = buildTypesAiobotocorePackage "glacier" "2.12.2" "sha256-GXPiOEfVPWd16turDWjgU37z9bvh+KXxkAKPyN5I+2g=";
 
-  types-aiobotocore-globalaccelerator = buildTypesAiobotocorePackage "globalaccelerator" "2.12.1" "sha256-fjve8IEN0KcejFBwUxO1rstv8/CA0g0pS/0lxfnZx6k=";
+  types-aiobotocore-globalaccelerator = buildTypesAiobotocorePackage "globalaccelerator" "2.12.2" "sha256-ra4VPjKNEmkOnilzwc50nUeo3VJJi2ifp4H4jJ0FFZw=";
 
-  types-aiobotocore-glue = buildTypesAiobotocorePackage "glue" "2.12.1" "sha256-JYo3D3i2FtCKUatnLyDWW8YGB9u0SzQwDeC0tIBULms=";
+  types-aiobotocore-glue = buildTypesAiobotocorePackage "glue" "2.12.2" "sha256-RA5Tp4hohM9U8UiFXLDu3iH5sb3GUaancnP7coPqk+Q=";
 
-  types-aiobotocore-grafana = buildTypesAiobotocorePackage "grafana" "2.12.1" "sha256-fByRGOJ1TnfnPB6czGYyjvKOop6chA7fiatsVPKCxys=";
+  types-aiobotocore-grafana = buildTypesAiobotocorePackage "grafana" "2.12.2" "sha256-WNzWOnpwikHH79QfPeFqOuA5RdYhiUHbqMhr/l14izc=";
 
-  types-aiobotocore-greengrass = buildTypesAiobotocorePackage "greengrass" "2.12.1" "sha256-QhTA5b8q6LDdHVeN0M0mT/XLKTfDHIY71EXUCtSCqbI=";
+  types-aiobotocore-greengrass = buildTypesAiobotocorePackage "greengrass" "2.12.2" "sha256-tAhvsGNrBcWOQNMX+WjERCCqQnrMdyBOwmFcfRwGd8A=";
 
-  types-aiobotocore-greengrassv2 = buildTypesAiobotocorePackage "greengrassv2" "2.12.1" "sha256-b6DO2ZGOBzPZ311Fj+il6pkBmSXPKe12Ssua9T/mdjs=";
+  types-aiobotocore-greengrassv2 = buildTypesAiobotocorePackage "greengrassv2" "2.12.2" "sha256-Nk+9h2d1/E37wki3wkCQ+LlVvHbact12l/YmKw/eurM=";
 
-  types-aiobotocore-groundstation = buildTypesAiobotocorePackage "groundstation" "2.12.1" "sha256-XzlCvtOwGPUQEkU1HiGYeeAWuRAQpRnXDcgyblykJEE=";
+  types-aiobotocore-groundstation = buildTypesAiobotocorePackage "groundstation" "2.12.2" "sha256-65idZ2V7v1sZdwqj2/RNqqbG/D8yH8jTA85GkY56bPs=";
 
-  types-aiobotocore-guardduty = buildTypesAiobotocorePackage "guardduty" "2.12.1" "sha256-Y3FDX5NPe+s0CBawE0OsXaIBPhe4wfEoLOEhDLRl6Sc=";
+  types-aiobotocore-guardduty = buildTypesAiobotocorePackage "guardduty" "2.12.2" "sha256-1ZxRFzTb2F/i75WCd9IB0JROlhSpDH6POQTvuwAMtcA=";
 
-  types-aiobotocore-health = buildTypesAiobotocorePackage "health" "2.12.1" "sha256-/Dn89WzfH67/4MFpkCHW5FGNdKDR5xAqZogAoo0uTb0=";
+  types-aiobotocore-health = buildTypesAiobotocorePackage "health" "2.12.2" "sha256-ZEu6htVOjMnS8hpRfJ5+PDpg6WOFpIrYR+Wwd0J64x4=";
 
-  types-aiobotocore-healthlake = buildTypesAiobotocorePackage "healthlake" "2.12.1" "sha256-K05QqhDzTN9S4xz9nYX/HMjtYQPRsUjo/lua+15kreA=";
+  types-aiobotocore-healthlake = buildTypesAiobotocorePackage "healthlake" "2.12.2" "sha256-IE85NtxaiDBqwxM3/85T/1JWakgYbXXT7xXX8tE8U7g=";
 
-  types-aiobotocore-honeycode = buildTypesAiobotocorePackage "honeycode" "2.12.1" "sha256-N/RNj96TYYIEF8tM4T1O9A386rWpey7vNeENARYuVR4=";
+  types-aiobotocore-honeycode = buildTypesAiobotocorePackage "honeycode" "2.12.2" "sha256-bPhhNG/nTkXsKzK/bP76WHdwn1QViqvxSEIhkHqbMjk=";
 
-  types-aiobotocore-iam = buildTypesAiobotocorePackage "iam" "2.12.1" "sha256-m297NaucGsLk8wkezGmktS5L7dtvEHAclGDYo2LhOy0=";
+  types-aiobotocore-iam = buildTypesAiobotocorePackage "iam" "2.12.2" "sha256-4DgTLBlfpvUDfvVlu4MZcY/H1mtoPhyZJBOIv8xVAlQ=";
 
-  types-aiobotocore-identitystore = buildTypesAiobotocorePackage "identitystore" "2.12.1" "sha256-IpOR07RxE9OSF5Ia4haHw/N/SMIL6QWqNfmqhZrh5WI=";
+  types-aiobotocore-identitystore = buildTypesAiobotocorePackage "identitystore" "2.12.2" "sha256-LbU0IB9LD7sVNVIzoUF1xwqKvT75IedKN42M7W6e13I=";
 
-  types-aiobotocore-imagebuilder = buildTypesAiobotocorePackage "imagebuilder" "2.12.1" "sha256-SHfM9cerQSj7NmBHkC++6U5O9jOM3O0wWUXnu58nmRU=";
+  types-aiobotocore-imagebuilder = buildTypesAiobotocorePackage "imagebuilder" "2.12.2" "sha256-RVdWetHqv+oF5gJhKcJirocyeI96FhLI07qlhI9apkk=";
 
-  types-aiobotocore-importexport = buildTypesAiobotocorePackage "importexport" "2.12.1" "sha256-sflWs79vrb2/CW+Xnh/94qe97plOyzXqwn+wzYHRNrk=";
+  types-aiobotocore-importexport = buildTypesAiobotocorePackage "importexport" "2.12.2" "sha256-N0Dri5WpxxsgHy58blWVs7UNrvcwOVVXowbqkLV6T50=";
 
-  types-aiobotocore-inspector = buildTypesAiobotocorePackage "inspector" "2.12.1" "sha256-EpF8oSl8c2CCf6c+R2Y+hvlfjGqxtLJfMFuABrUbb0c=";
+  types-aiobotocore-inspector = buildTypesAiobotocorePackage "inspector" "2.12.2" "sha256-DakehZs/UE6Bh7b/ivTmue3uQclx9/1HBZn4DPZb+4s=";
 
-  types-aiobotocore-inspector2 = buildTypesAiobotocorePackage "inspector2" "2.12.1" "sha256-/WC/HvLK+BYcWWRvoNaLPwVoFSnTEDedqOA1zqiNYh4=";
+  types-aiobotocore-inspector2 = buildTypesAiobotocorePackage "inspector2" "2.12.2" "sha256-HUmiN5ZAV3l+LO+DtT7L/nFIuTv0xaAAm/tIhBF83C4=";
 
-  types-aiobotocore-internetmonitor = buildTypesAiobotocorePackage "internetmonitor" "2.12.1" "sha256-nnvd49vG1ZofJbWAnr1ZUsSFT4Jgmnde4mTVb8bjX8w=";
+  types-aiobotocore-internetmonitor = buildTypesAiobotocorePackage "internetmonitor" "2.12.2" "sha256-dEulJ3YmtaODVZiiz1zQfO5meNnDdlPILgihuvJYsPI=";
 
-  types-aiobotocore-iot = buildTypesAiobotocorePackage "iot" "2.12.1" "sha256-0/b7nYgrFnOComNlfvx0c+phkqsLTlQBQGubp1Md1AU=";
+  types-aiobotocore-iot = buildTypesAiobotocorePackage "iot" "2.12.2" "sha256-wXSOfVVJFe+yQwKwvVBxuyVq029qyYgNHowHQ63kLi0=";
 
-  types-aiobotocore-iot-data = buildTypesAiobotocorePackage "iot-data" "2.12.1" "sha256-FRCda6jDLcl1tI6PwTaYydY3jzrtJvmYlKvyCR766fM=";
+  types-aiobotocore-iot-data = buildTypesAiobotocorePackage "iot-data" "2.12.2" "sha256-4xmQ41ts7lyTHyOhutEx6jKZvjiI6bKb40H056kmu6Q=";
 
-  types-aiobotocore-iot-jobs-data = buildTypesAiobotocorePackage "iot-jobs-data" "2.12.1" "sha256-OkKiROSuCZ1Dy2/Jeoby0J3obSRRXToTUUUfY2bwlVk=";
+  types-aiobotocore-iot-jobs-data = buildTypesAiobotocorePackage "iot-jobs-data" "2.12.2" "sha256-CNmF9yts8zcZGoWDRpodIkMcho8eGeWTPAOYx2dH8/A=";
 
-  types-aiobotocore-iot-roborunner = buildTypesAiobotocorePackage "iot-roborunner" "2.12.1" "sha256-Mstavqb84CltIUmh5aw+Q5+6+w90ErjP9MYlsFrQSZQ=";
+  types-aiobotocore-iot-roborunner = buildTypesAiobotocorePackage "iot-roborunner" "2.12.2" "sha256-O/nGvYfUibI4EvHgONtkYHFv/dZSpHCehXjietPiMJo=";
 
-  types-aiobotocore-iot1click-devices = buildTypesAiobotocorePackage "iot1click-devices" "2.12.1" "sha256-+JiJr+Vvn1MZEKtRAtNNTlv9JEiX4hCzF0mcrCZBnvY=";
+  types-aiobotocore-iot1click-devices = buildTypesAiobotocorePackage "iot1click-devices" "2.12.2" "sha256-zMH/2TjygyROUjWDwsozbyoCMWquSbaq0e2ImVM53GI=";
 
-  types-aiobotocore-iot1click-projects = buildTypesAiobotocorePackage "iot1click-projects" "2.12.1" "sha256-044QFOHWRDFqiOA/JQ904BO46+P+/GWyqJrW+FyFs+w=";
+  types-aiobotocore-iot1click-projects = buildTypesAiobotocorePackage "iot1click-projects" "2.12.2" "sha256-4tjJAmrGkY0kkAPncSknqC33lgxSUMu8ClCfFpKVF1w=";
 
-  types-aiobotocore-iotanalytics = buildTypesAiobotocorePackage "iotanalytics" "2.12.1" "sha256-2ZCngNUtPYX1m173bPtZ9Xn4t8bVSZ4IQG2Rlux/aAs=";
+  types-aiobotocore-iotanalytics = buildTypesAiobotocorePackage "iotanalytics" "2.12.2" "sha256-r3zLmpdZq1gtGZCcleuIslDB0Bgk8HzVAzl2yOgFIOk=";
 
-  types-aiobotocore-iotdeviceadvisor = buildTypesAiobotocorePackage "iotdeviceadvisor" "2.12.1" "sha256-9Zby+hIaVQuoqHcSRulQ8+F4RIgTHzfNPSUcEm6x430=";
+  types-aiobotocore-iotdeviceadvisor = buildTypesAiobotocorePackage "iotdeviceadvisor" "2.12.2" "sha256-/Rux1JInDSnVbYs/jlCoVEiCf3ANsBc/agBlXasCQgA=";
 
-  types-aiobotocore-iotevents = buildTypesAiobotocorePackage "iotevents" "2.12.1" "sha256-eIGobenbMUDi7cuh28zbb2BP6IIsAxmOU6sj5dSJwbU=";
+  types-aiobotocore-iotevents = buildTypesAiobotocorePackage "iotevents" "2.12.2" "sha256-3s0jtHPsvhIcUpPk3z2BtTaQZR6J+RDIwQtxTexXdLE=";
 
-  types-aiobotocore-iotevents-data = buildTypesAiobotocorePackage "iotevents-data" "2.12.1" "sha256-yWAqc6peQ/fpKo9aokUzSHAq4PCuwKGzYUUsnxVEuCU=";
+  types-aiobotocore-iotevents-data = buildTypesAiobotocorePackage "iotevents-data" "2.12.2" "sha256-bK10y+aLN8N5wslhdu52XMLGgNH9LO0ep32uX9CuZzM=";
 
-  types-aiobotocore-iotfleethub = buildTypesAiobotocorePackage "iotfleethub" "2.12.1" "sha256-/G5zzVrwFwalyD/k0liRV0jI+zREXYEu35d8sQutKIc=";
+  types-aiobotocore-iotfleethub = buildTypesAiobotocorePackage "iotfleethub" "2.12.2" "sha256-j9dcSxRWODy3TkJ8Hr4ujG2aAFUW1+MtWgdMFVqB+Y4=";
 
-  types-aiobotocore-iotfleetwise = buildTypesAiobotocorePackage "iotfleetwise" "2.12.1" "sha256-c9z+iY9RNWFO3U+88O+FQPGLMbFTtOUrXu7E5Iq5n8g=";
+  types-aiobotocore-iotfleetwise = buildTypesAiobotocorePackage "iotfleetwise" "2.12.2" "sha256-pLPrleqesg452YXkEI2m1dUnxRB+f6yIIbMXygYUoig=";
 
-  types-aiobotocore-iotsecuretunneling = buildTypesAiobotocorePackage "iotsecuretunneling" "2.12.1" "sha256-2PstSZB2bk+Sz9q9DsNX0GoVGFwiYx/YOjlH1wZchXk=";
+  types-aiobotocore-iotsecuretunneling = buildTypesAiobotocorePackage "iotsecuretunneling" "2.12.2" "sha256-YgO57irLn0Phrp87Oy3LwUSChpcnoRrvVa0dDHnXdws=";
 
-  types-aiobotocore-iotsitewise = buildTypesAiobotocorePackage "iotsitewise" "2.12.1" "sha256-lgn9uGyoyF5CAgOOpHRGdjMjb78u9EQ0Nf9QTzyyW5U=";
+  types-aiobotocore-iotsitewise = buildTypesAiobotocorePackage "iotsitewise" "2.12.2" "sha256-oKg/Ij1VkKJicAAMPhlK4ZgvrWIObKzEv4J5ghVYKGE=";
 
-  types-aiobotocore-iotthingsgraph = buildTypesAiobotocorePackage "iotthingsgraph" "2.12.1" "sha256-Fy+88mBmjUgnRUqM2VLvvI5SWuY04o1aq4WHNk69B7w=";
+  types-aiobotocore-iotthingsgraph = buildTypesAiobotocorePackage "iotthingsgraph" "2.12.2" "sha256-j+Yly3Drp2OZp+VfbgO9xlya4+bkPW7RTojtSMl22xs=";
 
-  types-aiobotocore-iottwinmaker = buildTypesAiobotocorePackage "iottwinmaker" "2.12.1" "sha256-yhSsgqu/fPILYTEOuL+1g5bKC3V7nyegYg8WPO8/vQI=";
+  types-aiobotocore-iottwinmaker = buildTypesAiobotocorePackage "iottwinmaker" "2.12.2" "sha256-yuAwmATSv9rJiZoDawNsRjzi2cIvWTdYMtlCE29AXac=";
 
-  types-aiobotocore-iotwireless = buildTypesAiobotocorePackage "iotwireless" "2.12.1" "sha256-y4nUuqr++tjN7/JT0cYM5aY01iOGNXU57fjZUTJuP5E=";
+  types-aiobotocore-iotwireless = buildTypesAiobotocorePackage "iotwireless" "2.12.2" "sha256-coGGYQQ9IEfZird3b7CUN3I4i0yTx/BUxUEAOfzy6hY=";
 
-  types-aiobotocore-ivs = buildTypesAiobotocorePackage "ivs" "2.12.1" "sha256-vXYET71jHEMKdA6mFFVjjv1uK4tREDu5vXfXh5dOwZA=";
+  types-aiobotocore-ivs = buildTypesAiobotocorePackage "ivs" "2.12.2" "sha256-2qeniJPHq7UuN1XZjjboRPk+6LWKvnJejkAqDwsfpMU=";
 
-  types-aiobotocore-ivs-realtime = buildTypesAiobotocorePackage "ivs-realtime" "2.12.1" "sha256-mr+I1UbBSvw6y33vuSwaqCyT33zA1LhJmsvnkYL6970=";
+  types-aiobotocore-ivs-realtime = buildTypesAiobotocorePackage "ivs-realtime" "2.12.2" "sha256-mml/atoPlJc01/SNtsdJflIVdD7quHUeDDvuBFIdzJk=";
 
-  types-aiobotocore-ivschat = buildTypesAiobotocorePackage "ivschat" "2.12.1" "sha256-OXY0CRbaYPyOw68acgRJ0bHiy96dc70f30PbC8X7gSY=";
+  types-aiobotocore-ivschat = buildTypesAiobotocorePackage "ivschat" "2.12.2" "sha256-+thrqQWsysaEtI2QRHE9h5b829AAstr3bO6FzhM/r5o=";
 
-  types-aiobotocore-kafka = buildTypesAiobotocorePackage "kafka" "2.12.1" "sha256-knkfB2mafoeDKpNdnAZoOgcym/Qd3JraROwqneN9GPg=";
+  types-aiobotocore-kafka = buildTypesAiobotocorePackage "kafka" "2.12.2" "sha256-3aP7XxRoIkAYpXT+VCWv/l9fahZqD6cwt3sp68PaZss=";
 
-  types-aiobotocore-kafkaconnect = buildTypesAiobotocorePackage "kafkaconnect" "2.12.1" "sha256-40wG7JtuSibwSMl0XCeOxvJlYKBNc6SmyrxHYRLYtxc=";
+  types-aiobotocore-kafkaconnect = buildTypesAiobotocorePackage "kafkaconnect" "2.12.2" "sha256-FIdudAIjDPnUrfNWTr9p4JHk6X5OSDEIezge10kooGk=";
 
-  types-aiobotocore-kendra = buildTypesAiobotocorePackage "kendra" "2.12.1" "sha256-MqwoPPEnEv7uLRE+U5vFge2vr3/g5iYnyztbKJ9/ATc=";
+  types-aiobotocore-kendra = buildTypesAiobotocorePackage "kendra" "2.12.2" "sha256-37DjQeqoBv5/ee7Py7atxMEpFcO+MHVVlvq1SZvG+0Y=";
 
-  types-aiobotocore-kendra-ranking = buildTypesAiobotocorePackage "kendra-ranking" "2.12.1" "sha256-P25wxbzWNmFdcCR6eX+M27jMqQzCdM4L1AerLzltIUg=";
+  types-aiobotocore-kendra-ranking = buildTypesAiobotocorePackage "kendra-ranking" "2.12.2" "sha256-BbmM46/3RVK3Xu7Ld6HyOpK9kMS979AVLINCITUVEqQ=";
 
-  types-aiobotocore-keyspaces = buildTypesAiobotocorePackage "keyspaces" "2.12.1" "sha256-eMucpOTz1CpzfAuJIyAkR1Kr0qF1F5B03qpcNHR6c/Y=";
+  types-aiobotocore-keyspaces = buildTypesAiobotocorePackage "keyspaces" "2.12.2" "sha256-xQ4ApKTPpVi5ZHG/jJJh+TH7ySN9SQPVyx0Hb8QZD3U=";
 
-  types-aiobotocore-kinesis = buildTypesAiobotocorePackage "kinesis" "2.12.1" "sha256-J7U0j1XJB2ikTT1IfLcxltTczzqWDkmTP/8I/QIdvlE=";
+  types-aiobotocore-kinesis = buildTypesAiobotocorePackage "kinesis" "2.12.2" "sha256-2ECUqeEf9H4gTBVH3Q8KkDkyBjRyHvQB/tv2ETI5A64=";
 
-  types-aiobotocore-kinesis-video-archived-media = buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.12.1" "sha256-y7ALdUdp9fTc2b2hVtufJATcm8c8YjbR/fEnX5ynbX4=";
+  types-aiobotocore-kinesis-video-archived-media = buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.12.2" "sha256-pUcXz9U0/y5XmNh4aaeyD9h3NmUAXO4HOOF9OKXn2v8=";
 
-  types-aiobotocore-kinesis-video-media = buildTypesAiobotocorePackage "kinesis-video-media" "2.12.1" "sha256-jKMh2sbz1kIuKmx6qZYj+ZhMTaAORLux+X6oVrno8Fk=";
+  types-aiobotocore-kinesis-video-media = buildTypesAiobotocorePackage "kinesis-video-media" "2.12.2" "sha256-F6tEzbBT76/Ha2LWE7UGo2CGyGQujlkVo26p7IeghHI=";
 
-  types-aiobotocore-kinesis-video-signaling = buildTypesAiobotocorePackage "kinesis-video-signaling" "2.12.1" "sha256-DrZHSwqfQZ+mn5wmuWR3MbjolGkOg7mmnKr5uI/NGWo=";
+  types-aiobotocore-kinesis-video-signaling = buildTypesAiobotocorePackage "kinesis-video-signaling" "2.12.2" "sha256-iGBCoN/MO7T5rEByU7XIwsDaU4D0RlhdzFPuuGNNkgg=";
 
-  types-aiobotocore-kinesis-video-webrtc-storage = buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.12.1" "sha256-38R/9LUDMvNhAXmEA2sMR4KE+jB6O0hHJLaowPEnlMQ=";
+  types-aiobotocore-kinesis-video-webrtc-storage = buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.12.2" "sha256-8ROMjFVkx8g6rBHLgJOZEFs4kYAPm6Y9AqhArMnyisA=";
 
-  types-aiobotocore-kinesisanalytics = buildTypesAiobotocorePackage "kinesisanalytics" "2.12.1" "sha256-LnyZhLCGcN0Qbam0x+ALYGZlYky/ldLUg03bxRlyhf8=";
+  types-aiobotocore-kinesisanalytics = buildTypesAiobotocorePackage "kinesisanalytics" "2.12.2" "sha256-fd/GkiYXB3jnZFaKfBmK/ErRRKG1jkp+yZzyMJUDh2I=";
 
-  types-aiobotocore-kinesisanalyticsv2 = buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.12.1" "sha256-giSsTelOj3/bF5uPHx6WJhdKtqL6QljcU3l+Tp7aR4k=";
+  types-aiobotocore-kinesisanalyticsv2 = buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.12.2" "sha256-dxdItvqPNHryoFGzhammRZeiCL0u86DuHbSgDspUa0g=";
 
-  types-aiobotocore-kinesisvideo = buildTypesAiobotocorePackage "kinesisvideo" "2.12.1" "sha256-lmaTXcxKgevwoWJeUxTHmynCcZaIHXmnJjjvFAARLJw=";
+  types-aiobotocore-kinesisvideo = buildTypesAiobotocorePackage "kinesisvideo" "2.12.2" "sha256-H77H0tQF8D1bBDcBOvmPjjqV8xnhTXfCErW5b1dAedk=";
 
-  types-aiobotocore-kms = buildTypesAiobotocorePackage "kms" "2.12.1" "sha256-vonZnhR5Rh2ZVlXlBTuSfE6ipVliGKMIdhBAV6pl1NU=";
+  types-aiobotocore-kms = buildTypesAiobotocorePackage "kms" "2.12.2" "sha256-JR9YWdUr/WSctGZDpn8B5/uSRR8H6w5TZHLhH0XyNmM=";
 
-  types-aiobotocore-lakeformation = buildTypesAiobotocorePackage "lakeformation" "2.12.1" "sha256-IFFB7sUhrW46nrmQR/bSRTjVye+3C3eGQCrpe3jNVxs=";
+  types-aiobotocore-lakeformation = buildTypesAiobotocorePackage "lakeformation" "2.12.2" "sha256-fTD+ih2A2gSvIFodfLl6XtVHEARmuljXkw+wBIybNs0=";
 
-  types-aiobotocore-lambda = buildTypesAiobotocorePackage "lambda" "2.12.1" "sha256-A1oS/awripZCCFwwP3bpPt8xAn8MKHBd4Y7nDG9Beo0=";
+  types-aiobotocore-lambda = buildTypesAiobotocorePackage "lambda" "2.12.2" "sha256-K5GWmLHKP7F/wbXyP6lxInabLdeboYjp8VUws5lqqQI=";
 
-  types-aiobotocore-lex-models = buildTypesAiobotocorePackage "lex-models" "2.12.1" "sha256-W8xa7bl2wYS3SY6rZk7T65UvwntxCY9OHKKtVaDUMq8=";
+  types-aiobotocore-lex-models = buildTypesAiobotocorePackage "lex-models" "2.12.2" "sha256-yoCuE7N9r+dQTnI4Tpahk+XkgJF0En9KYv90fzZlgx8=";
 
-  types-aiobotocore-lex-runtime = buildTypesAiobotocorePackage "lex-runtime" "2.12.1" "sha256-IODLqqjC6UXTkT980S+drXqhnkNWH2ejzVWeo1LE45U=";
+  types-aiobotocore-lex-runtime = buildTypesAiobotocorePackage "lex-runtime" "2.12.2" "sha256-++3WGlOYNSNvshExKyfOf406n8vWpmWOitsMYOH+ymk=";
 
-  types-aiobotocore-lexv2-models = buildTypesAiobotocorePackage "lexv2-models" "2.12.1" "sha256-Jf2MQbBanDZetFUVH/5CVMYDzzBN7Th8K6RVUWkYaQc=";
+  types-aiobotocore-lexv2-models = buildTypesAiobotocorePackage "lexv2-models" "2.12.2" "sha256-hM3ssVD+OBs4a9lUqKSYvEDNPV4712q2LsliGZGimsM=";
 
-  types-aiobotocore-lexv2-runtime = buildTypesAiobotocorePackage "lexv2-runtime" "2.12.1" "sha256-jAsyQqIj3YXfEa6q/cZIPIjal+3YJqts6N13I5O+kHw=";
+  types-aiobotocore-lexv2-runtime = buildTypesAiobotocorePackage "lexv2-runtime" "2.12.2" "sha256-S9iJOMKtbc3XBmiFc1pxDgDpmRKd8HYvma2utVFytUg=";
 
-  types-aiobotocore-license-manager = buildTypesAiobotocorePackage "license-manager" "2.12.1" "sha256-AWe9VEJxap7+tL0flZqs2/SQemIzGKXJXWxx1ScLtC8=";
+  types-aiobotocore-license-manager = buildTypesAiobotocorePackage "license-manager" "2.12.2" "sha256-+Tc2zrfnK2SYYCIVhpHV5BlRa6CMpmNyHKmtf+HWv60=";
 
-  types-aiobotocore-license-manager-linux-subscriptions = buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.12.1" "sha256-0HhhZH3OBYQBK1q9RyqJqCBmINMzgZfj20iFVmPYMac=";
+  types-aiobotocore-license-manager-linux-subscriptions = buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.12.2" "sha256-5I7HN5+6y/RkOBq/P7hsg85ubH40V6x+fw/yLOvm1Vc=";
 
-  types-aiobotocore-license-manager-user-subscriptions = buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.12.1" "sha256-K7KXzCtdGS6ok79zNDxx9PxXPNbNPsp6fuucT/Us2/M=";
+  types-aiobotocore-license-manager-user-subscriptions = buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.12.2" "sha256-0BEGqnjne1Mf/Ad6wOI0TfuS7UeQD8zZSAKjGWX4ZD8=";
 
-  types-aiobotocore-lightsail = buildTypesAiobotocorePackage "lightsail" "2.12.1" "sha256-lRlifiUJCGbVkf0wVdrXQiwoOvQPqrXrvzl/4BqXpsM=";
+  types-aiobotocore-lightsail = buildTypesAiobotocorePackage "lightsail" "2.12.2" "sha256-qOI5ZpNcUZyYDLOeQbEIieIrJC2R2AjhwOm5p6MALq0=";
 
-  types-aiobotocore-location = buildTypesAiobotocorePackage "location" "2.12.1" "sha256-j+UcTL5YYpI5eCmWq1durTCIwuc0U94udfgNUCAgR9A=";
+  types-aiobotocore-location = buildTypesAiobotocorePackage "location" "2.12.2" "sha256-rbkuoTPBuR64rzxKY6vPSOsVEP6ySPEBESX/0FvObqA=";
 
-  types-aiobotocore-logs = buildTypesAiobotocorePackage "logs" "2.12.1" "sha256-CqByIbfkIeROXAFWvjS9pwPImo2dD10q1/7kTR5GA9w=";
+  types-aiobotocore-logs = buildTypesAiobotocorePackage "logs" "2.12.2" "sha256-dwW58A1MI8wY8f2dk10aZENeOraN9pK2fdFfwA/Kijs=";
 
-  types-aiobotocore-lookoutequipment = buildTypesAiobotocorePackage "lookoutequipment" "2.12.1" "sha256-++dMJ+uFbNkbRVKbMP3URxlKRj9pm6Je6+iQTAs3vqU=";
+  types-aiobotocore-lookoutequipment = buildTypesAiobotocorePackage "lookoutequipment" "2.12.2" "sha256-e+wxPC7W6fHY+Mpyu/XEvhfrANtZCEODzndm8XmkNrg=";
 
-  types-aiobotocore-lookoutmetrics = buildTypesAiobotocorePackage "lookoutmetrics" "2.12.1" "sha256-rInxd7NLuze5qs4fV47PmnptYPKyj/IwrHhrND/ufgw=";
+  types-aiobotocore-lookoutmetrics = buildTypesAiobotocorePackage "lookoutmetrics" "2.12.2" "sha256-CyYKju2+7R1yOQegIP9pBhbYzbRCO4/NDT4rVfdSryE=";
 
-  types-aiobotocore-lookoutvision = buildTypesAiobotocorePackage "lookoutvision" "2.12.1" "sha256-HOVBuDQoYpTCfie8GyyyrTY09OwXW8JvzO6eJJxQncI=";
+  types-aiobotocore-lookoutvision = buildTypesAiobotocorePackage "lookoutvision" "2.12.2" "sha256-qy3k2l2vo8hcJkKZZAgIcv8Hia7KqnJPrfkRLtz0osw=";
 
-  types-aiobotocore-m2 = buildTypesAiobotocorePackage "m2" "2.12.1" "sha256-e8jfy4ilPA0NLZMeP6zkrPhkGqLXKBX2bDSfu+bLpPY=";
+  types-aiobotocore-m2 = buildTypesAiobotocorePackage "m2" "2.12.2" "sha256-J/Wet0L6i9dEmYbe4hZZB+Ri0xOFzvwjDdwklOCMI64=";
 
-  types-aiobotocore-machinelearning = buildTypesAiobotocorePackage "machinelearning" "2.12.1" "sha256-A++bU7yYnFfL7FmAHqh6906dJb3YusAWBr9lHk7l608=";
+  types-aiobotocore-machinelearning = buildTypesAiobotocorePackage "machinelearning" "2.12.2" "sha256-qhH4cJyZG6u0Bv+c6IbNhRJRXKSvuazgTuX1bYD2nLQ=";
 
   types-aiobotocore-macie = buildTypesAiobotocorePackage "macie" "2.7.0" "sha256-hJJtGsK2b56nKX1ZhiarC+ffyjHYWRiC8II4oyDZWWw=";
 
-  types-aiobotocore-macie2 = buildTypesAiobotocorePackage "macie2" "2.12.1" "sha256-Cm8DEoGP6TwqvJcU4+JiYwkYKQP3GGKyAVY95lSUHmY=";
+  types-aiobotocore-macie2 = buildTypesAiobotocorePackage "macie2" "2.12.2" "sha256-nSBhjRTIz5Y4oVk3QFdT5fjQns5joLSOTOYpN3NLkx0=";
 
-  types-aiobotocore-managedblockchain = buildTypesAiobotocorePackage "managedblockchain" "2.12.1" "sha256-PWM8WIxLZTjGch2Mhu9n0v0x63fGK0J6XcL8U0MXEMs=";
+  types-aiobotocore-managedblockchain = buildTypesAiobotocorePackage "managedblockchain" "2.12.2" "sha256-1EvGSxhSYFcBQaNBL1S/0CxPYZzR32dHwqZmWPL4XzI=";
 
-  types-aiobotocore-managedblockchain-query = buildTypesAiobotocorePackage "managedblockchain-query" "2.12.1" "sha256-7sCnI6B/QM7AcB2iEDCSNKRgIcFCUyJct2Jg/KoQk64=";
+  types-aiobotocore-managedblockchain-query = buildTypesAiobotocorePackage "managedblockchain-query" "2.12.2" "sha256-9huoAvQVb7xCdB2LYwRZJUeaHsNlPKoLW7YpMd/yRIk=";
 
-  types-aiobotocore-marketplace-catalog = buildTypesAiobotocorePackage "marketplace-catalog" "2.12.1" "sha256-ho34PTQaL4POvic2Nzy+fuCYanrXGOXN9Jf+qd+dMX4=";
+  types-aiobotocore-marketplace-catalog = buildTypesAiobotocorePackage "marketplace-catalog" "2.12.2" "sha256-BfXESvCJxAH2FTlRQnLW9jd5bNcp3++/wRP+3seU3KM=";
 
-  types-aiobotocore-marketplace-entitlement = buildTypesAiobotocorePackage "marketplace-entitlement" "2.12.1" "sha256-pdRHgmA3ul+2ww+hOO2TTs7brvMAXZXM7QQTqTWfDz4=";
+  types-aiobotocore-marketplace-entitlement = buildTypesAiobotocorePackage "marketplace-entitlement" "2.12.2" "sha256-57CTCjocq/Lqfa7jpxtUuf4SwKl5sOPR2vfXXTSA0A8=";
 
-  types-aiobotocore-marketplacecommerceanalytics = buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.12.1" "sha256-rXnL667PBKx5IxK3YJzJiWN8wFlDvz09RjaIMrVIyZo=";
+  types-aiobotocore-marketplacecommerceanalytics = buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.12.2" "sha256-xOi59tLCjwveFz3/vHiF8nr0+Vihcz24j9Ht29I9UNA=";
 
-  types-aiobotocore-mediaconnect = buildTypesAiobotocorePackage "mediaconnect" "2.12.1" "sha256-bm/2aSToVTIaxBs0i/v4As2mX4vK81RqZIjzgrQYP+g=";
+  types-aiobotocore-mediaconnect = buildTypesAiobotocorePackage "mediaconnect" "2.12.2" "sha256-CBBOJFlYbG1ox9IveURJo3HVahX9qxXddQUBUD6R1fI=";
 
-  types-aiobotocore-mediaconvert = buildTypesAiobotocorePackage "mediaconvert" "2.12.1" "sha256-52088rNi5Vuf0CuDU2LdXV4ZSoWaHqBeTD42DOEmDTs=";
+  types-aiobotocore-mediaconvert = buildTypesAiobotocorePackage "mediaconvert" "2.12.2" "sha256-UVnDCv5MB2F0CiOo8nQ+hPbAeD31wMl/uc9qgYw+new=";
 
-  types-aiobotocore-medialive = buildTypesAiobotocorePackage "medialive" "2.12.1" "sha256-/B3qy79nPiz8Xo5KxJKDnUKo6PclE/pXrkjSJmlcz9I=";
+  types-aiobotocore-medialive = buildTypesAiobotocorePackage "medialive" "2.12.2" "sha256-kxgheN0PKRA8gv0yiTf5Muazu9TKrd8UzZL5+2ay2NA=";
 
-  types-aiobotocore-mediapackage = buildTypesAiobotocorePackage "mediapackage" "2.12.1" "sha256-a3qTy0sS8J8iEBvcPCXAC2lSLuuhEbslLork1HaHrF8=";
+  types-aiobotocore-mediapackage = buildTypesAiobotocorePackage "mediapackage" "2.12.2" "sha256-PjPr4HeUb/VplY/hmF8gOa3RWzNGLX508to8dYKAIio=";
 
-  types-aiobotocore-mediapackage-vod = buildTypesAiobotocorePackage "mediapackage-vod" "2.12.1" "sha256-4jyIrHer52rwi0ry9uBhMPm2YbzEWqhiHaSPqHfFr98=";
+  types-aiobotocore-mediapackage-vod = buildTypesAiobotocorePackage "mediapackage-vod" "2.12.2" "sha256-2kP8Gx1QCnaewG0UHwk+5NTzAN6tP2NYiwGY1m5V2Og=";
 
-  types-aiobotocore-mediapackagev2 = buildTypesAiobotocorePackage "mediapackagev2" "2.12.1" "sha256-KOFEpAVUnaN607soHl7SCq79KU/qS/ab/GGH9QEQJ4Y=";
+  types-aiobotocore-mediapackagev2 = buildTypesAiobotocorePackage "mediapackagev2" "2.12.2" "sha256-BW3c4xoh1Mv0uo+NCSg6Xl1bUhFmXFSc402/WO/8hv0=";
 
-  types-aiobotocore-mediastore = buildTypesAiobotocorePackage "mediastore" "2.12.1" "sha256-A4V8LMaloeRlOBNIEI43I4Rkyl2NllwB87XJVy9KDGo=";
+  types-aiobotocore-mediastore = buildTypesAiobotocorePackage "mediastore" "2.12.2" "sha256-BAt31NLW9YbSCBEGBwOJzgOUGtHoiobe4b3wWv6dSRM=";
 
-  types-aiobotocore-mediastore-data = buildTypesAiobotocorePackage "mediastore-data" "2.12.1" "sha256-tXvQxnQSShN4gVQunAhmKEQztuJfJpxxvhXTh3kXyKA=";
+  types-aiobotocore-mediastore-data = buildTypesAiobotocorePackage "mediastore-data" "2.12.2" "sha256-mgSCGs0bIO6DcEh2ltDFyqpm0+8SPhy2DvKr/vep6mo=";
 
-  types-aiobotocore-mediatailor = buildTypesAiobotocorePackage "mediatailor" "2.12.1" "sha256-7FvUjBLyNRBZOApbvurtXt0exH9htacmJq9exlGBDMg=";
+  types-aiobotocore-mediatailor = buildTypesAiobotocorePackage "mediatailor" "2.12.2" "sha256-9yNQOmGY4cnGo+0tv9cC9WX/I9Hrp8FFrRFSXCt3Eag=";
 
-  types-aiobotocore-medical-imaging = buildTypesAiobotocorePackage "medical-imaging" "2.12.1" "sha256-NVA0xf98DhJXfzNdLu42lV+ilO8gz2ZRt/Kxk68GP9I=";
+  types-aiobotocore-medical-imaging = buildTypesAiobotocorePackage "medical-imaging" "2.12.2" "sha256-94w2Q6SBAUSl4K4xF44EsmTL58V8CioP5B/iCVGhPwI=";
 
-  types-aiobotocore-memorydb = buildTypesAiobotocorePackage "memorydb" "2.12.1" "sha256-hn/83GWPAn6UL8Ez+L/mdiGPy0ycFvNDcLcEvAd/+a8=";
+  types-aiobotocore-memorydb = buildTypesAiobotocorePackage "memorydb" "2.12.2" "sha256-goKbZrz221ckjnKb2csaRJoVkYbUEXPxPi6Rx29Jg5Y=";
 
-  types-aiobotocore-meteringmarketplace = buildTypesAiobotocorePackage "meteringmarketplace" "2.12.1" "sha256-SNGrScKSyEp35Aq+vs+uXk67ab0M1tjwkOuO/mmgrtY=";
+  types-aiobotocore-meteringmarketplace = buildTypesAiobotocorePackage "meteringmarketplace" "2.12.2" "sha256-Qs0ISYY5cIxJW1c5XQVgSk7IIB8QFZlFMrKXSek0d7A=";
 
-  types-aiobotocore-mgh = buildTypesAiobotocorePackage "mgh" "2.12.1" "sha256-lbmcxyFquZmbFEmQbmIY6lqdJmukR1dLkH9CgS52MQM=";
+  types-aiobotocore-mgh = buildTypesAiobotocorePackage "mgh" "2.12.2" "sha256-iiy8qAvbvcB1DBZ2f/ebg7SPXfFWHYu96aQh/rwLqsg=";
 
-  types-aiobotocore-mgn = buildTypesAiobotocorePackage "mgn" "2.12.1" "sha256-NNjPCZxxV3Nx0+2OTV93SLN3AM6wF2Uqq8BNaWm2dVk=";
+  types-aiobotocore-mgn = buildTypesAiobotocorePackage "mgn" "2.12.2" "sha256-y6keS7tgcHC1oZi3gcNqecz20xmOIpZ0jvIOR84hRsE=";
 
-  types-aiobotocore-migration-hub-refactor-spaces = buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.12.1" "sha256-eHH4V6svWNwjD9StyvyxTZ4DTwVsBX0VU65mTcKMZ7k=";
+  types-aiobotocore-migration-hub-refactor-spaces = buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.12.2" "sha256-RGGGLmSXLT+xfzMX9AtF8TaL4Q3DrAivDTer/rHUmho=";
 
-  types-aiobotocore-migrationhub-config = buildTypesAiobotocorePackage "migrationhub-config" "2.12.1" "sha256-rMCfG8GrTGzFBPE6oS+2DSZ7rD2XW1weGImOO85nDP4=";
+  types-aiobotocore-migrationhub-config = buildTypesAiobotocorePackage "migrationhub-config" "2.12.2" "sha256-FggcsS518/ruQpaqZg8hcc3pHABTMGpOcUA5WzsJGZo=";
 
-  types-aiobotocore-migrationhuborchestrator = buildTypesAiobotocorePackage "migrationhuborchestrator" "2.12.1" "sha256-uGWiICcRZzVCCKPmWwqV0JoytgeVFcJexgLcUE64PCM=";
+  types-aiobotocore-migrationhuborchestrator = buildTypesAiobotocorePackage "migrationhuborchestrator" "2.12.2" "sha256-a1Z+p31ejt3THonN3++G9QyK8zLTLuRiDmeUMtOUKOI=";
 
-  types-aiobotocore-migrationhubstrategy = buildTypesAiobotocorePackage "migrationhubstrategy" "2.12.1" "sha256-wcN2fJO1BrHJiItDkqIxvvWwnzFIw9YQCQYKfbfi4Xc=";
+  types-aiobotocore-migrationhubstrategy = buildTypesAiobotocorePackage "migrationhubstrategy" "2.12.2" "sha256-DlN06USadfepXgXOXwHOTumC3uf1k1m88hkVGUjbmT8=";
 
-  types-aiobotocore-mobile = buildTypesAiobotocorePackage "mobile" "2.12.1" "sha256-p5uySMWHaMLvdFP4qlWySsUByqw/8YrYAkJSWdLC4B4=";
+  types-aiobotocore-mobile = buildTypesAiobotocorePackage "mobile" "2.12.2" "sha256-7ZRRkspQmH7nUA2mEIvB7+i9J5NfJ99CBvdZK/oOjnI=";
 
-  types-aiobotocore-mq = buildTypesAiobotocorePackage "mq" "2.12.1" "sha256-RI5nNpGCl4jXeAla990a6R5+YH+IyR9dpkxbSrI30dM=";
+  types-aiobotocore-mq = buildTypesAiobotocorePackage "mq" "2.12.2" "sha256-RzO3j+nLqUUdmu7TeL30JnfmWYZhBL19m9QoiMYIUsQ=";
 
-  types-aiobotocore-mturk = buildTypesAiobotocorePackage "mturk" "2.12.1" "sha256-VHQSTVDau/EDXslby+ZFsBqDd5iPM7jlZ4SNsr1fh2Y=";
+  types-aiobotocore-mturk = buildTypesAiobotocorePackage "mturk" "2.12.2" "sha256-YmoUT3LtPMbhltnX1ogHg1EU5FlYzRIrDh+Hsa9hcpo=";
 
-  types-aiobotocore-mwaa = buildTypesAiobotocorePackage "mwaa" "2.12.1" "sha256-CX58a5H9pYhMlXqf9hx2HRmqYUInLBmfEhX6/VqYG64=";
+  types-aiobotocore-mwaa = buildTypesAiobotocorePackage "mwaa" "2.12.2" "sha256-pGDsqWgWVodxKE1cFO16+7nxmrZth2ytht8Y1Kl41zM=";
 
-  types-aiobotocore-neptune = buildTypesAiobotocorePackage "neptune" "2.12.1" "sha256-RdCi4jseTuX11ZqNdvnH6Lral68aVKE9xehhhinCE6M=";
+  types-aiobotocore-neptune = buildTypesAiobotocorePackage "neptune" "2.12.2" "sha256-Ng8w4ofKoRDVzBqAz39bWUaKf8irRCBiNcG+ZS9ydSc=";
 
-  types-aiobotocore-network-firewall = buildTypesAiobotocorePackage "network-firewall" "2.12.1" "sha256-1xujtFAG0Jh65Ds6MrgY0Tw4KyYMRFbll30t0S+Pc2g=";
+  types-aiobotocore-network-firewall = buildTypesAiobotocorePackage "network-firewall" "2.12.2" "sha256-olp26SNu18zkvokRVQqGD/+gLbgdE0KuHjG43GU9sc8=";
 
-  types-aiobotocore-networkmanager = buildTypesAiobotocorePackage "networkmanager" "2.12.1" "sha256-1nBKGtnU7PaZXhsrwBZbJfwGdbi5FPFwszIXxmw/HGg=";
+  types-aiobotocore-networkmanager = buildTypesAiobotocorePackage "networkmanager" "2.12.2" "sha256-QEseMxRJhjpzBl4JA1DmD50jMOGoFwCxsO+b13oG5YE=";
 
-  types-aiobotocore-nimble = buildTypesAiobotocorePackage "nimble" "2.12.1" "sha256-zLrnjFSKA53wgxsStGQfLqogX5u2l58kdzOFTTgelQA=";
+  types-aiobotocore-nimble = buildTypesAiobotocorePackage "nimble" "2.12.2" "sha256-Ipd5zzhasx6RAg1Z6V+iGkfVujPRBNvqWVpfgMid09U=";
 
-  types-aiobotocore-oam = buildTypesAiobotocorePackage "oam" "2.12.1" "sha256-Ujm2i+dRU3STj+A58KZS/Ypkod36JpWlXvAKO/NLErs=";
+  types-aiobotocore-oam = buildTypesAiobotocorePackage "oam" "2.12.2" "sha256-VDqLVHzV6y3SXi4AXmXeNid1oJozldN13jzThgH8pDo=";
 
-  types-aiobotocore-omics = buildTypesAiobotocorePackage "omics" "2.12.1" "sha256-uMef3Qrh+H631nsOsy7OEB4zeETR707ld6Jz6NjWwL8=";
+  types-aiobotocore-omics = buildTypesAiobotocorePackage "omics" "2.12.2" "sha256-bLW7ZSgjt+wPU7pY01Kkbvw5ad6KPntini/dWojv/zw=";
 
-  types-aiobotocore-opensearch = buildTypesAiobotocorePackage "opensearch" "2.12.1" "sha256-kSnMbexNutPYHJfj4qgbFR3mhOU3rWputXUhBu7rFeo=";
+  types-aiobotocore-opensearch = buildTypesAiobotocorePackage "opensearch" "2.12.2" "sha256-NKKYyM7AFn9zJue4z6LisAv+1h159BTAmoUyMy/XiWg=";
 
-  types-aiobotocore-opensearchserverless = buildTypesAiobotocorePackage "opensearchserverless" "2.12.1" "sha256-N5vfHByujicDNnRiXIWkudjivmPoNeEpsnZYeX18Uok=";
+  types-aiobotocore-opensearchserverless = buildTypesAiobotocorePackage "opensearchserverless" "2.12.2" "sha256-ngxBovkRBXpJfX5D1Heuyf1jpfAxSK0S56gtZFQI0Ec=";
 
-  types-aiobotocore-opsworks = buildTypesAiobotocorePackage "opsworks" "2.12.1" "sha256-7R8AtGb0Gt6XfWBUYSjudRUGRGF2tp9Ey3Bqh6LJ7wM=";
+  types-aiobotocore-opsworks = buildTypesAiobotocorePackage "opsworks" "2.12.2" "sha256-EPR1oeh2FbDwhloUoUJzB3ukU/5FPBC1pxfTxItFafg=";
 
-  types-aiobotocore-opsworkscm = buildTypesAiobotocorePackage "opsworkscm" "2.12.1" "sha256-5N/yQdfPTdJTkF2Yo0szvLK7tHYBALqahIbTwG2YSFM=";
+  types-aiobotocore-opsworkscm = buildTypesAiobotocorePackage "opsworkscm" "2.12.2" "sha256-h7T4cjY3Ym/P7Rk0PlZvN6EVdLR1PgFLR923X9DOGdc=";
 
-  types-aiobotocore-organizations = buildTypesAiobotocorePackage "organizations" "2.12.1" "sha256-CEEKhdfh//GBT9pbOqu3pxCg0iy83LBy172FmVWbnK8=";
+  types-aiobotocore-organizations = buildTypesAiobotocorePackage "organizations" "2.12.2" "sha256-jJyJpQLEdrv3q82z3R/YKzx+02Q9j4JmtJfEWQkpmAw=";
 
-  types-aiobotocore-osis = buildTypesAiobotocorePackage "osis" "2.12.1" "sha256-IRo94LgBBk4sawgE9fpySggeG6EjmyLRf7cHLzIYcBo=";
+  types-aiobotocore-osis = buildTypesAiobotocorePackage "osis" "2.12.2" "sha256-M4lVp6DWFyrwzlpwxiqC5bMLcO/j4a85HxSnVq0/iiQ=";
 
-  types-aiobotocore-outposts = buildTypesAiobotocorePackage "outposts" "2.12.1" "sha256-PXACndLusmvG0cYQESek4mr/k376seaNia4x0KqufBk=";
+  types-aiobotocore-outposts = buildTypesAiobotocorePackage "outposts" "2.12.2" "sha256-0MV1PfsZECgq+u61/8yOUC1HPze623VfAJIm62JiFyM=";
 
-  types-aiobotocore-panorama = buildTypesAiobotocorePackage "panorama" "2.12.1" "sha256-58uOgEi1MyxZU4rRG8WO2IEUq7YWG2nIgQwcPQG770o=";
+  types-aiobotocore-panorama = buildTypesAiobotocorePackage "panorama" "2.12.2" "sha256-wN1Zgw88oK4vyNJJVUZ1cAeGcBhMiFAQ7Ct05kGMT38=";
 
-  types-aiobotocore-payment-cryptography = buildTypesAiobotocorePackage "payment-cryptography" "2.12.1" "sha256-dOUHOX72DzvICM0jPPZueDkvasPRp01JwubfeaUSqWk=";
+  types-aiobotocore-payment-cryptography = buildTypesAiobotocorePackage "payment-cryptography" "2.12.2" "sha256-3ZMmQhutDZ37xywyMrtGdhhNfmwS9Q63cf0tuzyjPAk=";
 
-  types-aiobotocore-payment-cryptography-data = buildTypesAiobotocorePackage "payment-cryptography-data" "2.12.1" "sha256-qK5LnCwuiMJB1s5T1ncVOF45q5VILHO5SHhpCD5G0kk=";
+  types-aiobotocore-payment-cryptography-data = buildTypesAiobotocorePackage "payment-cryptography-data" "2.12.2" "sha256-Ix8Hze5f5J9NbyU/FnoWC1XWKQo5NttwSohHA7QSHt8=";
 
-  types-aiobotocore-personalize = buildTypesAiobotocorePackage "personalize" "2.12.1" "sha256-p94/gqPE0V5HRmC+bSqx5yGg6hyVYJE1w9lGwruONX8=";
+  types-aiobotocore-personalize = buildTypesAiobotocorePackage "personalize" "2.12.2" "sha256-AwT3/QK4AUEPQRBIQ5stFfDXjfgCixVu7WWqwL81/7w=";
 
-  types-aiobotocore-personalize-events = buildTypesAiobotocorePackage "personalize-events" "2.12.1" "sha256-GsyLDjpZvGnf8dAWB+ibT0ZuRts2WU8P3fQ2i2Wwjn4=";
+  types-aiobotocore-personalize-events = buildTypesAiobotocorePackage "personalize-events" "2.12.2" "sha256-b5CyfUzzMisQC5E2XC0nCdj1SCMRZJKA4H5V4bkEET4=";
 
-  types-aiobotocore-personalize-runtime = buildTypesAiobotocorePackage "personalize-runtime" "2.12.1" "sha256-Oq7DFo4Xi7a7naEflLlPDaR2zpFv1/cKjMsQfAMshT8=";
+  types-aiobotocore-personalize-runtime = buildTypesAiobotocorePackage "personalize-runtime" "2.12.2" "sha256-tWcc0H0S7lZgHdj42iDroqu9W5S9ZGtQ+L3EnU6Z4rM=";
 
-  types-aiobotocore-pi = buildTypesAiobotocorePackage "pi" "2.12.1" "sha256-RyvXuiebtNWG49SBbKmwFYRKxd6Ba/UKNphCxZ3XhVQ=";
+  types-aiobotocore-pi = buildTypesAiobotocorePackage "pi" "2.12.2" "sha256-MehRBiTkYLTSynpwIQJB3+Q/DgwOUQMwfXlYDi3w5WI=";
 
-  types-aiobotocore-pinpoint = buildTypesAiobotocorePackage "pinpoint" "2.12.1" "sha256-UWnbgABQfwd2rUz952iFMh1QPdEchzgw/aeggi/+/9A=";
+  types-aiobotocore-pinpoint = buildTypesAiobotocorePackage "pinpoint" "2.12.2" "sha256-MzenXuejYdjqnKDhyp2NdVJMrUQ3j5EGhkB81e2PBQM=";
 
-  types-aiobotocore-pinpoint-email = buildTypesAiobotocorePackage "pinpoint-email" "2.12.1" "sha256-WinsN8jm/Ua0iYhMS5FAHlELJYbpfH8TRzRJEcQGevc=";
+  types-aiobotocore-pinpoint-email = buildTypesAiobotocorePackage "pinpoint-email" "2.12.2" "sha256-PEWYZIcR8N+eYRC1YorF2+OGRA2YLCRwD53Q13AHx8Y=";
 
-  types-aiobotocore-pinpoint-sms-voice = buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.12.1" "sha256-OcP5l7Xc8AIY9c9/Cx3a6JzNFu3kC0+pH5/TzNjgbqQ=";
+  types-aiobotocore-pinpoint-sms-voice = buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.12.2" "sha256-F+Lqf2IOPco9411tcLeECO/NDOIg8CjJGKnhxGOPlY8=";
 
-  types-aiobotocore-pinpoint-sms-voice-v2 = buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.12.1" "sha256-9uVmiRlhT66EYFgoImQa7uLhX8HvvO4mo6wW1dwUkmk=";
+  types-aiobotocore-pinpoint-sms-voice-v2 = buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.12.2" "sha256-UIxVqV5IFVFWUdjgac4vNzkYbq/jGyu7r8VlQUG4DhM=";
 
-  types-aiobotocore-pipes = buildTypesAiobotocorePackage "pipes" "2.12.1" "sha256-T5ggvFxgi2rWsOw+vArGx9zVLmGZxB4fsZ+GIz6X13U=";
+  types-aiobotocore-pipes = buildTypesAiobotocorePackage "pipes" "2.12.2" "sha256-SytI03HrvJQNxh4+08BOQSAuc9L/lJTlfArTXQlKJxE=";
 
-  types-aiobotocore-polly = buildTypesAiobotocorePackage "polly" "2.12.1" "sha256-6thPshwvWCl4666WKAUyFL8JcNbvZ6mRHpvRSeZrvxE=";
+  types-aiobotocore-polly = buildTypesAiobotocorePackage "polly" "2.12.2" "sha256-OW4mbtGlnSZ/XI5XV2V7HWT40AU3KE/QJ1cJL8i5hfE=";
 
-  types-aiobotocore-pricing = buildTypesAiobotocorePackage "pricing" "2.12.1" "sha256-2vFSQr2uFCWEOjBtmQjAWyKw85/NfKuDGKnu6Vfq85s=";
+  types-aiobotocore-pricing = buildTypesAiobotocorePackage "pricing" "2.12.2" "sha256-29DE4QWR6vxAlXXg9ogWIw2m0tiPOXNbCJHf3auMap8=";
 
-  types-aiobotocore-privatenetworks = buildTypesAiobotocorePackage "privatenetworks" "2.12.1" "sha256-NCiA+mnWkeS6li7ruHZ8k2UM2rpHWJbE0UohIDhGDko=";
+  types-aiobotocore-privatenetworks = buildTypesAiobotocorePackage "privatenetworks" "2.12.2" "sha256-/Hcb08LOIy1gcYjrI9F4R1v7pFW0iukp2cV2iy9W4oA=";
 
-  types-aiobotocore-proton = buildTypesAiobotocorePackage "proton" "2.12.1" "sha256-2exlCIbq2xS+kvRR+LBEe0//Oit9wXhPxrITzASk6SI=";
+  types-aiobotocore-proton = buildTypesAiobotocorePackage "proton" "2.12.2" "sha256-Eja/Y797YeMFleClVOKK0QA3O1uBK/ynAFuxdrC1JhY=";
 
-  types-aiobotocore-qldb = buildTypesAiobotocorePackage "qldb" "2.12.1" "sha256-C7JHRm/SnRWMCBMzcpmmByMtcsK9Ozwd/IauoKKoZag=";
+  types-aiobotocore-qldb = buildTypesAiobotocorePackage "qldb" "2.12.2" "sha256-ztgDsbYexUlzCji5Hxa8+SfU1Gs1K903cJmLkcfgOLQ=";
 
-  types-aiobotocore-qldb-session = buildTypesAiobotocorePackage "qldb-session" "2.12.1" "sha256-3xfvNRLpJD+eUH4yLzNSYYf2g9OLmgEAOP7VKu/eaho=";
+  types-aiobotocore-qldb-session = buildTypesAiobotocorePackage "qldb-session" "2.12.2" "sha256-ZM5XLZJkcNwVlj4txCAGZNVzLrUWuXBWUhyPvrxgABM=";
 
-  types-aiobotocore-quicksight = buildTypesAiobotocorePackage "quicksight" "2.12.1" "sha256-BgO49MbWTu63gi8NoILgqOH7fnZmsSwCoxMNUBOzrvg=";
+  types-aiobotocore-quicksight = buildTypesAiobotocorePackage "quicksight" "2.12.2" "sha256-PJ5Wlfl5mFgGF3OaBUp76KN7CNMsoRwZcrzGAVzXJ8A=";
 
-  types-aiobotocore-ram = buildTypesAiobotocorePackage "ram" "2.12.1" "sha256-EXG6jgh2RWvjURXu0I4qQprATS3Ip35gEQK6MLhE6SU=";
+  types-aiobotocore-ram = buildTypesAiobotocorePackage "ram" "2.12.2" "sha256-idMuIdxSXJqeyflzO3U9LXOr7etwdpb8Vun+KK+W0xA=";
 
-  types-aiobotocore-rbin = buildTypesAiobotocorePackage "rbin" "2.12.1" "sha256-WgPe6GjNL9F/VdQs4pp3xK0f5dyR23JZyfehm5I6sTo=";
+  types-aiobotocore-rbin = buildTypesAiobotocorePackage "rbin" "2.12.2" "sha256-7QZihv5XMyGhGxcN32F0NzexQRTAtNEOYKaR68B1QV0=";
 
-  types-aiobotocore-rds = buildTypesAiobotocorePackage "rds" "2.12.1" "sha256-lgeDWUKBZCxVJayyytTiYbQboTdRBvIu7/HvhO4Wqkc=";
+  types-aiobotocore-rds = buildTypesAiobotocorePackage "rds" "2.12.2" "sha256-Mrckkfb/G9OC+wuQOw0Au4SGI/F/Exqj5g7c9/uiw3s=";
 
-  types-aiobotocore-rds-data = buildTypesAiobotocorePackage "rds-data" "2.12.1" "sha256-/m11lpU8mBO1DkvbN9hg090aCjTLrqaULpCBUnCadSk=";
+  types-aiobotocore-rds-data = buildTypesAiobotocorePackage "rds-data" "2.12.2" "sha256-N+ff5ZOUu6iAIPTow4Y4vgscHtDc4k0qH3STVdAiKks=";
 
-  types-aiobotocore-redshift = buildTypesAiobotocorePackage "redshift" "2.12.1" "sha256-/VL1Bzn27YKCL+Awdfg+4g+cg1ZD8Z9xvVS+jN91PU0=";
+  types-aiobotocore-redshift = buildTypesAiobotocorePackage "redshift" "2.12.2" "sha256-TDcemfXL2G8wUMmyHV2LXfCO76bhKNwxbSeemtG7wKI=";
 
-  types-aiobotocore-redshift-data = buildTypesAiobotocorePackage "redshift-data" "2.12.1" "sha256-OUTaZTCSUJLzzBNoxxHDCn+LRodqeakEgteHIjfyM7s=";
+  types-aiobotocore-redshift-data = buildTypesAiobotocorePackage "redshift-data" "2.12.2" "sha256-Fmy1QYmj2wPMc1lS17gfVUS7Q30gV7gg48CBGLAIUZU=";
 
-  types-aiobotocore-redshift-serverless = buildTypesAiobotocorePackage "redshift-serverless" "2.12.1" "sha256-nkRZzNd0KdBdb4pEbpr8oHAiAOzuMo8RNXJiKtTXT00=";
+  types-aiobotocore-redshift-serverless = buildTypesAiobotocorePackage "redshift-serverless" "2.12.2" "sha256-3OY8OSz/OfwnQ56flsy78O4UY3U0Eq8VwOlZE5Pgu70=";
 
-  types-aiobotocore-rekognition = buildTypesAiobotocorePackage "rekognition" "2.12.1" "sha256-05PKIuZPVLdYoVeeDVYrhR6Y6YJq41Sm0zql3GMd2GE=";
+  types-aiobotocore-rekognition = buildTypesAiobotocorePackage "rekognition" "2.12.2" "sha256-MWehv4SxIzGn9BCdX4VGxRQTB1/87TxQSUjhgNYneT4=";
 
-  types-aiobotocore-resiliencehub = buildTypesAiobotocorePackage "resiliencehub" "2.12.1" "sha256-BI7AQcnbbmA3jAE+weckSULbCLi7L+E6Bviwcp6nUTY=";
+  types-aiobotocore-resiliencehub = buildTypesAiobotocorePackage "resiliencehub" "2.12.2" "sha256-XfYtSqUPSp2GgkEWspls5rIg9v1iYqQwSBzMbJF2RwY=";
 
-  types-aiobotocore-resource-explorer-2 = buildTypesAiobotocorePackage "resource-explorer-2" "2.12.1" "sha256-5QLkLGSEVy4WunpnwixrY7NC74G0qscsyRRonAiziuM=";
+  types-aiobotocore-resource-explorer-2 = buildTypesAiobotocorePackage "resource-explorer-2" "2.12.2" "sha256-NHCI46o5Em6PaT4J5Po3sMxrDurILGPNB/yrr2+z5ew=";
 
-  types-aiobotocore-resource-groups = buildTypesAiobotocorePackage "resource-groups" "2.12.1" "sha256-ulM+lDPXOSw//ATwgvHUwRN6mt4JCPxsI9kvlFeBW8g=";
+  types-aiobotocore-resource-groups = buildTypesAiobotocorePackage "resource-groups" "2.12.2" "sha256-/BMPSJlAJnXuyXzFJ3C4P/q+3CyQez3DE1d/n/qs4jI=";
 
-  types-aiobotocore-resourcegroupstaggingapi = buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.12.1" "sha256-eNAIL3H4R2DeCcPD80gmgCPw6OajhHMfyAAYsLZ5qk0=";
+  types-aiobotocore-resourcegroupstaggingapi = buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.12.2" "sha256-6T9Jy6fquOMR1SdyuCePlKaRMawsPNVBCC8ikL7yBlI=";
 
-  types-aiobotocore-robomaker = buildTypesAiobotocorePackage "robomaker" "2.12.1" "sha256-mEDDY5dN90CuxIe48KECB4FnVikxO+5sGzb0HznEWgQ=";
+  types-aiobotocore-robomaker = buildTypesAiobotocorePackage "robomaker" "2.12.2" "sha256-rhMxrUYyh4LNvdBzeU2weQ5tYeB4m2GEey1ThTGLe2c=";
 
-  types-aiobotocore-rolesanywhere = buildTypesAiobotocorePackage "rolesanywhere" "2.12.1" "sha256-ZrGHBUThGVUUmy/TJDyG3hjNXGkRqO5oQP8SkIyCCu0=";
+  types-aiobotocore-rolesanywhere = buildTypesAiobotocorePackage "rolesanywhere" "2.12.2" "sha256-NDVe7y2eLBuZEWsutZyyV5d58Rhoijf13YMays3Jdx0=";
 
-  types-aiobotocore-route53 = buildTypesAiobotocorePackage "route53" "2.12.1" "sha256-6qYcsh/D1+JhAAKCCpfsi8hOQndu6iLKQIAX0/j2UUE=";
+  types-aiobotocore-route53 = buildTypesAiobotocorePackage "route53" "2.12.2" "sha256-LcR0vMKdWfXZbsBM5L45JvJDqTc+s+hd65FhOsVRvfw=";
 
-  types-aiobotocore-route53-recovery-cluster = buildTypesAiobotocorePackage "route53-recovery-cluster" "2.12.1" "sha256-0PlKImcsyHMot9P8yjVLo6gt/pMr+xdMJTGoW5lcdqQ=";
+  types-aiobotocore-route53-recovery-cluster = buildTypesAiobotocorePackage "route53-recovery-cluster" "2.12.2" "sha256-BhLBcFThFx7l6CuOzNJkZ8YN6HVRICpolGmJ3+HTjPM=";
 
-  types-aiobotocore-route53-recovery-control-config = buildTypesAiobotocorePackage "route53-recovery-control-config" "2.12.1" "sha256-f+9lv8WRb723cgw2339xAXv6H9DSqTV3He2rOSfdLZs=";
+  types-aiobotocore-route53-recovery-control-config = buildTypesAiobotocorePackage "route53-recovery-control-config" "2.12.2" "sha256-OT7GjKAT5MF/ztxoz7JFavOLYF+tHMlLSP2INKfY1Ws=";
 
-  types-aiobotocore-route53-recovery-readiness = buildTypesAiobotocorePackage "route53-recovery-readiness" "2.12.1" "sha256-fYyZULP5ZPGa29XG81sfeLzJyM2a01fSzpasDmKQKaY=";
+  types-aiobotocore-route53-recovery-readiness = buildTypesAiobotocorePackage "route53-recovery-readiness" "2.12.2" "sha256-2tKAml1Q02CzYKbXSb1cX0J+sikRaO4w7xs5ezIrbxc=";
 
-  types-aiobotocore-route53domains = buildTypesAiobotocorePackage "route53domains" "2.12.1" "sha256-jyZnn8+Z/ca81BFLz9STnRT5rVdgRbovqesUWFmzxSY=";
+  types-aiobotocore-route53domains = buildTypesAiobotocorePackage "route53domains" "2.12.2" "sha256-b4mDaB4eri2iZEplPdxsiOxdZ5SKlx81kMCk5U4rRyo=";
 
-  types-aiobotocore-route53resolver = buildTypesAiobotocorePackage "route53resolver" "2.12.1" "sha256-chqu+C8HGB0P8KsfttB1oKnyaZY3GUcFgeikJcWeFo8=";
+  types-aiobotocore-route53resolver = buildTypesAiobotocorePackage "route53resolver" "2.12.2" "sha256-1594OFyWF906H7vJlvz/eZ/OkEIHYiEyZJi2k8svyjM=";
 
-  types-aiobotocore-rum = buildTypesAiobotocorePackage "rum" "2.12.1" "sha256-x2b5L14Zx3XFSLOC9UPbRpOAiFd7jzd9UrLA9b+5+Ww=";
+  types-aiobotocore-rum = buildTypesAiobotocorePackage "rum" "2.12.2" "sha256-A6ZMbQv2b70onH8ZHuRPl4L0SE8WPuUNF8lePZfvp/I=";
 
-  types-aiobotocore-s3 = buildTypesAiobotocorePackage "s3" "2.12.1" "sha256-sHbgvSbUD55nQ46ufvPpngzCt0O4zIIDd8FlXH8TGF8=";
+  types-aiobotocore-s3 = buildTypesAiobotocorePackage "s3" "2.12.2" "sha256-YsEzOxrhFa6HTVZ1k+D8SaQxphXSzcUGTFFBYi5a1HY=";
 
-  types-aiobotocore-s3control = buildTypesAiobotocorePackage "s3control" "2.12.1" "sha256-p4AG4soN/NYbh1EPRc9DGtNtG89QRlarqVCPrKQcRqE=";
+  types-aiobotocore-s3control = buildTypesAiobotocorePackage "s3control" "2.12.2" "sha256-kK255cm6UdK+8SR2tSs+SgJwx8OVqMEwFIUJ7uLW8iA=";
 
-  types-aiobotocore-s3outposts = buildTypesAiobotocorePackage "s3outposts" "2.12.1" "sha256-EGR13xcf88tYBn5lbmrAQ2cxO6xDiFvuGA+xGp/o24Y=";
+  types-aiobotocore-s3outposts = buildTypesAiobotocorePackage "s3outposts" "2.12.2" "sha256-7Y9wXe9L66Hs2teCYHN2bxgXmIrs6HhLoq9NxQ4T1lg=";
 
-  types-aiobotocore-sagemaker = buildTypesAiobotocorePackage "sagemaker" "2.12.1" "sha256-YmBdTNil9ghlUrcr6Ej8GfwFaICQ+QZokuJk5iaHtY4=";
+  types-aiobotocore-sagemaker = buildTypesAiobotocorePackage "sagemaker" "2.12.2" "sha256-wRKIngMjGLGyvfJ7xpiaNGpj+oQCctpWFXVX9ZKglwQ=";
 
-  types-aiobotocore-sagemaker-a2i-runtime = buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.12.1" "sha256-+fLY+MOh3P3/N7tVDGYZDlB7IKKMjxCdqje6apUGkQs=";
+  types-aiobotocore-sagemaker-a2i-runtime = buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.12.2" "sha256-zi0aXoD/YxXwpC2YVDKI0WvK9G4TlDiCEfUP09m3SWw=";
 
-  types-aiobotocore-sagemaker-edge = buildTypesAiobotocorePackage "sagemaker-edge" "2.12.1" "sha256-izwrksagyX2mbDR1w+9ErrqrzHC1nnlIqXgE9++fGJI=";
+  types-aiobotocore-sagemaker-edge = buildTypesAiobotocorePackage "sagemaker-edge" "2.12.2" "sha256-HfyLVC2GSnzMDSyWkpN1WmhK8sJcMGmmiuToRURV7yM=";
 
-  types-aiobotocore-sagemaker-featurestore-runtime = buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.12.1" "sha256-Kt8weJY6HFekwsF+de0VUqwkpGj+j+4GH5/Ct6ggBXc=";
+  types-aiobotocore-sagemaker-featurestore-runtime = buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.12.2" "sha256-nubZcHUhuSDawDXKhwTggDr+mxBdx+uXRIWX9JJDAx4=";
 
-  types-aiobotocore-sagemaker-geospatial = buildTypesAiobotocorePackage "sagemaker-geospatial" "2.12.1" "sha256-mdXNrA1f96TxH5MRUsr1aadj20R0tqQ0kwmawaskZX8=";
+  types-aiobotocore-sagemaker-geospatial = buildTypesAiobotocorePackage "sagemaker-geospatial" "2.12.2" "sha256-FwEx2BwIqI/Sc8+ZZA+qnpjxVvyXHlMamVhrjilq0cw=";
 
-  types-aiobotocore-sagemaker-metrics = buildTypesAiobotocorePackage "sagemaker-metrics" "2.12.1" "sha256-VlaupOFkaHjjp1+Hjbmo8QHl/2tItZYg8t4WORUXGzg=";
+  types-aiobotocore-sagemaker-metrics = buildTypesAiobotocorePackage "sagemaker-metrics" "2.12.2" "sha256-1g2W/ODx2N1kXM6av2FkdFOcT/IqfY1CtHcOzXJJmqY=";
 
-  types-aiobotocore-sagemaker-runtime = buildTypesAiobotocorePackage "sagemaker-runtime" "2.12.1" "sha256-kGep+vJ4bqzTURgVEc3QESgmvBZJizk7SDWf2ELHPKM=";
+  types-aiobotocore-sagemaker-runtime = buildTypesAiobotocorePackage "sagemaker-runtime" "2.12.2" "sha256-wDXnZmydXVGjnNezooiP7TxxXmRdTfY7OamqQG7mmhU=";
 
-  types-aiobotocore-savingsplans = buildTypesAiobotocorePackage "savingsplans" "2.12.1" "sha256-sN2ihAQiOi6Rp2Nl1HyETUZxz/B09IH4yLUGEOG2khw=";
+  types-aiobotocore-savingsplans = buildTypesAiobotocorePackage "savingsplans" "2.12.2" "sha256-FHXr+j9LmefGjeimSGVbuKgWYhxOrASsogWkxQE2N58=";
 
-  types-aiobotocore-scheduler = buildTypesAiobotocorePackage "scheduler" "2.12.1" "sha256-7Yn5P3j5URK4oiEgyokKEazP9zRan5laX4pyXoLlCGM=";
+  types-aiobotocore-scheduler = buildTypesAiobotocorePackage "scheduler" "2.12.2" "sha256-IHy8VN021UBpYMsef5b1tSu9zhfRgXaosLDX9pUhgsE=";
 
-  types-aiobotocore-schemas = buildTypesAiobotocorePackage "schemas" "2.12.1" "sha256-sN7ixP27dN1ojaw/W3I2/VJFx5snuWEpJ1LugHx5tQs=";
+  types-aiobotocore-schemas = buildTypesAiobotocorePackage "schemas" "2.12.2" "sha256-LAJBYjaOc8rhJNrAzOJReTYBmRpeba4VJfszDVuFA4g=";
 
-  types-aiobotocore-sdb = buildTypesAiobotocorePackage "sdb" "2.12.1" "sha256-YwurPoYxG2ldprgCtLrn8jsHDAuqzxgOk+rBIrYdI8o=";
+  types-aiobotocore-sdb = buildTypesAiobotocorePackage "sdb" "2.12.2" "sha256-wpVdLd1n8TXjzwCHL+JbyUZaYdsekT/R3KjY+ToISp4=";
 
-  types-aiobotocore-secretsmanager = buildTypesAiobotocorePackage "secretsmanager" "2.12.1" "sha256-DhKCgIIcxNIP2gJRZVA6ITP5k/wbI73JEpGFVNbriEo=";
+  types-aiobotocore-secretsmanager = buildTypesAiobotocorePackage "secretsmanager" "2.12.2" "sha256-9rHzNW9xD2k2fIBuOzICqyNdUQB1K3ml5PVAn6OuG08=";
 
-  types-aiobotocore-securityhub = buildTypesAiobotocorePackage "securityhub" "2.12.1" "sha256-WDKxtbB1RZEG5eJbIKBddS8yX2YkbfzW6IabYivCpy4=";
+  types-aiobotocore-securityhub = buildTypesAiobotocorePackage "securityhub" "2.12.2" "sha256-97io+U0ZTfzH5AuInHtc4YXNG4l+pkxjnL+MeZl627o=";
 
-  types-aiobotocore-securitylake = buildTypesAiobotocorePackage "securitylake" "2.12.1" "sha256-TG+xWDnQmXp55RcTP3GYIKdGUh9sLcU+AbpS+YnI0T4=";
+  types-aiobotocore-securitylake = buildTypesAiobotocorePackage "securitylake" "2.12.2" "sha256-1bWfvpDEShVTcF7sEpz7KYXNMv3fwUhOtd8ICNx3bZk=";
 
-  types-aiobotocore-serverlessrepo = buildTypesAiobotocorePackage "serverlessrepo" "2.12.1" "sha256-NEdGr3+zYFsxgL9xPyZqllQm9q5U3Y8Fq4vnjE9VQDk=";
+  types-aiobotocore-serverlessrepo = buildTypesAiobotocorePackage "serverlessrepo" "2.12.2" "sha256-5bKh3PMr8uKvJGoNl26qGyKJsOBXWQDDKTgBKIC6Glc=";
 
-  types-aiobotocore-service-quotas = buildTypesAiobotocorePackage "service-quotas" "2.12.1" "sha256-ZYzfFp+HQZCzBKG2Uaar44IO6rk3rPX8D00vAh5drsQ=";
+  types-aiobotocore-service-quotas = buildTypesAiobotocorePackage "service-quotas" "2.12.2" "sha256-EwrP4t5TFOeSQ9xMv+1H0L3qEDepwQ0/7JnS4aKbFk4=";
 
-  types-aiobotocore-servicecatalog = buildTypesAiobotocorePackage "servicecatalog" "2.12.1" "sha256-B1nyXU/z+ZR7MaPqqAIER3g+XQJDx37PTfvTHxSzHkQ=";
+  types-aiobotocore-servicecatalog = buildTypesAiobotocorePackage "servicecatalog" "2.12.2" "sha256-tgIcA1ZtkzMQdksGEqnjkpwfGnpG0tmkrlnjKsArvAE=";
 
-  types-aiobotocore-servicecatalog-appregistry = buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.12.1" "sha256-kQaEpE5fbWumtroUFNuyKrmXI7MmoNmJhWEh4ve1sYA=";
+  types-aiobotocore-servicecatalog-appregistry = buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.12.2" "sha256-oLn2o+EwsjWOgIuuNCi898EHI53Y3e04MxoyWkEHzKg=";
 
-  types-aiobotocore-servicediscovery = buildTypesAiobotocorePackage "servicediscovery" "2.12.1" "sha256-V6TD1sOtO5AkbBrKVXr5dc2Ym7Mgz/dkm7c4rBNZOzw=";
+  types-aiobotocore-servicediscovery = buildTypesAiobotocorePackage "servicediscovery" "2.12.2" "sha256-D40N1DoI6xT5Dz9VsnK39CDoUCVtblV5eHESUecxxEI=";
 
-  types-aiobotocore-ses = buildTypesAiobotocorePackage "ses" "2.12.1" "sha256-agdBiB1VRs38GxuHsBkHByWbBqrAt+YZNTfBFDIhgLE=";
+  types-aiobotocore-ses = buildTypesAiobotocorePackage "ses" "2.12.2" "sha256-SIj1/+vgxsHv59HH/kc+iqTCbI+sYLbhaMnAt5WwifY=";
 
-  types-aiobotocore-sesv2 = buildTypesAiobotocorePackage "sesv2" "2.12.1" "sha256-ziNzhAspWnYDGxJfw5JPBf6FY0of0q2KddVZA4n1Trg=";
+  types-aiobotocore-sesv2 = buildTypesAiobotocorePackage "sesv2" "2.12.2" "sha256-HpMrPG7PYyfy5F4kLZsMbKsexqXziVf2wNPPBbglmcs=";
 
-  types-aiobotocore-shield = buildTypesAiobotocorePackage "shield" "2.12.1" "sha256-Z289uZBMaexBmuG2aEfUWOy145jJC8ZHnaKb7lhjL7o=";
+  types-aiobotocore-shield = buildTypesAiobotocorePackage "shield" "2.12.2" "sha256-WALZ9EVDvifxiOlcYhZXuajORsbC4GpeD/LVA0yuPBA=";
 
-  types-aiobotocore-signer = buildTypesAiobotocorePackage "signer" "2.12.1" "sha256-MDoK/Qnvo6Y+WsVFSyKt+irzFC/HgWNAHkZgj3LSp4w=";
+  types-aiobotocore-signer = buildTypesAiobotocorePackage "signer" "2.12.2" "sha256-3D18EK5Q+zHmA8WLXLaenswIw+HF2b4tZCY4TZA4sHs=";
 
-  types-aiobotocore-simspaceweaver = buildTypesAiobotocorePackage "simspaceweaver" "2.12.1" "sha256-tpzwKKdv8G0E0H3+wrANs50K0mM/lyqcXeTprBQeVNs=";
+  types-aiobotocore-simspaceweaver = buildTypesAiobotocorePackage "simspaceweaver" "2.12.2" "sha256-id5LKXq/3hsvZPblmBNGzRaLFG57VfL9feXtCUKSDHg=";
 
-  types-aiobotocore-sms = buildTypesAiobotocorePackage "sms" "2.12.1" "sha256-mr5ntl7rZ9Nopql41qqs9n01bYZ2aW/v+/ehZKsQ+kI=";
+  types-aiobotocore-sms = buildTypesAiobotocorePackage "sms" "2.12.2" "sha256-7sc4gD4rfbubwDQI2u/XvF4cNslnFGcN94h6uB5cHp4=";
 
-  types-aiobotocore-sms-voice = buildTypesAiobotocorePackage "sms-voice" "2.12.1" "sha256-BGilumzkB01iMg0a833gBvT+LhkKVXncH/klno1Wc7g=";
+  types-aiobotocore-sms-voice = buildTypesAiobotocorePackage "sms-voice" "2.12.2" "sha256-nS+LiEvDP4IZMduhrbO16oTtFSp423/Y2SlT6Cj+CL8=";
 
-  types-aiobotocore-snow-device-management = buildTypesAiobotocorePackage "snow-device-management" "2.12.1" "sha256-en4h9jzuPw1JoLLFIUVAru46YJeu9ThPYkCzcu9LyRw=";
+  types-aiobotocore-snow-device-management = buildTypesAiobotocorePackage "snow-device-management" "2.12.2" "sha256-CUkRt31gGK08kxPuMfP0T1XLOJOQPJUG3Oxis8p3/vQ=";
 
-  types-aiobotocore-snowball = buildTypesAiobotocorePackage "snowball" "2.12.1" "sha256-F8WStkw9CRkTxQXST7JKCHvJV+2DleR6zBmZmPQeCZg=";
+  types-aiobotocore-snowball = buildTypesAiobotocorePackage "snowball" "2.12.2" "sha256-Wprhzjwh4mKqFizDcfUewEo8ho0lKaVItqO6tOIOV+4=";
 
-  types-aiobotocore-sns = buildTypesAiobotocorePackage "sns" "2.12.1" "sha256-bEFE0arHc/U8LmXCiRAZkFHNWsGFb069DSseHdBJA1Y=";
+  types-aiobotocore-sns = buildTypesAiobotocorePackage "sns" "2.12.2" "sha256-Yser4nTXIfYQ2cAEOVAEdJ2du/imthk4RA0nkZpBfxU=";
 
-  types-aiobotocore-sqs = buildTypesAiobotocorePackage "sqs" "2.12.1" "sha256-B106hChye7naXa6VvefcfDICI1rU1Td5K7zxP9vAofU=";
+  types-aiobotocore-sqs = buildTypesAiobotocorePackage "sqs" "2.12.2" "sha256-MYJjaAoEG33xQy2hWmb45KC/MjAbdiNz+C+Pn/4USo0=";
 
-  types-aiobotocore-ssm = buildTypesAiobotocorePackage "ssm" "2.12.1" "sha256-f1hVxTtSmljYA3p/wNltr4wMlKT94yzP8zFIq8fHIng=";
+  types-aiobotocore-ssm = buildTypesAiobotocorePackage "ssm" "2.12.2" "sha256-QZRMWMC87WL7HwNoGkIKBusPVMKEN3AyoKFVQ0bA4VU=";
 
-  types-aiobotocore-ssm-contacts = buildTypesAiobotocorePackage "ssm-contacts" "2.12.1" "sha256-zhJooXRPSJoVNLRTcKMgnmGuDFvol2LCHKesveS2onI=";
+  types-aiobotocore-ssm-contacts = buildTypesAiobotocorePackage "ssm-contacts" "2.12.2" "sha256-m2zC26dCphVlPxShHJv6ZvAzRL1TJ1t0/yywxPQ7k1w=";
 
-  types-aiobotocore-ssm-incidents = buildTypesAiobotocorePackage "ssm-incidents" "2.12.1" "sha256-bvkyOZP9zuExuWV7ZHkV/YPzTAcl59L69TMRTkKtDKo=";
+  types-aiobotocore-ssm-incidents = buildTypesAiobotocorePackage "ssm-incidents" "2.12.2" "sha256-tcFiqjyp0yvftb6p6AS6uD1/stAp6BgjjssCfL5Wcq4=";
 
-  types-aiobotocore-ssm-sap = buildTypesAiobotocorePackage "ssm-sap" "2.12.1" "sha256-YjxpS0Tn+waraHNSDKSm/Ig4axeJmUHRR9wKUh9/w8w=";
+  types-aiobotocore-ssm-sap = buildTypesAiobotocorePackage "ssm-sap" "2.12.2" "sha256-oWGPSPLr7OCZ/F+crxqFJtT2yjPQfKO4ZExVmEmuHts=";
 
-  types-aiobotocore-sso = buildTypesAiobotocorePackage "sso" "2.12.1" "sha256-pBNQzTTu3DXWoAMOZHoZwvWRZetNOEwEN6XlX5b3cTc=";
+  types-aiobotocore-sso = buildTypesAiobotocorePackage "sso" "2.12.2" "sha256-C4Ne19U9yQNvdkv1169JaQP42W8tbRY7HH2ffNc6flU=";
 
-  types-aiobotocore-sso-admin = buildTypesAiobotocorePackage "sso-admin" "2.12.1" "sha256-wBv/pIRqsPxJONtGu782zxSAIDnAM6raAU8XFKoHwTQ=";
+  types-aiobotocore-sso-admin = buildTypesAiobotocorePackage "sso-admin" "2.12.2" "sha256-0e/wU+WmMsyd2eR28U32Nb2/GGkcIx34fznW8vK1vjI=";
 
-  types-aiobotocore-sso-oidc = buildTypesAiobotocorePackage "sso-oidc" "2.12.1" "sha256-HdZz0vbe+M0q5lLxArKy/k447cc2VZDByeLBkg/inl4=";
+  types-aiobotocore-sso-oidc = buildTypesAiobotocorePackage "sso-oidc" "2.12.2" "sha256-MKctbFIixCUNjPgMaVS44qGeVw97kSjNzv27Lz0wdH4=";
 
-  types-aiobotocore-stepfunctions = buildTypesAiobotocorePackage "stepfunctions" "2.12.1" "sha256-J5UI5f2WWT+nhl6o0d2DkCVZKOwg5O29VbNi26RfUQ0=";
+  types-aiobotocore-stepfunctions = buildTypesAiobotocorePackage "stepfunctions" "2.12.2" "sha256-/uSY/rT99prkan1Jdzmrqfrtd+IY4lTCjhEoVDd/5qw=";
 
-  types-aiobotocore-storagegateway = buildTypesAiobotocorePackage "storagegateway" "2.12.1" "sha256-p7ubgOcj4xkB7UcU3OUVMgzPzbLQTYcB0hbh/3KZqrs=";
+  types-aiobotocore-storagegateway = buildTypesAiobotocorePackage "storagegateway" "2.12.2" "sha256-4imdUKHgiR8MdfP9d+mfUSvX/BGML6OyhFZSoqfvUyE=";
 
-  types-aiobotocore-sts = buildTypesAiobotocorePackage "sts" "2.12.1" "sha256-D/+jqiERytxUvDGxxxVBZnBQae/csg4GpRA2YAiigno=";
+  types-aiobotocore-sts = buildTypesAiobotocorePackage "sts" "2.12.2" "sha256-ZjWt8aMpB7rm5RiN0wu0Rtf0GmB0pyQheulIdiESYJw=";
 
-  types-aiobotocore-support = buildTypesAiobotocorePackage "support" "2.12.1" "sha256-7QN7ZamHv/C67SrlPWDi7yZ51QGbIr896PZ1FQ4kEuU=";
+  types-aiobotocore-support = buildTypesAiobotocorePackage "support" "2.12.2" "sha256-m9gE+WrA3hGyFsce9yuQ2Rc1T+C34CV3qee1cUh5iqg=";
 
-  types-aiobotocore-support-app = buildTypesAiobotocorePackage "support-app" "2.12.1" "sha256-GOdOna5aa3inSl+Q/vGPBJf3ULXmMxfabpHVvYL3XIA=";
+  types-aiobotocore-support-app = buildTypesAiobotocorePackage "support-app" "2.12.2" "sha256-sDFQII+lci1rt4IR3nfHphO2LSv0QER1incTUdRhUO0=";
 
-  types-aiobotocore-swf = buildTypesAiobotocorePackage "swf" "2.12.1" "sha256-BnNcpeNmYWlmBUUgDtOczwDp/BGrjLg2+QMNJEyiCmU=";
+  types-aiobotocore-swf = buildTypesAiobotocorePackage "swf" "2.12.2" "sha256-4kM9IuYO9AGhppvigtrSfCpbLem4MxNijEPIxLO6bgA=";
 
-  types-aiobotocore-synthetics = buildTypesAiobotocorePackage "synthetics" "2.12.1" "sha256-kiEkHVz9U9svw+IYstUcle1oCBSs1b2cU9vBHaY/H0c=";
+  types-aiobotocore-synthetics = buildTypesAiobotocorePackage "synthetics" "2.12.2" "sha256-8sewpC5P4bkL3k2U+6SpbeJ++2T0KhymCyqsSWHvgx8=";
 
-  types-aiobotocore-textract = buildTypesAiobotocorePackage "textract" "2.12.1" "sha256-O95r0QCGOW2RbU1zlv4dn/1OuP/x/KFyO3TD2YwdTA8=";
+  types-aiobotocore-textract = buildTypesAiobotocorePackage "textract" "2.12.2" "sha256-Y3ts/v4pdmX2KFm9ZWcFhPyPQOhjXZ73jNUbDso90Tk=";
 
-  types-aiobotocore-timestream-query = buildTypesAiobotocorePackage "timestream-query" "2.12.1" "sha256-mp2zgiLO/bFBY1nhsx0nocKcerRnBzZyaONBlJ9OJk4=";
+  types-aiobotocore-timestream-query = buildTypesAiobotocorePackage "timestream-query" "2.12.2" "sha256-F1Du1aia/Q1bo+F7YJRpSkU2/8lHG3KObHUZdZ/z2I8=";
 
-  types-aiobotocore-timestream-write = buildTypesAiobotocorePackage "timestream-write" "2.12.1" "sha256-N7FQ85Y/vr8kam/ESgTxK3v1nMnMl17wYZkcK8kOOyI=";
+  types-aiobotocore-timestream-write = buildTypesAiobotocorePackage "timestream-write" "2.12.2" "sha256-OhisvyX9nBqBEfYdXNPeEF5jURFOvoXN9YxJDkKDOqc=";
 
-  types-aiobotocore-tnb = buildTypesAiobotocorePackage "tnb" "2.12.1" "sha256-bB9gINmvd69sbfqeJ5cuqhVlA52BFA26rB7c+AWXNZg=";
+  types-aiobotocore-tnb = buildTypesAiobotocorePackage "tnb" "2.12.2" "sha256-W1luQ356xiJA7RKG57DNVaY5YZBvYv4AlFavdTXxng8=";
 
-  types-aiobotocore-transcribe = buildTypesAiobotocorePackage "transcribe" "2.12.1" "sha256-ziN4VGQoNThnfC1Pg7thxMFzfvTE2xRGtk3f0OLRiDc=";
+  types-aiobotocore-transcribe = buildTypesAiobotocorePackage "transcribe" "2.12.2" "sha256-uNACYs85jyW97SE+U58JexWrFUVOCNLkCuHRc+ZkFZ4=";
 
-  types-aiobotocore-transfer = buildTypesAiobotocorePackage "transfer" "2.12.1" "sha256-Ru3p8rngnhuTytJcVycJo2w0G8hMfCWKk7bzRAU534Q=";
+  types-aiobotocore-transfer = buildTypesAiobotocorePackage "transfer" "2.12.2" "sha256-d72xsEhJn6D8OujIxP9xObjPyxRPmcIdnly+ZwvEzCw=";
 
-  types-aiobotocore-translate = buildTypesAiobotocorePackage "translate" "2.12.1" "sha256-y+b/46Qp/+iqFWdgcLhXOQQ60Jb4ZHn+T3VV2B2blr8=";
+  types-aiobotocore-translate = buildTypesAiobotocorePackage "translate" "2.12.2" "sha256-rQdiVuH8W7kxYSD5AxGvQraNJf6acmN+F9Rr2NP5sKw=";
 
-  types-aiobotocore-verifiedpermissions = buildTypesAiobotocorePackage "verifiedpermissions" "2.12.1" "sha256-Eiv4Jccs56w0k0hSKvW18vmResqvhxsLB6GmwCadPOA=";
+  types-aiobotocore-verifiedpermissions = buildTypesAiobotocorePackage "verifiedpermissions" "2.12.2" "sha256-MIF51gNhXzNcm1lSLwpfvFm0TIeFmj+MEEIPT/FRO/Y=";
 
-  types-aiobotocore-voice-id = buildTypesAiobotocorePackage "voice-id" "2.12.1" "sha256-vFq5MQHyL3ShqgXGh2eBDZNq6AHVjZek+QonwuaxYwU=";
+  types-aiobotocore-voice-id = buildTypesAiobotocorePackage "voice-id" "2.12.2" "sha256-lnifYdOU3hJly0lUJFkfBaNFyyCQESz2ef3F0BrMSCE=";
 
-  types-aiobotocore-vpc-lattice = buildTypesAiobotocorePackage "vpc-lattice" "2.12.1" "sha256-+coxrlXSx4qwcQXf3RSOpJQL+t1yqO/xB3autVz/NLY=";
+  types-aiobotocore-vpc-lattice = buildTypesAiobotocorePackage "vpc-lattice" "2.12.2" "sha256-JJrunGOEf96BmIr1A2I3p4g6tHwvc6AZn7iWEGemahI=";
 
-  types-aiobotocore-waf = buildTypesAiobotocorePackage "waf" "2.12.1" "sha256-U2QbBdI58XBMFEM0AYtK6i51I4lqW28Aeu+XuNhAZJ8=";
+  types-aiobotocore-waf = buildTypesAiobotocorePackage "waf" "2.12.2" "sha256-nBxBriQLUlmURSWHrmFMVa31dUOVjzFTBFhwxhrgdmc=";
 
-  types-aiobotocore-waf-regional = buildTypesAiobotocorePackage "waf-regional" "2.12.1" "sha256-9JjZCzf9Z8T9tQB/BE+u8+iE/kX/iMLlffBJkuNXzS0=";
+  types-aiobotocore-waf-regional = buildTypesAiobotocorePackage "waf-regional" "2.12.2" "sha256-bntzQDr6j23lp46Fd4awX/w8W0dUQ9Z7mH5jc8r7NKo=";
 
-  types-aiobotocore-wafv2 = buildTypesAiobotocorePackage "wafv2" "2.12.1" "sha256-2gZSrTR5wRP7qOMxkmRQqU+pH83hnEOopuVUbMIXcAU=";
+  types-aiobotocore-wafv2 = buildTypesAiobotocorePackage "wafv2" "2.12.2" "sha256-fsIxp6khnfxMQyy0+LqyCyjP110Ik/L5zafE13JOxtY=";
 
-  types-aiobotocore-wellarchitected = buildTypesAiobotocorePackage "wellarchitected" "2.12.1" "sha256-guUODw1ecYm396nkEoTKiYurk8YIoSJg9/IZkNaba7I=";
+  types-aiobotocore-wellarchitected = buildTypesAiobotocorePackage "wellarchitected" "2.12.2" "sha256-6E4hpBgAH01FExto7Q9voThCNZu0s9VPw/J2Bar34O8=";
 
-  types-aiobotocore-wisdom = buildTypesAiobotocorePackage "wisdom" "2.12.1" "sha256-rOa8B0/7HQ+GfmTVMq5Kn2eclN5i7ywipnJ7bYymUbA=";
+  types-aiobotocore-wisdom = buildTypesAiobotocorePackage "wisdom" "2.12.2" "sha256-skK8YWujl1RShe9LQoE0FXsNiQynycMoruFdlDxDFBk=";
 
-  types-aiobotocore-workdocs = buildTypesAiobotocorePackage "workdocs" "2.12.1" "sha256-/hN0c65UtT9/ZgUtmrmlEoDGVUnd9rnC+hJLH38qZXw=";
+  types-aiobotocore-workdocs = buildTypesAiobotocorePackage "workdocs" "2.12.2" "sha256-H1qRcCqRhnPtfIXxEpZ5IQTJ0LxEnY0oayxnVXVB9rA=";
 
-  types-aiobotocore-worklink = buildTypesAiobotocorePackage "worklink" "2.12.1" "sha256-geeKa8vZebnIFuuD6Slz9ShpBYCJXrXojS2KSORDqKk=";
+  types-aiobotocore-worklink = buildTypesAiobotocorePackage "worklink" "2.12.2" "sha256-lnMETLwtvtRSIPqecuc3JbDKFuUn/FaWyiLBB3+T5x4=";
 
-  types-aiobotocore-workmail = buildTypesAiobotocorePackage "workmail" "2.12.1" "sha256-ZnxR1sUOX+krBU0OKsTtnjvhPC8WnsMw4Oyfb5kbSd0=";
+  types-aiobotocore-workmail = buildTypesAiobotocorePackage "workmail" "2.12.2" "sha256-CbeOMFYa6IGuXX8ALLIHa8LSNMivuNebW8uw1ee1omo=";
 
-  types-aiobotocore-workmailmessageflow = buildTypesAiobotocorePackage "workmailmessageflow" "2.12.1" "sha256-AasaWFat0OGT4/iTmqDHnaXvFU6BQMhTpWKYc9E7FoY=";
+  types-aiobotocore-workmailmessageflow = buildTypesAiobotocorePackage "workmailmessageflow" "2.12.2" "sha256-6fN0swm3VSw3ppDe+oVmWGFxuFYGtIDScSdGKCMEBlQ=";
 
-  types-aiobotocore-workspaces = buildTypesAiobotocorePackage "workspaces" "2.12.1" "sha256-/07XwxB2vWaGR8Y07x53/C6PBTaDVKMNoSqbzaRAESo=";
+  types-aiobotocore-workspaces = buildTypesAiobotocorePackage "workspaces" "2.12.2" "sha256-tAD9BBHyoSD26ifWTJoCucsYILkZ4VQxJ87p/KOV/2s=";
 
-  types-aiobotocore-workspaces-web = buildTypesAiobotocorePackage "workspaces-web" "2.12.1" "sha256-QBJmVHZ5UazLecUrpizJDe99t0rIllVqYw+JZQTJWBQ=";
+  types-aiobotocore-workspaces-web = buildTypesAiobotocorePackage "workspaces-web" "2.12.2" "sha256-tFwMHDFAoiL2gGU26JoxJfWSFIqP/Co48Ugs9IS6o/s=";
 
-  types-aiobotocore-xray = buildTypesAiobotocorePackage "xray" "2.12.1" "sha256-KPhRhUwIv8RG9R/skKq1hZ7SKJB18C2lWIYs4rjvjHw=";
+  types-aiobotocore-xray = buildTypesAiobotocorePackage "xray" "2.12.2" "sha256-B9B7xBTCcAYAcOhlyxevtmAnpVyRgDgBz9GpcD7ZMhU=";
 }
diff --git a/pkgs/development/python-modules/types-aiobotocore/default.nix b/pkgs/development/python-modules/types-aiobotocore/default.nix
index 5e60e9d26f311..17b959beeb4ad 100644
--- a/pkgs/development/python-modules/types-aiobotocore/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchPypi
 , setuptools
-, wheel
 , botocore-stubs
 , typing-extensions
 , types-aiobotocore-accessanalyzer
@@ -364,20 +363,19 @@
 
 buildPythonPackage rec {
   pname = "types-aiobotocore";
-  version = "2.12.1";
+  version = "2.12.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pdPYBcAaqGnDwvgttfEUZv3GfUxebpqwTtVwk9p120c=";
+    hash = "sha256-cpw68B9rX30QE+pbfSRV00wg05XZuKmSYNdJ53uo7+M=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
-    wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     botocore-stubs
     typing-extensions
   ];
diff --git a/pkgs/development/python-modules/types-aiobotocore/update.sh b/pkgs/development/python-modules/types-aiobotocore/update.sh
index 1c0306f27e01c..8c4845f9032e7 100644..100755
--- a/pkgs/development/python-modules/types-aiobotocore/update.sh
+++ b/pkgs/development/python-modules/types-aiobotocore/update.sh
@@ -1,11 +1,11 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p nix-update
+#!nix-shell -i bash -p nix-update nixpkgs-fmt
 
 set -eu -o pipefail
 
 source_file=pkgs/development/python-modules/types-aiobotocore-packages/default.nix
 
-version="2.12.1"
+version="2.12.2"
 
 nix-update python311Packages.types-aiobotocore --commit --build
 
diff --git a/pkgs/development/python-modules/types-dataclasses/default.nix b/pkgs/development/python-modules/types-dataclasses/default.nix
new file mode 100644
index 0000000000000..5823b56f66372
--- /dev/null
+++ b/pkgs/development/python-modules/types-dataclasses/default.nix
@@ -0,0 +1,31 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "types-dataclasses";
+  version = "0.6.6";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-S1ovz45WjVoZdM1pAQ4yDhr4JRF37JaN57m7SapJ97k=";
+  };
+
+  build-system = [ setuptools ];
+
+  # Modules doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "dataclasses-stubs" ];
+
+  meta = with lib; {
+    description = "Typing stubs for dataclasses";
+    homepage = "https://github.com/python/typeshed";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/types-docutils/default.nix b/pkgs/development/python-modules/types-docutils/default.nix
index c905c2f8745b3..fb1f04123f8fc 100644
--- a/pkgs/development/python-modules/types-docutils/default.nix
+++ b/pkgs/development/python-modules/types-docutils/default.nix
@@ -1,29 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "types-docutils";
-  version = "0.20.0.20240331";
+  version = "0.20.0.20240406";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rJnN80BAyYIIH1QjfWAX+PXa/gvruBilmL+Xpl9bFxU=";
+    hash = "sha256-6OxKWhJdBthjK7qsihH76hih7fqU35xRKdxFmAkVuEs=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "docutils-stubs"
-  ];
+  pythonImportsCheck = [ "docutils-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for docutils";
diff --git a/pkgs/development/python-modules/types-pillow/default.nix b/pkgs/development/python-modules/types-pillow/default.nix
index b6b882218d192..adb92251b8f10 100644
--- a/pkgs/development/python-modules/types-pillow/default.nix
+++ b/pkgs/development/python-modules/types-pillow/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "types-pillow";
-  version = "10.2.0.20240311";
+  version = "10.2.0.20240331";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "types-Pillow";
-    hash = "sha256-9hH2uvfDeE/lUO6SsQgGD1VEpHw3xzrLgaeF8cYxJ3I=";
+    hash = "sha256-xgTjmutwcZ5GPTWRV6Iji/wOgb+cZYN1cD97mM/WB9o=";
   };
 
   # Modules doesn't have tests
diff --git a/pkgs/development/python-modules/types-protobuf/default.nix b/pkgs/development/python-modules/types-protobuf/default.nix
index fb7da185e2ced..c09cb206cf040 100644
--- a/pkgs/development/python-modules/types-protobuf/default.nix
+++ b/pkgs/development/python-modules/types-protobuf/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-protobuf";
-  version = "4.24.0.20240302";
+  version = "4.24.0.20240311";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8iwAzAzqlyLnHhTTibukKa+eNadKlJcZwWcgOlq74uQ=";
+    hash = "sha256-yAQm+fubIa7lFGkelqsypc1pSoLirAeWSzUsPn4Bgrw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index 1933aed78853f..6cabdc3b89a5e 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.31.0.20240403";
+  version = "2.31.0.20240406";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4eDNC2VTNPOdn4craKExDw40Nkdoi/LO6TLsTCsE3lk=";
+    hash = "sha256-RCjfM8VQOUXHSz9C6CsYHobse3JGIEGaKWbi3mBM4aE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/types-setuptools/default.nix b/pkgs/development/python-modules/types-setuptools/default.nix
index 881db628ede58..a2a0a9f125bde 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.1.0.20240310";
+  version = "69.2.0.20240317";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-/A4QgvVcl0YRvOhEseW+stGolVAfSkZOSDBVkqQmgQA=";
+    hash = "sha256-tgfExIhC7z7kncDH/pwbrXVwCwceEBi7TX46xJLUcEg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/umap-learn/default.nix b/pkgs/development/python-modules/umap-learn/default.nix
index abb17d43040fb..195dde57bf2e4 100644
--- a/pkgs/development/python-modules/umap-learn/default.nix
+++ b/pkgs/development/python-modules/umap-learn/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "umap-learn";
-  version = "0.5.5";
+  version = "0.5.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     owner = "lmcinnes";
     repo = "umap";
     rev = "refs/tags/release-${version}";
-    hash = "sha256-bXAQjq7xBYn34tIZF96Sr5jDUii3s4FGkNx65rGKXkY=";
+    hash = "sha256-fqYl8T53BgCqsquY6RJHqpDFsdZA0Ihja69E/kG3YGU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/unearth/default.nix b/pkgs/development/python-modules/unearth/default.nix
index 60307ca4051d5..0527e90f2636f 100644
--- a/pkgs/development/python-modules/unearth/default.nix
+++ b/pkgs/development/python-modules/unearth/default.nix
@@ -2,12 +2,12 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, cached-property
 , packaging
 , pdm-backend
-, requests
+, httpx
 , flask
 , pytest-httpserver
+, pytest-mock
 , pytestCheckHook
 , requests-wsgi-adapter
 , trustme
@@ -15,23 +15,23 @@
 
 buildPythonPackage rec {
   pname = "unearth";
-  version = "0.14.0";
-  format = "pyproject";
+  version = "0.15.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-883fuUrA+GX7z5ZCMVVu9xgwEDecALASBVF6UMeKGG0=";
+    hash = "sha256-hj3rMznA1lpb4NCtLGfUbV9XSnmOdO8FUr8R0pijCrs=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     pdm-backend
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     packaging
-    requests
+    httpx
   ];
 
   __darwinAllowLocalNetworking = true;
@@ -39,6 +39,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     flask
     pytest-httpserver
+    pytest-mock
     pytestCheckHook
     requests-wsgi-adapter
     trustme
diff --git a/pkgs/development/python-modules/unicurses/default.nix b/pkgs/development/python-modules/unicurses/default.nix
index 0d4f75264ca29..4eae54692b547 100644
--- a/pkgs/development/python-modules/unicurses/default.nix
+++ b/pkgs/development/python-modules/unicurses/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "unicurses";
-  version = "2.1.3";
+  version = "3.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "Uni-Curses";
-    hash = "sha256-uzSiF0jAZzI0iZngM/GuJ60o+UbLQ5XQzycTPito34w=";
+    hash = "sha256-ZJUKWxu2cQlFGN1RNtyDacwSOtBiUKzk9SIDD0IQiuU=";
   };
 
   propagatedBuildInputs = [ x256 ];
diff --git a/pkgs/development/python-modules/universal-silabs-flasher/default.nix b/pkgs/development/python-modules/universal-silabs-flasher/default.nix
index 8c73bc5205ef2..bfc6bb97aab4e 100644
--- a/pkgs/development/python-modules/universal-silabs-flasher/default.nix
+++ b/pkgs/development/python-modules/universal-silabs-flasher/default.nix
@@ -6,7 +6,6 @@
 
 # build-system
 , setuptools
-, setuptools-git-versioning
 
 # dependencies
 , async-timeout
@@ -37,10 +36,18 @@ buildPythonPackage rec {
     hash = "sha256-VoO9B27CNY2Cnt/Q2HsU6DVYkukQMgbIHc6xqfN0P7w=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail '"setuptools-git-versioning<2"' "" \
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
+  '';
+
   nativeBuildInputs = [
     pythonRelaxDepsHook
+  ];
+
+  build-system = [
     setuptools
-    setuptools-git-versioning
   ];
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/unstructured/default.nix b/pkgs/development/python-modules/unstructured/default.nix
index 9c5a39aa71754..3b797ed297d70 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.13.0";
+  version = "0.13.2";
   optional-dependencies = {
     huggingflace = [
       langdetect
@@ -90,7 +90,7 @@ buildPythonPackage {
     owner = "Unstructured-IO";
     repo = "unstructured";
     rev = "refs/tags/${version}";
-    hash = "sha256-zRQOFYAh4QpDNlSPi1h70eOmw/8aTa6yAKBSgTuIhME=";
+    hash = "sha256-6pR/tewHWstgIqqD8Jwj+AQutdhXU5aufm6RiEpXr9s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/velbus-aio/default.nix b/pkgs/development/python-modules/velbus-aio/default.nix
index abd3fbd0acb2b..f754c828dea3d 100644
--- a/pkgs/development/python-modules/velbus-aio/default.nix
+++ b/pkgs/development/python-modules/velbus-aio/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pyserial
-, pyserial-asyncio
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pyserial,
+  pyserial-asyncio,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "velbus-aio";
-  version = "2024.4.0";
+  version = "2024.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,13 +21,11 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = "velbus-aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-wYcASRmUxVdUpfKlNIteQlHw3ZaYxZ7VenKtaju1yTE=";
+    hash = "sha256-rskWnH5zFvBuNL5eJ8O4D6htRP/XtFcq1xH8ZXzT1I4=";
     fetchSubmodules = true;
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     backoff
@@ -34,13 +33,9 @@ buildPythonPackage rec {
     pyserial-asyncio
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "velbusaio"
-  ];
+  pythonImportsCheck = [ "velbusaio" ];
 
   meta = with lib; {
     description = "Python library to support the Velbus home automation system";
diff --git a/pkgs/development/python-modules/vilfo-api-client/default.nix b/pkgs/development/python-modules/vilfo-api-client/default.nix
index 99a10fd320d3c..b4b9f77304ef7 100644
--- a/pkgs/development/python-modules/vilfo-api-client/default.nix
+++ b/pkgs/development/python-modules/vilfo-api-client/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "vilfo-api-client";
-  version = "0.4.1";
+  version = "0.5.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "ManneW";
     repo = "vilfo-api-client-python";
-    rev = version;
-    hash = "sha256-j06Bbv0hWSmrlCv8RfgvfGTyOF+vSX+zZnX3AvG5Hys=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ZlmriBd+M+54ux/UNYa355mkz808/NxSz7IzmWouA0c=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/wagtail-localize/default.nix b/pkgs/development/python-modules/wagtail-localize/default.nix
index bfcfb72d45c67..9a40ca84f8603 100644
--- a/pkgs/development/python-modules/wagtail-localize/default.nix
+++ b/pkgs/development/python-modules/wagtail-localize/default.nix
@@ -17,16 +17,16 @@
 
 buildPythonPackage rec {
   pname = "wagtail-localize";
-  version = "1.8.2";
+  version = "1.9";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     repo = "wagtail-localize";
     owner = "wagtail";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DBqGFD6piMn9d7Ls/GBeBfeQty/MDvlQY0GP66BA2QE=";
+    hash = "sha256-ENdUXfvQOfd9cgHr6fd5Hf+8AJXFix3YbsYJQfpu4ZE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/wagtail/default.nix b/pkgs/development/python-modules/wagtail/default.nix
index f5ac78b6cb17e..46081138403d8 100644
--- a/pkgs/development/python-modules/wagtail/default.nix
+++ b/pkgs/development/python-modules/wagtail/default.nix
@@ -13,6 +13,7 @@
 , fetchPypi
 , html5lib
 , l18n
+, laces
 , openpyxl
 , permissionedforms
 , pillow
@@ -24,22 +25,19 @@
 
 buildPythonPackage rec {
   pname = "wagtail";
-  version = "6.0.1";
+  version = "6.0.2";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Q89luoQwtB5TMWfudbJ2YKeobrBt2L156NZPtK8Feos=";
+    hash = "sha256-58/DwPU/swLxeY8OAqesYHirAusOhwPA9xzL0/GOOG8=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "beautifulsoup4>=4.8,<4.12" "beautifulsoup4>=4.8" \
-      --replace "draftjs_exporter>=2.1.5,<3.0" "draftjs_exporter>=2.1.5,<6.0" \
-      --replace "django-taggit>=2.0,<5.0" "django-taggit>=2.0,<6.0" \
-      --replace "Willow[heif]>=1.6.2,<1.7" "Willow[heif]>=1.6.2,<2"
+      --replace "django-filter>=23.3,<24" "django-filter>=23.3,<24.3"
   '';
 
   propagatedBuildInputs = [
@@ -54,6 +52,7 @@ buildPythonPackage rec {
     draftjs-exporter
     html5lib
     l18n
+    laces
     openpyxl
     permissionedforms
     pillow
diff --git a/pkgs/development/python-modules/wand/default.nix b/pkgs/development/python-modules/wand/default.nix
index 0577adf2c91ed..416fa74eaed51 100644
--- a/pkgs/development/python-modules/wand/default.nix
+++ b/pkgs/development/python-modules/wand/default.nix
@@ -43,6 +43,6 @@ buildPythonPackage rec {
     description = "Ctypes-based simple MagickWand API binding for Python";
     homepage = "http://wand-py.org/";
     license = [ licenses.mit ];
-    maintainers = with maintainers; [ infinisil dotlambda ];
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix b/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix
index 91c56472e77ec..b7ee6caf0333b 100644
--- a/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix
+++ b/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix
@@ -1,37 +1,38 @@
-{ lib
-, aioconsole
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, websockets
+{
+  lib,
+  aioconsole,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  websockets,
 }:
 
 buildPythonPackage rec {
   pname = "whirlpool-sixth-sense";
-  version = "0.18.5";
-  format = "pyproject";
+  version = "0.18.8";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "abmantis";
-    repo = pname;
+    repo = "whirlpool-sixth-sense";
     rev = "refs/tags/${version}";
-    hash = "sha256-0NJsZex054CWfKX2wyJRd6Cnxa89mNrZN59VqIV2MD8=";
+    hash = "sha256-Nmjw6b1k5M4H23tJxUPPJ3JIkuK5ylqEeFp18cGz9pA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aioconsole
     aiohttp
+    async-timeout
     websockets
   ];
 
diff --git a/pkgs/development/python-modules/whispers/default.nix b/pkgs/development/python-modules/whispers/default.nix
index 357d8d271ff49..346083ef81a1f 100644
--- a/pkgs/development/python-modules/whispers/default.nix
+++ b/pkgs/development/python-modules/whispers/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, astroid
-, beautifulsoup4
-, buildPythonPackage
-, crossplane
-, fetchFromGitHub
-, fetchpatch
-, jellyfish
-, jproperties
-, luhn
-, lxml
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
+{
+  lib,
+  astroid,
+  beautifulsoup4,
+  buildPythonPackage,
+  crossplane,
+  fetchFromGitHub,
+  jellyfish,
+  jproperties,
+  luhn,
+  lxml,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "whispers";
-  version = "2.2.0";
+  version = "2.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,39 +27,17 @@ buildPythonPackage rec {
     owner = "adeptex";
     repo = "whispers";
     rev = "refs/tags/${version}";
-    hash = "sha256-9vXku8BWJtlf+lmAcQ8a7qTisRNc+xVw0T0Eunc4lt4=";
+    hash = "sha256-YPfTe2txQY/sVEIGSMTA1b3Ye3j8qT+YdWp3AVqpdLI=";
   };
 
-  patches = [
-    # Support astroid > 3, https://github.com/adeptex/whispers/pull/117
-    (fetchpatch {
-      url = "https://github.com/adeptex/whispers/commit/ff25e81cb3d775e5fb186c2d135b77c27d9ed43a.patch";
-      hash = "sha256-jKm7fs04mGUD7MZYAA/3xt01e9knuLun3c3u8PlLebg=";
-    })
-    (fetchpatch {
-      url = "https://github.com/adeptex/whispers/commit/ba6a56dddb12d1cb62f94dd7659ba24fdc4363ee.patch";
-      hash = "sha256-eHWnXHT0lzS7BqneMqfvV3w6GfrCiTJ5i+av82J+fpk=";
-    })
-    (fetchpatch {
-      url = "https://github.com/adeptex/whispers/commit/8b7b1593eb86abfc09b3581d463fc7d0e06309dc.patch";
-      hash = "sha256-JcRdv5eIyXKWaVqbJZlYqiSieE4z0MKF4dvO/hRBBMs=";
-    })
-    (fetchpatch {
-      url = "https://github.com/adeptex/whispers/commit/71dcb614e4d9e0247afc50cd4214659739f8844e.patch";
-      hash = "sha256-7XIFuc8Rf2ValN3BoAJOjSqjgmiOauxCFonMgGljFg0=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace setup.py \
-      --replace '"pytest-runner"' ""
+      --replace-fail '"pytest-runner"' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astroid
     beautifulsoup4
     crossplane
@@ -80,16 +58,14 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
-  pythonImportsCheck = [
-    "whispers"
-  ];
+  pythonImportsCheck = [ "whispers" ];
 
   meta = with lib; {
     description = "Tool to identify hardcoded secrets in static structured text";
-    mainProgram = "whispers";
     homepage = "https://github.com/adeptex/whispers";
     changelog = "https://github.com/adeptex/whispers/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "whispers";
   };
 }
diff --git a/pkgs/development/python-modules/xknxproject/default.nix b/pkgs/development/python-modules/xknxproject/default.nix
index 1b0098629a92e..bd7e126de6a1d 100644
--- a/pkgs/development/python-modules/xknxproject/default.nix
+++ b/pkgs/development/python-modules/xknxproject/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pyzipper
-, setuptools
-, striprtf
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pyzipper,
+  setuptools,
+  striprtf,
 }:
 
 buildPythonPackage rec {
   pname = "xknxproject";
-  version = "3.7.0";
+  version = "3.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,30 +21,23 @@ buildPythonPackage rec {
     owner = "XKNX";
     repo = "xknxproject";
     rev = "refs/tags/${version}";
-    hash = "sha256-tw/hHiiW4ZGlrbQmuIihJmhyIL++Rjpg6q8AdKNsn14=";
+    hash = "sha256-/Zg4MYOvbsbJ0zyKuq+gX0PNbm8TyyBMziIaGCq6Lt8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cryptography
     pyzipper
     striprtf
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "xknxproject"
-  ];
+  pythonImportsCheck = [ "xknxproject" ];
 
   meta = with lib; {
-    description = "ETS project parser";
+    description = "Library to extract KNX projects and parses the underlying XML";
     homepage = "https://github.com/XKNX/xknxproject";
     changelog = "https://github.com/XKNX/xknxproject/releases/tag/${version}";
     license = licenses.gpl2Only;
diff --git a/pkgs/development/python-modules/xmlschema/default.nix b/pkgs/development/python-modules/xmlschema/default.nix
index 5869ad70fcea1..b8c8be9de2dcf 100644
--- a/pkgs/development/python-modules/xmlschema/default.nix
+++ b/pkgs/development/python-modules/xmlschema/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, elementpath
-, jinja2
-, lxml
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  elementpath,
+  fetchFromGitHub,
+  jinja2,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "xmlschema";
-  version = "3.0.2";
+  version = "3.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jYFhoNx4Oxm7c0LsSQ0xw9fY/yxfQU5JoP5RteHzeYM=";
+    hash = "sha256-jhof4C/jbMcvBRTLFdeFq2+ZucoDhbdcLE9IWvgzN0Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    elementpath
-  ];
+  dependencies = [ elementpath ];
 
   nativeCheckInputs = [
     jinja2
@@ -37,14 +34,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "xmlschema"
-  ];
+  pythonImportsCheck = [ "xmlschema" ];
 
   meta = with lib; {
-    changelog = "https://github.com/sissaschool/xmlschema/blob/${src.rev}/CHANGELOG.rst";
     description = "XML Schema validator and data conversion library for Python";
     homepage = "https://github.com/sissaschool/xmlschema";
+    changelog = "https://github.com/sissaschool/xmlschema/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/xyzservices/default.nix b/pkgs/development/python-modules/xyzservices/default.nix
index 8836d5195fc2a..6e49ec04eaf33 100644
--- a/pkgs/development/python-modules/xyzservices/default.nix
+++ b/pkgs/development/python-modules/xyzservices/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "xyzservices";
-  version = "2023.10.1";
+  version = "2024.4.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CRIpJpBDvIJYBC7b7a1Py0RoSwRz7eAntWcq1A3J+gI=";
+    hash = "sha256-agTxFIem+3fZKpiYTNEH+9kVf9XmX5Ka3Zw9bmBO6Iw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/yapsy/default.nix b/pkgs/development/python-modules/yapsy/default.nix
index 161620530ab80..044ce2cf83186 100644
--- a/pkgs/development/python-modules/yapsy/default.nix
+++ b/pkgs/development/python-modules/yapsy/default.nix
@@ -1,21 +1,28 @@
 { lib
-, stdenv
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, setuptools
 , pytestCheckHook
 }:
 
-buildPythonPackage rec {
+buildPythonPackage {
   pname = "yapsy";
-  version = "1.12.2";
-  format = "setuptools";
+  version = "1.12.2-unstable-2023-03-29";
+  pyproject = true;
 
-  src = fetchPypi {
-    pname = "Yapsy";
-    inherit version;
-    sha256 = "12rznbnswfw0w7qfbvmmffr9r317gl1rqg36nijwzsklkjgks4fq";
+  src = fetchFromGitHub {
+    owner = "tibonihoo";
+    repo = "yapsy";
+    rev = "6b487b04affb19ab40adbbc87827668bea0abcee";
+    hash = "sha256-QKZlUAhYMCCsT/jbEHb39ESZ2+2FZYnhJnc1PgsozBA=";
   };
 
+  sourceRoot = "source/package";
+
+  build-system = [
+    setuptools
+  ];
+
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "yapsy" ];
@@ -23,6 +30,6 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://yapsy.sourceforge.net/";
     description = "Yet another plugin system";
-    license = licenses.bsd0;
+    license = licenses.bsd2;
   };
 }
diff --git a/pkgs/development/python-modules/yolink-api/default.nix b/pkgs/development/python-modules/yolink-api/default.nix
index b52b2268a4009..c1b4703ea4d4a 100644
--- a/pkgs/development/python-modules/yolink-api/default.nix
+++ b/pkgs/development/python-modules/yolink-api/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, aiomqtt
-, buildPythonPackage
-, fetchFromGitHub
-, pydantic
-, pythonOlder
-, setuptools
-, tenacity
+{
+  lib,
+  aiohttp,
+  aiomqtt,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pydantic,
+  pythonOlder,
+  setuptools,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "yolink-api";
-  version = "0.4.1";
+  version = "0.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,12 +21,10 @@ buildPythonPackage rec {
     owner = "YoSmart-Inc";
     repo = "yolink-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YDfwF9ldL43yrhz1TibTatkZIccYTpNODdjqBkzeh1s=";
+    hash = "sha256-cLuto2V5i3au1MRYYbgR2plw9YBpgIAxsG2fu4t37jk=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -37,9 +36,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "yolink"
-  ];
+  pythonImportsCheck = [ "yolink" ];
 
   meta = with lib; {
     description = "Library to interface with Yolink";
diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix
index c721259efa432..a65afbbd3ffed 100644
--- a/pkgs/development/python-modules/zeroconf/default.nix
+++ b/pkgs/development/python-modules/zeroconf/default.nix
@@ -14,30 +14,30 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.131.0";
-  format = "pyproject";
+  version = "0.132.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "jstasiak";
     repo = "python-zeroconf";
     rev = "refs/tags/${version}";
-    hash = "sha256-l+uz+wj+tgptxEjEN8ZlmxH8I4Nhrg8qAY3yCcOgBfE=";
+    hash = "sha256-eHB+SkJU5aTQPF7QqRhYHMBJgN7EYZkwtk7gjxWxIno=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "Cython>=3.0.5" "Cython"
+      --replace-fail "Cython>=3.0.8" "Cython"
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     cython_3
     poetry-core
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     ifaddr
   ] ++ lib.optionals (pythonOlder "3.11") [
     async-timeout
@@ -70,9 +70,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    changelog = "https://github.com/python-zeroconf/python-zeroconf/releases/tag/${version}";
     description = "Python implementation of multicast DNS service discovery";
     homepage = "https://github.com/python-zeroconf/python-zeroconf";
+    changelog = "https://github.com/python-zeroconf/python-zeroconf/releases/tag/${version}";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index f7e7c7f4f26ab..03413fc6f1fcf 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -1,39 +1,38 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, zigpy
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  zigpy,
 }:
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.112";
+  version = "0.0.114";
   pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.12";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = "refs/tags/${version}";
-    hash = "sha256-wI7mpX6oFV/RrxH/UP1X9Odago0CxJ5dhjKAsDS+Sq4=";
+    hash = "sha256-FipD4VCz2/FYlf17+q7LTej9ZtT72/R4ELkAQtw7RvE=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace ', "setuptools-git-versioning<2"' "" \
-      --replace 'dynamic = ["version"]' 'version = "${version}"'
+      --replace-fail ', "setuptools-git-versioning<2"' "" \
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     zigpy
   ];
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     "test_smart_air_sensor"
   ];
 
-  pythonImportsCheck = [
-    "zhaquirks"
-  ];
+  pythonImportsCheck = [ "zhaquirks" ];
 
   meta = with lib; {
     description = "ZHA Device Handlers are custom quirks implementations for Zigpy";
diff --git a/pkgs/development/python-modules/zha/default.nix b/pkgs/development/python-modules/zha/default.nix
new file mode 100644
index 0000000000000..6e749edb9f257
--- /dev/null
+++ b/pkgs/development/python-modules/zha/default.nix
@@ -0,0 +1,126 @@
+{ lib
+, awesomeversion
+, bellows
+, buildPythonPackage
+, fetchFromGitHub
+, pyserial
+, pyserial-asyncio
+, pyserial-asyncio-fast
+, pytest-asyncio
+, pytest-timeout
+, pytest-xdist
+, pytestCheckHook
+, python-slugify
+, pythonOlder
+, pythonRelaxDepsHook
+, setuptools
+, universal-silabs-flasher
+, wheel
+, zha-quirks
+, zigpy
+, zigpy-deconz
+, zigpy-xbee
+, zigpy-zigate
+, zigpy-znp
+}:
+
+buildPythonPackage rec {
+  pname = "zha";
+  version = "0.0.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.12";
+
+  src = fetchFromGitHub {
+    owner = "zigpy";
+    repo = "zha";
+    rev = "refs/tags/${version}";
+    hash = "sha256-47dlWMzY1vPmHIDCy8a0xzk2G+OPq6vEK5OpP1c8vw4=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail '"setuptools-git-versioning<2"' "" \
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
+  '';
+
+  pythonRelaxDeps = [
+    "universal-silabs-flasher"
+    "zha-quirks"
+  ];
+
+
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    awesomeversion
+    bellows
+    pyserial
+    pyserial-asyncio
+    pyserial-asyncio-fast
+    python-slugify
+    universal-silabs-flasher
+    zha-quirks
+    zigpy
+    zigpy-deconz
+    zigpy-xbee
+    zigpy-zigate
+    zigpy-znp
+  ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytest-timeout
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "zha"
+  ];
+
+  disabledTests = [
+    # Tests are long-running and often keep hanging
+    "test_check_available_no_basic_cluster_handler"
+    "test_check_available_success"
+    "test_check_available_unsuccessful"
+    "test_device_counter_sensors"
+    "test_device_tracker"
+    "test_elec_measurement_sensor_polling"
+    "test_electrical_measurement_init"
+    "test_group_member_assume_state"
+    "test_light_refresh"
+    "test_light"
+    "test_light"
+    "test_light"
+    "test_pollers_skip"
+    "test_sinope_time"
+    "test_siren_timed_off"
+    "test_zha_group_light_entity"
+  ];
+
+  disabledTestPaths = [
+    "tests/test_cluster_handlers.py"
+  ];
+
+  pytestFlagsArray = [
+    "-v"
+    "--timeout=5"
+  ];
+
+  meta = with lib; {
+    description = "Zigbee Home Automation";
+    homepage = "https://github.com/zigpy/zha";
+    changelog = "https://github.com/zigpy/zha/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix
index 2b7060ddc223f..0a32dea6649a1 100644
--- a/pkgs/development/python-modules/zigpy/default.nix
+++ b/pkgs/development/python-modules/zigpy/default.nix
@@ -1,12 +1,16 @@
 { lib
 , aiohttp
-, aiosqlite
 , aioresponses
+, aiosqlite
+, async-timeout
+, attrs
 , buildPythonPackage
 , crccheck
 , cryptography
-, freezegun
 , fetchFromGitHub
+, freezegun
+, importlib-resources
+, jsonschema
 , pycryptodome
 , pyserial-asyncio
 , pytest-asyncio
@@ -14,12 +18,13 @@
 , pytestCheckHook
 , pythonOlder
 , setuptools
+, typing-extensions
 , voluptuous
 }:
 
 buildPythonPackage rec {
   pname = "zigpy";
-  version = "0.63.4";
+  version = "0.63.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,27 +33,34 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zigpy";
     rev = "refs/tags/${version}";
-    hash = "sha256-0wenUUkhgodsBID+ZT9JRoJeGDTqAChAIpj+9/Q3FMM=";
+    hash = "sha256-iZxHXxheyoA5vo0Pxojs7QE8rSyTpsYpJ6/OzDSZJ20=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace '"setuptools-git-versioning<2"' "" \
-      --replace 'dynamic = ["version"]' 'version = "${version}"'
+      --replace-fail '"setuptools-git-versioning<2"' "" \
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    attrs
     aiohttp
     aiosqlite
     crccheck
     cryptography
+    jsonschema
     pyserial-asyncio
+    typing-extensions
     pycryptodome
     voluptuous
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    async-timeout
   ];
 
   nativeCheckInputs = [
@@ -66,6 +78,11 @@ buildPythonPackage rec {
     "test_periodic_scan_priority"
   ];
 
+  disabledTestPaths = [
+    # Tests require network access
+    "tests/ota/test_ota_providers.py"
+  ];
+
   pythonImportsCheck = [
     "zigpy.application"
     "zigpy.config"
diff --git a/pkgs/development/python-modules/zodb/default.nix b/pkgs/development/python-modules/zodb/default.nix
index c90cc42a33838..2ac592db42239 100644
--- a/pkgs/development/python-modules/zodb/default.nix
+++ b/pkgs/development/python-modules/zodb/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "zodb";
-  version = "5.8.1";
+  version = "6.0";
 
   src = fetchPypi {
     pname = "ZODB";
     inherit version;
-    hash = "sha256-xsc6vTZg1gb/wfIfl97xS1K0b0pwLsnm7kSabiviZN8=";
+    hash = "sha256-5Rx5IRXF2q1OgGdXuvovdUwADCPmurw75eQHdf5Jtdw=";
   };
 
   # remove broken test