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/accuweather/default.nix13
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--pkgs/development/python-modules/aio-pika/default.nix9
-rw-r--r--pkgs/development/python-modules/aiocsv/default.nix4
-rw-r--r--pkgs/development/python-modules/aiofile/default.nix16
-rw-r--r--pkgs/development/python-modules/aiolifx/default.nix7
-rw-r--r--pkgs/development/python-modules/aiomisc-pytest/default.nix48
-rw-r--r--pkgs/development/python-modules/aiomisc/default.nix14
-rw-r--r--pkgs/development/python-modules/aiormq/default.nix7
-rw-r--r--pkgs/development/python-modules/aioruuvigateway/default.nix4
-rw-r--r--pkgs/development/python-modules/aioshelly/default.nix4
-rw-r--r--pkgs/development/python-modules/aioswitcher/default.nix4
-rw-r--r--pkgs/development/python-modules/angr/default.nix6
-rw-r--r--pkgs/development/python-modules/ansible-later/default.nix4
-rw-r--r--pkgs/development/python-modules/apycula/default.nix4
-rw-r--r--pkgs/development/python-modules/aqualogic/default.nix8
-rw-r--r--pkgs/development/python-modules/arc4/default.nix4
-rw-r--r--pkgs/development/python-modules/arcam-fmj/default.nix4
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--pkgs/development/python-modules/asana/default.nix4
-rw-r--r--pkgs/development/python-modules/asf-search/default.nix4
-rw-r--r--pkgs/development/python-modules/atenpdu/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-eventgrid/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-eventhub/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-mgmt-web/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-storage-file-share/default.nix4
-rw-r--r--pkgs/development/python-modules/bitsandbytes/default.nix98
-rw-r--r--pkgs/development/python-modules/brother-ql/default.nix1
-rw-r--r--pkgs/development/python-modules/bytecode/default.nix4
-rw-r--r--pkgs/development/python-modules/bytewax/default.nix72
-rw-r--r--pkgs/development/python-modules/bytewax/remove-docs-test.patch10
-rw-r--r--pkgs/development/python-modules/caio/default.nix2
-rw-r--r--pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--pkgs/development/python-modules/cle/default.nix4
-rw-r--r--pkgs/development/python-modules/cleo/default.nix6
-rw-r--r--pkgs/development/python-modules/comm/default.nix6
-rw-r--r--pkgs/development/python-modules/crate/default.nix4
-rw-r--r--pkgs/development/python-modules/cwl-upgrader/default.nix2
-rw-r--r--pkgs/development/python-modules/cwl-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/databricks-cli/default.nix4
-rw-r--r--pkgs/development/python-modules/datafusion/default.nix38
-rw-r--r--pkgs/development/python-modules/deepdiff/default.nix4
-rw-r--r--pkgs/development/python-modules/deezer-python/default.nix4
-rw-r--r--pkgs/development/python-modules/devito/default.nix4
-rw-r--r--pkgs/development/python-modules/devolo-plc-api/default.nix4
-rw-r--r--pkgs/development/python-modules/dicom2nifti/default.nix4
-rw-r--r--pkgs/development/python-modules/django-bootstrap3/default.nix48
-rw-r--r--pkgs/development/python-modules/django-countries/default.nix60
-rw-r--r--pkgs/development/python-modules/django-dynamic-preferences/default.nix45
-rw-r--r--pkgs/development/python-modules/django-formset-js-improved/default.nix40
-rw-r--r--pkgs/development/python-modules/django-hierarkey/default.nix53
-rw-r--r--pkgs/development/python-modules/django-jquery-js/default.nix35
-rw-r--r--pkgs/development/python-modules/django-markup/default.nix75
-rw-r--r--pkgs/development/python-modules/django-parler/default.nix42
-rw-r--r--pkgs/development/python-modules/django-redis/default.nix6
-rw-r--r--pkgs/development/python-modules/django-scheduler/default.nix52
-rw-r--r--pkgs/development/python-modules/django-stubs-ext/default.nix4
-rw-r--r--pkgs/development/python-modules/django-two-factor-auth/default.nix85
-rw-r--r--pkgs/development/python-modules/dkimpy/default.nix4
-rw-r--r--pkgs/development/python-modules/dsmr-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/ducc0/default.nix4
-rw-r--r--pkgs/development/python-modules/duckdb-engine/default.nix4
-rw-r--r--pkgs/development/python-modules/env-canada/default.nix4
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix4
-rw-r--r--pkgs/development/python-modules/execnb/default.nix4
-rw-r--r--pkgs/development/python-modules/feedgenerator/default.nix4
-rw-r--r--pkgs/development/python-modules/frigidaire/default.nix6
-rw-r--r--pkgs/development/python-modules/gaphas/default.nix4
-rw-r--r--pkgs/development/python-modules/google-api-python-client/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-container/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-securitycenter/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-status/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix4
-rw-r--r--pkgs/development/python-modules/html5-parser/default.nix53
-rw-r--r--pkgs/development/python-modules/ibis-framework/default.nix101
-rw-r--r--pkgs/development/python-modules/ihatemoney/default.nix129
-rw-r--r--pkgs/development/python-modules/invocations/default.nix4
-rw-r--r--pkgs/development/python-modules/iocextract/default.nix4
-rw-r--r--pkgs/development/python-modules/ipywidgets/default.nix9
-rw-r--r--pkgs/development/python-modules/jax/default.nix23
-rw-r--r--pkgs/development/python-modules/jaxlib/bin.nix18
-rw-r--r--pkgs/development/python-modules/jaxlib/default.nix16
-rw-r--r--pkgs/development/python-modules/johnnycanencrypt/default.nix14
-rw-r--r--pkgs/development/python-modules/jupyter-book/default.nix1
-rw-r--r--pkgs/development/python-modules/jupyter-server-fileid/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab-lsp/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab-widgets/default.nix4
-rw-r--r--pkgs/development/python-modules/kornia/default.nix54
-rw-r--r--pkgs/development/python-modules/levenshtein/default.nix6
-rw-r--r--pkgs/development/python-modules/lightgbm/default.nix23
-rw-r--r--pkgs/development/python-modules/lion-pytorch/default.nix32
-rw-r--r--pkgs/development/python-modules/mautrix/default.nix4
-rw-r--r--pkgs/development/python-modules/mcstatus/default.nix4
-rw-r--r--pkgs/development/python-modules/meraki/default.nix5
-rw-r--r--pkgs/development/python-modules/meshtastic/default.nix11
-rw-r--r--pkgs/development/python-modules/mlflow/default.nix6
-rw-r--r--pkgs/development/python-modules/monty/default.nix4
-rw-r--r--pkgs/development/python-modules/niaclass/default.nix6
-rw-r--r--pkgs/development/python-modules/nibabel/default.nix4
-rw-r--r--pkgs/development/python-modules/notus-scanner/default.nix4
-rw-r--r--pkgs/development/python-modules/ocifs/default.nix4
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix4
-rw-r--r--pkgs/development/python-modules/omnikinverter/default.nix7
-rw-r--r--pkgs/development/python-modules/onvif-zeep-async/default.nix4
-rw-r--r--pkgs/development/python-modules/openai/default.nix4
-rw-r--r--pkgs/development/python-modules/opencontainers/default.nix42
-rw-r--r--pkgs/development/python-modules/palettable/default.nix25
-rw-r--r--pkgs/development/python-modules/parsel/default.nix6
-rw-r--r--pkgs/development/python-modules/parsy/default.nix11
-rw-r--r--pkgs/development/python-modules/peaqevcore/default.nix4
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix4
-rw-r--r--pkgs/development/python-modules/playwright/default.nix144
-rw-r--r--pkgs/development/python-modules/pontos/default.nix4
-rw-r--r--pkgs/development/python-modules/pooch/default.nix11
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--pkgs/development/python-modules/pydata-google-auth/default.nix43
-rw-r--r--pkgs/development/python-modules/pydeps/default.nix4
-rw-r--r--pkgs/development/python-modules/pydrive2/default.nix4
-rw-r--r--pkgs/development/python-modules/pydruid/default.nix68
-rw-r--r--pkgs/development/python-modules/pyfibaro/default.nix4
-rw-r--r--pkgs/development/python-modules/pylacrosse/default.nix21
-rw-r--r--pkgs/development/python-modules/pylaunches/default.nix4
-rw-r--r--pkgs/development/python-modules/pymilvus/default.nix11
-rw-r--r--pkgs/development/python-modules/pyorthanc/default.nix5
-rw-r--r--pkgs/development/python-modules/pyqt/6.x.nix10
-rw-r--r--pkgs/development/python-modules/pyqt6-charts.nix4
-rw-r--r--pkgs/development/python-modules/pyqt6-webengine.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix9
-rw-r--r--pkgs/development/python-modules/pysigma-backend-opensearch/default.nix9
-rw-r--r--pkgs/development/python-modules/pysigma/default.nix4
-rw-r--r--pkgs/development/python-modules/pysml/default.nix4
-rw-r--r--pkgs/development/python-modules/pyspark/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-playwright/default.nix3
-rw-r--r--pkgs/development/python-modules/python-creole/default.nix89
-rw-r--r--pkgs/development/python-modules/python-gitlab/default.nix4
-rw-r--r--pkgs/development/python-modules/python-homewizard-energy/default.nix4
-rw-r--r--pkgs/development/python-modules/python-manilaclient/default.nix4
-rw-r--r--pkgs/development/python-modules/pythonocc-core/default.nix6
-rw-r--r--pkgs/development/python-modules/pytoml/default.nix34
-rw-r--r--pkgs/development/python-modules/pytomlpp/default.nix4
-rw-r--r--pkgs/development/python-modules/pyunifiprotect/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix4
-rw-r--r--pkgs/development/python-modules/radian/default.nix4
-rw-r--r--pkgs/development/python-modules/rapidfuzz/default.nix6
-rw-r--r--pkgs/development/python-modules/rdkit/default.nix8
-rw-r--r--pkgs/development/python-modules/renault-api/default.nix4
-rw-r--r--pkgs/development/python-modules/reolink-aio/default.nix4
-rw-r--r--pkgs/development/python-modules/scmrepo/default.nix4
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/snakeviz/default.nix4
-rw-r--r--pkgs/development/python-modules/snitun/default.nix2
-rw-r--r--pkgs/development/python-modules/social-auth-app-django/default.nix4
-rw-r--r--pkgs/development/python-modules/spacy/annotation-test/annotate.py4
-rw-r--r--pkgs/development/python-modules/spacy/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx-copybutton/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx-design/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy-views/default.nix47
-rw-r--r--pkgs/development/python-modules/syncedlyrics/default.nix6
-rw-r--r--pkgs/development/python-modules/tensorflow-metadata/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow-probability/default.nix2
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix35
-rw-r--r--pkgs/development/python-modules/tplink-omada-client/default.nix6
-rw-r--r--pkgs/development/python-modules/traittypes/default.nix2
-rw-r--r--pkgs/development/python-modules/transformers/default.nix4
-rw-r--r--pkgs/development/python-modules/trino-python-client/default.nix81
-rw-r--r--pkgs/development/python-modules/trove-classifiers/default.nix4
-rw-r--r--pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--pkgs/development/python-modules/ttp-templates/default.nix4
-rw-r--r--pkgs/development/python-modules/twisted/default.nix2
-rw-r--r--pkgs/development/python-modules/unearth/default.nix4
-rw-r--r--pkgs/development/python-modules/unittest-xml-reporting/default.nix7
-rw-r--r--pkgs/development/python-modules/w1thermsensor/default.nix70
-rw-r--r--pkgs/development/python-modules/widgetsnbextension/default.nix4
-rw-r--r--pkgs/development/python-modules/yalexs/default.nix4
-rw-r--r--pkgs/development/python-modules/yara-python/default.nix4
-rw-r--r--pkgs/development/python-modules/youtube-transcript-api/default.nix4
180 files changed, 1901 insertions, 750 deletions
diff --git a/pkgs/development/python-modules/accuweather/default.nix b/pkgs/development/python-modules/accuweather/default.nix
index e6f2274667c2f..7bf270e92db31 100644
--- a/pkgs/development/python-modules/accuweather/default.nix
+++ b/pkgs/development/python-modules/accuweather/default.nix
@@ -12,25 +12,18 @@
 
 buildPythonPackage rec {
   pname = "accuweather";
-  version = "0.5.0";
+  version = "0.5.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "bieniu";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-v4mFvW+p0g+5IeZT8o0Z60MafHyYZ62d4lNH27wlAeI=";
+    hash = "sha256-kWhb9tDp7/p5iCXTpf4/fjSo1ceuA9I2eqSprt50rWU=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pytest-runner" ""
-    substituteInPlace setup.cfg \
-      --replace "--cov --cov-report term-missing" ""
-  '';
-
   propagatedBuildInputs = [
     aiohttp
     orjson
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index c52f2e8837233..006f6a1291302 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.45.0";
+  version = "3.45.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    hash = "sha256-xhcwEEUAgk1QJjmdAglfLnUlQpG3Pxof4g8c4NuyuPo=";
+    hash = "sha256-dMXHjI4J/Bp4dBpymyzgWZxBi0al3N5eY7QxVoSNdxc=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index 0994f8d658c81..bde7a89de5076 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.2.46";
+  version = "9.2.47";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-7BvdrfdHg49L3A1196FKP6NGlfP/bnzrQHThPXOd30c=";
+    hash = "sha256-11lvarj2l/cPiGI+Ro88NuHa2CBJYI7S95H3sSv1ln8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aio-pika/default.nix b/pkgs/development/python-modules/aio-pika/default.nix
index 5e89c35a8c56b..90b8c171fe1c5 100644
--- a/pkgs/development/python-modules/aio-pika/default.nix
+++ b/pkgs/development/python-modules/aio-pika/default.nix
@@ -1,8 +1,9 @@
 { lib
-, aiomisc
+, aiomisc-pytest
 , aiormq
 , buildPythonPackage
 , fetchFromGitHub
+, pamqp
 , poetry-core
 , pytestCheckHook
 , pythonOlder
@@ -39,11 +40,9 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    aiomisc-pytest
+    pamqp
     pytestCheckHook
-  ];
-
-  checkInputs = [
-    aiomisc
     shortuuid
   ];
 
diff --git a/pkgs/development/python-modules/aiocsv/default.nix b/pkgs/development/python-modules/aiocsv/default.nix
index 50002735d6563..05df5094e6583 100644
--- a/pkgs/development/python-modules/aiocsv/default.nix
+++ b/pkgs/development/python-modules/aiocsv/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "aiocsv";
-  version = "1.2.3";
+  version = "1.2.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "MKuranowski";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-cgPD9JdauPIHOdCNxsWInJWytj4niXozFAzJxKn52bE=";
+    hash = "sha256-R9gZqiHYKexXXjbAkKu9YqhZnzC/VAMSDzBYT/mF5v0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiofile/default.nix b/pkgs/development/python-modules/aiofile/default.nix
index 5d79aaa1bc32c..27e7cc8126078 100644
--- a/pkgs/development/python-modules/aiofile/default.nix
+++ b/pkgs/development/python-modules/aiofile/default.nix
@@ -1,16 +1,16 @@
 { lib
 , aiomisc
+, aiomisc-pytest
 , caio
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "aiofile";
-  version = "3.8.0";
+  version = "3.8.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,23 +19,16 @@ buildPythonPackage rec {
     owner = "mosquito";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-PIImQZ1ymazsOg8qmlO91tNYHwXqK/d8AuKPsWYvh0w=";
+    hash = "sha256-jQ97jtYhkqQgQjtHhtlk5JlvkzbFQw3kY6uXuV81ZkQ=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "remove-asynctest.patch";
-      url = "https://github.com/mosquito/aiofile/commit/9253ca42022f17f630ccfb6811f67876910f8b13.patch";
-      hash = "sha256-yMRfqEbdxApFypEj27v1zTgF/4kuLf5aS/+clo3mfZo=";
-    })
-  ];
-
   propagatedBuildInputs = [
     caio
   ];
 
   nativeCheckInputs = [
     aiomisc
+    aiomisc-pytest
     pytestCheckHook
   ];
 
@@ -63,6 +56,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "File operations with asyncio support";
     homepage = "https://github.com/mosquito/aiofile";
+    changelog = "https://github.com/aiokitchen/aiomisc/blob/master/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/aiolifx/default.nix b/pkgs/development/python-modules/aiolifx/default.nix
index 4c5ea71919401..46e7f7fb98b22 100644
--- a/pkgs/development/python-modules/aiolifx/default.nix
+++ b/pkgs/development/python-modules/aiolifx/default.nix
@@ -1,4 +1,5 @@
 { lib
+, async-timeout
 , fetchPypi
 , buildPythonPackage
 , pythonOlder
@@ -8,17 +9,18 @@
 
 buildPythonPackage rec {
   pname = "aiolifx";
-  version = "0.8.9";
+  version = "0.8.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ih82dNDZd3sbGHhxDTtzJQXkjn6Pgefb0S24gttiOO8=";
+    hash = "sha256-NiNKFrWxpGkwbb7tFEDD5jZ6ETW20BBIqrdjCsL/DkY=";
   };
 
   propagatedBuildInputs = [
+    async-timeout
     bitstring
     ifaddr
   ];
@@ -33,6 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Module for local communication with LIFX devices over a LAN";
     homepage = "https://github.com/frawau/aiolifx";
+    changelog = "https://github.com/frawau/aiolifx/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ netixx ];
   };
diff --git a/pkgs/development/python-modules/aiomisc-pytest/default.nix b/pkgs/development/python-modules/aiomisc-pytest/default.nix
new file mode 100644
index 0000000000000..c3f720cdadeb1
--- /dev/null
+++ b/pkgs/development/python-modules/aiomisc-pytest/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, aiomisc
+, buildPythonPackage
+, fetchPypi
+, poetry-core
+, pytest
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiomisc-pytest";
+  version = "1.1.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    pname = "aiomisc_pytest";
+    inherit version;
+    hash = "sha256-LDeMQbB4wFdgJ95r9/vFN6fmkoXSPq9NRXONXQ3lbdM=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  buildInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    aiomisc
+  ];
+
+  pythonImportsCheck = [
+    "aiomisc_pytest"
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Pytest integration for aiomisc";
+    homepage = "https://github.com/aiokitchen/aiomisc";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiomisc/default.nix b/pkgs/development/python-modules/aiomisc/default.nix
index ce000ddb0361a..de571b3bccd1e 100644
--- a/pkgs/development/python-modules/aiomisc/default.nix
+++ b/pkgs/development/python-modules/aiomisc/default.nix
@@ -10,29 +10,36 @@
 , fastapi
 , fetchPypi
 , logging-journald
+, poetry-core
 , pytestCheckHook
 , pythonOlder
 , raven
   #, raven-aiohttp
 , setproctitle
+, setuptools
 , uvloop
 }:
 
 buildPythonPackage rec {
   pname = "aiomisc";
-  version = "16.3.15";
-  format = "setuptools";
+  version = "17.0.8";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lHDjsK8ds1ftovY2IAbJwk3jnn4FoDo6f/Nu/MSAhqM=";
+    hash = "sha256-URN9ACnHbQnq7UqfKwhofOdpE/Bjz7WrbdWQikxpVOU=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     colorlog
     logging-journald
+    setuptools
   ];
 
   nativeCheckInputs = [
@@ -83,6 +90,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Miscellaneous utils for asyncio";
     homepage = "https://github.com/aiokitchen/aiomisc";
+    changelog = "https://github.com/aiokitchen/aiomisc/blob/master/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/aiormq/default.nix b/pkgs/development/python-modules/aiormq/default.nix
index b8ec9619b1390..d50261c82deae 100644
--- a/pkgs/development/python-modules/aiormq/default.nix
+++ b/pkgs/development/python-modules/aiormq/default.nix
@@ -1,4 +1,5 @@
 { lib
+, aiomisc-pytest
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
@@ -12,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aiormq";
-  version = "6.7.2";
+  version = "6.7.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "mosquito";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-ujRw+trXOZaCRsZdkE3WoomOSdYoQkHmtlyFg1mp3Sg=";
+    hash = "sha256-vORo5Kqy+Rg8WCyFU5lyQHS4EALYkycY4XxYhABV/4A=";
   };
 
   nativeBuildInputs = [
@@ -39,7 +40,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    aiomisc
+    aiomisc-pytest
   ];
 
   # Tests attempt to connect to a RabbitMQ server
diff --git a/pkgs/development/python-modules/aioruuvigateway/default.nix b/pkgs/development/python-modules/aioruuvigateway/default.nix
index 2ba4718af565c..215d34d098b04 100644
--- a/pkgs/development/python-modules/aioruuvigateway/default.nix
+++ b/pkgs/development/python-modules/aioruuvigateway/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "aioruuvigateway";
-  version = "0.0.2";
+  version = "0.1.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "akx";
     repo = "aioruuvigateway";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oT5Tlmi9bevOkcVZqg/xvCckIpN7TjbPVQefo9z1RDM=";
+    hash = "sha256-Etv+kPFYEK79hpDeNmDfuyNj1vJ6udry1u+TRO5gLV4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aioshelly/default.nix b/pkgs/development/python-modules/aioshelly/default.nix
index 01be603f2101d..10948344f3b7b 100644
--- a/pkgs/development/python-modules/aioshelly/default.nix
+++ b/pkgs/development/python-modules/aioshelly/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "aioshelly";
-  version = "5.3.1";
+  version = "5.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-a8zU3xHnYRmoiNiXlCUgrqgVINbhUWkPKGGsHkgHo4w=";
+    hash = "sha256-eqZyCQ96CasBlO++QcQ/HiVWWeB2jQltHXZRbIfub7Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix
index 9fb42cd93e108..461f0a9c05740 100644
--- a/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/pkgs/development/python-modules/aioswitcher/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "3.2.2";
+  version = "3.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "TomerFi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-17LTNQjI2UfgtlNNkSRSWMNnhgokBXn/7KGuKo5Ai4E=";
+    hash = "sha256-dg3oGSwRoOFkX97ZBk7fgOv0fZjOZ+FRXNO9DKEU6Zk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index f3d936e4abb4e..3cb241b8a63a6 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -22,6 +22,7 @@
 , pycparser
 , pythonOlder
 , pyvex
+, rich
 , rpyc
 , sortedcontainers
 , sqlalchemy
@@ -31,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.2.46";
+  version = "9.2.47";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -40,7 +41,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-VXLKJaD1d9tNglytraUSXagkBeKQmvbT3e+ofZznyaM=";
+    hash = "sha256-fMFhNiYFAC2SW6jdB8RuMngIH/Dc8hznOyd7H9baUkE=";
   };
 
   propagatedBuildInputs = [
@@ -63,6 +64,7 @@ buildPythonPackage rec {
     psutil
     pycparser
     pyvex
+    rich
     rpyc
     sortedcontainers
     sqlalchemy
diff --git a/pkgs/development/python-modules/ansible-later/default.nix b/pkgs/development/python-modules/ansible-later/default.nix
index 994e3a2f9bffd..93ff20faae093 100644
--- a/pkgs/development/python-modules/ansible-later/default.nix
+++ b/pkgs/development/python-modules/ansible-later/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "ansible-later";
-  version = "3.2.1";
+  version = "3.2.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     owner = "thegeeklab";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-icJn8lk7gAhqTRu3rAroWgtNwOdbimE4y+CHLiDvb9k=";
+    hash = "sha256-kqvWrNygriFG+jVjezJNe5CwUix38Ge0hQgu351Qyjw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/apycula/default.nix b/pkgs/development/python-modules/apycula/default.nix
index 7710d856fb8a0..6d964fc5cba8f 100644
--- a/pkgs/development/python-modules/apycula/default.nix
+++ b/pkgs/development/python-modules/apycula/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "apycula";
-  version = "0.7";
+  version = "0.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "Apycula";
-    hash = "sha256-h3YDpPreJuJpq43dHFC3ZP9coJ34lrWBdbCrGWGACsY=";
+    hash = "sha256-IUyhqOuftx06+dvN9afad10IpaefHoUeMwFyTzgBvOQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aqualogic/default.nix b/pkgs/development/python-modules/aqualogic/default.nix
index 8a6037213f7ec..9b904033b7c66 100644
--- a/pkgs/development/python-modules/aqualogic/default.nix
+++ b/pkgs/development/python-modules/aqualogic/default.nix
@@ -9,26 +9,26 @@
 
 buildPythonPackage rec {
   pname = "aqualogic";
-  version = "3.3";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "swilson";
     repo = pname;
     rev = version;
-    hash = "sha256-6YvkSUtBc3Nl/Ap3LjU0IKY2bE4k86XdSoLo+/c8dDs=";
+    hash = "sha256-hBg02Wypd+MyqM2SUD53djhm5OMP2QAmsp8Stf+UT2c=";
   };
 
   propagatedBuildInputs = [
+    aiohttp
     pyserial
     websockets
   ];
 
   nativeCheckInputs = [
-    aiohttp
     pytestCheckHook
   ];
 
-  # With 3.3 the event loop is not terminated after the first test
+  # With 3.4 the event loop is not terminated after the first test
   # https://github.com/swilson/aqualogic/issues/9
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/arc4/default.nix b/pkgs/development/python-modules/arc4/default.nix
index 17f3a0f54f009..9e873328a308a 100644
--- a/pkgs/development/python-modules/arc4/default.nix
+++ b/pkgs/development/python-modules/arc4/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "arc4";
-  version = "0.3.0";
+  version = "0.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "manicmaniac";
     repo = pname;
     rev = version;
-    hash = "sha256-z8zj46/xX/gXtWzlmnHuAsnK3xYCL4NM5/xpYcH+Qlo=";
+    hash = "sha256-DlZIygf5v3ZNY2XFmrKOA15ccMo3Rv0kf6hZJ0CskeQ=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/arcam-fmj/default.nix b/pkgs/development/python-modules/arcam-fmj/default.nix
index 7cba156bd6840..adc187fdc5448 100644
--- a/pkgs/development/python-modules/arcam-fmj/default.nix
+++ b/pkgs/development/python-modules/arcam-fmj/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "arcam-fmj";
-  version = "1.2.1";
+  version = "1.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "elupus";
     repo = "arcam_fmj";
     rev = "refs/tags/${version}";
-    hash = "sha256-nRInKju3Q4En+SiSl6DOeeTRK56TzKPweoVXsvzs45I=";
+    hash = "sha256-TFZoWni33dzioADpTt50fqwBlZ/rdUergGs3s3d0504=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index 27397a57c88d6..4298b14617842 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.2.46";
+  version = "9.2.47";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-vfOZF3EuEGBqSiDpmLfrVxnKAbaKCcDWxWaOmefNYwU=";
+    hash = "sha256-dZ4dbPgAsaSq2CChQ/Bh8nx1wY51kbJVblo1Aw4kOT4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/asana/default.nix b/pkgs/development/python-modules/asana/default.nix
index c4d78a275a6d3..410c8d6a24f19 100644
--- a/pkgs/development/python-modules/asana/default.nix
+++ b/pkgs/development/python-modules/asana/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "asana";
-  version = "3.2.0";
+  version = "3.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "asana";
     repo = "python-asana";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qxoGi7UByHEuDKsELEjwzf01/JNEiUgUs88536TGFKo=";
+    hash = "sha256-hvAyKGoNkX3bs7Mz2h7SnOa5T6J88c0YiTR/L8fgfi8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/asf-search/default.nix b/pkgs/development/python-modules/asf-search/default.nix
index c652a95dbfcb9..3fd0437667781 100644
--- a/pkgs/development/python-modules/asf-search/default.nix
+++ b/pkgs/development/python-modules/asf-search/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "asf-search";
-  version = "6.2.0";
+  version = "6.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "asfadmin";
     repo = "Discovery-asf_search";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4RFGhA9xzc1kxSni6rAbevoDkc1bLdQD1II/2xq/uKM=";
+    hash = "sha256-9mhb8PEpRdFjbPBZ/B8he/UcRSLryBQU0Dgjcii7LGY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/atenpdu/default.nix b/pkgs/development/python-modules/atenpdu/default.nix
index 9726239e06093..211466c085c40 100644
--- a/pkgs/development/python-modules/atenpdu/default.nix
+++ b/pkgs/development/python-modules/atenpdu/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "atenpdu";
-  version = "0.5.0";
+  version = "0.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-uUi6NtiHt3wWU4hrC6RNVEDBcoBCgkpwKyePq1VxO0c=";
+    hash = "sha256-E/cRjbispHiS38BdIvOKD4jOFrDmpx8L4eAlMV8Re70=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-eventgrid/default.nix b/pkgs/development/python-modules/azure-eventgrid/default.nix
index 5946f5202c8ea..4275be9bac23e 100644
--- a/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.9.1";
+  version = "4.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    hash = "sha256-zRiS5XsinEQoyYsg2PSso3Y2pC7QwB1fbVkCF1OeQ3U=";
+    hash = "sha256-PWl+rA/JAe0rUKU24oQuYlt7U4Cyi14T7cVlA/B60VY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
index 4955655607d27..92bb1bf301a82 100644
--- a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
@@ -10,15 +10,15 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-eventhub";
-  version = "10.1.0";
+  version = "11.0.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    hash = "sha256-MZqhSBkwypvEefhoEWEPsBUFidWYD7qAX6edcBDDSSA=";
+    hash = "sha256-FxB9ToXd6PZ1eUrMWDAtbOmKclTuA/QdP72WsG7za5Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-web/default.nix b/pkgs/development/python-modules/azure-mgmt-web/default.nix
index ce4caf8e41e23..56a38ca05d957 100644
--- a/pkgs/development/python-modules/azure-mgmt-web/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-web/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-web";
-  version = "7.0.0";
+  version = "7.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    hash = "sha256-WvyNgfiliEt6qawqy8Le8eifhxusMkoZbf6YcyY1SBA=";
+    hash = "sha256-WxbN5+MNwgRmuRH/vEmlcljH7ylYRyxNz2Ev8aAS8Vw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-storage-file-share/default.nix b/pkgs/development/python-modules/azure-storage-file-share/default.nix
index ffd578524ebf4..df5ab11e6c933 100644
--- a/pkgs/development/python-modules/azure-storage-file-share/default.nix
+++ b/pkgs/development/python-modules/azure-storage-file-share/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-file-share";
-  version = "12.11.1";
+  version = "12.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    hash = "sha256-lyVbyZUDWyHZIuFPM47kY2LXlNjDXjF6soyhhIdayLA=";
+    hash = "sha256-z35H90n8Buy5m2RhKrS9lCJ7mTFJekwnwoZXF8PaoIk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bitsandbytes/default.nix b/pkgs/development/python-modules/bitsandbytes/default.nix
new file mode 100644
index 0000000000000..d63b79a1e20be
--- /dev/null
+++ b/pkgs/development/python-modules/bitsandbytes/default.nix
@@ -0,0 +1,98 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python
+, pythonOlder
+, pytestCheckHook
+, setuptools
+, torch
+, einops
+, lion-pytorch
+, scipy
+, symlinkJoin
+}:
+
+let
+  pname = "bitsandbytes";
+  version = "0.38.0";
+
+  inherit (torch) cudaCapabilities cudaPackages cudaSupport;
+  inherit (cudaPackages) backendStdenv cudaVersion;
+
+  # NOTE: torchvision doesn't use cudnn; torch does!
+  #   For this reason it is not included.
+  cuda-common-redist = with cudaPackages; [
+    cuda_cccl # <thrust/*>
+    libcublas # cublas_v2.h
+    libcurand
+    libcusolver # cusolverDn.h
+    libcusparse # cusparse.h
+  ];
+
+  cuda-native-redist = symlinkJoin {
+    name = "cuda-native-redist-${cudaVersion}";
+    paths = with cudaPackages; [
+      cuda_cudart # cuda_runtime.h cuda_runtime_api.h
+      cuda_nvcc
+    ] ++ cuda-common-redist;
+  };
+
+  cuda-redist = symlinkJoin {
+    name = "cuda-redist-${cudaVersion}";
+    paths = cuda-common-redist;
+  };
+
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "TimDettmers";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-gGlbzTDvZNo4MhcYzLvWuB2ec7q+Qt5/LtTbJ0Rc+Kk=";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile --replace "/usr/bin/g++" "g++" --replace "lib64" "lib"
+    substituteInPlace bitsandbytes/cuda_setup/main.py  \
+      --replace "binary_path = package_dir / binary_name"  \
+                "binary_path = Path('$out/${python.sitePackages}/${pname}')/binary_name"
+  '' + lib.optionalString torch.cudaSupport ''
+    substituteInPlace bitsandbytes/cuda_setup/main.py  \
+      --replace "/usr/local/cuda/lib64" "${cuda-native-redist}/lib"
+  '';
+
+  CUDA_HOME = "${cuda-native-redist}";
+
+  preBuild = if torch.cudaSupport then
+    with torch.cudaPackages;
+    let cudaVersion = lib.concatStrings (lib.splitVersion torch.cudaPackages.cudaMajorMinorVersion); in
+    ''make CUDA_VERSION=${cudaVersion} cuda${cudaMajorVersion}x''
+  else
+    ''make CUDA_VERSION=CPU cpuonly'';
+
+  nativeBuildInputs = [ setuptools ] ++ lib.optionals torch.cudaSupport [ cuda-native-redist ];
+  buildInputs = lib.optionals torch.cudaSupport [ cuda-redist ];
+
+  propagatedBuildInputs = [
+    torch
+  ];
+
+  doCheck = false;  # tests require CUDA and also GPU access
+  nativeCheckInputs = [ pytestCheckHook einops lion-pytorch scipy ];
+
+  pythonImportsCheck = [
+    "bitsandbytes"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/TimDettmers/bitsandbytes";
+    description = "8-bit CUDA functions for PyTorch";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/brother-ql/default.nix b/pkgs/development/python-modules/brother-ql/default.nix
index c7b727c73a5f0..f6cfe58682093 100644
--- a/pkgs/development/python-modules/brother-ql/default.nix
+++ b/pkgs/development/python-modules/brother-ql/default.nix
@@ -33,5 +33,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/pklaus/brother_ql";
     license = licenses.gpl3;
     maintainers = with maintainers; [ grahamc ];
+    mainProgram = "brother_ql";
   };
 }
diff --git a/pkgs/development/python-modules/bytecode/default.nix b/pkgs/development/python-modules/bytecode/default.nix
index 9821585faa505..3c474fadfd887 100644
--- a/pkgs/development/python-modules/bytecode/default.nix
+++ b/pkgs/development/python-modules/bytecode/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "bytecode";
-  version = "0.14.0";
+  version = "0.14.1";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "vstinner";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-nGZ4qcms27lYr1dYvVe4ebd/jc5qIb1EDhSpSZmKKIo=";
+    hash = "sha256-vSuGjNTQw7prFxmVyiq7s8cnl+VGbRArC2sp7GVP0XA=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/bytewax/default.nix b/pkgs/development/python-modules/bytewax/default.nix
new file mode 100644
index 0000000000000..36e85542c07dd
--- /dev/null
+++ b/pkgs/development/python-modules/bytewax/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, rustPlatform
+, setuptools-rust
+, openssl
+, pkg-config
+, cyrus_sasl
+, protobuf
+, cmake
+, gcc
+, dill
+, multiprocess
+, pytestCheckHook
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "bytewax";
+  version = "0.15.1";
+  format = "pyproject";
+
+  disabled = pythonAtLeast "3.11";
+
+  src = fetchFromGitHub {
+    owner = "bytewax";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-4HZUu3WSrhxusvuVz8+8mndTu/9DML1tCH52eaWy+oE=";
+  };
+
+  # Remove docs tests, myst-docutils in nixpkgs is not compatible with package requirements.
+  # Package uses old version.
+  patches = [ ./remove-docs-test.patch ];
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    hash = "sha256-IfVX3k9AsqP84aagCLSwxmutUoEkP8haD+t+VY4V02U=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    rustPlatform.maturinBuildHook
+    rustPlatform.cargoSetupHook
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  buildInputs = [
+    openssl
+    cyrus_sasl
+    protobuf
+  ];
+
+  propagatedBuildInputs = [
+    dill
+    multiprocess
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Python Stream Processing";
+    homepage = "https://github.com/bytewax/bytewax";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mslingsby kfollesdal ];
+    # mismatched type expected u8, found i8
+    broken = stdenv.isAarch64;
+  };
+}
diff --git a/pkgs/development/python-modules/bytewax/remove-docs-test.patch b/pkgs/development/python-modules/bytewax/remove-docs-test.patch
new file mode 100644
index 0000000000000..28e7848cea282
--- /dev/null
+++ b/pkgs/development/python-modules/bytewax/remove-docs-test.patch
@@ -0,0 +1,10 @@
+diff --git a/pyproject.toml b/pyproject.toml
+index 9b6ee4b..4a82c15 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -56,5 +56,4 @@ testpaths = [
+ 
+     # TODO: Turn back on markdown tests once we stabilize inputs.
+ 
+-    "docs",
+ ]
diff --git a/pkgs/development/python-modules/caio/default.nix b/pkgs/development/python-modules/caio/default.nix
index 0e1bf5b4c2f42..b34bebb57e828 100644
--- a/pkgs/development/python-modules/caio/default.nix
+++ b/pkgs/development/python-modules/caio/default.nix
@@ -2,6 +2,7 @@
 , aiomisc
 , buildPythonPackage
 , fetchFromGitHub
+, pytest-aiohttp
 , pytestCheckHook
 , pythonOlder
 }:
@@ -22,6 +23,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     aiomisc
+    pytest-aiohttp
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index 76989d5501208..9c0da9560ec3a 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.2.46";
+  version = "9.2.47";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-UT0bquiUy1CUnH8+5YRvUUtmxmriZqfoTc2kEuLlqlo=";
+    hash = "sha256-YleXykwajlGaqcNRrUYK8ttmzOYdVBpjjBi8aGMK75M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index f4597fe8d54a3..21f068ee15421 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -16,7 +16,7 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.2.46";
+  version = "9.2.47";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-KLnw6SJ8r3Ost0x7jlLa9iiqGHrAkyWiR/GsshCm/Yk=";
+    hash = "sha256-NwAKmmx9f+2Xxw9+/NI5khDTlAPJPcKtYRyK0khYNJE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cleo/default.nix b/pkgs/development/python-modules/cleo/default.nix
index ce4b9237745a3..ab3eb9514d15e 100644
--- a/pkgs/development/python-modules/cleo/default.nix
+++ b/pkgs/development/python-modules/cleo/default.nix
@@ -5,6 +5,7 @@
 , poetry-core
 , pytest-mock
 , pytestCheckHook
+, pythonRelaxDepsHook
 , rapidfuzz
 }:
 
@@ -22,6 +23,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "rapidfuzz"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/comm/default.nix b/pkgs/development/python-modules/comm/default.nix
index 4cf5dcdf41284..2f42ef87e928c 100644
--- a/pkgs/development/python-modules/comm/default.nix
+++ b/pkgs/development/python-modules/comm/default.nix
@@ -8,7 +8,7 @@
 
 let
   pname = "comm";
-  version = "0.1.2";
+  version = "0.1.3";
 in
 buildPythonPackage {
   inherit pname version;
@@ -17,8 +17,8 @@ buildPythonPackage {
   src = fetchFromGitHub {
     owner = "ipython";
     repo = "comm";
-    rev = "refs/tags/${version}";
-    hash = "sha256-Ve6tCvu89P5wUOj+vlzXItRR5RjJNKxItKnWP2fVk9U=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-5IUE2g00GT231hjuM7mLPst0QTk2Y+Re302FRDq65C8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/crate/default.nix b/pkgs/development/python-modules/crate/default.nix
index 4da552db399b6..6535ab5f6c8d6 100644
--- a/pkgs/development/python-modules/crate/default.nix
+++ b/pkgs/development/python-modules/crate/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "crate";
-  version = "0.30.0";
+  version = "0.31.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8xraDCFZbpJZsh3sO5VlSHwnEfH4u4AJZkXA+L4TB60=";
+    hash = "sha256-SYjzyPqKR6BpC5z3P/ASDXe0mwi8Hz413b8Fm7cc5zo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cwl-upgrader/default.nix b/pkgs/development/python-modules/cwl-upgrader/default.nix
index 9190cf882d1e3..5f3ba48e0299f 100644
--- a/pkgs/development/python-modules/cwl-upgrader/default.nix
+++ b/pkgs/development/python-modules/cwl-upgrader/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, mypy-extensions
 , pytest-xdist
 , pytestCheckHook
 , pythonOlder
@@ -30,6 +31,7 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    mypy-extensions
     ruamel-yaml
     schema-salad
   ];
diff --git a/pkgs/development/python-modules/cwl-utils/default.nix b/pkgs/development/python-modules/cwl-utils/default.nix
index 0c0618f9c3d0e..99060c7f466d1 100644
--- a/pkgs/development/python-modules/cwl-utils/default.nix
+++ b/pkgs/development/python-modules/cwl-utils/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "cwl-utils";
-  version = "0.23";
+  version = "0.24";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "common-workflow-language";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-tr4QQ/p0jx/e5kHx4WSYfo06/qMNFyxIGsaAA8nBBoA=";
+    hash = "sha256-g8HnY5/UDmujijXStNRwKBGMZ3soUHKPIlpJdIQaAlE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/databricks-cli/default.nix b/pkgs/development/python-modules/databricks-cli/default.nix
index a389e361dc607..8a781295b1fc5 100644
--- a/pkgs/development/python-modules/databricks-cli/default.nix
+++ b/pkgs/development/python-modules/databricks-cli/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "databricks-cli";
-  version = "0.17.5";
+  version = "0.17.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "databricks";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-HaSSaRd8WFq1g8WT5forBGBz9hSKsyBiTD4FnLprSgE=";
+    hash = "sha256-K20fhfdJuABqpbm8O8PSA9pIW8Uu1MdlP3r5E49pt6Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/datafusion/default.nix b/pkgs/development/python-modules/datafusion/default.nix
index 00c72615d7469..b4d5292a8d8a9 100644
--- a/pkgs/development/python-modules/datafusion/default.nix
+++ b/pkgs/development/python-modules/datafusion/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchurl
 , buildPythonPackage
 , fetchPypi
 , fetchFromGitHub
@@ -8,39 +7,46 @@
 , pytestCheckHook
 , libiconv
 , numpy
-, pandas
+, protobuf
 , pyarrow
+, Security
 }:
 
 let
   arrow-testing = fetchFromGitHub {
+    name = "arrow-testing";
     owner = "apache";
     repo = "arrow-testing";
-    rev = "5bab2f264a23f5af68f69ea93d24ef1e8e77fc88";
-    hash = "sha256-Pxx8ohUpXb5u1995IvXmxQMqWiDJ+7LAll/AjQP7ph8=";
+    rev = "47f7b56b25683202c1fd957668e13f2abafc0f12";
+    hash = "sha256-ZDznR+yi0hm5O1s9as8zq5nh1QxJ8kXCRwbNQlzXpnI=";
   };
 
   parquet-testing = fetchFromGitHub {
+    name = "parquet-testing";
     owner = "apache";
     repo = "parquet-testing";
-    rev = "5b82793ef7196f7b3583e85669ced211cd8b5ff2";
-    hash = "sha256-gcOvk7qFHZgJWE9CpucC8zwayYw47VbC3lmSRu4JQFg=";
+    rev = "b2e7cc755159196e3a068c8594f7acbaecfdaaac";
+    hash = "sha256-IFvGTOkaRSNgZOj8DziRj88yH5JRF+wgSDZ5N0GNvjk=";
   };
 in
 
 buildPythonPackage rec {
   pname = "datafusion";
-  version = "0.7.0";
+  version = "22.0.0";
   format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-XYXZMorPs2Ue7E38DASd4rmxvX0wlx8A6sCpAbYUh4I=";
+  src = fetchFromGitHub {
+    name = "datafusion-source";
+    owner = "apache";
+    repo = "arrow-datafusion-python";
+    rev = "22.0.0";
+    hash = "sha256-EKurQ4h5IOTU3JiGN+MHrDciQUadUrywNRhnv9S/9iY=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
+    name = "datafusion-cargo-deps";
     inherit src pname version;
-    hash = "sha256-6mPdKwsEN09Gf4eNsd/v3EBHVezHmff/KYB2lsXgzcA=";
+    hash = "sha256-0kfavTFqsQ1Uvg5nQw6VFGlvih8ysOyS2KGT4cTIsVI=";
   };
 
   nativeBuildInputs = with rustPlatform; [
@@ -48,15 +54,11 @@ buildPythonPackage rec {
     maturinBuildHook
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+  buildInputs = [ protobuf ] ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
 
-  propagatedBuildInputs = [
-    numpy
-    pandas
-    pyarrow
-  ];
+  propagatedBuildInputs = [ pyarrow ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [ pytestCheckHook numpy ];
   pythonImportsCheck = [ "datafusion" ];
   pytestFlagsArray = [ "--pyargs" pname ];
 
diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix
index df8f1420ea4dc..7f1f0481d2287 100644
--- a/pkgs/development/python-modules/deepdiff/default.nix
+++ b/pkgs/development/python-modules/deepdiff/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "deepdiff";
-  version = "6.2.3";
+  version = "6.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "seperman";
     repo = "deepdiff";
     rev = "refs/tags/${version}";
-    hash = "sha256-rlMksUi+R48fIEjVv2E3yOETDezTghZ8+Zsypu8fAnQ=";
+    hash = "sha256-txZ1X1J8DwueDRpLP3OuRA+S9hc5G3YCmEG+AS6ZAkI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/deezer-python/default.nix b/pkgs/development/python-modules/deezer-python/default.nix
index e1e8d056cc963..57b02b78699a4 100644
--- a/pkgs/development/python-modules/deezer-python/default.nix
+++ b/pkgs/development/python-modules/deezer-python/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "deezer-python";
-  version = "5.8.1";
+  version = "5.9.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "browniebroke";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-M6icdvD412qeURAIkywUliUM9QAgG/b+yBMZVYatvyQ=";
+    hash = "sha256-S2OC2OvXoc7LDTX0ZkVtaLHflio+3u1Ic/i9TtQN4Ac=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/devito/default.nix b/pkgs/development/python-modules/devito/default.nix
index e349151f316ca..51f3895f66f04 100644
--- a/pkgs/development/python-modules/devito/default.nix
+++ b/pkgs/development/python-modules/devito/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "devito";
-  version = "4.8.0";
+  version = "4.8.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "devitocodes";
     repo = "devito";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Wuq49deZKhIHHhxgxgzxxY/3aQcJVCJ0ofGwDrUcHkY=";
+    hash = "sha256-JLfTWfQ9HYb7jsPAuAfNXuIWv7lOomJGE9hBss+AI7o=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/devolo-plc-api/default.nix b/pkgs/development/python-modules/devolo-plc-api/default.nix
index 643674f4f0a1b..5e3115d660d18 100644
--- a/pkgs/development/python-modules/devolo-plc-api/default.nix
+++ b/pkgs/development/python-modules/devolo-plc-api/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "devolo-plc-api";
-  version = "1.2.0";
+  version = "1.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "2Fake";
     repo = "devolo_plc_api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ua6XxFmvF2EDtCZTeVHGRfwNAMjX3p5s4Jo5ylutYqY=";
+    hash = "sha256-ika0mypHo7a8GCa2eNhOLIhMZ2ASwJOxV4mmAzvJm0E=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/dicom2nifti/default.nix b/pkgs/development/python-modules/dicom2nifti/default.nix
index 22e7f70b9e6e5..dd683b4d1bfdb 100644
--- a/pkgs/development/python-modules/dicom2nifti/default.nix
+++ b/pkgs/development/python-modules/dicom2nifti/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "dicom2nifti";
-  version = "2.4.3";
+  version = "2.4.8";
   disabled = pythonOlder "3.6";
 
   # no tests in PyPI dist
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "icometrix";
     repo = pname;
     rev = version;
-    hash = "sha256-za2+HdnUhPu3+p29JsF4iL1lyPQVmEv3fam0Yf1oeMQ=";
+    hash = "sha256-2Pspxdeu3pHwXpbjS6bQQnvdeMuITRwYarPuLlmNcv8";
   };
 
   propagatedBuildInputs = [ gdcm nibabel numpy pydicom scipy setuptools ];
diff --git a/pkgs/development/python-modules/django-bootstrap3/default.nix b/pkgs/development/python-modules/django-bootstrap3/default.nix
new file mode 100644
index 0000000000000..950cf9ef812ce
--- /dev/null
+++ b/pkgs/development/python-modules/django-bootstrap3/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, django
+, pytest-django
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "django-bootstrap3";
+  version = "23.1";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-cJW3xmqJ87rreOoCh5nr15XSlzn8hgJGBCLnwqGUrTA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  buildInputs = [
+    django
+  ];
+
+  pythonImportsCheck = [
+    "bootstrap3"
+  ];
+
+  nativeCheckInputs = [
+    pytest-django
+    pytestCheckHook
+  ];
+
+  env.DJANGO_SETTINGS_MODULE = "tests.app.settings";
+
+  meta = with lib; {
+    description = "Bootstrap 3 integration for Django";
+    homepage = "https://github.com/zostera/django-bootstrap3";
+    changelog = "https://github.com/zostera/django-bootstrap3/blob/${version}/CHANGELOG.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
+
+
diff --git a/pkgs/development/python-modules/django-countries/default.nix b/pkgs/development/python-modules/django-countries/default.nix
new file mode 100644
index 0000000000000..95da90866e655
--- /dev/null
+++ b/pkgs/development/python-modules/django-countries/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# build
+, setuptools
+
+# propagates
+, asgiref
+, typing-extensions
+
+# tests
+, django
+, djangorestframework
+, graphene-django
+, pytestCheckHook
+, pytest-django
+}:
+
+buildPythonPackage rec {
+  pname = "django-countries";
+  version = "7.5.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "SmileyChris";
+    repo = "django-countries";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-se6s0sgIfMLW0sIMp/3vK4KdDPQ5ahg6OQCDAs4my4M=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    asgiref
+    typing-extensions
+  ];
+
+  nativeCheckInputs = [
+    django
+    djangorestframework
+    graphene-django
+    pytestCheckHook
+    pytest-django
+  ];
+
+  meta = with lib; {
+    description = "Provides a country field for Django models";
+    longDescription = ''
+      A Django application that provides country choices for use with
+      forms, flag icons static files, and a country field for models.
+    '';
+    homepage = "https://github.com/SmileyChris/django-countries";
+    changelog = "https://github.com/SmileyChris/django-countries/blob/v${version}/CHANGES.rst";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-dynamic-preferences/default.nix b/pkgs/development/python-modules/django-dynamic-preferences/default.nix
index fb897ef1dc460..bdb6c1d8229c5 100644
--- a/pkgs/development/python-modules/django-dynamic-preferences/default.nix
+++ b/pkgs/development/python-modules/django-dynamic-preferences/default.nix
@@ -1,22 +1,49 @@
-{ lib, buildPythonPackage, fetchPypi
-, django, persisting-theory, six
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# dependencies
+, django
+, persisting-theory
+, six
+
+# tests
+, djangorestframework
+, pytest-django
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "django-dynamic-preferences";
-  version = "1.14.0";
+  version = "1.15.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-wAq8uNUkBnOQpmUYz80yaDuHrTzGINWRNkn8dwe4CDM=";
+  src = fetchFromGitHub {
+    owner = "agateblue";
+    repo = "django-dynamic-preferences";
+    rev = "refs/tags/${version}";
+    hash = "sha256-S0PAlSrMOQ68mX548pZzARfau/lytXWC4S5uVO1rUmo=";
   };
 
-  propagatedBuildInputs = [ six django persisting-theory ];
+  buildInputs = [
+    django
+  ];
+
+  propagatedBuildInputs = [
+    six
+    persisting-theory
+  ];
+
+  nativeCheckInputs = [
+    djangorestframework
+    pytestCheckHook
+    pytest-django
+  ];
 
-  # django.core.exceptions.ImproperlyConfigured: Requested setting DYNAMIC_PREFERENCES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
-  doCheck = false;
+  env.DJANGO_SETTINGS = "tests.settings";
 
   meta = with lib; {
+    changelog = "https://github.com/agateblue/django-dynamic-preferences/blob/${version}/HISTORY.rst";
     homepage = "https://github.com/EliotBerriot/django-dynamic-preferences";
     description = "Dynamic global and instance settings for your django project";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-formset-js-improved/default.nix b/pkgs/development/python-modules/django-formset-js-improved/default.nix
new file mode 100644
index 0000000000000..b14306f06f788
--- /dev/null
+++ b/pkgs/development/python-modules/django-formset-js-improved/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, django
+, django-jquery-js
+}:
+
+buildPythonPackage rec {
+  pname = "django-formset-js-improved";
+  version = "0.5.0.3";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "pretix";
+    repo = "django-formset-js";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bOM24ldXk9WeV0jl6LIJB3BJ5hVWLA1PJTBBnJBoprU=";
+  };
+
+  buildInputs = [
+    django
+  ];
+
+  propagatedBuildInputs = [
+    django-jquery-js
+  ];
+
+  pythonImportsCheck = [
+    "djangoformsetjs"
+  ];
+
+  doCheck = false; # no tests
+
+  meta = with lib; {
+    description = "A wrapper for a JavaScript formset helper";
+    homepage = "https://github.com/pretix/django-formset-js";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-hierarkey/default.nix b/pkgs/development/python-modules/django-hierarkey/default.nix
new file mode 100644
index 0000000000000..77f33f0b526c5
--- /dev/null
+++ b/pkgs/development/python-modules/django-hierarkey/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# propagates
+, python-dateutil
+
+# tests
+, django-extensions
+, pytest-django
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "django-hierarkey";
+  version = "1.1.0";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "raphaelm";
+    repo = "django-hierarkey";
+    # https://github.com/raphaelm/django-hierarkey/commit/c81ace02ca404a8756e2931bb6faf55b6365e140
+    rev = "c81ace02ca404a8756e2931bb6faf55b6365e140";
+    hash = "sha256-sCARyTjuuAUptlOsFmApnsQpcksP+uYnq0lukXDMcuk=";
+  };
+
+  propagatedBuildInputs = [
+    python-dateutil
+  ];
+
+  pythonImportsCheck = [
+    "hierarkey"
+  ];
+
+  nativeCheckInputs = [
+    django-extensions
+    pytest-django
+    pytestCheckHook
+  ];
+
+  DJANGO_SETTINGS_MODULE = "tests.settings";
+
+  pytestFlagsArray = [
+    "tests"
+  ];
+
+  meta = with lib; {
+    description = "Flexible and powerful hierarchical key-value store for your Django models";
+    homepage = "https://github.com/raphaelm/django-hierarkey";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-jquery-js/default.nix b/pkgs/development/python-modules/django-jquery-js/default.nix
new file mode 100644
index 0000000000000..2487dc61e0fc6
--- /dev/null
+++ b/pkgs/development/python-modules/django-jquery-js/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromBitbucket
+, django
+}:
+
+buildPythonPackage rec {
+  pname = "django-jquery-js";
+  version = "3.1.1";
+  format = "setuptools";
+
+  src = fetchFromBitbucket {
+    owner = "tim_heap";
+    repo = "django-jquery";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TzMo31jFhcvlrmq2TJgQyds9n8eATaChnyhnQ7bwdzs=";
+  };
+
+  buildInputs = [
+    django
+  ];
+
+  pythonImportsCheck = [
+    "jquery"
+  ];
+
+  doCheck = false; # no tests
+
+  meta = with lib; {
+    description = "jQuery, bundled up so apps can depend upon it";
+    homepage = "https://bitbucket.org/tim_heap/django-jquery";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-markup/default.nix b/pkgs/development/python-modules/django-markup/default.nix
new file mode 100644
index 0000000000000..d54936c555396
--- /dev/null
+++ b/pkgs/development/python-modules/django-markup/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, django
+
+# optionals
+, bleach
+, docutils
+, markdown
+, pygments
+, python-creole
+, smartypants
+, textile
+
+# tests
+, pytest-django
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "django-markup";
+  version = "1.6";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "bartTC";
+    repo = "django-markup";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Hh+3KxFE6sSIqRowyZ1Pz6NmBaTbltZaEhSjFrw760Q=";
+  };
+
+  postPatch = ''
+    sed -i "/--cov/d" setup.cfg
+  '';
+
+  buildInputs = [
+    django
+  ];
+
+  passthru.optional-dependencies = {
+    all_filter_dependencies = [
+      bleach
+      docutils
+      markdown
+      pygments
+      python-creole
+      smartypants
+      textile
+    ];
+  };
+
+  pythonImportsCheck = [
+    "django_markup"
+  ];
+
+  nativeCheckInputs = [
+    pytest-django
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.all_filter_dependencies;
+
+  env.DJANGO_SETTINGS_MODULE = "django_markup.tests";
+
+  disabledTests = [
+    # https://github.com/bartTC/django-markup/issues/40
+    "test_rst_with_pygments"
+  ];
+
+  meta = with lib; {
+    description = "Generic Django application to convert text with specific markup to html.";
+    homepage = "https://github.com/bartTC/django-markup";
+    changelog = "https://github.com/bartTC/django-markup/blob/v${version}/CHANGELOG.rst";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-parler/default.nix b/pkgs/development/python-modules/django-parler/default.nix
new file mode 100644
index 0000000000000..3afaa8ae262c6
--- /dev/null
+++ b/pkgs/development/python-modules/django-parler/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, django
+, fetchFromGitHub
+, pytest
+, pytest-django
+, pythonOlder
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "django-parler";
+  version = "2.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "django-parler";
+    repo = "django-parler";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-tRGifFPCXF3aa3PQWKw3tl1H1TY+lgcChUP1VdwG1cE=";
+  };
+
+  propagatedBuildInputs = [
+    django
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} runtests.py
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Simple Django model translations without nasty hacks";
+    homepage = "https://github.com/django-parler/django-parler";
+    changelog = "https://github.com/django-parler/django-parler/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ derdennisop ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-redis/default.nix b/pkgs/development/python-modules/django-redis/default.nix
index 27f7d8d950e78..39c430f1be2a0 100644
--- a/pkgs/development/python-modules/django-redis/default.nix
+++ b/pkgs/development/python-modules/django-redis/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, pythonAtLeast
 , pythonOlder
 , buildPythonPackage
 
@@ -66,6 +67,11 @@ buildPythonPackage {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = lib.optionals (pythonAtLeast "3.11") [
+    # DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13
+    "-W" "ignore::DeprecationWarning"
+  ];
+
   disabledTests = [
     # ModuleNotFoundError: No module named 'test_cache_options'
     "test_custom_key_function"
diff --git a/pkgs/development/python-modules/django-scheduler/default.nix b/pkgs/development/python-modules/django-scheduler/default.nix
new file mode 100644
index 0000000000000..d8db8c596173f
--- /dev/null
+++ b/pkgs/development/python-modules/django-scheduler/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, django
+, fetchFromGitHub
+, icalendar
+, pytest
+, pytest-django
+, python
+, python-dateutil
+, pythonOlder
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "django-scheduler";
+  version = "0.10.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "llazzaro";
+    repo = "django-scheduler";
+    rev = "refs/tags/${version}";
+    hash = "sha256-dY2TPo15RRWrv7LheUNJSQl4d/HeptSMM/wQirRSI5w=";
+  };
+
+  propagatedBuildInputs = [
+    django
+    python-dateutil
+    pytz
+    icalendar
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m django check --settings=tests.settings
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [
+    "schedule"
+  ];
+
+  meta = with lib; {
+    description = "A calendar app for Django";
+    homepage = "https://github.com/llazzaro/django-scheduler";
+    changelog = "https://github.com/llazzaro/django-scheduler/releases/tag/${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ derdennisop ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-stubs-ext/default.nix b/pkgs/development/python-modules/django-stubs-ext/default.nix
index ccc43bfc2d176..db5dc9c91583e 100644
--- a/pkgs/development/python-modules/django-stubs-ext/default.nix
+++ b/pkgs/development/python-modules/django-stubs-ext/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "django-stubs-ext";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-T9jNvGjRpCHyG7fg2edtUPaktQTTULp4ZAXa9TbpDCE=";
+    hash = "sha256-mpup4oCHN5Sd6WoPzosFTxLTjkYQEdd+vAdP/oxD38s=";
   };
 
   # setup.cfg tries to pull in nonexistent LICENSE.txt file
diff --git a/pkgs/development/python-modules/django-two-factor-auth/default.nix b/pkgs/development/python-modules/django-two-factor-auth/default.nix
new file mode 100644
index 0000000000000..7ca684149800d
--- /dev/null
+++ b/pkgs/development/python-modules/django-two-factor-auth/default.nix
@@ -0,0 +1,85 @@
+{ lib
+, buildPythonPackage
+, django
+, django-formtools
+, django-otp
+, django-phonenumber-field
+, fetchFromGitHub
+, phonenumbers
+, pydantic
+, pythonOlder
+, pythonRelaxDepsHook
+, qrcode
+, setuptools-scm
+, twilio
+, webauthn
+}:
+
+buildPythonPackage rec {
+  pname = "django-two-factor-auth";
+  version = "1.15.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "jazzband";
+    repo = "django-two-factor-auth";
+    rev = "refs/tags/${version}";
+    hash = "sha256-+E6kSD00ChPiRLT2i43dNlVkbvuR1vKkbSZfD1Bf3qc=";
+  };
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools-scm
+  ];
+
+  pythonRelaxDeps = [
+    "django-phonenumber-field"
+  ];
+
+  propagatedBuildInputs = [
+    django
+    django-formtools
+    django-otp
+    django-phonenumber-field
+    qrcode
+  ];
+
+  passthru.optional-dependencies = {
+    call = [
+      twilio
+    ];
+    sms = [
+      twilio
+    ];
+    webauthn = [
+      pydantic
+      webauthn
+    ];
+    # yubikey = [
+    #   django-otp-yubikey
+    # ];
+    phonenumbers = [
+      phonenumbers
+    ];
+    # phonenumberslite = [
+    #   phonenumberslite
+    # ];
+  };
+
+  # Tests require internet connection
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "two_factor"
+  ];
+
+  meta = with lib; {
+    description = "Complete Two-Factor Authentication for Django";
+    homepage = "https://github.com/jazzband/django-two-factor-auth";
+    changelog = "https://github.com/jazzband/django-two-factor-auth/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ derdennisop ];
+  };
+}
diff --git a/pkgs/development/python-modules/dkimpy/default.nix b/pkgs/development/python-modules/dkimpy/default.nix
index b05cfb9a088ee..47e6df8f0653b 100644
--- a/pkgs/development/python-modules/dkimpy/default.nix
+++ b/pkgs/development/python-modules/dkimpy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "dkimpy";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dVl0S1qQGWkZCPCgxlPiBrbL9jbIxtZuGggnz8jsf5E=";
+    hash = "sha256-DDpa953ooBkSP4Gqf1flEaTqcTonLqi2KkQahN3cSyw=";
 };
 
   nativeCheckInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/dsmr-parser/default.nix b/pkgs/development/python-modules/dsmr-parser/default.nix
index 5cc3017087369..eea6e4894a398 100644
--- a/pkgs/development/python-modules/dsmr-parser/default.nix
+++ b/pkgs/development/python-modules/dsmr-parser/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "dsmr-parser";
-  version = "1.2.1";
+  version = "1.2.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "ndokter";
     repo = "dsmr_parser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-a02bpC9CVecAtIfWbLM74K4thaGI2GferEnJQKtIiu8=";
+    hash = "sha256-M6ztqENIeD5foagKUXtJiGfFZPHsczlB0/AH4FMIsLY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ducc0/default.nix b/pkgs/development/python-modules/ducc0/default.nix
index 3f8ce880e410d..491e274bf7988 100644
--- a/pkgs/development/python-modules/ducc0/default.nix
+++ b/pkgs/development/python-modules/ducc0/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "ducc0";
-  version = "0.28.0";
+  version = "0.30.0";
 
   disabled = pythonOlder "3.7";
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "mtr";
     repo = "ducc";
     rev = "ducc0_${lib.replaceStrings ["."] ["_"] version}";
-    hash = "sha256-yh7L87s3STL2usGBXgIhCS7GKQuau/PV6US3T06bb0M=";
+    hash = "sha256-xYjgJGtWl9AjnzlFvdj/0chnIUDmoH85AtKXsNBwWUU=";
   };
 
   buildInputs = [ pybind11 ];
diff --git a/pkgs/development/python-modules/duckdb-engine/default.nix b/pkgs/development/python-modules/duckdb-engine/default.nix
index 9ab39eabf9081..487aa4cc6f452 100644
--- a/pkgs/development/python-modules/duckdb-engine/default.nix
+++ b/pkgs/development/python-modules/duckdb-engine/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "duckdb-engine";
-  version = "0.6.9";
+  version = "0.7.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     repo = "duckdb_engine";
     owner = "Mause";
     rev = "refs/tags/v${version}";
-    hash = "sha256-F1Y7NXkNnCbCxc43gBN7bt+z0D0EwnzCyBKFzbq9KcA=";
+    hash = "sha256-qLQjFkud9DivLQ9PignLrXlUVOAxsd28s7+2GdC5jKE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/env-canada/default.nix b/pkgs/development/python-modules/env-canada/default.nix
index a01b7cbc8a6b9..a00ae197ca0a2 100644
--- a/pkgs/development/python-modules/env-canada/default.nix
+++ b/pkgs/development/python-modules/env-canada/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "env-canada";
-  version = "0.5.32";
+  version = "0.5.33";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "michaeldavie";
     repo = "env_canada";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YX0v1i8PuVDq1+LPxV2Fs76N4PLxAQrKCAIeabmzNwc=";
+    hash = "sha256-td4baHAtBuNqUpe11HBtsMl6fW9n5w12U+KUUc1SmIQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index d218b6cc06eca..d398f423cb637 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "4.9.0";
+  version = "5.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-4oRIL5s2qN1tB8uijLiPkQTR4cXg4KsxqyZebw/cVkE=";
+    hash = "sha256-DaTe6MI3dfBswa0DcICtbjM44MeEhJpucFy0ME08Iv4=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/execnb/default.nix b/pkgs/development/python-modules/execnb/default.nix
index 22661c9ad07a5..ef915d912a919 100644
--- a/pkgs/development/python-modules/execnb/default.nix
+++ b/pkgs/development/python-modules/execnb/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "execnb";
-  version = "0.1.4";
+  version = "0.1.5";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-y9gSvzJA8Fsh56HbA8SszlozsBBfTLfgWGDXm9uSBvA=";
+    sha256 = "sha256-nuAp4OMAfA3u3DJyORjFw7y7ZLsLCKEfxSFIXqNh+k0=";
   };
 
   propagatedBuildInputs = [ fastcore traitlets ipython ];
diff --git a/pkgs/development/python-modules/feedgenerator/default.nix b/pkgs/development/python-modules/feedgenerator/default.nix
index d47e15ecc6291..550e82cb8ccc2 100644
--- a/pkgs/development/python-modules/feedgenerator/default.nix
+++ b/pkgs/development/python-modules/feedgenerator/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "feedgenerator";
-  version = "2.0.0";
+  version = "2.1.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6836d456b8b0edbc5b6d3a42d1be852cebd43d2f28af4ff51789eb295f1860e2";
+    sha256 = "sha256-8HXyPyj9In8JfDayEhYcbPAS4cbKr3/1PV1rsCzUK50=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/frigidaire/default.nix b/pkgs/development/python-modules/frigidaire/default.nix
index dcf73968bcaf6..a5a4c72451cb7 100644
--- a/pkgs/development/python-modules/frigidaire/default.nix
+++ b/pkgs/development/python-modules/frigidaire/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "frigidaire";
-  version = "0.18.5";
+  version = "0.18.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,13 +20,11 @@ buildPythonPackage rec {
     owner = "bm1549";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-mmHcS0cjj43hCHLiCO8cGPfQoh+nqlNK3MdFP8IhD4w=";
+    hash = "sha256-U6ko6P5/ANGy84GQDuSQq+YArou0TrXH5SIc5x4euvU=";
   };
 
   postPatch = ''
-    # https://github.com/bm1549/frigidaire/issues/14
     substituteInPlace setup.py \
-      --replace "urllib3>=1.26.42" "urllib3" \
       --replace 'version = "SNAPSHOT"' 'version = "${version}"'
   '';
 
diff --git a/pkgs/development/python-modules/gaphas/default.nix b/pkgs/development/python-modules/gaphas/default.nix
index 7566ea814eec9..a82c444c7c815 100644
--- a/pkgs/development/python-modules/gaphas/default.nix
+++ b/pkgs/development/python-modules/gaphas/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "gaphas";
-  version = "3.9.2";
+  version = "3.10.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hw8aGjsrx6xWPbFybpss5EB3eg6tmxgkXpGiWguLKP4=";
+    hash = "sha256-I+/DsXppY//KOZgydDR4/Ks5qEsL4hLIiH+GaaFZHpA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-api-python-client/default.nix b/pkgs/development/python-modules/google-api-python-client/default.nix
index 684436af46018..5da821346e3fa 100644
--- a/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "2.83.0";
+  version = "2.84.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0HUJ8bLSskJzY7RU25lvehXhdRpIz8ryhCcFBWDdUc8=";
+    hash = "sha256-w5j9b56tC+I6reOycExyxRRt8OM1LY/5EBKGB34bAQo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
index 078af6d951030..566368bb257e1 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -28,14 +28,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "3.7.0";
+  version = "3.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-z59UP606r0hxxT9Wtxjh75Spp3ixfxaJABX2/CXDKOw=";
+    hash = "sha256-SwLe8Hbi24zsZvZftifROQSp/Dz0/uMV7eQ9y3A4qN8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-container/default.nix b/pkgs/development/python-modules/google-cloud-container/default.nix
index 6e23150d3ea2d..c2dd56686a062 100644
--- a/pkgs/development/python-modules/google-cloud-container/default.nix
+++ b/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "2.19.0";
+  version = "2.20.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2EsqTVf65OCvT1i0whgCSvKGGHuHHE27bEg1S4kb+a8=";
+    hash = "sha256-l/ENHQVW35pGuSkLsFDM5BRCAoD6KTmJgs+djuR6SM0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
index 8159a64fffeaa..4118f7040b5f6 100644
--- a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
+++ b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "1.19.1";
+  version = "1.21.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xI9CFp3esSxOsOsO5mVWUkMROpuX2QjzKVhKCBUpDhc=";
+    hash = "sha256-zk5yZYevzpWmTOAAJgdNx9lnoTxjaq5XFJ+2hDQOBuc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-status/default.nix b/pkgs/development/python-modules/grpcio-status/default.nix
index c4748193303ea..e6c4ec584e34f 100644
--- a/pkgs/development/python-modules/grpcio-status/default.nix
+++ b/pkgs/development/python-modules/grpcio-status/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "grpcio-status";
-  version = "1.53.0";
+  version = "1.54.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WkaCDcfZS6xIquXdl8lMreoJ2AoFVTrKdKkqKVQDBCA=";
+    hash = "sha256-tQMF1SwN9haUk8yl8uObm013Oz8w1Kemtt18GMuJAHw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index 0b6418a4797bb..938fd43619c46 100644
--- a/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.53.0";
+  version = "1.54.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kl7/8tY8oyZvk8kk/+ul1JbxaozL4SX6DRis9HzF+og=";
+    hash = "sha256-33msv1mZcBjhMXE7cWov3bVVbhhA6fud5MpzvyBZWQ4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index 88fdc5465c54d..445bba5494320 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2023.3.0";
+  version = "2023.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-ZclhJoJg80P0iysA0G7+gTg8S3qJaaAbHsr4v6DUGKQ=";
+    hash = "sha256-IR8Sx9rb6vPA/wIZVCwOl2bKxwWbogW4Xry14yxb2Ic=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/html5-parser/default.nix b/pkgs/development/python-modules/html5-parser/default.nix
index 3909c352185f9..561c9c97f4955 100644
--- a/pkgs/development/python-modules/html5-parser/default.nix
+++ b/pkgs/development/python-modules/html5-parser/default.nix
@@ -1,22 +1,59 @@
-{ lib, buildPythonPackage, fetchPypi, pkgs, pkg-config, chardet, lxml }:
+{ lib
+, beautifulsoup4
+, buildPythonPackage
+, chardet
+, fetchFromGitHub
+, lxml
+, pkg-config
+, pkgs
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "html5-parser";
-  version = "0.4.10";
+  version = "0.4.11";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f9294418c0da95c2d5facc19d3dc32941093a6b8e3b3e4b36cc7b5a1697fbca4";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "kovidgoyal";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-l7cCt+zX+qOujS6noc1/p7mELqrHae3eiKQNXBxLm7o=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  propagatedBuildInputs = [ chardet lxml pkgs.libxml2 ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    pkgs.libxml2
+  ];
+
+  propagatedBuildInputs = [
+    chardet
+    lxml
+  ];
+
+  nativeCheckInputs = [
+    beautifulsoup4
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "html5_parser"
+  ];
 
-  doCheck = false; # No such file or directory: 'run_tests.py'
+  pytestFlagsArray = [
+    "test/*.py"
+  ];
 
   meta = with lib; {
     description = "Fast C based HTML 5 parsing for python";
     homepage = "https://html5-parser.readthedocs.io";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix
index d1196d4bc3b40..48f13602872e1 100644
--- a/pkgs/development/python-modules/ibis-framework/default.nix
+++ b/pkgs/development/python-modules/ibis-framework/default.nix
@@ -5,18 +5,23 @@
 , pythonOlder
 , pytestCheckHook
 , atpublic
-, click
+, bidict
+, black
 , clickhouse-cityhash
 , clickhouse-driver
 , dask
 , datafusion
+, db-dtypes
 , duckdb
 , duckdb-engine
 , filelock
 , geoalchemy2
 , geopandas
+, google-cloud-bigquery
+, google-cloud-bigquery-storage
 , graphviz-nox
 , hypothesis
+, importlib-resources
 , lz4
 , multipledispatch
 , numpy
@@ -24,83 +29,100 @@
 , pandas
 , parsy
 , poetry-core
-, poetry-dynamic-versioning
+, polars
+, pooch
 , psycopg2
 , pyarrow
-, pydantic
+, pydata-google-auth
+, pydruid
 , pymysql
 , pyspark
 , pytest-benchmark
+, pytest-httpserver
 , pytest-mock
 , pytest-randomly
 , pytest-snapshot
 , pytest-xdist
-, python
+, python-dateutil
 , pytz
 , regex
 , rich
 , rsync
 , shapely
+, snowflake-connector-python
+, snowflake-sqlalchemy
 , sqlalchemy
+, sqlalchemy-views
 , sqlglot
 , sqlite
 , toolz
+, trino-python-client
+, typing-extensions
 }:
 let
-  testBackends = [
-    "datafusion"
-    "duckdb"
-    "pandas"
-    "sqlite"
-  ];
+  testBackends = [ "datafusion" "duckdb" "pandas" "sqlite" ];
 
   ibisTestingData = fetchFromGitHub {
+    name = "ibis-testing-data";
     owner = "ibis-project";
     repo = "testing-data";
-    rev = "3c39abfdb4b284140ff481e8f9fbb128b35f157a";
-    hash = "sha256-BZWi4kEumZemQeYoAtlUSw922p+R6opSWp/bmX0DjAo=";
+    rev = "8a59df99c01fa217259554929543e71c3bbb1761";
+    hash = "sha256-NbgEe0w/qf9hCr9rRfIpyaH9pv25I8x0ykY7EJxDOuk=";
   };
 in
 
 buildPythonPackage rec {
   pname = "ibis-framework";
-  version = "4.1.0";
+  version = "5.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
+    name = "ibis-source";
     repo = "ibis";
     owner = "ibis-project";
     rev = "refs/tags/${version}";
-    hash = "sha256-ipnMymf+BOpG9iGWO47no47m4nLIBbqLdbzlevuxeBw=";
+    hash = "sha256-u3BBGdhWajZ5WtoBvNxmx76+orfHY6LX3IWAq/x2/9A=";
   };
 
+  patches = [
+    # fixes a small bug in the datafusion backend to reorder predicates
+    (fetchpatch {
+      name = "fix-datafusion-compilation.patch";
+      url = "https://github.com/ibis-project/ibis/commit/009230421b2bc1f86591e8b850d37a489e8e4f06.patch";
+      hash = "sha256-5NHkgc8d2bkOMpbY1vme1XgNfyHSr0f7BrR3JTTjjPI=";
+    })
+  ];
+
   nativeBuildInputs = [
     poetry-core
   ];
 
   propagatedBuildInputs = [
     atpublic
+    bidict
     multipledispatch
     numpy
-    packaging
     pandas
     parsy
-    poetry-dynamic-versioning
-    pydantic
+    pooch
+    python-dateutil
     pytz
-    regex
     rich
+    sqlglot
     toolz
-  ];
+    typing-extensions
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]
+  ++ pooch.optional-dependencies.progress
+  ++ pooch.optional-dependencies.xxhash;
 
   nativeCheckInputs = [
     pytestCheckHook
-    click
     filelock
     hypothesis
     pytest-benchmark
+    pytest-httpserver
     pytest-mock
     pytest-randomly
     pytest-snapshot
@@ -112,15 +134,13 @@ buildPythonPackage rec {
     "--dist=loadgroup"
     "-m"
     "'${lib.concatStringsSep " or " testBackends} or core'"
-    # these will be fixed in ibis-framework 5.0.0
-    "--deselect=ibis/backends/tests/test_string.py::test_string"
-    "--deselect=ibis/backends/tests/test_register.py::test_csv_reregister_schema"
-    "--deselect=ibis/backends/tests/test_client.py::test_list_databases"
+    # sqlalchemy2 breakage
+    "--deselect=ibis/tests/sql/test_sqlalchemy.py::test_tpc_h17"
+    # tries to download duckdb extensions
+    "--deselect=ibis/backends/duckdb/tests/test_register.py::test_register_sqlite"
+    "--deselect=ibis/backends/duckdb/tests/test_register.py::test_read_sqlite"
   ];
 
-  # remove when sqlalchemy backend no longer uses deprecated methods
-  SQLALCHEMY_SILENCE_UBER_WARNING = 1;
-
   # patch out tests that check formatting with black
   postPatch = ''
     find ibis/tests -type f -name '*.py' -exec sed -i \
@@ -131,8 +151,8 @@ buildPythonPackage rec {
   preCheck = ''
     set -eo pipefail
 
-    export IBIS_TEST_DATA_DIRECTORY
-    IBIS_TEST_DATA_DIRECTORY="ci/ibis-testing-data"
+    HOME="$TMPDIR"
+    export IBIS_TEST_DATA_DIRECTORY="ci/ibis-testing-data"
 
     mkdir -p "$IBIS_TEST_DATA_DIRECTORY"
 
@@ -150,23 +170,30 @@ buildPythonPackage rec {
 
   passthru = {
     optional-dependencies = {
-      clickhouse = [ clickhouse-cityhash clickhouse-driver lz4 sqlglot ];
-      dask = [ dask pyarrow ];
+      bigquery = [ db-dtypes google-cloud-bigquery google-cloud-bigquery-storage pydata-google-auth ];
+      clickhouse = [ clickhouse-cityhash clickhouse-driver lz4 sqlalchemy ];
+      dask = [ dask pyarrow regex ];
       datafusion = [ datafusion ];
-      duckdb = [ duckdb duckdb-engine pyarrow sqlalchemy sqlglot ];
+      druid = [ pydruid sqlalchemy ];
+      duckdb = [ duckdb duckdb-engine packaging pyarrow sqlalchemy sqlalchemy-views ];
       geospatial = [ geoalchemy2 geopandas shapely ];
-      mysql = [ sqlalchemy pymysql sqlglot ];
-      pandas = [ ];
-      postgres = [ psycopg2 sqlalchemy sqlglot ];
-      pyspark = [ pyarrow pyspark ];
-      sqlite = [ sqlalchemy sqlite sqlglot ];
+      mysql = [ sqlalchemy pymysql sqlalchemy-views ];
+      pandas = [ regex ];
+      polars = [ polars pyarrow ];
+      postgres = [ psycopg2 sqlalchemy sqlalchemy-views ];
+      pyspark = [ pyarrow pyspark sqlalchemy ];
+      snowflake = [ snowflake-connector-python snowflake-sqlalchemy sqlalchemy-views ];
+      sqlite = [ regex sqlalchemy sqlite sqlalchemy-views ];
+      trino = [ trino-python-client sqlalchemy sqlalchemy-views ];
       visualization = [ graphviz-nox ];
+      decompiler = [ black ];
     };
   };
 
   meta = with lib; {
     description = "Productivity-centric Python Big Data Framework";
     homepage = "https://github.com/ibis-project/ibis";
+    changelog = "https://github.com/ibis-project/ibis/blob/${version}/docs/release_notes.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ costrouc cpcloud ];
   };
diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix
deleted file mode 100644
index c2aaac6548594..0000000000000
--- a/pkgs/development/python-modules/ihatemoney/default.nix
+++ /dev/null
@@ -1,129 +0,0 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, nixosTests
-, fetchPypi
-, alembic
-, aniso8601
-, babel
-, blinker
-, cachetools
-, click
-, dnspython
-, email-validator
-, flask
-, flask-babel
-, flask-cors
-, flask_mail
-, flask_migrate
-, flask-restful
-, flask-talisman
-, flask-wtf
-, debts
-, idna
-, itsdangerous
-, jinja2
-, mako
-, markupsafe
-, python-dateutil
-, pytz
-, requests
-, sqlalchemy
-, sqlalchemy-utils
-, sqlalchemy-continuum
-, sqlalchemy-i18n
-, werkzeug
-, wtforms
-, psycopg2 # optional, for postgresql support
-, flask-testing
-, pytestCheckHook
-}:
-
-buildPythonPackage rec {
-  pname = "ihatemoney";
-  version = "5.2.0";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.7";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-uQgZBbpqqbZYHpR+GwHWX0c7di2rVvEz0jPRY6+BkkQ=";
-  };
-
-  propagatedBuildInputs = [
-    aniso8601
-    babel
-    blinker
-    cachetools
-    click
-    debts
-    dnspython
-    email-validator
-    flask
-    flask_mail
-    flask_migrate
-    flask-wtf
-    flask-babel
-    flask-cors
-    flask-restful
-    flask-talisman
-    idna
-    itsdangerous
-    jinja2
-    mako
-    markupsafe
-    psycopg2
-    python-dateutil
-    pytz
-    requests
-    sqlalchemy
-    sqlalchemy-continuum
-    werkzeug
-    wtforms
-  ];
-
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "cachetools>=4.1,<5" "cachetools>=4.1" \
-      --replace "SQLAlchemy>=1.3.0,<1.4" "SQLAlchemy>=1.3.0,<1.5" \
-      --replace "WTForms>=2.3.1,<3.1" "WTForms"
-  '';
-
-  nativeCheckInputs = [
-    flask-testing
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [
-    "ihatemoney"
-  ];
-
-  disabledTests = [
-    # Requires running service
-    "test_notifications"
-    "test_invite"
-    "test_access_other_projects"
-    "test_authentication"
-    "test_manage_bills"
-    "test_member_delete_method"
-    "test_membership"
-    "test_bill_add_remove_add"
-    "test_clear_ip_records"
-    "test_disable_clear_no_new_records"
-    "test_logs_for_common_actions"
-    # Requires DNS resolution
-    "test_invitation_email_failure"
-  ];
-
-  passthru.tests = {
-    inherit (nixosTests.ihatemoney) ihatemoney-postgresql ihatemoney-sqlite;
-  };
-
-  meta = with lib; {
-    description = "Shared budget manager web application";
-    homepage = "https://ihatemoney.org";
-    license = licenses.beerware;
-    maintainers = with maintainers; [ symphorien ];
-  };
-}
diff --git a/pkgs/development/python-modules/invocations/default.nix b/pkgs/development/python-modules/invocations/default.nix
index fef497739cbf6..ec908b22b9b83 100644
--- a/pkgs/development/python-modules/invocations/default.nix
+++ b/pkgs/development/python-modules/invocations/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "invocations";
-  version = "2.6.0";
+  version = "3.0.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "pyinvoke";
     repo = pname;
     rev = version;
-    hash = "sha256-eyOJKVRfn7elyEkERl7hvRTNFmq7O9Pr03lBS6xp0wE=";
+    hash = "sha256-G0sl2DCROxlTnW3lWKeGw4qDmnaeRC4xYf27d6YePjE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/iocextract/default.nix b/pkgs/development/python-modules/iocextract/default.nix
index 46ff17b9894b7..9a2f5a2ec4105 100644
--- a/pkgs/development/python-modules/iocextract/default.nix
+++ b/pkgs/development/python-modules/iocextract/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "iocextract";
-  version = "1.15.1";
+  version = "1.15.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "InQuest";
     repo = "python-iocextract";
     rev = "refs/tags/v${version}";
-    hash = "sha256-muto8lr3sP44bLFIoAuPeS8pRv7pNP1JFKaAJV01TZY=";
+    hash = "sha256-l0TGi3Y3/Dcwyp80eRWYYlDaDDJdpc31fcxdYEVvQas=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ipywidgets/default.nix b/pkgs/development/python-modules/ipywidgets/default.nix
index 2ee67e854896f..5432d31c54720 100644
--- a/pkgs/development/python-modules/ipywidgets/default.nix
+++ b/pkgs/development/python-modules/ipywidgets/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "ipywidgets";
-  version = "8.0.4";
+  version = "8.0.6";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wABad6R9d4icr+2JK1jjO0oqlnEhVEBMZUjsIicoEeo=";
+    hash = "sha256-3n13nyBF1g3p9sJfZT/a4tuleJjmoShElLO6ILaJO7g=";
   };
 
   propagatedBuildInputs = [
@@ -33,11 +33,6 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    # https://github.com/jupyter-widgets/ipywidgets/issues/3711
-    "test_append_display_data"
-  ];
-
   meta = {
     description = "IPython HTML widgets for Jupyter";
     homepage = "https://ipython.org/";
diff --git a/pkgs/development/python-modules/jax/default.nix b/pkgs/development/python-modules/jax/default.nix
index 26f89695ee165..12a69358b45e4 100644
--- a/pkgs/development/python-modules/jax/default.nix
+++ b/pkgs/development/python-modules/jax/default.nix
@@ -5,6 +5,7 @@
 , etils
 , fetchFromGitHub
 , jaxlib
+, jaxlib-bin
 , lapack
 , matplotlib
 , numpy
@@ -13,15 +14,20 @@
 , pytest-xdist
 , pythonOlder
 , scipy
+, stdenv
 , typing-extensions
 }:
 
 let
   usingMKL = blas.implementation == "mkl" || lapack.implementation == "mkl";
+  # jaxlib is broken on aarch64-* as of 2023-03-05, but the binary wheels work
+  # fine. jaxlib is only used in the checkPhase, so switching backends does not
+  # impact package behavior. Get rid of this once jaxlib is fixed on aarch64-*.
+  jaxlib' = if jaxlib.meta.broken then jaxlib-bin else jaxlib;
 in
 buildPythonPackage rec {
   pname = "jax";
-  version = "0.4.1";
+  version = "0.4.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -29,14 +35,14 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
-    rev = "refs/tags/jaxlib-v${version}";
-    hash = "sha256-ajLI0iD0YZRK3/uKSbhlIZGc98MdW174vA34vhoy7Iw=";
+    # google/jax contains tags for jax and jaxlib. Only use jax tags!
+    rev = "refs/tags/${pname}-v${version}";
+    hash = "sha256-UJzX8zP3qaEUIV5hPJhiGiLJO7k8p962MHWxIHDY1ZA=";
   };
 
   # jaxlib is _not_ included in propagatedBuildInputs because there are
   # different versions of jaxlib depending on the desired target hardware. The
-  # JAX project ships separate wheels for CPU, GPU, and TPU. Currently only the
-  # CPU wheel is packaged.
+  # JAX project ships separate wheels for CPU, GPU, and TPU.
   propagatedBuildInputs = [
     absl-py
     etils
@@ -47,7 +53,7 @@ buildPythonPackage rec {
   ] ++ etils.optional-dependencies.epath;
 
   nativeCheckInputs = [
-    jaxlib
+    jaxlib'
     matplotlib
     pytestCheckHook
     pytest-xdist
@@ -83,6 +89,11 @@ buildPythonPackage rec {
     "test_custom_linear_solve_cholesky"
     "test_custom_root_with_aux"
     "testEigvalsGrad_shape"
+  ] ++ lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [
+    # See https://github.com/google/jax/issues/14793.
+    "test_for_loop_fixpoint_correctly_identifies_loop_varying_residuals_unrolled_for_loop"
+    "testQdwhWithRandomMatrix3"
+    "testScanGrad_jit_scan"
   ];
 
   # See https://github.com/google/jax/issues/11722. This is a temporary fix in
diff --git a/pkgs/development/python-modules/jaxlib/bin.nix b/pkgs/development/python-modules/jaxlib/bin.nix
index 8574ed2077545..c7e84e4c11a27 100644
--- a/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/pkgs/development/python-modules/jaxlib/bin.nix
@@ -39,7 +39,7 @@ assert cudaSupport -> lib.versionAtLeast cudatoolkit.version "11.1";
 assert cudaSupport -> lib.versionAtLeast cudnn.version "8.2";
 
 let
-  version = "0.3.22";
+  version = "0.4.4";
 
   pythonVersion = python.pythonVersion;
 
@@ -50,21 +50,21 @@ let
   cpuSrcs = {
     "x86_64-linux" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/nocuda/jaxlib-${version}-cp310-cp310-manylinux2014_x86_64.whl";
-      hash = "sha256-w2wo0jk+1BdEkNwfSZRQbebdI4Ac8Kgn0MB0cIMcWU4=";
+      hash = "sha256-4VT909AB+ti5HzQvsaZWNY6MS/GItlVEFH9qeZnUuKQ=";
     };
     "aarch64-darwin" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/mac/jaxlib-${version}-cp310-cp310-macosx_11_0_arm64.whl";
-      hash = "sha256-7Ir55ZhBkccqfoa56WVBF8QwFAC2ws4KFHDkfVw6zm0=";
+      hash = "sha256-wuOmoCeTldslSa0MommQeTe+RYKhUMam1ZXrgSov+8U=";
     };
     "x86_64-darwin" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/mac/jaxlib-${version}-cp310-cp310-macosx_10_14_x86_64.whl";
-      hash = "sha256-bOoQI+T+YsTUNA+cDu6wwYTcq9fyyzCpK9qrdCrNVoA=";
+      hash = "sha256-arfiTw8yafJwjRwJhKby2O7y3+4ksh3PjaKW9JgJ1ok=";
     };
   };
 
   gpuSrc = fetchurl {
     url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn82-cp310-cp310-manylinux2014_x86_64.whl";
-    hash = "sha256-rabU62p4fF7Tu/6t8LNYZdf6YO06jGry/JtyFZeamCs=";
+    hash = "sha256-bJ62DdzuPSV311ZI2R/LJQ3fOkDibtz2+8wDKw31FLk=";
   };
 in
 buildPythonPackage rec {
@@ -77,7 +77,13 @@ buildPythonPackage rec {
   # python version.
   disabled = !(pythonVersion == "3.10");
 
-  src = if !cudaSupport then cpuSrcs."${stdenv.hostPlatform.system}" else gpuSrc;
+  # See https://discourse.nixos.org/t/ofborg-does-not-respect-meta-platforms/27019/6.
+  src =
+    if !cudaSupport then
+      (
+        cpuSrcs."${stdenv.hostPlatform.system}"
+          or (throw "jaxlib-bin is not supported on ${stdenv.hostPlatform.system}")
+      ) else gpuSrc;
 
   # Prebuilt wheels are dynamically linked against things that nix can't find.
   # Run `autoPatchelfHook` to automagically fix them.
diff --git a/pkgs/development/python-modules/jaxlib/default.nix b/pkgs/development/python-modules/jaxlib/default.nix
index a2a0493657bcc..cc4a7fe8b16fb 100644
--- a/pkgs/development/python-modules/jaxlib/default.nix
+++ b/pkgs/development/python-modules/jaxlib/default.nix
@@ -49,10 +49,10 @@
 }:
 
 let
-  inherit (cudaPackages) cudatoolkit cudaFlags cudnn nccl;
+  inherit (cudaPackages) backendStdenv cudatoolkit cudaFlags cudnn nccl;
 
   pname = "jaxlib";
-  version = "0.3.22";
+  version = "0.4.4";
 
   meta = with lib; {
     description = "JAX is Autograd and XLA, brought together for high-performance machine learning research.";
@@ -81,7 +81,7 @@ let
   cudatoolkit_cc_joined = symlinkJoin {
     name = "${cudatoolkit.cc.name}-merged";
     paths = [
-      cudatoolkit.cc
+      backendStdenv.cc
       binutils.bintools # for ar, dwp, nm, objcopy, objdump, strip
     ];
   };
@@ -137,8 +137,9 @@ let
     src = fetchFromGitHub {
       owner = "google";
       repo = "jax";
-      rev = "${pname}-v${version}";
-      hash = "sha256-bnczJ8ma/UMKhA5MUQ6H4az+Tj+By14ZTG6lQQwptQs=";
+      # google/jax contains tags for jax and jaxlib. Only use jaxlib tags!
+      rev = "refs/tags/${pname}-v${version}";
+      hash = "sha256-DP68UwS9bg243iWU4MLHN0pwl8LaOcW3Sle1ZjsLOHo=";
     };
 
     nativeBuildInputs = [
@@ -242,9 +243,9 @@ let
 
       sha256 =
         if cudaSupport then
-          "sha256-4yu4y4SwSQoeaOz9yojhvCRGSC6jp61ycVDIKyIK/l8="
+          "sha256-cgsiloW77p4+TKRrYequZ/UwKwfO2jsHKtZ+aA30H7E="
         else
-          "sha256-CyRfPfJc600M7VzR3/SQX/EAyeaXRJwDQWot5h2XnFU=";
+          "sha256-D7WYG3YUaWq+4APYx8WpA191VVtoHG0fth3uEHXOeos=";
     };
 
     buildAttrs = {
@@ -271,6 +272,7 @@ let
           sed -i 's@include/pybind11@pybind11@g' $src
         done
       '' + lib.optionalString cudaSupport ''
+        export NIX_LDFLAGS+=" -L${backendStdenv.nixpkgsCompatibleLibstdcxx}/lib"
         patchShebangs ../output/external/org_tensorflow/third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc.tpl
       '' + lib.optionalString stdenv.isDarwin ''
         # Framework search paths aren't added by bintools hook
diff --git a/pkgs/development/python-modules/johnnycanencrypt/default.nix b/pkgs/development/python-modules/johnnycanencrypt/default.nix
index d7c179c8041d6..2f4e2613d6aa8 100644
--- a/pkgs/development/python-modules/johnnycanencrypt/default.nix
+++ b/pkgs/development/python-modules/johnnycanencrypt/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchPypi
+, fetchFromGitHub
 , buildPythonPackage
 , rustPlatform
 , llvmPackages
@@ -17,18 +17,20 @@
 
 buildPythonPackage rec {
   pname = "johnnycanencrypt";
-  version = "0.12.0";
+  version = "0.13.1";
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-aGhM/uyYE7l0h6L00qp+HRUVaj7s/tnHWIHJpLAkmR4=";
+  src = fetchFromGitHub {
+    owner = "kushaldas";
+    repo = "johnnycanencrypt";
+    rev = "v${version}";
+    hash = "sha256-1zHdV0QNYgeJIMaSljIMtqjpkwih2+s8jAaQnCumdgw=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-fcwDxkUFtA6LS77xdLktNnZJXmyl/ZzArvIW69SPpmI=";
+    hash = "sha256-nsVC2plY2yXjOZBvM4GYNQJqHR+ZWxfiDjPcTCoe6+0=";
   };
 
   format = "pyproject";
diff --git a/pkgs/development/python-modules/jupyter-book/default.nix b/pkgs/development/python-modules/jupyter-book/default.nix
index fc3544ac70c54..81b89e77a8bb4 100644
--- a/pkgs/development/python-modules/jupyter-book/default.nix
+++ b/pkgs/development/python-modules/jupyter-book/default.nix
@@ -65,6 +65,7 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [
     "docutils"
+    "sphinx-design"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/jupyter-server-fileid/default.nix b/pkgs/development/python-modules/jupyter-server-fileid/default.nix
index 2846b00ddb4e9..4ef40134152dc 100644
--- a/pkgs/development/python-modules/jupyter-server-fileid/default.nix
+++ b/pkgs/development/python-modules/jupyter-server-fileid/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "jupyter-server-fileid";
-  version = "0.8.0";
+  version = "0.9.0";
 
   disables = pythonOlder "3.7";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "jupyter-server";
     repo = "jupyter_server_fileid";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gJ+OM2b4JrdBObPnltqCWGK3e5p3K2XcoUohej3nDIM=";
+    hash = "sha256-3dwj8GV0FmbhSsC2uWOLcU5ofrvBBGJ/2F/noFh4RCU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterlab-lsp/default.nix b/pkgs/development/python-modules/jupyterlab-lsp/default.nix
index f5891b82fd832..d7f62e9e20343 100644
--- a/pkgs/development/python-modules/jupyterlab-lsp/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-lsp/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-lsp";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Rh5rX48HglIGy7Qg4lvmP3bVVCB3ibWnenCHMui5pJE=";
+    hash = "sha256-1VPRfs+F24h2xJeoJglZQpuCcPDk6Ptf8cWrAW3G5to=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterlab-widgets/default.nix b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
index 195a649a25a31..0e7a283b5da2e 100644
--- a/pkgs/development/python-modules/jupyterlab-widgets/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-widgets";
-  version = "3.0.5";
+  version = "3.0.7";
 
   src = fetchPypi {
     pname = "jupyterlab_widgets";
     inherit version;
-    hash = "sha256-7q7N6vbAOvyWDdriAc7YjVl5tMqcOJG8uPZjGvcF9e8=";
+    hash = "sha256-w6UO1b9Sigx6hpCWUDr1RwL4bdodtGmu4cktwMAbQ8o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/kornia/default.nix b/pkgs/development/python-modules/kornia/default.nix
new file mode 100644
index 0000000000000..3a3a0af8c33ee
--- /dev/null
+++ b/pkgs/development/python-modules/kornia/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, packaging
+, torch
+}:
+
+buildPythonPackage rec {
+  pname = "kornia";
+  version = "0.6.11";
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-APqITIt2P+16qp27dwLoAq9vY5CYpd49IWfYHTcZTSI=";
+  };
+
+  propagatedBuildInputs = [
+    packaging
+    torch
+  ];
+
+  pythonImportsCheck = [
+    "kornia"
+    "kornia.augmentation"
+    "kornia.color"
+    "kornia.contrib"
+    "kornia.enhance"
+    "kornia.feature"
+    "kornia.filters"
+    "kornia.geometry"
+    "kornia.io"
+    "kornia.losses"
+    "kornia.metrics"
+    "kornia.morphology"
+    "kornia.tracking"
+    "kornia.testing"
+    "kornia.utils"
+  ];
+
+  doCheck = false;  # tests hang with no single test clearly responsible
+
+  meta = with lib; {
+    homepage = "https://kornia.github.io/kornia";
+    description = "Differentiable computer vision library";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/levenshtein/default.nix b/pkgs/development/python-modules/levenshtein/default.nix
index d680f2cb1e05c..61da9ab759105 100644
--- a/pkgs/development/python-modules/levenshtein/default.nix
+++ b/pkgs/development/python-modules/levenshtein/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "levenshtein";
-  version = "0.20.9";
+  version = "0.21.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "maxbachmann";
     repo = "Levenshtein";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BPfv3XsAaspLGmztllUYLq6VMKaW+s/Pp18RQmSrilc=";
+    hash = "sha256-j28OQkJymkh6tIGYLoZLad7OUUImjZqXdqM2zU3haac=";
   };
 
   nativeBuildInputs = [
@@ -56,7 +56,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Functions for fast computation of Levenshtein distance and string similarity";
     homepage = "https://github.com/maxbachmann/Levenshtein";
-    changelog = "https://github.com/maxbachmann/Levenshtein/blob/${version}/HISTORY.md";
+    changelog = "https://github.com/maxbachmann/Levenshtein/blob/${src.rev}/HISTORY.md";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/lightgbm/default.nix b/pkgs/development/python-modules/lightgbm/default.nix
index 1be852daa1570..71604af72977d 100644
--- a/pkgs/development/python-modules/lightgbm/default.nix
+++ b/pkgs/development/python-modules/lightgbm/default.nix
@@ -8,6 +8,11 @@
 , scikit-learn
 , llvmPackages ? null
 , pythonOlder
+, python
+, ocl-icd
+, opencl-headers
+, boost
+, gpuSupport ? true
 }:
 
 buildPythonPackage rec {
@@ -28,9 +33,13 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  buildInputs = lib.optionals stdenv.cc.isClang [
+  buildInputs = (lib.optionals stdenv.cc.isClang [
     llvmPackages.openmp
-  ];
+  ]) ++ (lib.optionals gpuSupport [
+    boost
+    ocl-icd
+    opencl-headers
+  ]);
 
   propagatedBuildInputs = [
     numpy
@@ -38,6 +47,10 @@ buildPythonPackage rec {
     scikit-learn
   ];
 
+  buildPhase = ''
+    ${python.pythonForBuild.interpreter} setup.py bdist_wheel ${lib.optionalString gpuSupport "--gpu"}
+  '';
+
   postConfigure = ''
     export HOME=$(mktemp -d)
   '';
@@ -51,11 +64,11 @@ buildPythonPackage rec {
     "lightgbm"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework";
     homepage = "https://github.com/Microsoft/LightGBM";
     changelog = "https://github.com/microsoft/LightGBM/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ teh costrouc ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ teh costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/lion-pytorch/default.nix b/pkgs/development/python-modules/lion-pytorch/default.nix
new file mode 100644
index 0000000000000..a5a554c1980ba
--- /dev/null
+++ b/pkgs/development/python-modules/lion-pytorch/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, torch
+}:
+
+buildPythonPackage rec {
+  pname = "lion-pytorch";
+  version = "0.0.7";
+  format = "setuptools";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "lucidrains";
+    repo = "lion-pytorch";
+    rev = "refs/tags/${version}";
+    hash = "sha256-CSb0s3DKv/KpEmCkCR+Y8iwrLdCL9w9Pl6W46cPB420";
+  };
+
+  propagatedBuildInputs = [ torch ];
+
+  pythonImportsCheck = [ "lion_pytorch" ];
+  doCheck = false;  # no tests currently
+
+  meta = with lib; {
+    description = "Optimizer tuned by Google Brain using genetic algorithms";
+    homepage = "https://github.com/lucidrains/lion-pytorch";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix
index 66c040f66f35c..f974d7484c081 100644
--- a/pkgs/development/python-modules/mautrix/default.nix
+++ b/pkgs/development/python-modules/mautrix/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "mautrix";
-  version = "0.19.7";
+  version = "0.19.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "mautrix";
     repo = "python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uL4eNMe+NXyE+kLy87zZPNBDuMnAt3KHT01ryFVfBZU=";
+    hash = "sha256-XG2uAG5sKGGtnCTQJ2gsAm7jxtvMg+1MXPJLkb+2cPQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mcstatus/default.nix b/pkgs/development/python-modules/mcstatus/default.nix
index bbd364267549c..9b9eef88eae18 100644
--- a/pkgs/development/python-modules/mcstatus/default.nix
+++ b/pkgs/development/python-modules/mcstatus/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "mcstatus";
-  version = "10.0.2";
+  version = "10.0.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "py-mine";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-8RdJarRoBOkHZfFAKnDgqu8dANQLwKAoY2g8SwbuDeE=";
+    hash = "sha256-LHcLqP9IGqi0YmjgFoTwojyS+IZmBOBujYWMPuqNc6w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/meraki/default.nix b/pkgs/development/python-modules/meraki/default.nix
index 4e748e0131988..392684539cc89 100644
--- a/pkgs/development/python-modules/meraki/default.nix
+++ b/pkgs/development/python-modules/meraki/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "meraki";
-  version = "1.30.0";
+  version = "1.32.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-s26xGwWSWB+qpOTUe8IYo53ywYOaaUWjDznFqpmRlak=";
+    hash = "sha256-3iZ9/d78nAnK2+Kv0+0tuvZcfSV6ZF6QRF3xYL3NqV4=";
   };
 
   propagatedBuildInputs = [
@@ -27,6 +27,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Provides all current Meraki dashboard API calls to interface with the Cisco Meraki cloud-managed platform";
     homepage = "https://github.com/meraki/dashboard-api-python";
+    changelog = "https://github.com/meraki/dashboard-api-python/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dylanmtaylor ];
   };
diff --git a/pkgs/development/python-modules/meshtastic/default.nix b/pkgs/development/python-modules/meshtastic/default.nix
index ec1f34fcf3d25..3e4842d537718 100644
--- a/pkgs/development/python-modules/meshtastic/default.nix
+++ b/pkgs/development/python-modules/meshtastic/default.nix
@@ -12,6 +12,7 @@
 , pytestCheckHook
 , pythonOlder
 , pyyaml
+, requests
 , setuptools
 , tabulate
 , timeago
@@ -19,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "meshtastic";
-  version = "2.0.12";
+  version = "2.1.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +29,7 @@ buildPythonPackage rec {
     owner = "meshtastic";
     repo = "Meshtastic-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-Y3X5LW85e+OQ548H13fQ0s+R870Hzp0kVd+v+lbdqtg=";
+    hash = "sha256-xfE4hfnf9NFA9iwce1onclLJOYgMWxuionmVUPDVEuw=";
   };
 
   propagatedBuildInputs = [
@@ -41,6 +42,7 @@ buildPythonPackage rec {
     pyserial
     pyyaml
     setuptools
+    requests
     tabulate
     timeago
   ];
@@ -103,6 +105,11 @@ buildPythonPackage rec {
     "test_writeGPIOs"
     "test_reboot"
     "test_shutdown"
+    "test_main_sendtext"
+    "test_main_sendtext_with_channel"
+    "test_MeshInterface"
+    "test_getNode_not_local"
+    "test_getNode_not_local_timeout"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/mlflow/default.nix b/pkgs/development/python-modules/mlflow/default.nix
index c165f80ac30ff..30d723edfab6a 100644
--- a/pkgs/development/python-modules/mlflow/default.nix
+++ b/pkgs/development/python-modules/mlflow/default.nix
@@ -38,14 +38,14 @@
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "2.2.2";
+  version = "2.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PvLC7iDJp63t/zTnVsbtrGLPTZBXZa0OgHS8naoMWAw";
+    hash = "sha256-KnumCix5DH6nQvSGg4cG1Yb6twH+wwjqTHMvS7rdhAk=";
   };
 
   # Remove currently broken dependency `shap`, a model explainability package.
@@ -94,7 +94,7 @@ buildPythonPackage rec {
 
   # no tests in PyPI dist
   # run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
-  # also, tests use conda so can't run on NixOS without buildFHSUserEnv
+  # also, tests use conda so can't run on NixOS without buildFHSEnv
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/monty/default.nix b/pkgs/development/python-modules/monty/default.nix
index d6d67cd763350..37107a1b1b528 100644
--- a/pkgs/development/python-modules/monty/default.nix
+++ b/pkgs/development/python-modules/monty/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "monty";
-  version = "2022.9.9";
+  version = "2023.4.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "materialsvirtuallab";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-7ToNiRSWxe9nNcaWWmS6bhVqWMEwXN4uiwtjAmuK5qw=";
+    hash = "sha256-9of56ErJ03hU+KqxUjR4IiyU4XLJoothSwODlzSWv9Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/niaclass/default.nix b/pkgs/development/python-modules/niaclass/default.nix
index 749c49aba30e4..89d8ae746aed6 100644
--- a/pkgs/development/python-modules/niaclass/default.nix
+++ b/pkgs/development/python-modules/niaclass/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "niaclass";
-  version = "0.1.3";
+  version = "0.1.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "lukapecnik";
     repo = "NiaClass";
-    rev = version;
-    sha256 = "sha256-BDGDcIlunnaH3J9sEuDrwWsBR4Wjcy6Kxpxy9Dr6BlM=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-md1e/cOIOQKoB760E5hjzjCsC5tS1CzgqAPTeVtrmuo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
index 2c1f0b2ae27c6..34066a583646f 100644
--- a/pkgs/development/python-modules/nibabel/default.nix
+++ b/pkgs/development/python-modules/nibabel/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "nibabel";
-  version = "5.0.1";
+  version = "5.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SvZQFbTMmZQEyvA04cFcGrZ1h5XCXWkH/3T127/p9D4=";
+    hash = "sha256-znPKXpVyCechmiI8tx93I1yd8qz00/J/hhujjpSBrFM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/notus-scanner/default.nix b/pkgs/development/python-modules/notus-scanner/default.nix
index f4a24c8dc01c8..ff64840fee7c9 100644
--- a/pkgs/development/python-modules/notus-scanner/default.nix
+++ b/pkgs/development/python-modules/notus-scanner/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "notus-scanner";
-  version = "22.4.5";
+  version = "22.5.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-bGuD3uDteXQdj3pfnRemKWffWVbQSHda/RrfhAXB3fM=";
+    hash = "sha256-h+jZWjDvTfW9XjoGhWYX08hgJ/Qp64MEaqHHwnahnC4=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/ocifs/default.nix b/pkgs/development/python-modules/ocifs/default.nix
index 2d4e4bfa8757a..6d44c1a9ad3a8 100644
--- a/pkgs/development/python-modules/ocifs/default.nix
+++ b/pkgs/development/python-modules/ocifs/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "ocifs";
-  version = "1.1.4";
+  version = "1.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "oracle";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-zZREWEFWQj4G2RyEMH0X3oPr5Yu5/96UX6nm9HDmJCY=";
+    hash = "sha256-HY2LTm3JckAzNMVuAJNs/0LixBwiG/QKa7ILquY0Q+c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index 92d906407ce10..c6be1be6b3c3e 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -29,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "14.0.4";
+  version = "14.1.0";
 
   disabled = pythonOlder "3.8";
 
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-SLWpMkXq5DlmVgDfRAHtYfEUAVpVKgtnJKO2ffyH5cU=";
+    hash = "sha256-Jyx9FPXNjcA04s+l2wY/LVX83RqExt78/EAHsL1VNMU=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/omnikinverter/default.nix b/pkgs/development/python-modules/omnikinverter/default.nix
index 869c9988cb808..292abc349ea0d 100644
--- a/pkgs/development/python-modules/omnikinverter/default.nix
+++ b/pkgs/development/python-modules/omnikinverter/default.nix
@@ -1,7 +1,6 @@
 { lib
 , aiohttp
 , aresponses
-, asynctest
 , buildPythonPackage
 , fetchFromGitHub
 , poetry-core
@@ -13,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "omnikinverter";
-  version = "0.9.0";
+  version = "0.9.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -22,7 +21,7 @@ buildPythonPackage rec {
     owner = "klaasnicolaas";
     repo = "python-omnikinverter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-V7rppl1u5QTzxkeLYgCFwgU6XuVENtb7EW/n+glwtSk=";
+    hash = "sha256-Vjfnwk9iIe5j+s/zJHQ2X095Eexp/aKtIi/k0sK45q0=";
   };
 
   nativeBuildInputs = [
@@ -36,7 +35,6 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     aresponses
-    asynctest
     pytest-asyncio
     pytestCheckHook
   ];
@@ -55,6 +53,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module for the Omnik Inverter";
     homepage = "https://github.com/klaasnicolaas/python-omnikinverter";
+    changelog = "https://github.com/klaasnicolaas/python-omnikinverter/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/onvif-zeep-async/default.nix b/pkgs/development/python-modules/onvif-zeep-async/default.nix
index f64a71f9029d6..b8d0b654dc0ce 100644
--- a/pkgs/development/python-modules/onvif-zeep-async/default.nix
+++ b/pkgs/development/python-modules/onvif-zeep-async/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "onvif-zeep-async";
-  version = "1.2.3";
+  version = "1.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ziFDSGKJB4wGvEF5x8eFMLVKHORXKkLbqBkAjy7FSX4=";
+    hash = "sha256-Gd3OfFfJE//uDiaU6HTlURCqoGOG4jvuMN1TlDy7pZU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index 66f1722798e80..3929367de55bc 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "0.27.2";
+  version = "0.27.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7.1";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eHaYOJB/Ujadq71Ow3aTgiahYoiqoHwtNXr68nJUqGc=";
+    hash = "sha256-E6Y4PdxwR1V4j48bbbuV6DtgAtXRyEMa9ipA1URL2Ac=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/opencontainers/default.nix b/pkgs/development/python-modules/opencontainers/default.nix
new file mode 100644
index 0000000000000..5aa376cbc585d
--- /dev/null
+++ b/pkgs/development/python-modules/opencontainers/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "opencontainers";
+  version = "0.0.14";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-/eO4CZtWtclWQV34kz4iJ+GRToBaJ3uETy+eUjQXOPI=";
+  };
+
+  postPatch = ''
+    sed -i "/pytest-runner/d" setup.py
+  '';
+
+  passthru.optional-dependencies.reggie = [
+    requests
+  ];
+
+  pythonImportsCheck = [
+    "opencontainers"
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.reggie;
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
+    description = "Python module for oci specifications";
+    homepage = "https://github.com/vsoch/oci-python";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/palettable/default.nix b/pkgs/development/python-modules/palettable/default.nix
index a613701449050..bd13c288894af 100644
--- a/pkgs/development/python-modules/palettable/default.nix
+++ b/pkgs/development/python-modules/palettable/default.nix
@@ -1,23 +1,34 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "palettable";
-  version = "3.3.0";
+  version = "3.3.2";
+
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "72feca71cf7d79830cd6d9181b02edf227b867d503bec953cf9fa91bf44896bd";
+    sha256 = "sha256-aoZ8Qlov8ojqtDVr7ewA3gBt7jbJmmFHwuGwXeeJrJ8=";
   };
 
-  nativeCheckInputs = [ pytest ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    pytest
-  '';
+  pythonImportsCheck = [
+    "palettable"
+    "palettable.matplotlib"
+    "palettable.tableau"
+  ];
 
   meta = with lib; {
     description = "A library of color palettes";
     homepage = "https://jiffyclub.github.io/palettable/";
+    changelog = "https://github.com/jiffyclub/palettable/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
   };
diff --git a/pkgs/development/python-modules/parsel/default.nix b/pkgs/development/python-modules/parsel/default.nix
index ff90cfa74a086..5a779aab12b70 100644
--- a/pkgs/development/python-modules/parsel/default.nix
+++ b/pkgs/development/python-modules/parsel/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , cssselect
 , fetchPypi
+, jmespath
 , lxml
 , packaging
 , psutil
@@ -12,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "parsel";
-  version = "1.7.0";
+  version = "1.8.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AlQTPLAwTeE/zEhXu4IU/3DWmIcnYfpr6DdOG7vVgZI=";
+    hash = "sha256-r/KOaMmz8akB2ypOPxWNhICjhyTXMo7nUcGk4cGAHjk=";
   };
 
   postPatch = ''
@@ -29,6 +30,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     cssselect
+    jmespath
     lxml
     packaging
     w3lib
diff --git a/pkgs/development/python-modules/parsy/default.nix b/pkgs/development/python-modules/parsy/default.nix
index 25092eb9e8a80..07e9bfb2be769 100644
--- a/pkgs/development/python-modules/parsy/default.nix
+++ b/pkgs/development/python-modules/parsy/default.nix
@@ -7,16 +7,16 @@
 
 buildPythonPackage rec {
   pname = "parsy";
-  version = "1.4.0";
+  version = "2.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     repo = "parsy";
     owner = "python-parsy";
-    rev = "v${version}";
-    hash = "sha256-FislrLb+u4T5m/eEER7kazZHJKEwPHe+Vg/YDJp4PyM=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/Bu3xZUpXI4WiYJKKWTJTdSFq8pwC1PFDw0Kr8s3Fe8=";
   };
 
   nativeCheckInputs = [
@@ -30,7 +30,8 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/python-parsy/parsy";
     description = "Easy-to-use parser combinators, for parsing in pure Python";
-    license = [ licenses.mit ];
+    changelog = "https://github.com/python-parsy/parsy/blob/v${version}/docs/history.rst";
+    license = licenses.mit;
     maintainers = with maintainers; [ milibopp ];
   };
 }
diff --git a/pkgs/development/python-modules/peaqevcore/default.nix b/pkgs/development/python-modules/peaqevcore/default.nix
index c6a8a1f4021ea..f2f73ee9c17ae 100644
--- a/pkgs/development/python-modules/peaqevcore/default.nix
+++ b/pkgs/development/python-modules/peaqevcore/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "peaqevcore";
-  version = "15.2.1";
+  version = "15.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-71ea8r1g52SyWxG+aTl53WanM5z4XAj9k5E26ivpYoE=";
+    hash = "sha256-nbDySNyHsy/5RaN7L/lbMunfXp+Ohyq0sZWPXirFbqs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index 0ba80b1dc47c4..5c2fd23146598 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "7.1.2";
+  version = "7.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-Lm05lqqZM1zucdIDgSnYsCcfo7wCDLcY02vv7CyHTGo=";
+    hash = "sha256-acGIhIWC1nUQiN0iwb1kLKxz+ytIqYIW4VXF45Tx50g=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/playwright/default.nix b/pkgs/development/python-modules/playwright/default.nix
index 39e3b08acd54f..c58b3bb6bb0c1 100644
--- a/pkgs/development/python-modules/playwright/default.nix
+++ b/pkgs/development/python-modules/playwright/default.nix
@@ -1,139 +1,21 @@
 { lib
-, stdenv
 , buildPythonPackage
-, chromium
-, ffmpeg
-, firefox
 , git
 , greenlet
-, jq
-, nodejs
 , fetchFromGitHub
-, fetchurl
-, makeFontsConf
-, makeWrapper
 , pyee
 , python
 , pythonOlder
-, runCommand
 , setuptools-scm
-, unzip
+, playwright-driver
 }:
 
 let
-  inherit (stdenv.hostPlatform) system;
-  throwSystem = throw "Unsupported system: ${system}";
-
-  driverVersion = "1.27.1";
-
-  driver = let
-    suffix = {
-      x86_64-linux = "linux";
-      aarch64-linux = "linux-arm64";
-      x86_64-darwin = "mac";
-      aarch64-darwin = "mac-arm64";
-    }.${system} or throwSystem;
-    filename = "playwright-${driverVersion}-${suffix}.zip";
-  in stdenv.mkDerivation {
-    pname = "playwright-driver";
-    version = driverVersion;
-
-    src = fetchurl {
-      url = "https://playwright.azureedge.net/builds/driver/${filename}";
-      sha256 = {
-        x86_64-linux = "0x71b4kb8hlyacixipgfbgjgrbmhckxpbmrs2xk8iis7n5kg7539";
-        aarch64-linux = "125lih7g2gj91k7j196wy5a5746wyfr8idj3ng369yh5wl7lfcfv";
-        x86_64-darwin = "0z2kww4iby1izkwn6z2ai94y87bkjvwak8awdmjm8sgg00pa9l1a";
-        aarch64-darwin = "0qajh4ac5lr1sznb2c471r5c5g2r0dk2pyqz8vhvnbk36r524h1h";
-      }.${system} or throwSystem;
-    };
-
-    sourceRoot = ".";
-
-    nativeBuildInputs = [ unzip ];
-
-    postPatch = ''
-      # Use Nix's NodeJS instead of the bundled one.
-      substituteInPlace playwright.sh --replace '"$SCRIPT_PATH/node"' '"${nodejs}/bin/node"'
-      rm node
-
-      # Hard-code the script path to $out directory to avoid a dependency on coreutils
-      substituteInPlace playwright.sh \
-        --replace 'SCRIPT_PATH="$(cd "$(dirname "$0")" ; pwd -P)"' "SCRIPT_PATH=$out"
-
-      patchShebangs playwright.sh package/bin/*.sh
-    '';
-
-    installPhase = ''
-      runHook preInstall
-
-      mkdir -p $out/bin
-      mv playwright.sh $out/bin/playwright
-      mv package $out/
-
-      runHook postInstall
-    '';
-
-    passthru = {
-      inherit filename;
-    };
-  };
-
-  browsers-mac = stdenv.mkDerivation {
-    pname = "playwright-browsers";
-    version = driverVersion;
-
-    dontUnpack = true;
-
-    installPhase = ''
-      runHook preInstall
-
-      export PLAYWRIGHT_BROWSERS_PATH=$out
-      ${driver}/bin/playwright install
-      rm -r $out/.links
-
-      runHook postInstall
-    '';
-
-    meta.platforms = lib.platforms.darwin;
-  };
-
-  browsers-linux = { withFirefox ? true, withChromium ? true }: let
-    fontconfig = makeFontsConf {
-      fontDirectories = [];
-    };
-  in runCommand ("playwright-browsers"
-    + lib.optionalString (withFirefox && !withChromium) "-firefox"
-    + lib.optionalString (!withFirefox && withChromium) "-chromium")
-  {
-    nativeBuildInputs = [
-      makeWrapper
-      jq
-    ];
-  } (''
-    BROWSERS_JSON=${driver}/package/browsers.json
-  '' + lib.optionalString withChromium ''
-    CHROMIUM_REVISION=$(jq -r '.browsers[] | select(.name == "chromium").revision' $BROWSERS_JSON)
-    mkdir -p $out/chromium-$CHROMIUM_REVISION/chrome-linux
-
-    # See here for the Chrome options:
-    # https://github.com/NixOS/nixpkgs/issues/136207#issuecomment-908637738
-    makeWrapper ${chromium}/bin/chromium $out/chromium-$CHROMIUM_REVISION/chrome-linux/chrome \
-      --set SSL_CERT_FILE /etc/ssl/certs/ca-bundle.crt \
-      --set FONTCONFIG_FILE ${fontconfig}
-  '' + lib.optionalString withFirefox ''
-    FIREFOX_REVISION=$(jq -r '.browsers[] | select(.name == "firefox").revision' $BROWSERS_JSON)
-    mkdir -p $out/firefox-$FIREFOX_REVISION/firefox
-    ln -s ${firefox}/bin/firefox $out/firefox-$FIREFOX_REVISION/firefox/firefox
-  '' + ''
-    FFMPEG_REVISION=$(jq -r '.browsers[] | select(.name == "ffmpeg").revision' $BROWSERS_JSON)
-    mkdir -p $out/ffmpeg-$FFMPEG_REVISION
-    ln -s ${ffmpeg}/bin/ffmpeg $out/ffmpeg-$FFMPEG_REVISION/ffmpeg-linux
-  '');
+  driver = playwright-driver;
 in
 buildPythonPackage rec {
   pname = "playwright";
-  version = "1.27.1";
+  version =  "1.31.1";
   format = "setuptools";
   disabled = pythonOlder "3.7";
 
@@ -141,7 +23,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "playwright-python";
     rev = "v${version}";
-    hash = "sha256-cI/4GdkmTikoP9O0Skh/0jCxxRypRua0231iKcxtBcY=";
+    hash = "sha256-zVJiRIJDWmFdMCGK9siewiYgjeeTuOPY1wWxArcZDJg";
   };
 
   patches = [
@@ -163,10 +45,10 @@ buildPythonPackage rec {
     git commit -m "workaround setuptools-scm"
 
     substituteInPlace setup.py \
-      --replace "greenlet==1.1.3" "greenlet>=1.1.3" \
+      --replace "greenlet==2.0.1" "greenlet>=2.0.1" \
       --replace "pyee==8.1.0" "pyee>=8.1.0" \
       --replace "setuptools-scm==7.0.5" "setuptools-scm>=7.0.5" \
-      --replace "wheel==0.37.1" "wheel>=0.37.1"
+      --replace "wheel==0.38.1" "wheel>=0.37.1"
 
     # Skip trying to download and extract the driver.
     # This is done manually in postInstall instead.
@@ -199,19 +81,11 @@ buildPythonPackage rec {
     "playwright"
   ];
 
-  passthru = rec {
+  passthru = {
     inherit driver;
-    browsers = {
-      x86_64-linux = browsers-linux { };
-      aarch64-linux = browsers-linux { };
-      x86_64-darwin = browsers-mac;
-      aarch64-darwin = browsers-mac;
-    }.${system} or throwSystem;
-    browsers-chromium = browsers-linux { withFirefox = false; };
-    browsers-firefox = browsers-linux { withChromium = false; };
-
     tests = {
-      inherit driver browsers;
+      driver = playwright-driver;
+      browsers = playwright-driver.browsers;
     };
   };
 
diff --git a/pkgs/development/python-modules/pontos/default.nix b/pkgs/development/python-modules/pontos/default.nix
index 9a65b03701dcd..bab8fc8e19149 100644
--- a/pkgs/development/python-modules/pontos/default.nix
+++ b/pkgs/development/python-modules/pontos/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pontos";
-  version = "23.4.1";
+  version = "23.4.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-siaOZClcqivFZlscPiEo3skL6oVjDEWrabP8I+IvQJ8=";
+    hash = "sha256-dfalOFksqrOOhoQz2VCeEFS10Sqr7qmjgH7Rgb2YCeY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pooch/default.nix b/pkgs/development/python-modules/pooch/default.nix
index 7dd3569519e0e..06c4617c0ce9c 100644
--- a/pkgs/development/python-modules/pooch/default.nix
+++ b/pkgs/development/python-modules/pooch/default.nix
@@ -7,6 +7,9 @@
 , packaging
 , appdirs
 , requests
+, tqdm
+, paramiko
+, xxhash
 }:
 
 buildPythonPackage rec {
@@ -44,6 +47,14 @@ buildPythonPackage rec {
     "integration"
   ];
 
+  passthru = {
+    optional-dependencies = {
+      progress = [ tqdm ];
+      sftp = [ paramiko ];
+      xxhash = [ xxhash ];
+    };
+  };
+
   meta = with lib; {
     description = "A friend to fetch your data files.";
     homepage = "https://github.com/fatiando/pooch";
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index 91eafd150dd6d..3ee52096ec4f4 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.9.3";
+  version = "0.9.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9iQZb9v8aV7hg6UqLfxWGByPWb8mn+14vktIvCRX4hg=";
+    hash = "sha256-A0DpjyrGVpE8nCsKerEJhE+FS+QOGXeiK/8KsOcr2/w=";
   };
 
   passthru.optional-dependencies = {
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index b9d5b1a238aec..95e892d215123 100644
--- a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pytelegrambotapi";
-  version = "4.10.0";
+  version = "4.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "eternnoir";
     repo = "pyTelegramBotAPI";
     rev = "refs/tags/${version}";
-    hash = "sha256-uzdhNCMl5NdOSHVMZe4BcpCjHQCyaTqlTdWTtzPqj04=";
+    hash = "sha256-K81B8cNQ5Vvu8nH8kiroeffwRaUIKpwnpX2Jq7xPjB0=";
   };
 
   passthru.optional-dependencies = {
diff --git a/pkgs/development/python-modules/pydata-google-auth/default.nix b/pkgs/development/python-modules/pydata-google-auth/default.nix
new file mode 100644
index 0000000000000..1baeb8f0d9e67
--- /dev/null
+++ b/pkgs/development/python-modules/pydata-google-auth/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, google-auth
+, google-auth-oauthlib
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "pydata-google-auth";
+  version = "1.7.0";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "pydata";
+    rev = "refs/tags/${version}";
+    hash = "sha256-VJmu7VExWmXBa0cjgppyOgWDLDRMdhOoaOrZoi4WAxo=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    google-auth
+    google-auth-oauthlib
+  ];
+
+  # tests require network access
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pydata_google_auth"
+  ];
+
+  meta = with lib; {
+    description = "Helpers for authenticating to Google APIs";
+    homepage = "https://github.com/pydata/pydata-google-auth";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ cpcloud ];
+  };
+}
diff --git a/pkgs/development/python-modules/pydeps/default.nix b/pkgs/development/python-modules/pydeps/default.nix
index 2449ecafb9155..579f7600e8681 100644
--- a/pkgs/development/python-modules/pydeps/default.nix
+++ b/pkgs/development/python-modules/pydeps/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pydeps";
-  version = "1.11.2";
+  version = "1.12.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "thebjorn";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-6eiSzuxspWutEKL1pKBeZ0/ZQjS07BpTwgd8dyrePcM=";
+    hash = "sha256-lwQaU7MwFuk+VBCKl4zBNWRFo88/uW2DxXjiZNyuHAg=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pydrive2/default.nix b/pkgs/development/python-modules/pydrive2/default.nix
index 75d25a885bfe9..1851de19bcf8a 100644
--- a/pkgs/development/python-modules/pydrive2/default.nix
+++ b/pkgs/development/python-modules/pydrive2/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pydrive2";
-  version = "1.15.1";
+  version = "1.15.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyDrive2";
     inherit version;
-    hash = "sha256-Hx8xuMned3vUDrDRhqYirLPmsbjjxWPlCNRoxZp50/o=";
+    hash = "sha256-qPUNmWydx25RwAO8wHcP6XIi+gH7Dm6p0CfwrPfs564=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pydruid/default.nix b/pkgs/development/python-modules/pydruid/default.nix
new file mode 100644
index 0000000000000..9ede441bd817a
--- /dev/null
+++ b/pkgs/development/python-modules/pydruid/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+  # required dependencies
+, requests
+, setuptools
+  # optional dependencies
+, pandas
+, tornado
+, sqlalchemy
+  # test dependencies
+, pycurl
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pydruid";
+  version = "0.6.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "druid-io";
+    rev = "refs/tags/${version}";
+    hash = "sha256-9+xomjSwWDVHkret/mqAZKWOPFRMvVB3CWtFPzrT81k=";
+  };
+
+  # patch out the CLI because it doesn't work with newer versions of pygments
+  postPatch = ''
+    substituteInPlace setup.py --replace '"console_scripts": ["pydruid = pydruid.console:main"],' ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pycurl
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [
+    "pydruid"
+  ];
+
+  passthru = {
+    optional-dependencies = {
+      pandas = [ pandas ];
+      async = [ tornado ];
+      sqlalchemy = [ sqlalchemy ];
+      # druid has a `cli` extra, but it doesn't work with nixpkgs pygments
+    };
+  };
+
+  meta = with lib; {
+    description = "Simple API to create, execute, and analyze Druid queries";
+    homepage = "https://github.com/druid-io/pydruid";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cpcloud ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyfibaro/default.nix b/pkgs/development/python-modules/pyfibaro/default.nix
index 2cb78380c8fee..0f0ff8c684a7c 100644
--- a/pkgs/development/python-modules/pyfibaro/default.nix
+++ b/pkgs/development/python-modules/pyfibaro/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pyfibaro";
-  version = "0.6.9";
+  version = "0.7.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "rappenze";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-vyp+O5Oj1/OYALGb+ioXeFdlDveR8j5M9Z40QTC+sj4=";
+    hash = "sha256-3qE9U3yyIFl245RihcL3Kvm1NHFd42r6dvZ2Gz4sOvY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pylacrosse/default.nix b/pkgs/development/python-modules/pylacrosse/default.nix
index a3349ff2ec962..f247f42e975b2 100644
--- a/pkgs/development/python-modules/pylacrosse/default.nix
+++ b/pkgs/development/python-modules/pylacrosse/default.nix
@@ -5,20 +5,31 @@
 , nose
 , pyserial
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pylacrosse";
   version = "0.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "hthiery";
     repo = "python-lacrosse";
-    rev = version;
-    sha256 = "0g5hqm8lq0gsnvhcydjk54rjf7lpxzph8k7w1nnvnqfbhf31xfcf";
+    rev = "refs/tags/${version}";
+    hash = "sha256-jrkehoPLYbutDfxMBO/vlx4nMylTNs/gtvoBTFHFsDw=";
   };
 
-  propagatedBuildInputs = [ pyserial ];
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "version = version," "version = '${version}',"
+  '';
+
+  propagatedBuildInputs = [
+    pyserial
+  ];
 
   nativeCheckInputs = [
     mock
@@ -26,7 +37,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pylacrosse" ];
+  pythonImportsCheck = [
+    "pylacrosse"
+  ];
 
   meta = with lib; {
     description = "Python library for Jeelink LaCrosse";
diff --git a/pkgs/development/python-modules/pylaunches/default.nix b/pkgs/development/python-modules/pylaunches/default.nix
index 80257ca7ac984..9adf3abfc61e1 100644
--- a/pkgs/development/python-modules/pylaunches/default.nix
+++ b/pkgs/development/python-modules/pylaunches/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pylaunches";
-  version = "1.3.0";
+  version = "1.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "1b41j384lqg3gc7dsmdzp7anrsymqgc1895lc5j8g43x2mfgbjnh";
+    sha256 = "sha256-bIcnYcbfAwjet3cg97y+ujFfY2916ANk4sw0sZoU59g=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymilvus/default.nix b/pkgs/development/python-modules/pymilvus/default.nix
index d6279281cfcf3..ec1095ff69f7f 100644
--- a/pkgs/development/python-modules/pymilvus/default.nix
+++ b/pkgs/development/python-modules/pymilvus/default.nix
@@ -11,20 +11,13 @@
 }:
 buildPythonPackage rec {
   pname = "pymilvus";
-  version = "2.2.4";
+  version = "2.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gj+psVoS6vcM4bNWzpwvKJJETTeCmZe6RwlzDkcvWo8=";
+    hash = "sha256-/i3WObwoY6Ffqw+Guij6+uGbKYKET2AJ+d708efmSx0=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "grpcio-tools>=1.47.0, <=1.48.0" "grpcio-tools>=1.47.0, <=1.52.0" \
-      --replace "grpcio>=1.47.0,<=1.48.0" "grpcio>=1.47.0,<=1.53.0" \
-      --replace "ujson>=2.0.0,<=5.4.0" "ujson>=2.0.0,<=5.7.0"
-    '';
-
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyorthanc/default.nix b/pkgs/development/python-modules/pyorthanc/default.nix
index bbf388c56cade..5a537f7f8b281 100644
--- a/pkgs/development/python-modules/pyorthanc/default.nix
+++ b/pkgs/development/python-modules/pyorthanc/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pyorthanc";
-  version = "1.11.4";
+  version = "1.11.5";
   disabled = pythonOlder "3.8";
 
   format = "pyproject";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "gacou54";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-HbNeI6KpdIoLwRx09qQGJ/iJGKnRj0Z4/mkgoXhofGA=";
+    hash = "sha256-RZJ7BuQRJ+yaHFv9iq4uFvMtH8NvGvmpjmgmyvw9rGk=";
   };
 
   nativeBuildInputs = [ poetry-core ];
@@ -35,6 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python library that wraps the Orthanc REST API";
     homepage = "https://github.com/gacou54/pyorthanc";
+    changelog = "https://github.com/gacou54/pyorthanc/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/pyqt/6.x.nix b/pkgs/development/python-modules/pyqt/6.x.nix
index d98c4c695b6fe..cac7d29150352 100644
--- a/pkgs/development/python-modules/pyqt/6.x.nix
+++ b/pkgs/development/python-modules/pyqt/6.x.nix
@@ -20,18 +20,20 @@
 #, withLocation ? true
 # Not currently part of PyQt6
 #, withConnectivity ? true
+, withPrintSupport ? true
+, cups
 }:
 
 buildPythonPackage rec {
   pname = "PyQt6";
-  version = "6.4.2";
+  version = "6.5.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dAJE9gj+Fe4diWlcQ/MaFMrspBxPAqw2yG37pKXVgT0=";
+    hash = "sha256-uXy0vpssiZeQTqZozzsKSuWCIZb3eSWQ0F7N5iFqn7w=";
   };
 
   patches = [
@@ -102,6 +104,10 @@ buildPythonPackage rec {
     dbus-python
     pyqt6-sip
     setuptools
+  ]
+  # ld: library not found for -lcups
+  ++ lib.optionals (withPrintSupport && stdenv.isDarwin) [
+    cups
   ];
 
   passthru = {
diff --git a/pkgs/development/python-modules/pyqt6-charts.nix b/pkgs/development/python-modules/pyqt6-charts.nix
index 66df9bbf0fbce..6d2a110c8890d 100644
--- a/pkgs/development/python-modules/pyqt6-charts.nix
+++ b/pkgs/development/python-modules/pyqt6-charts.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "PyQt6_Charts";
-  version = "6.4.0";
+  version = "6.5.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-tG6xKEBRagOcNvcLs/hCMzf5j94ma1gs6tQEm3e0P2Q=";
+    sha256 = "sha256-b/APZbJRf5m/EG3dKMdvPKNE+R7PW6aBkeIKLZACSWI=";
   };
 
   # fix include path and increase verbosity
diff --git a/pkgs/development/python-modules/pyqt6-webengine.nix b/pkgs/development/python-modules/pyqt6-webengine.nix
index b53714ca322d6..d3b70a02f77dd 100644
--- a/pkgs/development/python-modules/pyqt6-webengine.nix
+++ b/pkgs/development/python-modules/pyqt6-webengine.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "PyQt6_WebEngine";
-  version = "6.4.0";
+  version = "6.5.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-THHBMIYKvNEeBMr7IuM5g/qaOu6DI8UZCbFaFwGCjiE=";
+    hash = "sha256-i6nbVsTBgaKi+rFnPKNeW2PcaRE/CFAn3cQ8cQttbuk=";
   };
 
   # fix include path and increase verbosity
diff --git a/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix b/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
index ca99e542c66dc..fa14fae70707b 100644
--- a/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-elasticsearch";
-  version = "0.2.0";
+  version = "1.0.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,9 +19,14 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-elasticsearch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EDs1ZBjwZCNrZMiH0Lcp2NyxQhGHygUMNBEU/5zuUYI=";
+    hash = "sha256-NjMfJgM8YaJiQp8rucR099y4ZFG98XnxK1KZlnZb+MI=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace " --cov=sigma --cov-report term --cov-report xml:cov.xml" ""
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/pkgs/development/python-modules/pysigma-backend-opensearch/default.nix b/pkgs/development/python-modules/pysigma-backend-opensearch/default.nix
index f3a7f7d15497b..2252d619d0308 100644
--- a/pkgs/development/python-modules/pysigma-backend-opensearch/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-opensearch/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-opensearch";
-  version = "0.1.5";
+  version = "1.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,9 +20,14 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-opensearch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-j8BiO/7wp1TRSK+C5cPSgF72CuBpb2jLhJXRJLHgh5I=";
+    hash = "sha256-erqKAtTNMQQy/zUkpOd0LoQT2MY2mgz5yGuSQJ0QTjI=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace " --cov=sigma --cov-report term --cov-report xml:cov.xml" ""
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/pkgs/development/python-modules/pysigma/default.nix b/pkgs/development/python-modules/pysigma/default.nix
index 35f450460faf9..da3aaf9e5240c 100644
--- a/pkgs/development/python-modules/pysigma/default.nix
+++ b/pkgs/development/python-modules/pysigma/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma";
-  version = "0.9.4";
+  version = "0.9.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mmKTHPCr/m/tsY/EkpkxXk6nqCcbWCK2Y3tQ5NM4NCg=";
+    hash = "sha256-6qvwxX8AdD92F1+FfYReo0rCif173GoaAVMVPgdZVLo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysml/default.nix b/pkgs/development/python-modules/pysml/default.nix
index cf17860c3fbaf..2719f2aef3a95 100644
--- a/pkgs/development/python-modules/pysml/default.nix
+++ b/pkgs/development/python-modules/pysml/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pysml";
-  version = "0.0.9";
+  version = "0.0.10";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "mtdcr";
     repo = pname;
     rev = version;
-    hash = "sha256-pUbRttH/ksYcE1qZJAQWhuKk4+40w5xsul0TTqq1g3s=";
+    hash = "sha256-vC4iff38WCcdUQITPmxC0XlrA83zCNLTDGgyyXivLEY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix
index ca25ce6d70645..91fdc83896649 100644
--- a/pkgs/development/python-modules/pyspark/default.nix
+++ b/pkgs/development/python-modules/pyspark/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "3.3.2";
+  version = "3.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Df1dtDAMH2zJwW2NvfuC2IG0sXKYTacTRO3hqdSJPag=";
+    hash = "sha256-Fnoj4RhUrbN/hgLeb8w6T5b9Xx4yO5u4MyXzhAjFqv0=";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
diff --git a/pkgs/development/python-modules/pytest-playwright/default.nix b/pkgs/development/python-modules/pytest-playwright/default.nix
index 9e620a6210a45..ee174a121832b 100644
--- a/pkgs/development/python-modules/pytest-playwright/default.nix
+++ b/pkgs/development/python-modules/pytest-playwright/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , buildPythonPackage
 , playwright
+, playwright-driver
 , pytest
 , pytest-base-url
 , pytestCheckHook
@@ -46,7 +47,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   preCheck = ''
-    export PLAYWRIGHT_BROWSERS_PATH=${playwright.browsers}
+    export PLAYWRIGHT_BROWSERS_PATH=${playwright-driver.browsers}
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/python-creole/default.nix b/pkgs/development/python-modules/python-creole/default.nix
new file mode 100644
index 0000000000000..a02a08e2b44b2
--- /dev/null
+++ b/pkgs/development/python-modules/python-creole/default.nix
@@ -0,0 +1,89 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, runtimeShell
+
+# build
+, poetry-core
+
+# propagates
+, docutils
+
+# tests
+, pytestCheckHook
+, readme_renderer
+, textile
+}:
+
+buildPythonPackage rec {
+  pname = "python-creole";
+  version = "1.4.10";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "jedie";
+    repo = "python-creole";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-8pXOnLNjhIv0d+BqjW8wlb6BT6CmFHSsxn5wLOv3LBQ=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "poetry.masonry.api" "poetry.core.masonry.api"
+
+    substituteInPlace Makefile \
+      --replace "/bin/bash" "${runtimeShell}"
+
+    sed -i "/-cov/d" pytest.ini
+  '';
+
+  propagatedBuildInputs = [
+    docutils
+  ];
+
+  pythonImportsCheck = [
+    "creole"
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    readme_renderer
+    textile
+  ];
+
+  preCheck = ''
+    export PATH=$out/bin:$PATH
+  '';
+
+  disabledTests = [
+    # macro didn't expect argument
+    "test_macro_wrong_arguments_quite"
+    "test_macro_wrong_arguments_with_error_report"
+    # rendering mismatches, likely docutils version mismatch
+    "test_headlines1"
+    "test_simple_table"
+  ];
+
+  disabledTestPaths = [
+    # requires poetry
+    "creole/tests/test_Makefile.py"
+    # requires poetry_publish
+    "creole/publish.py"
+    "creole/tests/test_project_setup.py"
+    # rendering differencenes, likely docutils version mismatch
+    "creole/tests/test_cross_compare_rest.py"
+    "creole/tests/test_rest2html.py"
+  ];
+
+  meta = with lib; {
+    description = "Creole markup tools written in Python";
+    homepage = "https://github.com/jedie/python-creole";
+    changelog = "https://github.com/jedie/python-creole/releases/tag/v${version}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix
index 55e11d49d1d15..905f421dbfec6 100644
--- a/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/pkgs/development/python-modules/python-gitlab/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "python-gitlab";
-  version = "3.13.0";
+  version = "3.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rVArcrXRE39K831KaK4g/n1sl3j2fL4q7FZveZUFPH0=";
+    hash = "sha256-7zuJYPru6YgPgrCHLYB+P6uUrOErDSqEGKl4dciBLTw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-homewizard-energy/default.nix b/pkgs/development/python-modules/python-homewizard-energy/default.nix
index b7eaa9f3e6cef..c327257e0a926 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 = "1.8.0";
+  version = "2.0.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "DCSBL";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ab+Fa7Dc2mHGy5C5PfoBfXIb/eugCyGrWjTYlJmTQE0=";
+    hash = "sha256-s3FNRpMZC/MG3s+ZDHgdsIT2AhvBDmGvJfutUPzY4wE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-manilaclient/default.nix b/pkgs/development/python-modules/python-manilaclient/default.nix
index 77baaa332caec..88a11a1219608 100644
--- a/pkgs/development/python-modules/python-manilaclient/default.nix
+++ b/pkgs/development/python-modules/python-manilaclient/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "python-manilaclient";
-  version = "4.3.0";
+  version = "4.4.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ek/RW7ZAZJhkgR6IJRvKGjtUKeHic8l5v1BuNECPiEQ=";
+    hash = "sha256-iKBbR4h9J9OiQMHjUHxUVk+NbCRUYmIPtWxRwVVGQtY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pythonocc-core/default.nix b/pkgs/development/python-modules/pythonocc-core/default.nix
index f1d84712b2705..5fa1b2d9b39d7 100644
--- a/pkgs/development/python-modules/pythonocc-core/default.nix
+++ b/pkgs/development/python-modules/pythonocc-core/default.nix
@@ -48,6 +48,12 @@ stdenv.mkDerivation rec {
     "-DPYTHONOCC_WRAP_SMESH=TRUE"
   ];
 
+  passthru = {
+    # `python3Packages.pythonocc-core` must be updated in tandem with
+    # `opencascade-occt`, and including it in the bulk updates often breaks it.
+    skipBulkUpdate = true;
+  };
+
   meta = with lib; {
     description = "Python wrapper for the OpenCASCADE 3D modeling kernel";
     homepage = "https://github.com/tpaviot/pythonocc-core";
diff --git a/pkgs/development/python-modules/pytoml/default.nix b/pkgs/development/python-modules/pytoml/default.nix
deleted file mode 100644
index afa3e5244a05f..0000000000000
--- a/pkgs/development/python-modules/pytoml/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pytest
-}:
-
-buildPythonPackage rec {
-  pname = "pytoml";
-  version = "0.1.20";
-
-  src = fetchFromGitHub {
-    owner = "avakar";
-    repo = "pytoml";
-    rev = "v${version}";
-    fetchSubmodules = true; # ensure test submodule is available
-    sha256 = "02hjq44zhh6z0fsbm3hvz34sav6fic90sjrw8g1pkdvskzzl46mz";
-  };
-
-  nativeCheckInputs = [ pytest ];
-
-  checkPhase = ''
-    ${python.interpreter} test/test.py
-    pytest test
-  '';
-
-
-  meta = with lib; {
-    description = "A TOML parser/writer for Python";
-    homepage    = "https://github.com/avakar/pytoml";
-    license     = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg ];
-  };
-}
diff --git a/pkgs/development/python-modules/pytomlpp/default.nix b/pkgs/development/python-modules/pytomlpp/default.nix
index c0bcbe35b6293..1081f31479640 100644
--- a/pkgs/development/python-modules/pytomlpp/default.nix
+++ b/pkgs/development/python-modules/pytomlpp/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "pytomlpp";
-  version = "1.0.6";
+  version = "1.0.13";
 
   src = fetchFromGitHub {
     owner = "bobfang1992";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-QyjIJCSgiSKjqMBvCbOlWYx6rBbKIoDvXez2YnYaPUo=";
+    hash = "sha256-QJeXvj1M3Vq5ctmx7RhczONsPRXAecv3WhJgKWtNK+M=";
   };
 
   buildInputs = [ pybind11 ];
diff --git a/pkgs/development/python-modules/pyunifiprotect/default.nix b/pkgs/development/python-modules/pyunifiprotect/default.nix
index fac54d545a13e..180741a8792ec 100644
--- a/pkgs/development/python-modules/pyunifiprotect/default.nix
+++ b/pkgs/development/python-modules/pyunifiprotect/default.nix
@@ -31,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "pyunifiprotect";
-  version = "4.7.0";
+  version = "4.8.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     owner = "briis";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-VvziL9IfPP19whwaLpNp42mZEduGqnPjPJtlSjTNmMo=";
+    hash = "sha256-+fZtzSUTObWkLQ7Nq6pCP+vN1+OUFi3d8AJdr5FGI+k=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index f2f8eab7e7ee5..96c27a9b22182 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.2.46";
+  version = "9.2.47";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aoYOoxhSQgQesdrkEnOZJJFsPhpev1UMeM74/o7NxOw=";
+    hash = "sha256-X6PV54jP5gSo0kYy9QbJYv2fPdbJEB9D0TwQ55wJNLs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/radian/default.nix b/pkgs/development/python-modules/radian/default.nix
index d348c6e0c5612..de60c93f9f8a1 100644
--- a/pkgs/development/python-modules/radian/default.nix
+++ b/pkgs/development/python-modules/radian/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "radian";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchFromGitHub {
     owner = "randy3k";
     repo = pname;
     rev = "v${version}";
-    sha256 = "QEHVdyVgsZxvs+d+xeeJqwx531+6e0uPi1J3t+hJ0d0=";
+    sha256 = "iuD4EkGZ1GwNxR8Gpg9ANe3lMHJYZ/Q/RyuN6vZZWME=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/rapidfuzz/default.nix b/pkgs/development/python-modules/rapidfuzz/default.nix
index dc12f9cffe821..aaf6e77c0305f 100644
--- a/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "2.15.0";
+  version = "3.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "maxbachmann";
     repo = "RapidFuzz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GUwWyOgC8C4GhTcZvd9ccJEsRTkaS0i6rRYU286E7GI=";
+    hash = "sha256-rpUrMHIBr7sb0Cib6WYdLJ3KOPEgRnB0DCV/df1uE1A=";
   };
 
   nativeBuildInputs = [
@@ -75,8 +75,8 @@ buildPythonPackage rec {
   ];
 
   pythonImportsCheck = [
+    "rapidfuzz.distance"
     "rapidfuzz.fuzz"
-    "rapidfuzz.string_metric"
     "rapidfuzz.process"
     "rapidfuzz.utils"
   ];
diff --git a/pkgs/development/python-modules/rdkit/default.nix b/pkgs/development/python-modules/rdkit/default.nix
index 4e8236365ef3b..b1ea88bad021e 100644
--- a/pkgs/development/python-modules/rdkit/default.nix
+++ b/pkgs/development/python-modules/rdkit/default.nix
@@ -40,7 +40,7 @@ let
 in
 buildPythonPackage rec {
   pname = "rdkit";
-  version = "2022.09.1";
+  version = "2022.09.5";
   format = "other";
 
   src =
@@ -51,7 +51,7 @@ buildPythonPackage rec {
       owner = pname;
       repo = pname;
       rev = "Release_${versionTag}";
-      hash = "sha256-AaawjCv3/ShByOKU0c37/hjuyfD7NhFC8UngDoG7C0s=";
+      hash = "sha256-zsiH4gNCAeXDLjHhDsKwZMkTvVCWG9LwAaEKNOuqV2Q=";
     };
 
   unpackPhase = ''
@@ -59,7 +59,9 @@ buildPythonPackage rec {
     find . -type d -exec chmod +w {} +
 
     mkdir External/AvalonTools/avalon
-    ln -s ${external.avalon}/* External/AvalonTools/avalon
+    # In buildPhase, CMake patches the file in this directory
+    # see https://github.com/rdkit/rdkit/pull/5928
+    cp -r ${external.avalon}/* External/AvalonTools/avalon
 
     mkdir External/YAeHMOP/yaehmop
     ln -s ${external.yaehmop}/* External/YAeHMOP/yaehmop
diff --git a/pkgs/development/python-modules/renault-api/default.nix b/pkgs/development/python-modules/renault-api/default.nix
index 1a9c2b509fbb6..71abe133044af 100644
--- a/pkgs/development/python-modules/renault-api/default.nix
+++ b/pkgs/development/python-modules/renault-api/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "renault-api";
-  version = "0.1.12";
+  version = "0.1.13";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "hacf-fr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-uSyqAs0JqrsFuMpfuILoIGxLL+HVOGI/euCZziCgEdQ=";
+    hash = "sha256-BpPow6fZGAk0kzcEo5tOleyVMNUOl7RE2I5y76ntNRM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/reolink-aio/default.nix b/pkgs/development/python-modules/reolink-aio/default.nix
index 28a19d85602b2..424ec8aaed511 100644
--- a/pkgs/development/python-modules/reolink-aio/default.nix
+++ b/pkgs/development/python-modules/reolink-aio/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "reolink-aio";
-  version = "0.5.12";
+  version = "0.5.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "starkillerOG";
     repo = "reolink_aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-HMuMoJFiI/zmFGuhoj9jtE073MvIZRA8bvUNIYlBvOY=";
+    hash = "sha256-jIdKNOYj+ahqfMqTPYwf5fCwHVRn+CLecqlQCXslVG4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/scmrepo/default.nix b/pkgs/development/python-modules/scmrepo/default.nix
index 57c709f3b04c0..e57a9dbfa12d3 100644
--- a/pkgs/development/python-modules/scmrepo/default.nix
+++ b/pkgs/development/python-modules/scmrepo/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "scmrepo";
-  version = "0.1.17";
+  version = "1.0.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-hY46bowYJFmGfEmynTtGgXXkF9D5AcqApO7I/BIl/Lw=";
+    hash = "sha256-MREY8i6FIeRyjcCKvS8gthsVql81x4Ab7gA7yFgwNoQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index 34b0524a3a3f4..557a77b1f3cd8 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -40,7 +40,7 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.18.0";
+  version = "1.20.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-4HOJ6ouUU6RqtxYOsnoojT4aQ/h8YzcLHTO8lFZecZw=";
+    hash = "sha256-fAlEh3S95Dyw1xHK2XaqbA6xUsASXbhzELGZTH/G+kg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/snakeviz/default.nix b/pkgs/development/python-modules/snakeviz/default.nix
index 95253b7c1593d..05b019c1cd2f5 100644
--- a/pkgs/development/python-modules/snakeviz/default.nix
+++ b/pkgs/development/python-modules/snakeviz/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "snakeviz";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d96c006304f095cb4b3fb7ed98bb866ca35a7ca4ab9020bbc27d295ee4c94d9";
+    sha256 = "sha256-K4qRmrtefpKv41EnhguMJ2sqeXvv/OLayGFPmM/4byE=";
   };
 
   # Upstream doesn't run tests from setup.py
diff --git a/pkgs/development/python-modules/snitun/default.nix b/pkgs/development/python-modules/snitun/default.nix
index 6c51cb5de092a..23a75fa32507d 100644
--- a/pkgs/development/python-modules/snitun/default.nix
+++ b/pkgs/development/python-modules/snitun/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     "test_snitun_single_runner_throttling"
     # ConnectionResetError: [Errno 54] Connection reset by peer
     "test_peer_listener_timeout"
-  ] ++ lib.optional (pythonAtLeast "3.11") [
+  ] ++ lib.optionals (pythonAtLeast "3.11") [
     # TypeError: Passing coroutines is forbidden, use tasks explicitly.
     "test_snitun_runner_updown"
   ];
diff --git a/pkgs/development/python-modules/social-auth-app-django/default.nix b/pkgs/development/python-modules/social-auth-app-django/default.nix
index e4400ec2d9c69..2c90e86d8fae5 100644
--- a/pkgs/development/python-modules/social-auth-app-django/default.nix
+++ b/pkgs/development/python-modules/social-auth-app-django/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "social-auth-app-django";
-  version = "5.1.0";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "python-social-auth";
     repo = "social-app-django";
     rev = "refs/tags/${version}";
-    hash = "sha256-QZZSwPyQKtcKe1Dij4MjRnKGudg6A6cmS4FGb2F1goY=";
+    hash = "sha256-GLOZfiSXkUnTK8Mxg+5jbxkE6Mo0kW5vMZsPe9G/dpU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spacy/annotation-test/annotate.py b/pkgs/development/python-modules/spacy/annotation-test/annotate.py
index 515b8f57b7ef7..5acc3ddc60fdb 100644
--- a/pkgs/development/python-modules/spacy/annotation-test/annotate.py
+++ b/pkgs/development/python-modules/spacy/annotation-test/annotate.py
@@ -29,7 +29,8 @@ def test_entities(doc_en_core_web_sm):
         ('Google', 'ORG'),
         ('2007', 'DATE'),
         ('American', 'NORP'),
-        ('Thrun', 'GPE'),
+        ('Thrun', 'PERSON'),
+        ('Recode', 'ORG'),
         ('earlier this week', 'DATE'),
     ]
 
@@ -64,6 +65,5 @@ def test_verbs(doc_en_core_web_sm):
         'tell',
         'shake',
         'turn',
-        'be',
         'talk',
         'say']
diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix
index 9cf03ce4f2ddd..f6ecf1d7ebe7f 100644
--- a/pkgs/development/python-modules/spacy/default.nix
+++ b/pkgs/development/python-modules/spacy/default.nix
@@ -36,14 +36,14 @@
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "3.5.1";
+  version = "3.5.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gRrhRoxYuX/JqjEYfWtVMXeEJY8KR+v2nYHKtjnj+hU=";
+    hash = "sha256-IsH/qrKFt0dwA9S1sDhBTMMkaKaQ1HkBW5ppjFMcgTs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sphinx-copybutton/default.nix b/pkgs/development/python-modules/sphinx-copybutton/default.nix
index f269e2d965e3c..040bed82cdec4 100644
--- a/pkgs/development/python-modules/sphinx-copybutton/default.nix
+++ b/pkgs/development/python-modules/sphinx-copybutton/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "sphinx-copybutton";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "executablebooks";
     repo = "sphinx-copybutton";
     rev = "v${version}";
-    hash = "sha256-ptQNeklF9f0XeDbBq64ZFV15O8b4lQQLHRfblOQ3nRQ=";
+    hash = "sha256-LM2LtQuYsPRJ2XX9aAW36xRtwghTkzug6A6fpVJ6hbk=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/python-modules/sphinx-design/default.nix b/pkgs/development/python-modules/sphinx-design/default.nix
index dc0dc30761772..002b71b474b66 100644
--- a/pkgs/development/python-modules/sphinx-design/default.nix
+++ b/pkgs/development/python-modules/sphinx-design/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "sphinx-design";
-  version = "0.3.0";
+  version = "0.4.1";
 
   format = "flit";
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "sphinx_design";
-    hash = "sha256-cYP6H65Vs37wG9pRJaIe6EH1u8v1mjU4K+WYGAxM77o=";
+    hash = "sha256-W2QYukotw9g1kuoP9hpSqJH+chlaTDoYsvocdmjORwg=";
   };
 
   nativeBuildInputs = [ flit-core ];
diff --git a/pkgs/development/python-modules/sqlalchemy-views/default.nix b/pkgs/development/python-modules/sqlalchemy-views/default.nix
new file mode 100644
index 0000000000000..beafdbc2b5383
--- /dev/null
+++ b/pkgs/development/python-modules/sqlalchemy-views/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, sqlalchemy
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "sqlalchemy-views";
+  version = "0.3.2";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "jklukas";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-MJgikWXo3lpMsSYbb5sOSOTbJPOx5gEghW1V9jKvHKU=";
+  };
+
+  postPatch = ''
+    substituteInPlace tox.ini --replace '--cov=sqlalchemy_views --cov-report=term' ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    sqlalchemy
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "sqlalchemy_views"
+  ];
+
+  meta = with lib; {
+    description = "Adds CreateView and DropView constructs to SQLAlchemy";
+    homepage = "https://github.com/jklukas/sqlalchemy-views";
+    license = licenses.mit;
+    maintainers = with maintainers; [ cpcloud ];
+  };
+}
diff --git a/pkgs/development/python-modules/syncedlyrics/default.nix b/pkgs/development/python-modules/syncedlyrics/default.nix
index 661fd29a288c9..f69ce5fe83e69 100644
--- a/pkgs/development/python-modules/syncedlyrics/default.nix
+++ b/pkgs/development/python-modules/syncedlyrics/default.nix
@@ -5,6 +5,7 @@
 , poetry-core
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , rapidfuzz
 , requests
 }:
@@ -25,6 +26,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "rapidfuzz"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tensorflow-metadata/default.nix b/pkgs/development/python-modules/tensorflow-metadata/default.nix
index d6e2951c1542d..f1e94b5eb93cb 100644
--- a/pkgs/development/python-modules/tensorflow-metadata/default.nix
+++ b/pkgs/development/python-modules/tensorflow-metadata/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-metadata";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "tensorflow";
     repo = "metadata";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pgeQ9qMcz/DsdvF3THMZ4uPToLxtIM0No/kgRlBzU8A=";
+    hash = "sha256-XzOV0gTZo9Flr3HVI5mzK+qgol4rsteerfrgLpw4Ouo=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/tensorflow-probability/default.nix b/pkgs/development/python-modules/tensorflow-probability/default.nix
index 7bf73dff28d58..dcf3ba89bda97 100644
--- a/pkgs/development/python-modules/tensorflow-probability/default.nix
+++ b/pkgs/development/python-modules/tensorflow-probability/default.nix
@@ -54,7 +54,7 @@ let
     LIBTOOL = lib.optionalString stdenv.isDarwin "${cctools}/bin/libtool";
 
     fetchAttrs = {
-      sha256 = "sha256-9i0ExaIeNz7+ddNAoU2ak8JY7lI2aY6eBDiPzJYuJUk=";
+      sha256 = "sha256-kEiwwYAUABcINdSaAyRDSFKtKLPj3axdNvXvkI1k0Uo=";
     };
 
     buildAttrs = {
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index 15d2df441435a..58e94b6a926a3 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -98,7 +98,7 @@ let
 
   tfFeature = x: if x then "1" else "0";
 
-  version = "2.11.0";
+  version = "2.11.1";
   variant = lib.optionalString cudaSupport "-gpu";
   pname = "tensorflow${variant}";
 
@@ -207,7 +207,7 @@ let
       owner = "tensorflow";
       repo = "tensorflow";
       rev = "refs/tags/v${version}";
-      hash = "sha256-OYh61/83yv+ycivylfdS8yFUIUAk8euAPvmfjPzldGs=";
+      hash = "sha256-q59cUW6613byHk4LGl+sefO5czLSWxOrSyLbJ1pkNEY=";
     };
 
     # On update, it can be useful to steal the changes from gentoo
@@ -394,11 +394,11 @@ let
     fetchAttrs = {
       sha256 = {
       x86_64-linux = if cudaSupport
-        then "sha256-/wB9EpaDPg3TrD9qggdA4vPgzvmaKc6dDnLjoYTJC5o="
-        else "sha256-QgOaUaq0V5HG9BOv9nEw8OTSlzINNFvbnyP8Vx+r9Xw=";
-      aarch64-linux = "sha256-zjnRtTG1j9cZTbP0Xnk2o/zWTNsP8T0n4Ai8IiAT3PE=";
-      x86_64-darwin = "sha256-RBLox9rzBKcZMm4NwnT7vQ/EjapWQJkqxuQ0LIdaM1E=";
-      aarch64-darwin = "sha256-tTk2KPFK4+0wA22xzb2C6qODgAbSxVbue0xk9JOjU04=";
+        then "sha256-rcTPOMoBfmKFuuCanMlhmtFtOQzOICfEXTZey/rQEdM="
+        else "sha256-JGLH64F81xwSUl9RCWJhBLNRBQandImsVafEF5s+ap0=";
+      aarch64-linux = "sha256-g6JUZQQalCTSjvAarkI7+gq13cPhFg/O9LPQDGNvrII=";
+      x86_64-darwin = "sha256-phmJ71l0DvJUVx1sHGS3nkDqJ18yOO7I3N1ODnfrrYc=";
+      aarch64-darwin = "sha256-qZvqXi6pvIrZpZdR4BcbOh2C/A4ZHJgXgFINhVJmmcs=";
       }.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
     };
 
@@ -448,27 +448,6 @@ let
       maintainers = with maintainers; [ abbradar ];
       platforms = with platforms; linux ++ darwin;
       broken = !(xlaSupport -> cudaSupport);
-      knownVulnerabilities = [
-        "CVE-2023-27579"
-        "CVE-2023-25801"
-        "CVE-2023-25676"
-        "CVE-2023-25675"
-        "CVE-2023-25674"
-        "CVE-2023-25673"
-        "CVE-2023-25671"
-        "CVE-2023-25670"
-        "CVE-2023-25669"
-        "CVE-2023-25668"
-        "CVE-2023-25667"
-        "CVE-2023-25665"
-        "CVE-2023-25666"
-        "CVE-2023-25664"
-        "CVE-2023-25663"
-        "CVE-2023-25662"
-        "CVE-2023-25660"
-        "CVE-2023-25659"
-        "CVE-2023-25658"
-      ];
     } // lib.optionalAttrs stdenv.isDarwin {
       timeout = 86400; # 24 hours
       maxSilent = 14400; # 4h, double the default of 7200s
diff --git a/pkgs/development/python-modules/tplink-omada-client/default.nix b/pkgs/development/python-modules/tplink-omada-client/default.nix
index a0188f907a60b..33fa741bd0257 100644
--- a/pkgs/development/python-modules/tplink-omada-client/default.nix
+++ b/pkgs/development/python-modules/tplink-omada-client/default.nix
@@ -1,5 +1,6 @@
 { lib
 , aiohttp
+, awesomeversion
 , buildPythonPackage
 , fetchPypi
 , hatchling
@@ -9,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tplink-omada-client";
-  version = "1.1.5";
+  version = "1.2.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -17,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "tplink_omada_client";
     inherit version;
-    hash = "sha256-fx954JstCdvJQY1xgoqcfJpB8fZSS4kST/f3yiJZ7lA=";
+    hash = "sha256-4kvFlk+4GWFRFVIAirg0wKk5se8g+kvmxQ54RiluuoU=";
   };
 
   nativeBuildInputs = [
@@ -26,6 +27,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiohttp
+    awesomeversion
   ];
 
   # Module have no tests
diff --git a/pkgs/development/python-modules/traittypes/default.nix b/pkgs/development/python-modules/traittypes/default.nix
index f129aad9158bc..152b9e640040a 100644
--- a/pkgs/development/python-modules/traittypes/default.nix
+++ b/pkgs/development/python-modules/traittypes/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ numpy pandas xarray nose pytestCheckHook ];
 
-  disabledTestPaths = lib.optional (lib.versionAtLeast numpy.version "1.17") [
+  disabledTestPaths = lib.optionals (lib.versionAtLeast numpy.version "1.17") [
     # https://github.com/jupyter-widgets/traittypes/blob/master/setup.py#L86-L87
     "traittypes/tests/test_traittypes.py"
   ];
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index 1c5d12eb2ab2c..0469c16a9fbde 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.27.4";
+  version = "4.28.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-2me7R61f5DtiVdFpen70xPLCTC4zcQhQbvdH5noDoug=";
+    hash = "sha256-FmiuWfoFZjZf1/GbE6PmSkeshWWh+6nDj2u2PMSeDk0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/trino-python-client/default.nix b/pkgs/development/python-modules/trino-python-client/default.nix
new file mode 100644
index 0000000000000..479832bf95644
--- /dev/null
+++ b/pkgs/development/python-modules/trino-python-client/default.nix
@@ -0,0 +1,81 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+  # build
+, setuptools
+  # required
+, pytz
+, requests
+, tzlocal
+  # optional
+, requests-kerberos
+, sqlalchemy
+, keyring
+  # tests
+, pytestCheckHook
+, httpretty
+}:
+
+buildPythonPackage rec {
+  pname = "trino-python-client";
+  version = "0.322.0";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "trinodb";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Hl88Keavyp1QBw67AFbevy/btzNs7UlsKQ93K02YgLM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pytz
+    requests
+    tzlocal
+  ];
+
+  passthru.optional-dependencies = lib.fix (self: {
+    kerberos = [
+      requests-kerberos
+    ];
+    sqlalchemy = [
+      sqlalchemy
+    ];
+    external-authentication-token-cache = [
+      keyring
+    ];
+    all = self.kerberos ++ self.sqlalchemy;
+  });
+
+  nativeCheckInputs = [
+    httpretty
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.all;
+
+  pythonImportsCheck = [
+    "trino"
+  ];
+
+  disabledTestPaths = [
+    # these all require a running trino instance
+    "tests/integration/test_types_integration.py"
+    "tests/integration/test_dbapi_integration.py"
+    "tests/integration/test_sqlalchemy_integration.py"
+  ];
+
+  pytestFlagsArray = [
+    "-k 'not auth'"
+  ];
+
+  meta = with lib; {
+    changelog = "https://github.com/trinodb/trino-python-client/blob/${version}/CHANGES.md";
+    description = "Client for the Trino distributed SQL Engine";
+    homepage = "https://github.com/trinodb/trino-python-client";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cpcloud ];
+  };
+}
diff --git a/pkgs/development/python-modules/trove-classifiers/default.nix b/pkgs/development/python-modules/trove-classifiers/default.nix
index c8a33e9a545fa..c1d99d219360e 100644
--- a/pkgs/development/python-modules/trove-classifiers/default.nix
+++ b/pkgs/development/python-modules/trove-classifiers/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "trove-classifiers";
-  version = "2023.3.9";
+  version = "2023.4.18";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7kLy+MHUvP4190bkcvB2M1cNSF+rRUB+/8A3knCjuwM=";
+    hash = "sha256-n4kqg8y9+eZphhqUfGsD1bkah/RJrv7x12/EFp943bo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index fdb29c7f81230..bc7f94d5b3a7e 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 = "6.6.5";
+  version = "6.6.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BZZhaXHk0QEgtN7B15bGepJi7Dk4LgMpmQmsjU5E1Vw=";
+    hash = "sha256-pnFsIv7Rl6NHUV0ETqaN7UYQuRlV3G68F5p4gzHzihQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ttp-templates/default.nix b/pkgs/development/python-modules/ttp-templates/default.nix
index afe58c8805468..364041704d55a 100644
--- a/pkgs/development/python-modules/ttp-templates/default.nix
+++ b/pkgs/development/python-modules/ttp-templates/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "ttp-templates";
-  version = "0.3.2";
+  version = "0.3.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "dmulyalin";
     repo = "ttp_templates";
     rev = "refs/tags/${version}";
-    hash = "sha256-Bm9//hahM1sP/XDUDR7JcGWz0qF8ovkWZU5x/qj0UZg=";
+    hash = "sha256-NlTTydGdjn+hwAKYEyINg/9k/EdnLq2gU9cnujpZQLM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/twisted/default.nix b/pkgs/development/python-modules/twisted/default.nix
index 758b3f4eea0b8..bcd2f6d5e06bb 100644
--- a/pkgs/development/python-modules/twisted/default.nix
+++ b/pkgs/development/python-modules/twisted/default.nix
@@ -142,7 +142,7 @@ buildPythonPackage rec {
   # Generate Twisted's plug-in cache. Twisted users must do it as well. See
   # http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
   # and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477103 for details.
-  postFixup = ''
+  postFixup = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
     $out/bin/twistd --help > /dev/null
   '';
 
diff --git a/pkgs/development/python-modules/unearth/default.nix b/pkgs/development/python-modules/unearth/default.nix
index 79b205c4b92c3..db9136d5bf4dc 100644
--- a/pkgs/development/python-modules/unearth/default.nix
+++ b/pkgs/development/python-modules/unearth/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "unearth";
-  version = "0.7.2";
+  version = "0.9.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4jQbp7meQxlVoQzT2gwVqw1CpfnLPx4/Rg30K8M5bc8=";
+    hash = "sha256-TOdHdw9sVxaYx2VCdt3QIEyBx9mkcPAKjEAdh7umdSQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/unittest-xml-reporting/default.nix b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
index fb4a3b543ce02..8497d17a5f375 100644
--- a/pkgs/development/python-modules/unittest-xml-reporting/default.nix
+++ b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , buildPythonPackage
 , lxml
+, pythonAtLeast
 , pythonOlder
 , pytestCheckHook
 }:
@@ -26,6 +27,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = lib.optionals (pythonAtLeast "3.11") [
+    # AttributeError: 'tuple' object has no attribute 'shortDescription'
+    "--deselect=tests/testsuite.py::XMLTestRunnerTestCase::test_basic_unittest_constructs"
+    "--deselect=tests/testsuite.py::XMLTestRunnerTestCase::test_unexpected_success"
+  ];
+
   pythonImportsCheck = [ "xmlrunner" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/w1thermsensor/default.nix b/pkgs/development/python-modules/w1thermsensor/default.nix
new file mode 100644
index 0000000000000..550ae76a03eb4
--- /dev/null
+++ b/pkgs/development/python-modules/w1thermsensor/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pkgs
+, setuptools
+, aiofiles
+, click
+, coverage
+, tomli
+, pytest
+, pytest-mock
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+buildPythonPackage rec {
+  pname = "w1thermsensor";
+  version = "2.0.0";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-EcaEr4B8icbwZu2Ty3z8AAgglf74iZ5BLpLnSOZC2cE=";
+  };
+
+  postPatch = ''
+    sed -i 's/3\.5\.\*/3.5/' setup.py
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    aiofiles
+    click
+  ];
+
+  # Don't try to load the kernel module in tests.
+  env.W1THERMSENSOR_NO_KERNEL_MODULE = 1;
+
+  nativeCheckInputs = [
+    pytest-mock
+    pytest-asyncio
+    pytestCheckHook
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    tomli
+  ];
+
+  # Tests for 2.0.0 currently fail on python3.11
+  # https://github.com/timofurrer/w1thermsensor/issues/116
+  doCheck = pythonOlder "3.11";
+
+  pythonImportsCheck = [
+    "w1thermsensor"
+  ];
+
+  meta = with lib; {
+    description = "Python interface to 1-Wire temperature sensors";
+    longDescription = ''
+      A Python package and CLI tool to work with w1 temperature sensors like
+      DS1822, DS18S20 & DS18B20 on the Raspberry Pi, Beagle Bone and other
+      devices.
+    '';
+    homepage = "https://github.com/timofurrer/w1thermsensor";
+    license = licenses.mit;
+    maintainers = with maintainers; [ quentin ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/python-modules/widgetsnbextension/default.nix b/pkgs/development/python-modules/widgetsnbextension/default.nix
index 65d5eebfeaa4c..a27ebf2ec5895 100644
--- a/pkgs/development/python-modules/widgetsnbextension/default.nix
+++ b/pkgs/development/python-modules/widgetsnbextension/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "widgetsnbextension";
-  version = "4.0.5";
+  version = "4.0.7";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AD9xbZMNOFvj/Z3kLdm/AI4wBT9zvd3iNdFPvq7/Ga8=";
+    hash = "sha256-6mfBenzUrjWPj0bDswTEBpi8BCNzLj8nMyHuFBIyyL4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/yalexs/default.nix b/pkgs/development/python-modules/yalexs/default.nix
index add1fbd40434b..e319e2d93fb76 100644
--- a/pkgs/development/python-modules/yalexs/default.nix
+++ b/pkgs/development/python-modules/yalexs/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "yalexs";
-  version = "1.2.8";
+  version = "1.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-SdWfhA6mroZnqHQYPieuZvox+OGEHWOTlfuHqu5r0cg=";
+    hash = "sha256-5UmuQsA5pPzgP+uCkykWQBCPY437cxblGCiZxEYQzGg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yara-python/default.nix b/pkgs/development/python-modules/yara-python/default.nix
index c86bc6b2af67d..403ee6df52bd9 100644
--- a/pkgs/development/python-modules/yara-python/default.nix
+++ b/pkgs/development/python-modules/yara-python/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "yara-python";
-  version = "4.3.0";
+  version = "4.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "VirusTotal";
     repo = "yara-python";
     rev = "v${version}";
-    hash = "sha256-r1qsD5PquOVDEVmrgU2QP5bZpsuZuKlfaaHUjY4AHy4=";
+    hash = "sha256-WjH27pOOBXmbj8ghr42TLTp8eAKiTq4eRTYnim56J/8=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/youtube-transcript-api/default.nix b/pkgs/development/python-modules/youtube-transcript-api/default.nix
index 888389f59d577..f2269001b848d 100644
--- a/pkgs/development/python-modules/youtube-transcript-api/default.nix
+++ b/pkgs/development/python-modules/youtube-transcript-api/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "youtube-transcript-api";
-  version = "0.5.0";
+  version = "0.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "jdepoix";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-oTKvJt6tyv/ESJ5+Io8M8/KnuW4hN2P7w14sldsKwzw=";
+    hash = "sha256-TJlyWO1knP07gHVgbz1K0pBtvkTYrNJWZsassllko+I=";
   };
 
   propagatedBuildInputs = [