about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules')
-rw-r--r--nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/aesara/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohttp/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/aionotify/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/angr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/anthropic/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/anytree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/argcomplete/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/argilla/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asciimatics/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncssh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/auth0-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awkward-cpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bambi/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/bellows/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bincopy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/camel-converter/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cle/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudpathlib/default.nix82
-rw-r--r--nixpkgs/pkgs/development/python-modules/complycube/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/compressai/default.nix89
-rw-r--r--nixpkgs/pkgs/development/python-modules/coredis/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cwcwidth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/digitalocean/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-allauth-2fa/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-pwa/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvc-data/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvc/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvclive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/edk2-pytool-library/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/enhancements/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/fakeredis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flake8/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-restx/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/floret/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/fsspec/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/goodwe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/griffe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hahomematic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/heatzypy/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/identify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/cli.nix64
-rw-r--r--nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/decode.py19
-rw-r--r--nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/encode.py21
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix93
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaxlib/default.nix6
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/jaxlib/prefetch.sh15
-rw-r--r--nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyutils/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/krfzf-py/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/model-bakery/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nats-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/neo4j/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nextdns/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/nuitka/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/oci/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openrazer/common.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/picosvg/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3status/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydantic-scim/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydata-sphinx-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydbus/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyeconet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyflakes/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygls/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyjnius/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymelcloud/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyocd/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyocr/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyocr/paths.patch74
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt/pyqt6-sip.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscf/default.nix86
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysequoia/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytapo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytesseract/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-on-whales/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch-lightning/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch-msssim/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyversasense/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywebview/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/reptor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3fs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scooby/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy-transformers/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/lookups-data.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/models.json304
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-thebe/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqids/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlobject/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sshfs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/syncer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/absl_py_argparse_flags.patch11
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/absl_to_std.patch389
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/com_google_absl_add_log.patch166
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/default.nix104
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/protobuf_python.patch19
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/pybind11_protobuf_newer_version.patch16
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/pybind11_protobuf_python_runtime_dep.patch30
-rw-r--r--nixpkgs/pkgs/development/python-modules/textacy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/textnets/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/tlds/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchinfo/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/traits/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-awscrt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-beautifulsoup4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/velbus-aio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/weasel/default.nix83
-rw-r--r--nixpkgs/pkgs/development/python-modules/xknxproject/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yark/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-cc/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix4
143 files changed, 2276 insertions, 769 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix b/nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix
index 9a81321898cc..7cb150264cf7 100644
--- a/nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix
@@ -4,24 +4,22 @@
 , asgiref
 , httpx
 , pdm-backend
-, pdm-pep517
 , pytest-asyncio
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "a2wsgi";
-  version = "1.7.0";
+  version = "1.8.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qQb2LAJQ6wIBEguTQX3QsSsQW12zWvQxv+hu8NxburI=";
+    hash = "sha256-sgQ2uS8z25/xQ2vmS4boLhhwluu10aUt4nlKcNuYFRA=";
   };
 
   nativeBuildInputs = [
     pdm-backend
-    pdm-pep517
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aesara/default.nix b/nixpkgs/pkgs/development/python-modules/aesara/default.nix
index 0362b5b3d4c2..589799c1b848 100644
--- a/nixpkgs/pkgs/development/python-modules/aesara/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aesara/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "aesara";
-  version = "2.9.2";
+  version = "2.9.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "aesara-devs";
     repo = "aesara";
     rev = "refs/tags/rel-${version}";
-    hash = "sha256-6SZHr81OiqzKh977RrJtrDvFlAIjguK+1imP3bjxhS8=";
+    hash = "sha256-aO0+O7Ts9phsV4ghunNolxfAruGBbC+tHjVkmFedcCI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ailment/default.nix b/nixpkgs/pkgs/development/python-modules/ailment/default.nix
index dcfdece2ef60..a62031c079d9 100644
--- a/nixpkgs/pkgs/development/python-modules/ailment/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ailment/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.2.73";
+  version = "9.2.74";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-wMHyp6l7a5MuVX/q1QVfwZbuqBT6NbFltZsGopCjj3I=";
+    hash = "sha256-lZJLYIZ44FXGavDCrO90DYSl4yaNDpAYeIIihk5Bk14=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
index 2a52a28d007d..de5d1184b2b7 100644
--- a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -1,21 +1,29 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonOlder
+
+# build-system
+, cython_3
+, setuptools
+
+# dependencies
 , async-timeout
 , chacha20poly1305-reuseable
-, mock
 , noiseprotocol
 , protobuf
+, zeroconf
+
+# tests
+, mock
 , pytest-asyncio
 , pytestCheckHook
-, pythonOlder
-, zeroconf
 }:
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "18.1.0";
-  format = "setuptools";
+  version = "18.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -23,31 +31,36 @@ buildPythonPackage rec {
     owner = "esphome";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-aKE2/xVkO2uYg9BuDT9/ZxcKB9rARCipPn7B/eeth9M=";
+    hash = "sha256-uOF9VSASzGA4pVW3puQtGrr2dy7sRESa1a6DPUsMmL4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+    cython_3
+  ];
+
   propagatedBuildInputs = [
-    async-timeout
     chacha20poly1305-reuseable
     noiseprotocol
     protobuf
     zeroconf
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    async-timeout
   ];
 
+  pythonImportsCheck = [
+    "aioesphomeapi"
+  ];
   nativeCheckInputs = [
     mock
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aioesphomeapi"
-  ];
-
   meta = with lib; {
+    changelog = "https://github.com/esphome/aioesphomeapi/releases/tag/v${version}";
     description = "Python Client for ESPHome native API";
     homepage = "https://github.com/esphome/aioesphomeapi";
-    changelog = "https://github.com/esphome/aioesphomeapi/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab hexa ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix b/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
index b988abe60108..f01b17639e8b 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
@@ -18,9 +18,7 @@
 , aiodns
 , brotli
 , faust-cchardet
-, asynctest
 , typing-extensions
-, idna-ssl
 # tests_require
 , async-generator
 , freezegun
@@ -75,11 +73,6 @@ buildPythonPackage rec {
     aiodns
     brotli
     faust-cchardet
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    asynctest
-    typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    idna-ssl
   ];
 
   # NOTE: pytest-xdist cannot be added because it is flaky. See https://github.com/NixOS/nixpkgs/issues/230597 for more info.
diff --git a/nixpkgs/pkgs/development/python-modules/aionotify/default.nix b/nixpkgs/pkgs/development/python-modules/aionotify/default.nix
deleted file mode 100644
index 0483793c7bb0..000000000000
--- a/nixpkgs/pkgs/development/python-modules/aionotify/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, asynctest
-, pythonOlder
-}:
-
-buildPythonPackage rec {
-  pname = "aionotify";
-  version = "0.2.0";
-
-  src = fetchFromGitHub {
-    owner = "rbarrois";
-    repo = "aionotify";
-    rev = "v${version}";
-    sha256 = "1sk9i8czxgsbrswsf1nlb4c82vgnlzi8zrvrxdip92w2z8hqh43y";
-  };
-
-  disabled = pythonOlder "3.5";
-
-  preCheck = ''
-    substituteInPlace tests/test_usage.py \
-      --replace "asyncio.wait_for(task, timeout, loop=self.loop)" "asyncio.wait_for(task, timeout)"
-  '';
-
-  nativeCheckInputs = [
-    asynctest
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/rbarrois/aionotify";
-    description = "Simple, asyncio-based inotify library for Python";
-    license = with lib.licenses; [ bsd2 ];
-    platforms = platforms.linux;
-    maintainers = with lib.maintainers; [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/angr/default.nix b/nixpkgs/pkgs/development/python-modules/angr/default.nix
index 9767a0475a82..a4bd117d8e67 100644
--- a/nixpkgs/pkgs/development/python-modules/angr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/angr/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.2.73";
+  version = "9.2.74";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "angr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WwgcKZWKM6x36AuynVHaDJgDt4B2b3K1ZaX9efxiDKc=";
+    hash = "sha256-8t7S+VR9AqYpaAP772Wn1foVy/XN9MiEUZb5+u47G+k=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/anthropic/default.nix b/nixpkgs/pkgs/development/python-modules/anthropic/default.nix
index ef0ffe778e46..8086ecec1139 100644
--- a/nixpkgs/pkgs/development/python-modules/anthropic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anthropic/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, poetry-core
+, hatchling
 , anyio
 , distro
 , httpx
@@ -16,8 +16,8 @@
 
 buildPythonPackage rec {
   pname = "anthropic";
-  version = "0.3.13";
-  format = "pyproject";
+  version = "0.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -25,11 +25,11 @@ buildPythonPackage rec {
     owner = "anthropics";
     repo = "anthropic-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2sw/tzbKd0d4sSHM+PYTE/XeqkycFFLfG1c/lyrU4Jc=";
+    hash = "sha256-+EiFp55tPsILl6uuTh9qmeQDMKlUzegn3xUo6BupN2E=";
   };
 
   nativeBuildInputs = [
-    poetry-core
+    hatchling
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/anytree/default.nix b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
index a83d8748d477..2565a3475104 100644
--- a/nixpkgs/pkgs/development/python-modules/anytree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "anytree";
-  version = "2.9.0";
+  version = "2.10.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "c0fec0de";
     repo = "anytree";
     rev = "refs/tags/${version}";
-    hash = "sha256-e7mmOOvrZuMCcyUg74YLLXGzkb5nCtuYmhNzAbY65gg=";
+    hash = "sha256-9rxrHZBlQarfpYQvo6bJPGF+cdSROlwq+8TjXI18HDs=";
   };
 
   patches = lib.optionals withGraphviz [
diff --git a/nixpkgs/pkgs/development/python-modules/archinfo/default.nix b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
index 928a386e59cd..1e059d7c82bc 100644
--- a/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.2.73";
+  version = "9.2.74";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-D6ZMZzuWoCSKSAEnVqU5iM4ttpeBNojofMW/vsV8gVw=";
+    hash = "sha256-n/51N1D5UI2FTKv7GBN/iPYE/+/o/2JnFTRee+1FVWg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix b/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix
index cc0ae612ce55..5eec27d6782f 100644
--- a/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "argcomplete";
-  version = "3.1.1";
+  version = "3.1.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "kislyuk";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-N1Us/dpF/y638qIuwTzBiuv4vXfBMtWxmQnMBxNTUuc=";
+    hash = "sha256-vKXHmCcZZTjVBwQZWtyRjJT4tTuIiK5Qos9yJT/mpag=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/argilla/default.nix b/nixpkgs/pkgs/development/python-modules/argilla/default.nix
index 8179d054a97f..6f6ba426687e 100644
--- a/nixpkgs/pkgs/development/python-modules/argilla/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/argilla/default.nix
@@ -65,7 +65,7 @@
 }:
 let
   pname = "argilla";
-  version = "1.17.0";
+  version = "1.18.0";
   optional-dependencies = {
     server = [
       fastapi
@@ -126,7 +126,7 @@ buildPythonPackage {
     owner = "argilla-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ggw6ABPn3d+aOj+0ETKYWWTha/2Recdnp/LGBXG1HY4=";
+    hash = "sha256-2VWzmNMdd4WXSBrMSmclpjSZ9jDKNG7GbndUh8zLmgQ=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/asciimatics/default.nix b/nixpkgs/pkgs/development/python-modules/asciimatics/default.nix
index 5d138ae85667..c990c9477bbf 100644
--- a/nixpkgs/pkgs/development/python-modules/asciimatics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asciimatics/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "asciimatics";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FtIM5CIQtDTrBbpGns24KTrH7TwM4N1PcOMNctdgIic=";
+    hash = "sha256-z905gEJydRnYtz5iuO+CwL7P7U60IImcO5bJjQuWgho=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix b/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
index bdc436c8fdc4..663c71b926ea 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "asyncssh";
-  version = "2.13.2";
+  version = "2.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mR5THEu32+xit1SHjZajJGM4qsEaKM48PpkBj7L1gow=";
+    hash = "sha256-4D7y0TH7tDcbQBhxhFLOjHNaSO3+ATnSq9zkwYekWcM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
index b40a680fb381..165665b5a1b3 100644
--- a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "auth0-python";
-  version = "4.4.2";
+  version = "4.5.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "auth0";
     repo = "auth0-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-RBkAuZQx7mBxVCpo5PoBiEge8+yTmp0XpcnxCkOsM6U=";
+    hash = "sha256-kWlfckSjBxgzLd1ND4M0btt/+zfSHj5h4V/uDLmnHaA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/awkward-cpp/default.nix b/nixpkgs/pkgs/development/python-modules/awkward-cpp/default.nix
index b55977ffdb61..00e01ba80bf1 100644
--- a/nixpkgs/pkgs/development/python-modules/awkward-cpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awkward-cpp/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "awkward-cpp";
-  version = "24";
+  version = "25";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KJE/zw9+5NaZNXQsED+kIu1R+Ng7ZOywy+mebmY/SwY=";
+    hash = "sha256-Fhq6XUt5CYz/l+Lf9WcCnt9rs3byMQIQs7hFexr2tjM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
index 85220841e041..3b6c5fd88b7b 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
@@ -1,31 +1,28 @@
 { lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
 , azure-common
-, azure-mgmt-nspkg
 , azure-mgmt-core
-, isPy3k
+, buildPythonPackage
+, fetchPypi
+, isodate
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cdn";
-  version = "12.0.0";
+  version = "13.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    extension = "zip";
-    hash = "sha256-t8PuIYkjS0r1Gs4pJJJ8X9cz8950imQtbVBABnyMnd0=";
+    hash = "sha256-yJ8jTeT4Gu23YSHl5GZ0+zdlC3s+GIxS4ir8z/HBkA4=";
   };
 
   propagatedBuildInputs = [
-    msrest
-    msrestazure
+    isodate
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
   ];
 
   # has no tests
@@ -34,6 +31,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "This is the Microsoft Azure CDN Management Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-cdn_${version}/sdk/cdn/azure-mgmt-cdn/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ maxwilson ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index 4707f8bc2ae9..04cff63317d1 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "26.0.0";
+  version = "27.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BpvnSqee5wodtMXPxo/pHCBk8Yy4yPnEdK164d9ILuM=";
+    hash = "sha256-IdGo2A65YiMJJ8S18Ji+FfnnylNhs8vFOQpfA91wgNM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bambi/default.nix b/nixpkgs/pkgs/development/python-modules/bambi/default.nix
index 01c079225f10..5a3a23a4e3d0 100644
--- a/nixpkgs/pkgs/development/python-modules/bambi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bambi/default.nix
@@ -2,31 +2,29 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, pytestCheckHook
+, setuptools
 , arviz
-, blackjax
 , formulae
 , graphviz
-, numpy
-, numpyro
 , pandas
 , pymc
-, scipy
-, setuptools
+, blackjax
+, numpyro
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "bambi";
-  version = "0.12.0";
+  version = "0.13.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "bambinos";
     repo = "bambi";
     rev = "refs/tags/${version}";
-    hash = "sha256-36D8u813v2vWQdNqBWfM8YVnAJuLGvn5vqdHs94odmU=";
+    hash = "sha256-9+uTyV3mQlHOKAjXohwkhTzNe/+I5XR/LuH1ZYvhc8I=";
   };
 
   nativeBuildInputs = [
@@ -36,10 +34,9 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     arviz
     formulae
-    numpy
+    graphviz
     pandas
     pymc
-    scipy
   ];
 
   preCheck = ''
@@ -48,7 +45,6 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     blackjax
-    graphviz
     numpyro
     pytestCheckHook
   ];
@@ -56,17 +52,32 @@ buildPythonPackage rec {
   disabledTests = [
     # Tests require network access
     "test_alias_equal_to_name"
+    "test_average_by"
+    "test_ax"
+    "test_basic"
+    "test_censored_response"
     "test_custom_prior"
     "test_data_is_copied"
     "test_distributional_model"
+    "test_elasticity"
     "test_extra_namespace"
+    "test_fig_kwargs"
     "test_gamma_with_splines"
+    "test_group_effects"
+    "test_hdi_prob"
+    "test_legend"
     "test_non_distributional_model"
     "test_normal_with_splines"
     "test_predict_offset"
     "test_predict_new_groups"
     "test_predict_new_groups_fail"
     "test_set_alias_warnings"
+    "test_subplot_kwargs"
+    "test_transforms"
+    "test_use_hdi"
+    "test_with_groups"
+    "test_with_group_and_panel"
+    "test_with_user_values"
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/bellows/default.nix b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
index 13cc8d991774..846b58a677b8 100644
--- a/nixpkgs/pkgs/development/python-modules/bellows/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "bellows";
-  version = "0.36.7";
+  version = "0.36.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "bellows";
     rev = "refs/tags/${version}";
-    hash = "sha256-j7Awqt14/J0BbYcKwIR10UtVeqt9BpQkzT8dqGRVEOU=";
+    hash = "sha256-+p3As+fi6mw9i5q2klFTM9QQ2JoQarwrphc6tB6C94M=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bincopy/default.nix b/nixpkgs/pkgs/development/python-modules/bincopy/default.nix
index ee6dcb44d57d..1bb3a5b46eb4 100644
--- a/nixpkgs/pkgs/development/python-modules/bincopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bincopy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bincopy";
-  version = "17.14.5";
+  version = "19.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-X03nw3o9t63PPtxIM6Ij8zVtm/CL5y7G5DHJ8KzSnxg=";
+    hash = "sha256-aDVkrTBEhrTP1Oc/kiE9ZsJ+8fDGXcb2+FSMQP0X0lY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/camel-converter/default.nix b/nixpkgs/pkgs/development/python-modules/camel-converter/default.nix
index 176c49819dbf..1a77c2bcb881 100644
--- a/nixpkgs/pkgs/development/python-modules/camel-converter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/camel-converter/default.nix
@@ -9,21 +9,21 @@
 
 buildPythonPackage rec {
   pname = "camel-converter";
-  version = "3.0.3";
-  format = "pyproject";
+  version = "3.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "sanders41";
-    repo = pname;
+    repo = "camel-converter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0sNb1zg8cnDjQQnStfe1k8uB1GpmNtd/VwqSqTcLmj0=";
+    hash = "sha256-ASUwSA63iUgeRfYdO6InZ8YzEbifQh1hr3fUbE3FYac=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov=camel_converter --cov-report term-missing" ""
+      --replace "--cov=camel_converter --cov-report term-missing --no-cov-on-fail" ""
   '';
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix b/nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix
index 6caadcff5af8..b4d0c4b40765 100644
--- a/nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "clarifai-grpc";
-  version = "9.9.0";
+  version = "9.9.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YZYawFGpGPK0T4MlWHwONqcx1fwcoZiNalhU2ydM+mo=";
+    hash = "sha256-9h/d1w5toxWMHMvVkQiuHySf3+IjeumD4EipgI1kaEs=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/claripy/default.nix b/nixpkgs/pkgs/development/python-modules/claripy/default.nix
index f0b833396838..14e6cbd811fa 100644
--- a/nixpkgs/pkgs/development/python-modules/claripy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/claripy/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.2.73";
+  version = "9.2.74";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "claripy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6wXhGMpMCh/xKmwQwvzQCgk8IQaZqDrgBh12paagkpE=";
+    hash = "sha256-TNnv2V8QtSA5oiCHVqIuvbgGNTjfIw4WS1K2MxXfJIw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cle/default.nix b/nixpkgs/pkgs/development/python-modules/cle/default.nix
index 47d2715290cd..6dbaac73b6bd 100644
--- a/nixpkgs/pkgs/development/python-modules/cle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cle/default.nix
@@ -16,14 +16,14 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.2.73";
+  version = "9.2.74";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
     owner = "angr";
     repo = "binaries";
     rev = "refs/tags/v${version}";
-    hash = "sha256-x67mvpRvqJIrYrqdNt8AueHahCOt0AHurzWIkYx1veQ=";
+    hash = "sha256-KaHAgGPspFGFPNULfXcVwXpl5RdkKHAQV/coJeMSGLQ=";
   };
 
 in
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "cle";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IBqNr5ILPzsRLSf7tsu/oTXXOnMPon6LrMnUq4i6oDA=";
+    hash = "sha256-e13tsrLAZu67eyUvBYtfkBASEsxdcVwJmKCHBiU78Dg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cloudpathlib/default.nix b/nixpkgs/pkgs/development/python-modules/cloudpathlib/default.nix
new file mode 100644
index 000000000000..ae22d4bcafbf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cloudpathlib/default.nix
@@ -0,0 +1,82 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, flit-core
+, importlib-metadata
+, typing-extensions
+, cloudpathlib
+, azure-storage-blob
+, google-cloud-storage
+, boto3
+, psutil
+, pydantic
+, pytestCheckHook
+, pytest-cases
+, pytest-cov
+, pytest-xdist
+, python-dotenv
+, shortuuid
+}:
+
+buildPythonPackage rec {
+  pname = "cloudpathlib";
+  version = "0.16.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "drivendataorg";
+    repo = "cloudpathlib";
+    rev = "v${version}";
+    hash = "sha256-d4CbzPy3H5HQ4YmSRCRMEYaTpwB7F0Bznd26aKWiHTA=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    importlib-metadata
+    typing-extensions
+  ];
+
+  passthru.optional-dependencies = {
+    all = [
+      cloudpathlib
+    ];
+    azure = [
+      azure-storage-blob
+    ];
+    gs = [
+      google-cloud-storage
+    ];
+    s3 = [
+      boto3
+    ];
+  };
+
+  pythonImportsCheck = [ "cloudpathlib" ];
+
+  nativeCheckInputs = [
+    azure-storage-blob
+    boto3
+    google-cloud-storage
+    psutil
+    pydantic
+    pytestCheckHook
+    pytest-cases
+    pytest-cov
+    pytest-xdist
+    python-dotenv
+    shortuuid
+  ];
+
+  meta = with lib; {
+    description = "Python pathlib-style classes for cloud storage services such as Amazon S3, Azure Blob Storage, and Google Cloud Storage";
+    homepage = "https://github.com/drivendataorg/cloudpathlib";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/complycube/default.nix b/nixpkgs/pkgs/development/python-modules/complycube/default.nix
new file mode 100644
index 000000000000..ee99ae8d28bd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/complycube/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyhumps
+, requests
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "complycube";
+  version = "1.1.6";
+  pyproject = true;
+
+  src = fetchPypi rec {
+    inherit version;
+    pname = "complycube";
+    hash = "sha256-hetcn5RX582CRVmtG5dAvr+NXD+7NKJjaqgOo8LlpqM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pyhumps
+    requests
+  ];
+
+  pythonImportsCheck = [
+    "complycube"
+  ];
+
+  meta = {
+    homepage = "https://complycube.com";
+    description = "Official Python client for the ComplyCube API";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ derdennisop ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/compressai/default.nix b/nixpkgs/pkgs/development/python-modules/compressai/default.nix
new file mode 100644
index 000000000000..47487a6f633f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/compressai/default.nix
@@ -0,0 +1,89 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, pybind11
+, setuptools
+, wheel
+, numpy
+, matplotlib
+, pytorch-msssim
+, scipy
+, torch
+, torchvision
+, ipywidgets
+, jupyter
+, plotly
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "compressai";
+  version = "1.2.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "InterDigitalInc";
+    repo = "CompressAI";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-nT2vd7t67agIWobJalORbRuns0UJGRGGbTX2/8vbTiY=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    pybind11
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    matplotlib
+    pytorch-msssim
+    scipy
+    torch
+    torchvision
+  ];
+
+  passthru.optional-dependencies = {
+    tutorials = [
+      ipywidgets
+      jupyter
+    ];
+  };
+
+  pythonImportsCheck = [
+    "compressai"
+    "compressai._CXX"
+  ];
+
+  preCheck = ''
+    # We have to delete the source because otherwise it is used intead the installed package.
+    rm -rf compressai
+
+    export HOME=$(mktemp -d)
+  '';
+
+  nativeCheckInputs = [
+    plotly
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Those tests require internet access to download some weights
+    "test_image_codec"
+    "test_update"
+    "test_eval_model_pretrained"
+    "test_cheng2020_anchor"
+    "test_pretrained"
+  ];
+
+  meta = with lib; {
+    description = "A PyTorch library and evaluation platform for end-to-end compression research";
+    homepage = "https://github.com/InterDigitalInc/CompressAI";
+    license = licenses.bsd3Clear;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/coredis/default.nix b/nixpkgs/pkgs/development/python-modules/coredis/default.nix
index 9185fe48bb9d..79faced6c3c5 100644
--- a/nixpkgs/pkgs/development/python-modules/coredis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coredis/default.nix
@@ -60,6 +60,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/alisaifee/coredis";
     changelog = "https://github.com/alisaifee/coredis/blob/${src.rev}/HISTORY.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ netali ];
+    maintainers = teams.wdz.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix b/nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix
index 1eab372381bc..d0a9c3d7eb9f 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "cryptoparser";
-  version = "0.10.0";
+  version = "0.10.3";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "CryptoParser";
     inherit version;
-    hash = "sha256-43V82/nxtOa9y4fVOMsxhoSQpDxTyOcHIGsbRr0euAk=";
+    hash = "sha256-FvSs0LeyuobkJhJd5vlR+Bm4LqGxPvPTogsYKtHOpVw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cwcwidth/default.nix b/nixpkgs/pkgs/development/python-modules/cwcwidth/default.nix
index 1959794fcc69..85d20fc6f464 100644
--- a/nixpkgs/pkgs/development/python-modules/cwcwidth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cwcwidth/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "cwcwidth";
-  version = "0.1.8";
+  version = "0.1.9";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WtwDS3yQ5qhYa9BGvL9gBONeFrDX4x3jlVE6UNcpu/Y=";
+    hash = "sha256-8Z0RoBSNSoys0GTJbpO8qM40FaGGroIEA49F4Qjbdrg=";
   };
 
   nativeBuildInputs = [ cython setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/digitalocean/default.nix b/nixpkgs/pkgs/development/python-modules/digitalocean/default.nix
index 09ff7c52bdde..3d756312deda 100644
--- a/nixpkgs/pkgs/development/python-modules/digitalocean/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/digitalocean/default.nix
@@ -40,6 +40,9 @@ buildPythonPackage rec {
     cd digitalocean
   '';
 
+  # Test tries to access the network
+  disabledTests = ["TestFirewall"];
+
   pythonImportsCheck = [ "digitalocean" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/django-allauth-2fa/default.nix b/nixpkgs/pkgs/development/python-modules/django-allauth-2fa/default.nix
new file mode 100644
index 000000000000..60a2d61bac27
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/django-allauth-2fa/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, django
+, django-allauth
+, django-otp
+, fetchFromGitHub
+, pythonOlder
+, qrcode
+, hatchling
+}:
+
+buildPythonPackage rec {
+  pname = "django-allauth-2fa";
+  version = "0.11.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "valohai";
+    repo = "django-allauth-2fa";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-bm2RwhvX2nfhYs74MM0iZl9U2gHgm0lLlh2tuRRcGso=";
+  };
+
+
+  nativeBuildInputs = [
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    django
+    django-allauth
+    django-otp
+    qrcode
+  ];
+
+  pythonImportsCheck = [
+    "allauth_2fa"
+  ];
+
+  meta = with lib; {
+    description = "django-allauth-2fa adds two-factor authentication to django-allauth";
+    homepage = "https://github.com/valohai/django-allauth-2fa";
+    changelog = "https://github.com/valohai/django-allauth-2fa/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ derdennisop ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/django-pwa/default.nix b/nixpkgs/pkgs/development/python-modules/django-pwa/default.nix
new file mode 100644
index 000000000000..91a216f0ac5c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/django-pwa/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, django
+, fetchFromGitHub
+, python
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "django-pwa";
+  version = "1.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "silviolleite";
+    repo = "django-pwa";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-tP1+Jm9hdvN/ZliuVHN8tqy24/tOK1LUUiJv1xUqRrY=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    django
+  ];
+
+  pyImportCheck = [
+    "pwa"
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} runtests.py
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "A Django app to include a manifest.json and Service Worker instance to enable progressive web app behavoir";
+    homepage = "https://github.com/silviolleite/django-pwa";
+    changelog = "https://github.com/silviolleite/django-pwa/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ derdennisop ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix b/nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix
index e8763988fdb9..6cc982c5df53 100644
--- a/nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "dns_lexicon";
-  version = "3.16.0";
+  version = "3.16.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "Analogj";
     repo = "lexicon";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GUYsTZPvsqGemViSqgEvYhyjTEut42akMq2ZK2P1fX0=";
+    hash = "sha256-79/zz0TOCpx26TEo6gi9JDBQeVW2azWnxAjWr/FGRLA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dvc-data/default.nix b/nixpkgs/pkgs/development/python-modules/dvc-data/default.nix
index 81d4719db1df..4645293981bb 100644
--- a/nixpkgs/pkgs/development/python-modules/dvc-data/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvc-data/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dvc-data";
-  version = "2.18.2";
+  version = "2.19.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-gfb4FtuaOEtzOwNcBPa/KM6dMI8ckf91ch1TZOxFHck=";
+    hash = "sha256-8VjKuYI4/IyQSMM/He5dQv5edoWChfB5+LLkLsjVSm0=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/dvc/default.nix b/nixpkgs/pkgs/development/python-modules/dvc/default.nix
index 9dad3e76369e..b577179abc7e 100644
--- a/nixpkgs/pkgs/development/python-modules/dvc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvc/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-tEdYa3YkCE8qg6/XOxNm7kKULGk+KXxMkMNtW6T7+yw=";
+    hash = "sha256-yaZCx9NPdr2136Z8ig+5Db8+wUbZpSgzMSyILOQZCR8=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/dvclive/default.nix b/nixpkgs/pkgs/development/python-modules/dvclive/default.nix
index a07eb1c2d07c..d0c3e46dcc66 100644
--- a/nixpkgs/pkgs/development/python-modules/dvclive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvclive/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dvclive";
-  version = "3.0.1";
+  version = "3.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-jcgNNraMgsqTPNCbBcqEewe3jAXer4wn0aKqiUos+k8=";
+    hash = "sha256-qPGtYMpUFGQfSYEPabn4eC74lmr8xvet07RR5brV5No=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/edk2-pytool-library/default.nix b/nixpkgs/pkgs/development/python-modules/edk2-pytool-library/default.nix
index 21210376eca1..fb4c4561388a 100644
--- a/nixpkgs/pkgs/development/python-modules/edk2-pytool-library/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/edk2-pytool-library/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "edk2-pytool-library";
-  version = "0.19.1";
+  version = "0.19.2";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "tianocore";
     repo = "edk2-pytool-library";
     rev = "v${version}";
-    hash = "sha256-xSW9ZeE2+vo2m2KaCW8lyotkHy7WVvNX16TDQEeQbQ4=";
+    hash = "sha256-EoBv7mxdT6G1n9as0V8Ad5QckMkqgC2GvcjRDc1+RzA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/enhancements/default.nix b/nixpkgs/pkgs/development/python-modules/enhancements/default.nix
deleted file mode 100644
index c9042e3d085e..000000000000
--- a/nixpkgs/pkgs/development/python-modules/enhancements/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib
-, argcomplete
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, typeguard
-}:
-
-buildPythonPackage rec {
-  pname = "enhancements";
-  version = "0.4.0";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.7";
-
-  src = fetchFromGitHub {
-    owner = "ssh-mitm";
-    repo = "python-enhancements";
-    rev = version;
-    hash = "sha256-Nff44WAQwSbkRpUHb9ANsQWWH2B819gtwQdXAjWJJls=";
-  };
-
-  propagatedBuildInputs = [
-    argcomplete
-    typeguard
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [
-    "enhancements"
-  ];
-
-  meta = with lib; {
-    description = "Library which extends various Python classes";
-    homepage = "https://enhancements.readthedocs.io";
-    license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ fab ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix b/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
index 55685e35eb09..b1b1080d20b7 100644
--- a/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "fakeredis";
-  version = "2.19.0";
+  version = "2.20.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "dsoftwareinc";
     repo = "fakeredis-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EFgd7NnHcA4T/BZZUR/z3Z4JxA0dWricasKyJAaDsHc=";
+    hash = "sha256-pRvUgK4OXVP2GR+Iu4ddqwApw0gYN4FkKjTpwbC1oWM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/flake8/default.nix b/nixpkgs/pkgs/development/python-modules/flake8/default.nix
index 4a05efc146ba..7a3bd82a5145 100644
--- a/nixpkgs/pkgs/development/python-modules/flake8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flake8/default.nix
@@ -5,8 +5,6 @@
 , mccabe
 , pycodestyle
 , pyflakes
-, importlib-metadata
-, pythonAtLeast
 , pytestCheckHook
 }:
 
@@ -29,13 +27,8 @@ buildPythonPackage rec {
     mccabe
     pycodestyle
     pyflakes
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
   ];
 
-  # Tests fail on Python 3.7 due to importlib using a deprecated interface
-  doCheck = pythonAtLeast "3.7";
-
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix b/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix
index 42132b2da539..6fd8b6b7330b 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix
@@ -5,6 +5,7 @@
 , aniso8601
 , jsonschema
 , flask
+, importlib-resources
 , werkzeug
 , pytz
 , faker
@@ -19,22 +20,23 @@
 
 buildPythonPackage rec {
   pname = "flask-restx";
-  version = "1.1.0";
+  version = "1.2.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   # Tests not included in PyPI tarball
   src = fetchFromGitHub {
     owner = "python-restx";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-alXuo6TGDX2ko6VIKpAtyrg0EBkxEnC3DabH8GYqEs0=";
+    hash = "sha256-9o0lgDtjsZta9fVJnD02In6wvxNwPA667WeIkpRv8Z4=";
   };
 
   propagatedBuildInputs = [
     aniso8601
     flask
+    importlib-resources
     jsonschema
     pytz
     werkzeug
@@ -71,7 +73,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Fully featured framework for fast, easy and documented API development with Flask";
     homepage = "https://github.com/python-restx/flask-restx";
-    changelog = "https://github.com/python-restx/flask-restx/raw/${version}/CHANGELOG.rst";
+    changelog = "https://github.com/python-restx/flask-restx/blob/${version}/CHANGELOG.rst";
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/floret/default.nix b/nixpkgs/pkgs/development/python-modules/floret/default.nix
new file mode 100644
index 000000000000..08f59292a206
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/floret/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, pybind11
+, setuptools
+, wheel
+, numpy
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "floret";
+  version = "0.10.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "explosion";
+    repo = "floret";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-cOVyvRwprR7SvZjH4rtDK8uifv6+JGyRR7XYzOP5NLk=";
+  };
+
+  nativeBuildInputs = [
+    pybind11
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    pybind11
+  ];
+
+  pythonImportsCheck = [ "floret" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "FastText + Bloom embeddings for compact, full-coverage vectors with spaCy";
+    homepage = "https://github.com/explosion/floret";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
index 89d493bc87d6..a90fe66a48cc 100644
--- a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
@@ -29,16 +29,16 @@
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "2023.9.1";
+  version = "2023.10.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fsspec";
     repo = "filesystem_spec";
-    rev = version;
-    hash = "sha256-1ai+/8akUlP9kfzSKYEpDnobBfUC6EAPFPVVxh4jb/0=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-cLkCQQbb/AakDSz1NTrVlHh8LdgoqtjX8OPT+Nb1NA4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/goodwe/default.nix b/nixpkgs/pkgs/development/python-modules/goodwe/default.nix
index 401508f56622..38b4af1e3ada 100644
--- a/nixpkgs/pkgs/development/python-modules/goodwe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/goodwe/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.2.31";
+  version = "0.2.32";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-h5FXb8abSpyCDnaRox3J0XFLvl6V9IMcePtTZ3wbTPM=";
+    hash = "sha256-Uj4f3OcPRqbMaM0ADP6OlPQAXFfCYZS0/qbz9eXGLv0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
index 0869a6e7f221..fee868f6f0ce 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "2.12.0";
+  version = "2.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Pu3JsiONj9tsJkXaRV3nuo3wqaHSU4FZMqw6mMXuyc0=";
+    hash = "sha256-QKI6rrgJeC93AGL8JTWZMqbj4P/2WPs+LP0VunrQnlk=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/griffe/default.nix b/nixpkgs/pkgs/development/python-modules/griffe/default.nix
index 91b83b0f4eaa..314a2249cdbd 100644
--- a/nixpkgs/pkgs/development/python-modules/griffe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/griffe/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "griffe";
-  version = "0.36.8";
+  version = "0.36.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-2lpmEfHUsnqoEXXyVZqly5ADxaqk+n5GsFTemAuwokU=";
+    hash = "sha256-5j6boIy2LnB3Y0ZzheTdflON8KaQkeQS5vkaPIsETGk=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/hahomematic/default.nix b/nixpkgs/pkgs/development/python-modules/hahomematic/default.nix
index 97a7a55b26a4..77d57a0a500b 100644
--- a/nixpkgs/pkgs/development/python-modules/hahomematic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hahomematic/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2023.10.12";
+  version = "2023.10.13";
   format = "pyproject";
 
   disabled = pythonOlder "3.11";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-mlZlaUcpVflz1mTiI0rIAOnJD5+NqXjsb1xp+wvoQvs=";
+    hash = "sha256-7zJhdFgEP/QSX78XMt+dxt0x7gUj011LHGi/+grPux0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/heatzypy/default.nix b/nixpkgs/pkgs/development/python-modules/heatzypy/default.nix
index 7cb1daa10cf2..ed9ea595a1af 100644
--- a/nixpkgs/pkgs/development/python-modules/heatzypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/heatzypy/default.nix
@@ -5,28 +5,34 @@
 , requests
 , pytestCheckHook
 , pythonOlder
+, setuptools
+, wheel
 }:
 
 buildPythonPackage rec {
   pname = "heatzypy";
-  version = "2.1.5";
-  format = "setuptools";
+  version = "2.1.7";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "Cyr-ius";
-    repo = pname;
+    repo = "heatzypy";
     rev = "refs/tags/${version}";
-    hash = "sha256-Z60apquRzhkPbxgGKgDswtW9GUXGt9MbdAsh3Yh31b0=";
+    hash = "sha256-bMhxxVZs6fTKlUWtSO0jfzYCHa1WPf2faEjfrmfUg8E=";
   };
 
   postPatch = ''
-    # https://github.com/Cyr-ius/heatzypy/issues/7
-    substituteInPlace setup.py \
-      --replace 'version="replace_by_workflow"' 'version="${version}"'
+    substituteInPlace pyproject.toml \
+      --replace "replace_by_workflow" "${version}"
   '';
 
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     requests
@@ -40,8 +46,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Python module to interact with Heatzy devices";
+    description = "Module to interact with Heatzy devices";
     homepage = "https://github.com/Cyr-ius/heatzypy";
+    changelog = "https://github.com/cyr-ius/heatzypy/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix b/nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
index d91b01f52cc9..b7f08d38d6bf 100644
--- a/nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-clusters";
-  version = "2023.6.0";
+  version = "2023.10.1";
   format = "wheel";
 
   src = fetchPypi {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     pname = "home_assistant_chip_clusters";
     dist = "py3";
     python = "py3";
-    hash = "sha256-8LYB3BEDHOj6ItfFRK7ewbhjN604xXKY0YlymNjEO+g=";
+    hash = "sha256-KI5idrD8SIpzSYopELYWJJaaiAFQzwRwhFBfb4BEw2o=";
   };
 
   propagatedBuildInputs = [
@@ -25,6 +25,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [
     "chip.clusters"
+    "chip.clusters.ClusterObjects"
+    "chip.tlv"
   ];
 
   doCheck = false; # no tests
diff --git a/nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix b/nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix
index ea6dc79d51d9..b8b865574f79 100644
--- a/nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix
@@ -28,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-core";
-  version = "2023.6.0";
+  version = "2023.10.1";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
       };
       "x86_64-linux" = {
         name = "x86_64";
-        hash = "sha256-bRP82jTVSJS46WuO8MVWFvte+2mCOSsGFDBaXdmdPHI=";
+        hash = "sha256-mffjJtn0LmRz9DOWMMw9soYDDm/M1C5Tdj6YbWHaq2o=";
       };
     }.${stdenv.system} or (throw "Unsupported system");
   in fetchPypi {
@@ -78,12 +78,17 @@ buildPythonPackage rec {
     pygobject3
   ];
 
+  pythonNamespaces = [
+    "chip"
+    "chip.clusters"
+  ];
+
   pythonImportsCheck = [
     "chip"
     "chip.ble"
-    # https://github.com/project-chip/connectedhomeip/pull/24376
-    #"chip.configuration"
+    "chip.configuration"
     "chip.discovery"
+    "chip.exceptions"
     "chip.native"
     "chip.storage"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/identify/default.nix b/nixpkgs/pkgs/development/python-modules/identify/default.nix
index 891d03cfc04c..d53408aa1aca 100644
--- a/nixpkgs/pkgs/development/python-modules/identify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/identify/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "2.5.30";
+  version = "2.5.31";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "pre-commit";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-e3+yjd3jrcv4hU+0vCTl+bAzlYcfTdhLHr93briFxdI=";
+    hash = "sha256-rov80COnU8e6NXwHkafGGbJyhDTMLUSwxkmjmlw8QYU=";
   };
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix b/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix
index 6266e60f7284..a38fbf9f5a07 100644
--- a/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix
@@ -1,51 +1,50 @@
 { lib
 , aenum
-, aiohttp
-, asynctest
 , buildPythonPackage
 , fetchFromGitHub
+, httpx
+, poetry-core
 , pydantic
-, pytest-mock
+, pytest-asyncio
+, pytest-httpx
 , pytestCheckHook
 , pythonOlder
-, requests
+, rich
 }:
 
 buildPythonPackage rec {
   pname = "intellifire4py";
-  version = "2.2.2";
-  format = "setuptools";
+  version = "3.1.29";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jeeftor";
     repo = pname;
-    rev = "refs/tags/${version}";
-    hash = "sha256-iqlKfpnETLqQwy5sNcK2x/TgmuN2hCfYoHEFK2WWVXI=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-isAVq45UnKB8uMg7bhehpxIk5OOLcWx+VNZhJ8dE52Y=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     aenum
-    aiohttp
+    httpx
     pydantic
-    requests
-  ];
-
-  nativeCheckInputs = [
-    asynctest
-    pytest-mock
-    pytestCheckHook
-  ];
-
-  disabledTests = [
-    # Test file is missing
-    "test_json_files"
+    rich
   ];
 
   pythonImportsCheck = [
     "intellifire4py"
   ];
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytest-httpx
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Module to read Intellifire fireplace status data";
diff --git a/nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix b/nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix
index 3c48dcc4d60b..eab0c1c360aa 100644
--- a/nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
@@ -9,36 +10,61 @@
 , pillow
 , pywavelets
 , numpy
+, callPackage
+, withOnnx ? false # Enables the rivaGan en- and decoding method
 }:
 
 buildPythonPackage rec {
   pname = "invisible-watermark";
-  version = "0.1.5";
+  version = "0.2.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "ShieldMnt";
     repo = "invisible-watermark";
-    rev = version;
-    hash = "sha256-NGDPEETuM7rYbo8kXYoRWLJWpa/lWLKEvaaiDzSWYZ4=";
+    rev = "e58e451cff7e092457cd915e445b1a20b64a7c8f"; # No git tag, see https://github.com/ShieldMnt/invisible-watermark/issues/22
+    hash = "sha256-6SjVpKFtiiLLU7tZ3hBQr0KT/YEQyywJj0e21/dJRzk=";
   };
 
   propagatedBuildInputs = [
     opencv4
     torch
-    onnx
-    onnxruntime
     pillow
     pywavelets
     numpy
+  ] ++ lib.optionals withOnnx [
+    onnx
+    onnxruntime
   ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace 'opencv-python>=4.1.0.25' 'opencv'
+    substituteInPlace imwatermark/rivaGan.py --replace \
+      'You can install it with pip: `pip install onnxruntime`.' \
+      'You can install it with an override: `python3Packages.invisible-watermark.override { withOnnx = true; };`.'
   '';
 
+  passthru.tests = let
+    image = "${src}/test_vectors/original.jpg";
+    methods = [ "dwtDct" "dwtDctSvd" "rivaGan" ];
+    testCases = builtins.concatMap (method: [
+      { method = method; withOnnx = true; }
+      { method = method; withOnnx = false; }
+    ]) methods;
+    createTest = { method, withOnnx }: let
+      testName = "${if withOnnx then "withOnnx" else "withoutOnnx"}-${method}";
+    # This test fails in the sandbox on aarch64-linux, see https://github.com/microsoft/onnxruntime/issues/10038
+    skipTest = stdenv.isLinux && stdenv.isAarch64 && withOnnx && method == "rivaGan";
+    in lib.optionalAttrs (!skipTest) {
+      "${testName}" = callPackage ./tests/cli.nix { inherit image method testName withOnnx; };
+    };
+    allTests = builtins.map createTest testCases;
+  in (lib.attrsets.mergeAttrsList allTests) // {
+    python = callPackage ./tests/python { inherit image; };
+  };
+
   pythonImportsCheck = [ "imwatermark" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/cli.nix b/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/cli.nix
new file mode 100644
index 000000000000..9cb936465786
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/cli.nix
@@ -0,0 +1,64 @@
+{ image
+, method
+, python3Packages
+, runCommand
+, testName
+, withOnnx
+}:
+
+# This file runs one test case.
+# There are six test cases in total. method can have three possible values and
+# withOnnx two possible values. 3 * 2 = 6.
+#
+# The case where the method is rivaGan and invisible-watermark is built
+# without onnx is expected to fail and this case is handled accordingly.
+#
+# The test works by first encoding a message into a test image,
+# then decoding the message from the image again and checking
+# if the message was decoded correctly.
+
+let
+  message = if method == "rivaGan" then
+    "asdf" # rivaGan only supports 32 bits
+  else
+    "fnörd1";
+  length = (builtins.stringLength message) * 8;
+  invisible-watermark' = python3Packages.invisible-watermark.override { inherit withOnnx; };
+  expected-exit-code = if method == "rivaGan" && !withOnnx then "1" else "0";
+in
+runCommand "invisible-watermark-test-${testName}" { nativeBuildInputs = [ invisible-watermark' ]; } ''
+  set +e
+  invisible-watermark \
+    --verbose \
+    --action encode \
+    --type bytes \
+    --method '${method}' \
+    --watermark '${message}' \
+    --output output.png \
+    '${image}'
+  exit_code="$?"
+  set -euf -o pipefail
+  if [ "$exit_code" != '${expected-exit-code}' ]; then
+    echo "Exit code of invisible-watermark was $exit_code while ${expected-exit-code} was expected."
+    exit 1
+  fi
+  if [ '${expected-exit-code}' == '1' ]; then
+    echo 'invisible-watermark failed as expected.'
+    touch "$out"
+    exit 0
+  fi
+  decoded_message="$(invisible-watermark \
+                      --action decode \
+                      --type bytes \
+                      --method '${method}' \
+                      --length '${toString length}' \
+                      output.png \
+                    )"
+
+  if [ '${message}' != "$decoded_message" ]; then
+    echo "invisible-watermark did not decode the watermark correctly."
+    echo "The original message was ${message} but the decoded message was $decoded_message."
+    exit 1
+  fi
+  touch "$out"
+''
diff --git a/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/decode.py b/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/decode.py
new file mode 100644
index 000000000000..c1b7e52ff6f5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/decode.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+
+import os
+import cv2
+from imwatermark import WatermarkDecoder
+
+input_file = os.environ['image']
+output_file_path = os.environ['out']
+num_bits = int(os.environ['num_bits'])
+method = os.environ['method']
+
+bgr = cv2.imread(input_file)
+
+decoder = WatermarkDecoder('bytes', num_bits)
+watermark = decoder.decode(bgr, method)
+message = watermark.decode('utf-8')
+
+with open(output_file_path, 'w') as f:
+    f.write(message)
diff --git a/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/default.nix b/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/default.nix
new file mode 100644
index 000000000000..63db58867371
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/default.nix
@@ -0,0 +1,42 @@
+{ image
+, invisible-watermark
+, opencv4
+, python3
+, runCommand
+, stdenvNoCC
+}:
+
+# This test checks if the python code shown in the README works correctly
+
+let
+  message = "fnörd1";
+  method = "dwtDct";
+
+  pythonWithPackages = python3.withPackages (pp: with pp; [ invisible-watermark opencv4 ]);
+  pythonInterpreter = pythonWithPackages.interpreter;
+
+  encode = stdenvNoCC.mkDerivation {
+    name = "encode";
+    realBuilder = pythonInterpreter;
+    args = [ ./encode.py ];
+    inherit image message method;
+  };
+
+  decode = stdenvNoCC.mkDerivation {
+    name = "decode";
+    realBuilder = pythonInterpreter;
+    args = [ ./decode.py ];
+    inherit method;
+    image = "${encode}/test_wm.png";
+    num_bits = (builtins.stringLength message) * 8;
+  };
+in
+runCommand "invisible-watermark-test-python" { } ''
+  decoded_message="$(cat '${decode}')"
+  if [ '${message}' != "$decoded_message" ]; then
+    echo "invisible-watermark did not decode the watermark correctly."
+    echo "The original message was ${message} but the decoded message was $decoded_message."
+    exit 1
+  fi
+  touch "$out"
+''
diff --git a/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/encode.py b/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/encode.py
new file mode 100644
index 000000000000..59a72cffe70d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/invisible-watermark/tests/python/encode.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+
+import os
+import cv2
+from imwatermark import WatermarkEncoder
+
+input_file_path = os.environ['image']
+output_dir = os.environ['out']
+message = os.environ['message']
+method = os.environ['method']
+
+os.mkdir(output_dir)
+
+bgr = cv2.imread(input_file_path)
+
+encoder = WatermarkEncoder()
+encoder.set_watermark('bytes', message.encode('utf-8'))
+bgr_encoded = encoder.encode(bgr, method)
+
+output_file = os.path.join(output_dir, 'test_wm.png')
+cv2.imwrite(output_file, bgr_encoded)
diff --git a/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix b/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix
index 8b673d6040d5..ba3a6adffb74 100644
--- a/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix
@@ -47,38 +47,101 @@ let
   # official instructions recommend installing CPU-only versions via PyPI.
   cpuSrcs =
     let
-      getSrcFromPypi = { platform, hash }: fetchPypi {
-        inherit version platform hash;
+      getSrcFromPypi = { platform, dist, hash }: fetchPypi {
+        inherit version platform dist hash;
         pname = "jaxlib";
         format = "wheel";
         # See the `disabled` attr comment below.
-        dist = "cp310";
-        python = "cp310";
-        abi = "cp310";
+        python = dist;
+        abi = dist;
       };
     in
     {
-      "x86_64-linux" = getSrcFromPypi {
+      "3.9-x86_64-linux" = getSrcFromPypi {
+        platform = "manylinux2014_x86_64";
+        dist = "cp39";
+        hash = "sha256-8bTrWutuK0qVnbkcwMfgBf414YdaLc3GK5IsCm/JNPE=";
+      };
+      "3.9-aarch64-darwin" = getSrcFromPypi {
+        platform = "macosx_11_0_arm64";
+        dist = "cp39";
+        hash = "sha256-Tmv2iOqlNbZqw/rYjef6GmM0N18EA5JTt6T3lQe+4Rs=";
+      };
+      "3.9-x86_64-darwin" = getSrcFromPypi {
+        platform = "macosx_10_14_x86_64";
+        dist = "cp39";
+        hash = "sha256-mDT1INLqPdCkxtMMFR0qHLOIZdWEy8Iuzw1/vOoECsA=";
+      };
+
+      "3.10-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
+        dist = "cp310";
         hash = "sha256-ksnY+CPEstact5lKjbSg+ZSPJtSt0Y0NFWEFufBCByk=";
       };
-      "aarch64-darwin" = getSrcFromPypi {
+      "3.10-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
+        dist = "cp310";
         hash = "sha256-O7dHvdKLKfNELGfF4TKy7N5EX6Ca7Zu8OtLXWvFykR8=";
       };
-      "x86_64-darwin" = getSrcFromPypi {
+      "3.10-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
+        dist = "cp310";
         hash = "sha256-gqKMUZSXrt8sQtTAoQbzAfCzO8gM9Y1/tZpuJVWyN0Y=";
       };
-    };
 
+      "3.11-x86_64-linux" = getSrcFromPypi {
+        platform = "manylinux2014_x86_64";
+        dist = "cp311";
+        hash = "sha256-m+NDzwXMNboNjDl2nLY+vqAoN2dQJZVWb1UQDpqqDPw=";
+      };
+      "3.11-aarch64-darwin" = getSrcFromPypi {
+        platform = "macosx_11_0_arm64";
+        dist = "cp311";
+        hash = "sha256-zCOAjaWWCQT9Jnm1jjc1Rh5gemqy7ACtTKLM0MqSJzM=";
+      };
+      "3.11-x86_64-darwin" = getSrcFromPypi {
+        platform = "macosx_10_14_x86_64";
+        dist = "cp311";
+        hash = "sha256-gOLIxkk+2hew2GqWu1WgMVEx1YEutx7Zod7QbwsuUVQ=";
+      };
+
+      "3.12-x86_64-linux" = getSrcFromPypi {
+        platform = "manylinux2014_x86_64";
+        dist = "cp312";
+        hash = "sha256-BZTmkgNuV4nWtfbY4t/19aP43szZQEdgpFXh5qwGRXk=";
+      };
+      "3.12-aarch64-darwin" = getSrcFromPypi {
+        platform = "macosx_11_0_arm64";
+        dist = "cp312";
+        hash = "sha256-aAMTrLXU9EYwPv+kdeyI88/D7b4NANB39Fn8vuXUqFA=";
+      };
+      "3.12-x86_64-darwin" = getSrcFromPypi {
+        platform = "macosx_10_14_x86_64";
+        dist = "cp312";
+        hash = "sha256-KHzlIfa9KtYcHX+i/F/SKaYTpD4/XjHVu5j3BdRTUmc=";
+      };
+    };
 
   # Find new releases at https://storage.googleapis.com/jax-releases/jax_releases.html.
   # When upgrading, you can get these hashes from prefetch.sh. See
   # https://github.com/google/jax/issues/12879 as to why this specific URL is the correct index.
-  gpuSrc = fetchurl {
-    url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl";
-    hash = "sha256-zfN0n31+5GohwBkeQrqHus4qOyhM/GEdqG6KUupCZ4o=";
+  gpuSrcs = {
+    "3.9" = fetchurl {
+      url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp39-cp39-manylinux2014_x86_64.whl";
+      hash = "sha256-WB5Vbr/XeYKXCP/3DIXF20jR6/1xE3huX1h5ow8ETl0=";
+    };
+    "3.10" = fetchurl {
+      url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl";
+      hash = "sha256-zfN0n31+5GohwBkeQrqHus4qOyhM/GEdqG6KUupCZ4o=";
+    };
+    "3.11" = fetchurl {
+      url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp311-cp311-manylinux2014_x86_64.whl";
+      hash = "sha256-Q8ZtF2GCrG30GFbCeCZTWPmW2TBybeXzh2u+NRiYpx4=";
+    };
+    "3.12" = fetchurl {
+      url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp312-cp312-manylinux2014_x86_64.whl";
+      hash = "sha256-lphkSDOJ9SwbO0hp/xC1bYn5fWgth9A9Iwsc9zV0buI=";
+    };
   };
 
 in
@@ -87,15 +150,15 @@ buildPythonPackage {
   inherit version;
   format = "wheel";
 
-  disabled = !(pythonVersion == "3.10");
+  disabled = !(pythonVersion == "3.9" || pythonVersion == "3.10" || pythonVersion == "3.11" || pythonVersion == "3.12");
 
   # See https://discourse.nixos.org/t/ofborg-does-not-respect-meta-platforms/27019/6.
   src =
     if !cudaSupport then
       (
-        cpuSrcs."${stdenv.hostPlatform.system}"
+        cpuSrcs."${pythonVersion}-${stdenv.hostPlatform.system}"
           or (throw "jaxlib-bin is not supported on ${stdenv.hostPlatform.system}")
-      ) else gpuSrc;
+      ) else gpuSrcs."${pythonVersion}";
 
   # Prebuilt wheels are dynamically linked against things that nix can't find.
   # Run `autoPatchelfHook` to automagically fix them.
diff --git a/nixpkgs/pkgs/development/python-modules/jaxlib/default.nix b/nixpkgs/pkgs/development/python-modules/jaxlib/default.nix
index d02cb0aa5dee..82ef5a953d8f 100644
--- a/nixpkgs/pkgs/development/python-modules/jaxlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaxlib/default.nix
@@ -264,10 +264,10 @@ let
       ];
 
       sha256 = (if cudaSupport then {
-        x86_64-linux = "sha256-Z5cSgdRxdKxidaz4b1RlUF4rVcQiUTmQ1OorlBWlpt0=";
+        x86_64-linux = "sha256-Hw4uFvltH7nlNN3qAEcQ+IR2FAOjRkvwyWA3rCPi7Vo=";
       } else {
-        x86_64-linux = "sha256-sn7p8FFHWIVdBWnsLsVj5jLiSaTlRm7s/qj2RqvQ3jU=";
-        aarch64-linux = "sha256-oAYF5AeuPHTlwtpDMs2+tAhRAJH0yeSVnB7Ni7wmzS8=";
+        x86_64-linux = "sha256-LEugnFwTV3EyeTZWgMvXzHbgeDPdmuT3daXCXJRMYVY=";
+        aarch64-linux = "sha256-0AYF5AeuPHTlwtpDMs2+tAhRAJH0yeSVnB7Ni7wmzS8=";
       }).${stdenv.system} or (throw "jaxlib: unsupported system: ${stdenv.system}");
     };
 
diff --git a/nixpkgs/pkgs/development/python-modules/jaxlib/prefetch.sh b/nixpkgs/pkgs/development/python-modules/jaxlib/prefetch.sh
index 3362e2d0b781..46b2573e3c30 100755
--- a/nixpkgs/pkgs/development/python-modules/jaxlib/prefetch.sh
+++ b/nixpkgs/pkgs/development/python-modules/jaxlib/prefetch.sh
@@ -1,7 +1,8 @@
-#!/usr/bin/env bash
+#! /usr/bin/env nix-shell
+#! nix-shell -i sh -p jq
 
 prefetch () {
-    expr="(import <nixpkgs> { system = \"$1\"; config.cudaSupport = $2; }).python3.pkgs.jaxlib-bin.src.url"
+    expr="(import <nixpkgs> { system = \"$2\"; config.cudaSupport = $3; }).python$1.pkgs.jaxlib-bin.src.url"
     url=$(NIX_PATH=.. nix-instantiate --eval -E "$expr" | jq -r)
     echo "$url"
     sha256=$(nix-prefetch-url "$url")
@@ -9,7 +10,9 @@ prefetch () {
     echo
 }
 
-prefetch "x86_64-linux" "false"
-prefetch "aarch64-darwin" "false"
-prefetch "x86_64-darwin" "false"
-prefetch "x86_64-linux" "true"
+for py in "39" "310" "311" "312"; do
+    prefetch "$py" "x86_64-linux" "false"
+    prefetch "$py" "aarch64-darwin" "false"
+    prefetch "$py" "x86_64-darwin" "false"
+    prefetch "$py" "x86_64-linux" "true"
+done
diff --git a/nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix b/nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix
index 10969de0673e..fca4a554d328 100644
--- a/nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "jedi-language-server";
-  version = "0.41.0";
+  version = "0.41.1-unstable-2023-10-04";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -24,8 +24,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pappasam";
     repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-1ujEhoxWcCM1g640aLE60YGiNQLB+G7t7oLVZXW8AMM=";
+    rev = "c4c470cff67e54593a626b22d1b6b05e56fde3a3";
+    hash = "sha256-qFBni97B/GkabbznnZtWTG4dCHFkOx5UQjuevxq+Uvo=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/keyutils/default.nix b/nixpkgs/pkgs/development/python-modules/keyutils/default.nix
index 031ae5a65c39..c387c10ebc34 100644
--- a/nixpkgs/pkgs/development/python-modules/keyutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyutils/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, keyutils, pytest-runner, pytest }:
+{ lib
+, buildPythonPackage
+, cython
+, fetchFromGitHub
+, keyutils
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "keyutils";
@@ -16,8 +22,19 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace '"pytest-runner"' ""
   '';
 
+  preBuild = ''
+    cython keyutils/_keyutils.pyx
+  '';
+
+  preCheck = ''
+    rm -rf keyutils
+  '';
+
   buildInputs = [ keyutils ];
-  nativeCheckInputs = [ pytest pytest-runner ];
+  nativeBuildInputs = [ cython ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   meta = {
     description = "A set of python bindings for keyutils";
diff --git a/nixpkgs/pkgs/development/python-modules/krfzf-py/default.nix b/nixpkgs/pkgs/development/python-modules/krfzf-py/default.nix
new file mode 100644
index 000000000000..d55334d21e8c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/krfzf-py/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, poetry-core
+}:
+
+buildPythonPackage rec {
+  pname = "krfzf-py";
+  version = "0.0.6";
+  format = "pyproject";
+
+  src = fetchPypi {
+    pname = "krfzf_py";
+    inherit version;
+    hash = "sha256-/M9Atu9MLAGmnEdx6tknMJAit2o4Xt971uQ7pb0CBCk=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  pythonImportsCheck = [ "fzf" ];
+
+  meta = with lib; {
+    description = "A Pythonic Fzf Wrapper";
+    downloadPage = "https://github.com/justfoolingaround/fzf.py";
+    homepage = "https://pypi.org/project/krfzf-py/";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix b/nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix
index 2e19ff0d9b34..f312371afe9d 100644
--- a/nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "localstack-ext";
-  version = "2.2.0";
+  version = "2.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BLK41TRaYNtpeeDeGZhlvnvkQwWo0uGB19g34waRqFk=";
+    hash = "sha256-Ex5ZPlteDaiyex90QumucVdTTbpp9uWiBrvw1kMr++8=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/model-bakery/default.nix b/nixpkgs/pkgs/development/python-modules/model-bakery/default.nix
index d03bcb2c50e0..a5b38b525f7d 100644
--- a/nixpkgs/pkgs/development/python-modules/model-bakery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/model-bakery/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "model-bakery";
-  version = "1.16.0";
+  version = "1.17.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "model-bakers";
     repo = "model_bakery";
     rev = "refs/tags/${version}";
-    hash = "sha256-pLGSrwRsbxB5no9nQr1THr9wXrtISOMqHrW+FeZ24Bw=";
+    hash = "sha256-o3BI2lMwctR9tiGmY07dAOQUfv9K4rWkc/xI6uHnVfs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/nats-py/default.nix b/nixpkgs/pkgs/development/python-modules/nats-py/default.nix
index 7df0e1a6f0e0..5028ab345f03 100644
--- a/nixpkgs/pkgs/development/python-modules/nats-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nats-py/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "nats-py";
-  version = "2.5.0";
+  version = "2.6.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "nats-io";
     repo = "nats.py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BTGq1m1kkWk2CxDYh+jZZIf89ZoQjSTcvloBg9vq4p8=";
+    hash = "sha256-gpQXCihKvuXzCt1WNOd5W7RxxfVAvpaVP6OuHUiAQkw=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/neo4j/default.nix b/nixpkgs/pkgs/development/python-modules/neo4j/default.nix
index 9e31ebadf6bd..e973c2289e5e 100644
--- a/nixpkgs/pkgs/development/python-modules/neo4j/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/neo4j/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "neo4j";
-  version = "5.13.0";
+  version = "5.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "neo4j";
     repo = "neo4j-python-driver";
     rev = "refs/tags/${version}";
-    hash = "sha256-ykbKNLMnbAGUavyfRtF3q97FRLaeuKOt0pcWHtJ9mCY=";
+    hash = "sha256-HNgH01ZoQLuZ3K9sSYAYa6/ZTbVYsOUFhOqgP7y2F3Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/nextdns/default.nix b/nixpkgs/pkgs/development/python-modules/nextdns/default.nix
index 9b94c6da08a2..e00491290a3e 100644
--- a/nixpkgs/pkgs/development/python-modules/nextdns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nextdns/default.nix
@@ -12,16 +12,16 @@
 
 buildPythonPackage rec {
   pname = "nextdns";
-  version = "1.4.0";
+  version = "2.0.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "bieniu";
-    repo = pname;
+    repo = "nextdns";
     rev = "refs/tags/${version}";
-    hash = "sha256-fW/fLbL4IMLN6LmFijH4+ew+cDdJY9tOha+010YEfNs=";
+    hash = "sha256-AgxBJXPBYkJR8W8tGKcHJaAP52guNVvm190ZlZ9BhA4=";
   };
 
   propagatedBuildInputs = [
@@ -41,9 +41,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    changelog = "https://github.com/bieniu/nextdns/releases/tag/${version}";
     description = "Module for the NextDNS API";
     homepage = "https://github.com/bieniu/nextdns";
+    changelog = "https://github.com/bieniu/nextdns/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/nuitka/default.nix b/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
index ca2272ac1bd5..f10cbb749304 100644
--- a/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
@@ -1,49 +1,51 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , buildPythonPackage
+, ccache
 , fetchFromGitHub
-, vmprof
 , isPyPy
-, pkgs
-, scons
-, chrpath
+, ordered-set
+, python3
+, setuptools
+, zstandard
 }:
 
 buildPythonPackage rec {
   pname = "nuitka";
-  version = "1.1.5";
-  format = "setuptools";
+  version = "1.8.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Nuitka";
     repo = "Nuitka";
     rev = version;
-    hash = "sha256-8eWOcxATVS866nlN39b2VU1CuXAfcn0yQsDweHS2yDU=";
+    hash = "sha256-spa3V9KEjqmwnHSuxLLIu9hJk5PrRwNyOw72sfxBVKo=";
   };
 
-  nativeCheckInputs = [ vmprof ];
-  nativeBuildInputs = [ scons ];
-  propagatedBuildInputs = [ chrpath ];
+  nativeBuildInputs = [ setuptools ];
+  nativeCheckInputs = [ ccache  ];
 
-  postPatch = ''
-    patchShebangs tests/run-tests
-  '' + lib.optionalString stdenv.isLinux ''
-    substituteInPlace nuitka/plugins/standard/ImplicitImports.py --replace 'locateDLL("uuid")' '"${lib.getLib pkgs.util-linux}/lib/libuuid.so"'
-  '';
-
-  # We do not want any wrappers here.
-  postFixup = "";
+  propagatedBuildInputs = [
+    ordered-set
+    zstandard
+  ];
 
   checkPhase = ''
-    tests/run-tests
+    runHook preCheck
+
+    ${python3.interpreter} tests/basics/run_all.py search
+
+    runHook postCheck
   '';
 
-  # Problem with a subprocess (parts)
-  doCheck = false;
+  pythonImportsCheck = [ "nuitka" ];
 
   # Requires CPython
   disabled = isPyPy;
 
   meta = with lib; {
+    # tests fail with linker errors on darwin
+    broken = stdenv.isDarwin;
     description = "Python compiler with full language support and CPython compatibility";
     license = licenses.asl20;
     homepage = "https://nuitka.net/";
diff --git a/nixpkgs/pkgs/development/python-modules/oci/default.nix b/nixpkgs/pkgs/development/python-modules/oci/default.nix
index 34a79c198309..5101460704fd 100644
--- a/nixpkgs/pkgs/development/python-modules/oci/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oci/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "oci";
-  version = "2.112.4";
+  version = "2.113.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "oracle";
     repo = "oci-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ilYlG0bPoMlCs0D49ZJaDgh/xoY+qsHlfJKHPkepe9Q=";
+    hash = "sha256-Ui7/rD307fSdAPexZF9VU4NC9udjEGcFpjg/Ob6GVvo=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
index d62c8450cda4..5b7a0bc0f8f2 100644
--- a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
+++ b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
@@ -1,14 +1,14 @@
 { lib
 , fetchFromGitHub
 }: rec {
-  version = "3.5.1";
+  version = "3.6.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "openrazer";
     repo = "openrazer";
     rev = "v${version}";
-    hash = "sha256-6YU2tl17LpDZe9pQ1a+B2SGIhqGdwME3Db6umVz7RLc=";
+    hash = "sha256-bboTRZqJq5tKeBQuiEQAXxTHYvoldDQlwbfehjDA8EE=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/picosvg/default.nix b/nixpkgs/pkgs/development/python-modules/picosvg/default.nix
index d344fca85e59..f543b61b2bc9 100644
--- a/nixpkgs/pkgs/development/python-modules/picosvg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/picosvg/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , setuptools-scm
 , absl-py
 , lxml
@@ -20,17 +19,6 @@ buildPythonPackage rec {
     hash = "sha256-jG1rfamegnX8GXDwqkGFBFzUeycRLDObJvGbxNk6OpM=";
   };
 
-  patches = [
-    # see https://github.com/googlefonts/picosvg/issues/299
-    # this patch fixed a failing test case after the update to skia-pathops 0.8
-    # as soon as skia-pathops in nixpkgs is updated to 0.8, this patch should be removed
-    (fetchpatch {
-      url = "https://github.com/googlefonts/picosvg/commit/4e971ed6cd9afb412b2845d29296a0c24f086562.patch";
-      hash = "sha256-OZEipNPCSuuqcy4XggBiuGv4HN604dI4N9wlznyAwF0=";
-      revert = true;
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools-scm
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix b/nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix
index f76f12708f83..da14d8a95799 100644
--- a/nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix
@@ -29,6 +29,6 @@ buildPythonPackage rec {
     description = "Python radix tree for IPv4 and IPv6 prefix matching";
     homepage = "https://github.com/SEKOIA-IO/py-radix";
     license = with licenses; [ isc bsdOriginal ];
-    maintainers = with maintainers; [ netali ];
+    maintainers = teams.wdz.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/py3status/default.nix b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
index f0f5484aeb56..d635a6a4a88c 100644
--- a/nixpkgs/pkgs/development/python-modules/py3status/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
@@ -6,6 +6,7 @@
 , dbus-python
 , fetchPypi
 , file
+, hatchling
 , i3
 , i3ipc
 , libnotify
@@ -24,12 +25,17 @@
 buildPythonPackage rec {
   pname = "py3status";
   version = "3.53";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-vZrzHERjAg9J004A2dAbq8hKmAUslCTaRdwEAe9JRqU=";
   };
 
+  nativeBuildInputs = [
+    hatchling
+  ];
+
   propagatedBuildInputs = [
     pytz
     requests
diff --git a/nixpkgs/pkgs/development/python-modules/pydantic-scim/default.nix b/nixpkgs/pkgs/development/python-modules/pydantic-scim/default.nix
index 06a08cb445af..9441bcc0eb84 100644
--- a/nixpkgs/pkgs/development/python-modules/pydantic-scim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydantic-scim/default.nix
@@ -2,22 +2,24 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pydantic
+, setuptools
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "pydantic-scim";
-  version = "0.0.7";
-  format = "setuptools";
+  version = "0.0.8";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "chalk-ai";
     repo = "pydantic-scim";
     rev = "refs/tags/v${version}";
-    hash = "sha256-F+uj7kSz6iSb0Vg00VfJ5GcxghooNDKa75S/ZgU7WgI=";
+    hash = "sha256-Hbc94v/+slXRGDKKbMui8WPwn28/1XcKvHkbLebWtj0=";
   };
 
   nativeBuildInputs = [
+    setuptools
     setuptools-scm
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pydata-sphinx-theme/default.nix b/nixpkgs/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
index 794ded6318e4..c9a3f9a409c2 100644
--- a/nixpkgs/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pydata-sphinx-theme";
-  version = "0.14.1";
+  version = "0.14.2";
 
   format = "wheel";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     dist = "py3";
     python = "py3";
     pname = "pydata_sphinx_theme";
-    hash = "sha256-xDYCe8dq4CPfTnBRfjuvkM3aWojuRrgYte8Mw4hKugQ=";
+    hash = "sha256-CYGEyTLDcQZzfhixUnt0GlPhkyfsBLXLxWQlml6ydlA=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pydbus/default.nix b/nixpkgs/pkgs/development/python-modules/pydbus/default.nix
index e804b2c85998..64dafa97db7c 100644
--- a/nixpkgs/pkgs/development/python-modules/pydbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydbus/default.nix
@@ -1,21 +1,36 @@
-{ lib, buildPythonPackage, fetchPypi, pygobject3, pythonAtLeast }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pygobject3
+}:
 
 buildPythonPackage rec {
   pname = "pydbus";
   version = "0.6.0";
+  pyproejct = true;
 
-  # Python 3.11 changed the API of the `inspect` module and pydbus was never
-  # updated to adapt; last commit was in 2018.
-  disabled = pythonAtLeast "3.11";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0b0gipvz7vcfa9ddmwq2jrx16d4apb0hdnl5q4i3h8jlzwp1c1s2";
+  src = fetchFromGitHub {
+    owner = "LEW21";
+    repo = "pydbus";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-F1KKXG+7dWlEbToqtF3G7wU0Sco7zH5NqzlL58jyDGw=";
   };
 
-  propagatedBuildInputs = [ pygobject3 ];
+  postPatch = ''
+    substituteInPlace pydbus/_inspect3.py \
+      --replace "getargspec" "getfullargspec"
+  '';
+
+  propagatedBuildInputs = [
+    pygobject3
+  ];
+
+  pythonImportsCheck = [
+    "pydbus"
+    "pydbus.generic"
+  ];
 
-  pythonImportsCheck = [ "pydbus" ];
+  doCheck = false; # requires a working dbus setup
 
   meta = {
     homepage = "https://github.com/LEW21/pydbus";
diff --git a/nixpkgs/pkgs/development/python-modules/pyeconet/default.nix b/nixpkgs/pkgs/development/python-modules/pyeconet/default.nix
index bc2125b8c6ec..d479564b763b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyeconet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyeconet/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyeconet";
-  version = "0.1.21";
+  version = "0.1.22";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "w1ll1am23";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-G+J61L9i5JIgPC4oZQavafjD81kue02r+GRdIazrzOw=";
+    hash = "sha256-R6PA/i35vo253J4yowe2fPRZEqStAqmm98k81KDHLQk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix b/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
index 2dea4630c575..2da0f2698685 100644
--- a/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   pname = "pyflakes";
   version = "3.1.0";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   format = "setuptools";
 
diff --git a/nixpkgs/pkgs/development/python-modules/pygls/default.nix b/nixpkgs/pkgs/development/python-modules/pygls/default.nix
index caf3e014eed6..ae10f84995a1 100644
--- a/nixpkgs/pkgs/development/python-modules/pygls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygls/default.nix
@@ -3,19 +3,17 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, setuptools-scm
 , lsprotocol
-, toml
 , typeguard
-, mock
+, poetry-core
 , pytest-asyncio
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pygls";
-  version = "1.0.2";
-  format = "setuptools";
+  version = "1.1.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
@@ -23,13 +21,11 @@ buildPythonPackage rec {
     owner = "openlawlibrary";
     repo = "pygls";
     rev = "refs/tags/v${version}";
-    hash = "sha256-z673NRlnudFyDjKoM+xCbMRTFwh+tjUf4BaNtjwvKx8=";
+    hash = "sha256-FOuBS/UJpkYbuIu193vkSpN/77gf+UWiS5f/t8BpAk4=";
   };
 
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
   nativeBuildInputs = [
-    setuptools-scm
-    toml
+    poetry-core
   ];
 
   propagatedBuildInputs = [
@@ -38,7 +34,6 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    mock
     pytest-asyncio
     pytestCheckHook
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyjnius/default.nix b/nixpkgs/pkgs/development/python-modules/pyjnius/default.nix
index 292c5f1c116a..e4cebb02c66d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyjnius/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyjnius/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyjnius";
-  version = "1.5.0";
+  version = "1.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZjRuJk8eIghrh8XINonqvP7xRQrGR2/YVr6kmLLhNz4=";
+    hash = "sha256-C32+PY9Yu7e+wwyFjz+nibzBwexJMZWOn3uH9F6hQDM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pymc/default.nix b/nixpkgs/pkgs/development/python-modules/pymc/default.nix
index 3120a5a844e9..5ca2b1ce9395 100644
--- a/nixpkgs/pkgs/development/python-modules/pymc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymc/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pymc";
-  version = "5.9.0";
+  version = "5.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pymc-devs";
     repo = "pymc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-iaX1+SHGAJ9V2Jv76as5BcL5DcxURwX3aGa+R9YVtXY=";
+    hash = "sha256-yY8W3B1yqj0oOkR6+nMbFgCFmTStXkePWnEYPHI8Zto=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pymelcloud/default.nix b/nixpkgs/pkgs/development/python-modules/pymelcloud/default.nix
index 079c7e31f140..ad4e529c528a 100644
--- a/nixpkgs/pkgs/development/python-modules/pymelcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymelcloud/default.nix
@@ -26,6 +26,8 @@ buildPythonPackage rec {
     aiohttp
   ];
 
+  doCheck = pythonOlder "3.11"; # asynctest is unsupported on python3.11
+
   nativeCheckInputs = [
     asynctest
     pytest-asyncio
diff --git a/nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix b/nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix
index 98cbf453e554..f0930c8c54c0 100644
--- a/nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pymongo-inmemory";
-  version = "0.3.1";
+  version = "0.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "kaizendorks";
     repo = "pymongo_inmemory";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1v36cI6JjDZA/uJE85NSMNnoyKI1VCgDrymfnCkpVqU=";
+    hash = "sha256-h6/yKvAHqvw0L3Z1+PUQi36Ja6yvFiaX7Cn5Ypcg1Zs=";
   };
 
   postPatch = ''
@@ -48,6 +48,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTestPaths = [
+    # new test with insufficient monkey patching, try to remove on next bump
+    "tests/unit/test_mongod.py"
+  ];
+
   preCheck = ''
     export HOME="$(mktemp -d)"
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/pyocd/default.nix b/nixpkgs/pkgs/development/python-modules/pyocd/default.nix
index ecc92bc3bd38..19980b7c0ca2 100644
--- a/nixpkgs/pkgs/development/python-modules/pyocd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyocd/default.nix
@@ -5,14 +5,19 @@
 , capstone
 , cmsis-pack-manager
 , colorama
+, importlib-metadata
+, importlib-resources
 , intelhex
 , intervaltree
+, lark
 , natsort
 , prettytable
 , pyelftools
 , pylink-square
 , pyusb
 , pyyaml
+, setuptools
+, setuptools-scm
 , typing-extensions
 , stdenv
 , hidapi
@@ -21,11 +26,12 @@
 
 buildPythonPackage rec {
   pname = "pyocd";
-  version = "0.35.1";
+  version = "0.36.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-AugIT007JtTXx0cLtHD9TtxsK/K6eB492U2k+EVxyXU=";
+    hash = "sha256-k3eCrMna/wVNUPt8b3iM2UqE+A8LhfJarKuZ3Jgihkg=";
   };
 
   patches = [
@@ -37,12 +43,25 @@ buildPythonPackage rec {
     })
   ];
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "libusb-package>=1.0,<2.0" ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     capstone
     cmsis-pack-manager
     colorama
+    importlib-metadata
+    importlib-resources
     intelhex
     intervaltree
+    lark
     natsort
     prettytable
     pyelftools
@@ -54,19 +73,19 @@ buildPythonPackage rec {
     hidapi
   ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
-
-  pythonImportsCheck = [ "pyocd" ];
+  pythonImportsCheck = [
+    "pyocd"
+  ];
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-        --replace "libusb-package>=1.0,<2.0" "" \
-        --replace "pylink-square>=0.11.1,<1.0" "pylink-square>=0.11.1,<2.0"
-  '';
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   meta = with lib; {
+    changelog = "https://github.com/pyocd/pyOCD/releases/tag/v${version}";
     description = "Python library for programming and debugging Arm Cortex-M microcontrollers";
-    homepage = "https://pyocd.io/";
+    downloadPage = "https://github.com/pyocd/pyOCD";
+    homepage = "https://pyocd.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ frogamic sbruder ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyocr/default.nix b/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
index fb82fc05300f..8dc1ee0f8780 100644
--- a/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
@@ -7,12 +7,15 @@
 , isPy3k
 , substituteAll
 , pytestCheckHook
+, setuptools
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "pyocr";
-  version = "0.8.3";
+  version = "0.8.5";
   disabled = !isPy3k;
+  format = "pyproject";
 
   # Don't fetch from PYPI because it doesn't contain tests.
   src = fetchFromGitLab {
@@ -21,7 +24,7 @@ buildPythonPackage rec {
     owner = "OpenPaperwork";
     repo = "pyocr";
     rev = version;
-    hash = "sha256-gIn50H9liQcTb7SzoWnBwm5LTvkr+R+5OPvITls1B/w=";
+    hash = "sha256-gE0+qbHCwpDdxXFY+4rjVU2FbUSfSVrvrVMcWUk+9FU=";
   };
 
   patches = [
@@ -31,18 +34,17 @@ buildPythonPackage rec {
     })
   ];
 
-  # see the logic in setup.py
-  ENABLE_SETUPTOOLS_SCM = "0";
-  preConfigure = ''
-    echo 'version = "${version}"' > src/pyocr/_version.py
-  '';
+  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   propagatedBuildInputs = [ pillow ];
 
+  nativeBuildInputs = [ setuptools setuptools-scm ];
+
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     inherit (src.meta) homepage;
+    changelog = "https://gitlab.gnome.org/World/OpenPaperwork/pyocr/-/blob/${version}/ChangeLog";
     description = "A Python wrapper for Tesseract and Cuneiform";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ symphorien ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyocr/paths.patch b/nixpkgs/pkgs/development/python-modules/pyocr/paths.patch
index d49060739737..c3c802c20649 100644
--- a/nixpkgs/pkgs/development/python-modules/pyocr/paths.patch
+++ b/nixpkgs/pkgs/development/python-modules/pyocr/paths.patch
@@ -1,4 +1,4 @@
-commit c4bac00441363fcaeb074682d8226ca523614ea2
+commit cfc05af26b571e9ca09e9c709c0fb8934e9e46dd
 Author: Guillaume Girol <symphorien+git@xlumurb.eu>
 Date:   Sat Aug 20 17:48:01 2022 +0200
 
@@ -25,7 +25,7 @@ index 2e5b717..35647e2 100644
  LANGUAGES_LINE_PREFIX = "Supported languages: "
  LANGUAGES_SPLIT_RE = re.compile("[^a-z]")
 diff --git a/src/pyocr/libtesseract/tesseract_raw.py b/src/pyocr/libtesseract/tesseract_raw.py
-index 2002614..9ebea5c 100644
+index 1edec8c..434a336 100644
 --- a/src/pyocr/libtesseract/tesseract_raw.py
 +++ b/src/pyocr/libtesseract/tesseract_raw.py
 @@ -2,7 +2,6 @@ import ctypes
@@ -51,7 +51,7 @@ index 2002614..9ebea5c 100644
  DPI_DEFAULT = 70
  
 -
--if getattr(sys, 'frozen', False):  # pragma: no cover
+-if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
 -    # Pyinstaller integration
 -    libnames += [os.path.join(sys._MEIPASS, "libtesseract-4.dll")]
 -    libnames += [os.path.join(sys._MEIPASS, "libtesseract-3.dll")]
@@ -125,10 +125,10 @@ index 0fe0d20..c1fdd27 100644
  
  TESSDATA_EXTENSION = ".traineddata"
  
-diff --git a/tests/tests_cuneiform.py b/tests/tests_cuneiform.py
-index 45b7f6a..95f55c6 100644
---- a/tests/tests_cuneiform.py
-+++ b/tests/tests_cuneiform.py
+diff --git a/tests/test_cuneiform.py b/tests/test_cuneiform.py
+index b76e93c..266f6b2 100644
+--- a/tests/test_cuneiform.py
++++ b/tests/test_cuneiform.py
 @@ -21,7 +21,7 @@ class TestCuneiform(BaseTest):
          # XXX is it useful?
          which.return_value = True
@@ -147,7 +147,7 @@ index 45b7f6a..95f55c6 100644
              stdout=subprocess.PIPE, stderr=subprocess.STDOUT
          )
  
-@@ -109,7 +109,7 @@ class TestCuneiformTxt(BaseTest):
+@@ -110,7 +110,7 @@ class TestCuneiformTxt(BaseTest):
          output = cuneiform.image_to_string(self.image)
          self.assertEqual(output, self._get_file_content("text").strip())
          popen.assert_called_once_with(
@@ -156,7 +156,7 @@ index 45b7f6a..95f55c6 100644
              stdin=subprocess.PIPE, stdout=subprocess.PIPE,
              stderr=subprocess.STDOUT
          )
-@@ -125,7 +125,7 @@ class TestCuneiformTxt(BaseTest):
+@@ -126,7 +126,7 @@ class TestCuneiformTxt(BaseTest):
                                             builder=self.builder)
          self.assertEqual(output, self._get_file_content("text").strip())
          popen.assert_called_once_with(
@@ -165,7 +165,7 @@ index 45b7f6a..95f55c6 100644
               "-"],
              stdin=subprocess.PIPE, stdout=subprocess.PIPE,
              stderr=subprocess.STDOUT
-@@ -142,7 +142,7 @@ class TestCuneiformTxt(BaseTest):
+@@ -143,7 +143,7 @@ class TestCuneiformTxt(BaseTest):
                                             builder=self.builder)
          self.assertEqual(output, self._get_file_content("text").strip())
          popen.assert_called_once_with(
@@ -174,7 +174,7 @@ index 45b7f6a..95f55c6 100644
              stdin=subprocess.PIPE, stdout=subprocess.PIPE,
              stderr=subprocess.STDOUT
          )
-@@ -173,7 +173,7 @@ class TestCuneiformTxt(BaseTest):
+@@ -174,7 +174,7 @@ class TestCuneiformTxt(BaseTest):
          output = cuneiform.image_to_string(image, builder=self.builder)
          self.assertEqual(output, self._get_file_content("text").strip())
          popen.assert_called_once_with(
@@ -183,7 +183,7 @@ index 45b7f6a..95f55c6 100644
              stdin=subprocess.PIPE, stdout=subprocess.PIPE,
              stderr=subprocess.STDOUT
          )
-@@ -227,7 +227,7 @@ class TestCuneiformWordBox(BaseTest):
+@@ -230,7 +230,7 @@ class TestCuneiformWordBox(BaseTest):
          output = cuneiform.image_to_string(self.image,
                                             builder=self.builder)
          popen.assert_called_once_with(
@@ -192,7 +192,7 @@ index 45b7f6a..95f55c6 100644
              stdin=subprocess.PIPE, stdout=subprocess.PIPE,
              stderr=subprocess.STDOUT
          )
-@@ -280,7 +280,7 @@ class TestCuneiformLineBox(BaseTest):
+@@ -284,7 +284,7 @@ class TestCuneiformLineBox(BaseTest):
          output = cuneiform.image_to_string(self.image,
                                             builder=self.builder)
          popen.assert_called_once_with(
@@ -201,11 +201,11 @@ index 45b7f6a..95f55c6 100644
              stdin=subprocess.PIPE, stdout=subprocess.PIPE,
              stderr=subprocess.STDOUT
          )
-diff --git a/tests/tests_libtesseract.py b/tests/tests_libtesseract.py
-index a5d46d8..8b9e315 100644
---- a/tests/tests_libtesseract.py
-+++ b/tests/tests_libtesseract.py
-@@ -165,7 +165,8 @@ class TestLibTesseractRaw(BaseTest):
+diff --git a/tests/test_libtesseract.py b/tests/test_libtesseract.py
+index cc31a50..890c02c 100644
+--- a/tests/test_libtesseract.py
++++ b/tests/test_libtesseract.py
+@@ -167,7 +167,8 @@ class TestLibTesseractRaw(BaseTest):
              args = libtess.TessBaseAPIInit3.call_args[0]
              self.assertEqual(len(args), 3)
              self.assertEqual(args[0].value, self.handle)
@@ -215,7 +215,7 @@ index a5d46d8..8b9e315 100644
              self.assertEqual(args[2].value, lang.encode() if lang else None)
  
              self.assertEqual(
-@@ -201,7 +202,8 @@ class TestLibTesseractRaw(BaseTest):
+@@ -203,7 +204,8 @@ class TestLibTesseractRaw(BaseTest):
              args = libtess.TessBaseAPIInit3.call_args[0]
              self.assertEqual(len(args), 3)
              self.assertEqual(args[0].value, self.handle)
@@ -225,11 +225,11 @@ index a5d46d8..8b9e315 100644
              self.assertEqual(args[2].value, lang.encode() if lang else None)
  
              self.assertEqual(
-diff --git a/tests/tests_tesseract.py b/tests/tests_tesseract.py
-index 18d01ef..593cf94 100644
---- a/tests/tests_tesseract.py
-+++ b/tests/tests_tesseract.py
-@@ -36,7 +36,7 @@ class TestTesseract(BaseTest):
+diff --git a/tests/test_tesseract.py b/tests/test_tesseract.py
+index 823818f..2ee5fb4 100644
+--- a/tests/test_tesseract.py
++++ b/tests/test_tesseract.py
+@@ -37,7 +37,7 @@ class TestTesseract(BaseTest):
      def test_available(self, which):
          which.return_value = True
          self.assertTrue(tesseract.is_available())
@@ -238,7 +238,7 @@ index 18d01ef..593cf94 100644
  
      @patch("subprocess.Popen")
      def test_version_error(self, popen):
-@@ -162,7 +162,7 @@ class TestTesseract(BaseTest):
+@@ -163,7 +163,7 @@ class TestTesseract(BaseTest):
          for lang in ("eng", "fra", "jpn", "osd"):
              self.assertIn(lang, langs)
          popen.assert_called_once_with(
@@ -247,7 +247,7 @@ index 18d01ef..593cf94 100644
              startupinfo=None, creationflags=0,
              stdout=subprocess.PIPE, stderr=subprocess.STDOUT
          )
-@@ -177,7 +177,7 @@ class TestTesseract(BaseTest):
+@@ -178,7 +178,7 @@ class TestTesseract(BaseTest):
          self.assertEqual(te.exception.status, 1)
          self.assertEqual("unable to get languages", te.exception.message)
          popen.assert_called_once_with(
@@ -256,7 +256,7 @@ index 18d01ef..593cf94 100644
              startupinfo=None, creationflags=0,
              stdout=subprocess.PIPE, stderr=subprocess.STDOUT
          )
-@@ -254,7 +254,7 @@ class TestTesseract(BaseTest):
+@@ -255,7 +255,7 @@ class TestTesseract(BaseTest):
          self.assertEqual(status, 0)
          self.assertEqual(error, message)
          popen.assert_called_once_with(
@@ -265,7 +265,7 @@ index 18d01ef..593cf94 100644
              cwd=tmpdir,
              startupinfo=None,
              creationflags=0,
-@@ -277,7 +277,7 @@ class TestTesseract(BaseTest):
+@@ -278,7 +278,7 @@ class TestTesseract(BaseTest):
          self.assertEqual(status, 0)
          self.assertEqual(error, message)
          popen.assert_called_with(
@@ -274,7 +274,7 @@ index 18d01ef..593cf94 100644
              cwd=tmpdir,
              startupinfo=None,
              creationflags=0,
-@@ -308,7 +308,7 @@ class TestTesseract(BaseTest):
+@@ -309,7 +309,7 @@ class TestTesseract(BaseTest):
              self.assertEqual(result["angle"], 90)
              self.assertEqual(result["confidence"], 9.30)
              popen.assert_called_once_with(
@@ -283,7 +283,7 @@ index 18d01ef..593cf94 100644
                  stdin=subprocess.PIPE,
                  shell=False,
                  startupinfo=None,
-@@ -344,7 +344,7 @@ class TestTesseract(BaseTest):
+@@ -345,7 +345,7 @@ class TestTesseract(BaseTest):
              self.assertEqual(result["angle"], 90)
              self.assertEqual(result["confidence"], 9.30)
              popen.assert_called_once_with(
@@ -292,7 +292,7 @@ index 18d01ef..593cf94 100644
                  stdin=subprocess.PIPE,
                  shell=False,
                  startupinfo=None,
-@@ -377,7 +377,7 @@ class TestTesseract(BaseTest):
+@@ -378,7 +378,7 @@ class TestTesseract(BaseTest):
              self.assertEqual(result["angle"], 90)
              self.assertEqual(result["confidence"], 9.30)
              popen.assert_called_once_with(
@@ -301,7 +301,7 @@ index 18d01ef..593cf94 100644
                   "--psm", "0", "-l", "osd"],
                  stdin=subprocess.PIPE,
                  shell=False,
-@@ -405,7 +405,7 @@ class TestTesseract(BaseTest):
+@@ -406,7 +406,7 @@ class TestTesseract(BaseTest):
              with self.assertRaises(tesseract.TesseractError) as te:
                  tesseract.detect_orientation(self.image)
              popen.assert_called_once_with(
@@ -310,7 +310,7 @@ index 18d01ef..593cf94 100644
                  stdin=subprocess.PIPE,
                  shell=False,
                  startupinfo=None,
-@@ -439,7 +439,7 @@ class TestTesseract(BaseTest):
+@@ -440,7 +440,7 @@ class TestTesseract(BaseTest):
              with self.assertRaises(tesseract.TesseractError) as te:
                  tesseract.detect_orientation(self.image)
              popen.assert_called_once_with(
@@ -319,7 +319,7 @@ index 18d01ef..593cf94 100644
                  stdin=subprocess.PIPE,
                  shell=False,
                  startupinfo=None,
-@@ -473,7 +473,7 @@ class TestTesseract(BaseTest):
+@@ -474,7 +474,7 @@ class TestTesseract(BaseTest):
              self.assertEqual(result["angle"], 90)
              self.assertEqual(result["confidence"], 9.30)
              popen.assert_called_once_with(
@@ -328,7 +328,7 @@ index 18d01ef..593cf94 100644
                  stdin=subprocess.PIPE,
                  shell=False,
                  startupinfo=None,
-@@ -506,7 +506,7 @@ class TestTesseract(BaseTest):
+@@ -507,7 +507,7 @@ class TestTesseract(BaseTest):
              self.assertEqual(result["angle"], 90)
              self.assertEqual(result["confidence"], 9.30)
              popen.assert_called_once_with(
@@ -337,7 +337,7 @@ index 18d01ef..593cf94 100644
                  stdin=subprocess.PIPE,
                  shell=False,
                  startupinfo=None,
-@@ -533,7 +533,7 @@ class TestTesseract(BaseTest):
+@@ -534,7 +534,7 @@ class TestTesseract(BaseTest):
              with self.assertRaises(tesseract.TesseractError) as te:
                  tesseract.detect_orientation(self.image)
              popen.assert_called_once_with(
@@ -346,7 +346,7 @@ index 18d01ef..593cf94 100644
                  stdin=subprocess.PIPE,
                  shell=False,
                  startupinfo=None,
-@@ -567,7 +567,7 @@ class TestTesseract(BaseTest):
+@@ -568,7 +568,7 @@ class TestTesseract(BaseTest):
              with self.assertRaises(tesseract.TesseractError) as te:
                  tesseract.detect_orientation(self.image)
              popen.assert_called_once_with(
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt/pyqt6-sip.nix b/nixpkgs/pkgs/development/python-modules/pyqt/pyqt6-sip.nix
index 106a439fbb57..f9b9bc308c80 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt/pyqt6-sip.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt/pyqt6-sip.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "pyqt6-sip";
-  version = "13.5.2";
+  version = "13.6.0";
 
   src = fetchPypi {
     pname = "PyQt6_sip";
     inherit version;
-    hash = "sha256-6/YmS2/toBujfTtgpLuHSTvbh75w97KlOEp6zUkC2I0=";
+    hash = "sha256-JIbhWIBxlD1PZle6CQltyf/9IyKtLDAEHnjqPwN7V3g=";
   };
 
   # There is no test code and the check phase fails with:
diff --git a/nixpkgs/pkgs/development/python-modules/pyscf/default.nix b/nixpkgs/pkgs/development/python-modules/pyscf/default.nix
index 5089e19c2264..784978b7ca47 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscf/default.nix
@@ -10,8 +10,7 @@
 , h5py
 , numpy
 , scipy
-, nose
-, nose-exclude
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -47,8 +46,7 @@ buildPythonPackage rec {
     scipy
   ];
 
-  nativeCheckInputs = [ nose nose-exclude ];
-
+  nativeCheckInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "pyscf" ];
   preCheck = ''
     # Set config used by tests to ensure reproducibility
@@ -57,53 +55,43 @@ buildPythonPackage rec {
     ulimit -s 20000
     export PYSCF_CONFIG_FILE=$(pwd)/pyscf/pyscf_config.py
   '';
-  # As defined for the PySCF CI at https://github.com/pyscf/pyscf/blob/master/.github/workflows/run_tests.sh
-  # minus some additionally numerically instable tests, that are sensitive to BLAS, FFTW, etc.
-  checkPhase = ''
-    runHook preCheck
 
-    nosetests pyscf/ -v \
-      --exclude-dir=examples --exclude-dir=pyscf/pbc/grad \
-      --exclude-dir=pyscf/x2c \
-      --exclude-dir=pyscf/adc \
-      --exclude-dir=pyscf/pbc/tdscf \
-      -e test_bz \
-      -e h2o_vdz \
-      -e test_mc2step_4o4e \
-      -e test_ks_noimport \
-      -e test_jk_hermi0 \
-      -e test_j_kpts \
-      -e test_k_kpts \
-      -e test_lda \
-      -e high_cost \
-      -e skip \
-      -e call_in_background \
-      -e libxc_cam_beta_bug \
-      -e test_finite_diff_rks_eph \
-      -e test_finite_diff_uks_eph \
-      -e test_finite_diff_roks_grad \
-      -e test_finite_diff_df_roks_grad \
-      -e test_frac_particles \
-      -e test_nosymm_sa4_newton \
-      -e test_pipek \
-      -e test_n3_cis_ewald \
-      -e test_veff \
-      -I test_kuccsd_supercell_vs_kpts\.py \
-      -I test_kccsd_ghf\.py \
-      -I test_h_.*\.py \
-      --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondTestSupercell3 \
-      --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondKSTestSupercell3 \
-      --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondTestSupercell3 \
-      --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondKSTestSupercell3 \
-      --exclude-test=pyscf/pbc/tdscf/test/test_krhf_slow_supercell.DiamondTestSupercell3 \
-      --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_hf.DiamondTestSupercell3 \
-      --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_ks.DiamondTestSupercell3 \
-      --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_hf.DiamondTestSupercell3 \
-      --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_ks.DiamondTestSupercell3 \
-      -I .*_slow.*py -I .*_kproxy_.*py -I test_proxy.py tdscf/*_slow.py gw/*_slow.py
+  # Numerically slightly off tests
+  disabledTests = [
+    "test_tdhf_singlet"
+    "test_ab_hf"
+    "test_ea"
+    "test_bz"
+    "h2o_vdz"
+    "test_mc2step_4o4e"
+    "test_ks_noimport"
+    "test_jk_hermi0"
+    "test_j_kpts"
+    "test_k_kpts"
+    "test_lda"
+    "high_cost"
+    "skip"
+    "call_in_background"
+    "libxc_cam_beta_bug"
+    "test_finite_diff_rks_eph"
+    "test_finite_diff_uks_eph"
+    "test_finite_diff_roks_grad"
+    "test_finite_diff_df_roks_grad"
+    "test_frac_particles"
+    "test_nosymm_sa4_newton"
+    "test_pipek"
+    "test_n3_cis_ewald"
+    "test_veff"
+    "test_collinear_kgks_gga"
+  ];
 
-    runHook postCheck
-  '';
+  pytestFlagsArray = [
+    "--ignore=pyscf/pbc/tdscf"
+    "--ignore=pyscf/pbc/gw"
+    "--ignore-glob=*_slow.*py"
+    "--ignore-glob=*_kproxy_.*py"
+    "--ignore-glob=test_proxy.py"
+  ];
 
   meta = with lib; {
     description = "Python-based simulations of chemistry framework";
diff --git a/nixpkgs/pkgs/development/python-modules/pysequoia/default.nix b/nixpkgs/pkgs/development/python-modules/pysequoia/default.nix
index ffc7486cf20a..4e48f1c49dd1 100644
--- a/nixpkgs/pkgs/development/python-modules/pysequoia/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysequoia/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchFromGitLab
+, fetchPypi
 , pkg-config
 , rustPlatform
 , cargo
@@ -11,24 +11,23 @@
 , pcsclite
 , stdenv
 , darwin
+, libiconv
 }:
 
 buildPythonPackage rec {
   pname = "pysequoia";
-  version = "0.1.14";
+  version = "0.1.20";
   format = "pyproject";
 
-  src = fetchFromGitLab {
-    owner = "sequoia-pgp";
-    repo = "pysequoia";
-    rev = "v${version}";
-    hash = "sha256-63kUUxZTG33cB/IiD4AiDpLOI6Uew/fETgqhaGc7zp0=";
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-KavsLp17e4ckX11B0pefiQ1Hma/O9x0VY/uVPiJm4Fs=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-S/j3bGgU46nvVQFs35ih05teVEIJrFN4Ryq4B7rLFDE=";
+    hash = "sha256-7Lw6gR6o2HJ/zyG4b0wz4nmU2AIIAhyK9zaQ6w+/RgE=";
   };
 
   nativeBuildInputs = [
@@ -48,14 +47,18 @@ buildPythonPackage rec {
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreFoundation
     darwin.apple_sdk.frameworks.Security
+    libiconv
   ];
 
   pythonImportsCheck = [ "pysequoia" ];
 
   meta = with lib; {
     description = "This library provides OpenPGP facilities in Python through the Sequoia PGP library";
+    downloadPage = "https://codeberg.org/wiktor/pysequoia";
     homepage = "https://sequoia-pgp.gitlab.io/pysequoia";
     license = licenses.asl20;
     maintainers = with maintainers; [ doronbehar ];
+    # Broken since the 0.1.20 update according to ofborg. The errors are not clear...
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyside2/default.nix b/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
index 151efb65895e..7670b443318b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
@@ -17,11 +17,11 @@
 disabledIf (pythonAtLeast "3.11") (
 stdenv.mkDerivation rec {
   pname = "pyside2";
-  version = "5.15.10";
+  version = "5.15.11";
 
   src = fetchurl {
     url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-opensource-src-${version}.tar.xz";
-    sha256 = "sha256-KvaR02E6Qfg6YEObRlaPwsaW2/rkL3zXsHFS0RXq0zo=";
+    sha256 = "sha256-2lZ807eFTSegtK/j6J3osvmLem1XOTvlbx/BP3cPryk=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix b/nixpkgs/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
index 4461c02c8cab..e6b55788735a 100644
--- a/nixpkgs/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-elasticsearch";
-  version = "1.0.7";
+  version = "1.0.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-elasticsearch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qvWrMucaSx7LltWYru30qVPDTVHtuqf8tKGFL+Fl8fU=";
+    hash = "sha256-OZaUKEEvgEIukEcAHB9ci/XWCU+h1CvQTU3gwWBOBkY=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pytapo/default.nix b/nixpkgs/pkgs/development/python-modules/pytapo/default.nix
index f27757b4784e..b0893b5d204e 100644
--- a/nixpkgs/pkgs/development/python-modules/pytapo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytapo/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pytapo";
-  version = "3.2.14";
+  version = "3.2.18";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-V/D+eE6y1kCMZmp9rIcvS/wdcSyW3mYWEJqpCb74NtY=";
+    hash = "sha256-z3HD7sjDg8dMNpd93PiN+nSzKTVCw+OJnfKX07e1+sg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix b/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
index 1d77af888020..77dd73e30155 100644
--- a/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pytesseract";
-  version = "0.3.12";
+  version = "0.3.13";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "madmaze";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-19eLgcvmEFGiyu6v/EzLG8w+jFQL/5rbfDaiQqAGq5g=";
+    hash = "sha256-gQMeck6ojlIwyiOCBBhzHHrjQfBMelVksVGd+fyxWZk=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix
index 212938df20b6..3ac626a3f997 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix
@@ -56,6 +56,12 @@ buildPythonPackage rec {
     "pytest_examples"
   ];
 
+  disabledTests = [
+    # Test fails with latest ruff v0.1.2
+    # See https://github.com/pydantic/pytest-examples/issues/26
+    "test_ruff_error"
+  ];
+
   meta = with lib; {
     description = "Pytest plugin for testing examples in docstrings and markdown files";
     homepage = "https://github.com/pydantic/pytest-examples";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
index f972070f53f2..428e0c5c3e01 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-flask";
-  version = "1.2.0";
+  version = "1.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Rv3mUvd3d78C3JEgWuxM4gzfKsu71mqRirkfXBRpPT0=";
+    hash = "sha256-WL4cl7Ibo8TUfgp2ketBAHdIUGw2v1EAT3jfEGkfqV4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix
index 5bb9224ac421..c989948afd8c 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-pylint";
-  version = "0.19.0";
+  version = "0.21.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2I6DwQI8ZBVIqew1Z3B87udhZjKphq8TNCbUp00GaTI=";
+    hash = "sha256-iHZLjh1c+hiAkkjgzML8BQNfCMNfCwIi3c/qHDxOVT4=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix b/nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix
index ccb013d14e54..1c65a6de3220 100644
--- a/nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pythonOlder
 
 # build
@@ -29,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "python-matter-server";
-  version = "3.7.0";
+  version = "4.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -38,18 +37,9 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "python-matter-server";
     rev = "refs/tags/${version}";
-    hash = "sha256-t++7jQreibGpJRjJawicxjFIye5X6R1dpFqiM6yvRf0=";
+    hash = "sha256-7MBQo4jzBU/n7gVdGzVHlQl8Vj3OjfK4gk1vhLQQUE0=";
   };
 
-  patches = [
-    # https://github.com/home-assistant-libs/python-matter-server/pull/379
-    (fetchpatch {
-      name = "relax-setuptools-dependency.patch";
-      url = "https://github.com/home-assistant-libs/python-matter-server/commit/1bbc945634db92ea081051645b03c3d9c358fb15.patch";
-      hash = "sha256-kTu1+IwDrcdqelyK/vfhxw8MQBis5I1jag7YTytKQhs=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
     wheel
diff --git a/nixpkgs/pkgs/development/python-modules/python-on-whales/default.nix b/nixpkgs/pkgs/development/python-modules/python-on-whales/default.nix
new file mode 100644
index 000000000000..c2484a8857dd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-on-whales/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pythonOlder
+, pydantic
+, requests
+, tqdm
+, typer
+}:
+
+buildPythonPackage rec {
+  pname = "python-on-whales";
+  version = "0.65.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "gabrieldemarmiesse";
+    repo = "python-on-whales";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-aFE4qeNMSxhHs7IAjYQYl15s4NkHH8balTV3N0obNPs=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    pydantic
+    requests
+    tqdm
+    typer
+  ];
+
+  doCheck = false;  # majority of tests require Docker and/or network access
+  pythonImportsCheck = [ "python_on_whales" ];
+
+  meta = with lib; {
+    description = "Docker client for Python, designed to be fun and intuitive";
+    homepage = "https://github.com/gabrieldemarmiesse/python-on-whales";
+    changelog = "https://github.com/gabrieldemarmiesse/python-on-whales/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix b/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
index 1d785987cff0..8a13ee5e8991 100644
--- a/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "python-rtmidi";
-  version = "1.5.6";
+  version = "1.5.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "python_rtmidi";
     inherit version;
-    hash = "sha256-sqCjmbtKXhpWR3eYr9QdAioYtelU9tD/krRbuZvuNxA=";
+    hash = "sha256-3vsaSyrob/OYwjLFPu2lVOJKSfZ96ELnnOuos8p3N00=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch-lightning/default.nix b/nixpkgs/pkgs/development/python-modules/pytorch-lightning/default.nix
index 9e0a7a2018db..15804b2c5b35 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch-lightning/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch-lightning/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "pytorch-lightning";
-  version = "2.0.9";
+  version = "2.1.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Lightning-AI";
     repo = "pytorch-lightning";
     rev = "refs/tags/${version}";
-    hash = "sha256-2HjdqC7JU28nVAJdaEkwmJOTfWBCqHcM1a1sHIfF3ME=";
+    hash = "sha256-gpY5pfvgciiQF5kDUui5UbxLlZ6X3mSNBNZWfpYD5Sc=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch-msssim/default.nix b/nixpkgs/pkgs/development/python-modules/pytorch-msssim/default.nix
new file mode 100644
index 000000000000..371ae7514aeb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytorch-msssim/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, torch
+}:
+
+buildPythonPackage rec {
+  pname = "pytorch-msssim";
+  version = "1.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "VainF";
+    repo = "pytorch-msssim";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-bghglwQhgByC7BqbDvImSvt6edKF55NLYEPjqmmSFH8=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    torch
+  ];
+
+  pythonImportsCheck = [ "pytorch_msssim" ];
+
+  # This test doesn't have (automatic) tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Fast and differentiable MS-SSIM and SSIM for pytorch";
+    homepage = "https://github.com/VainF/pytorch-msssim";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyversasense/default.nix b/nixpkgs/pkgs/development/python-modules/pyversasense/default.nix
index 40c2fac51577..908d9d37f7ba 100644
--- a/nixpkgs/pkgs/development/python-modules/pyversasense/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyversasense/default.nix
@@ -26,6 +26,8 @@ buildPythonPackage rec {
     aiohttp
   ];
 
+  doCheck = pythonOlder "3.11"; # asynctest unsupported on python3.11
+
   nativeCheckInputs = [
     asynctest
     pytest-asyncio
diff --git a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
index d238b86ed4ca..db2d65450f8e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.2.73";
+  version = "9.2.74";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-44ykNXMwKHfb5ZcYBstFThGR+YkFDbmItkPEyOKKDqc=";
+    hash = "sha256-49Vcm6JkIpOm+U1Q/BrTi8jiEWZdaNs77TaCMjOLpyw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
index 04df94d137ef..246f1ae55d2c 100644
--- a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools-scm
 , bottle
 , importlib-resources
 , proxy_tools
@@ -17,7 +18,7 @@
 buildPythonPackage rec {
   pname = "pywebview";
   version = "4.3.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
@@ -29,6 +30,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
+    setuptools-scm
     qt5.wrapQtAppsHook
   ];
 
@@ -48,6 +50,8 @@ buildPythonPackage rec {
     xvfb-run
   ];
 
+  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   checkPhase = ''
     # Cannot create directory /homeless-shelter/.... Error: FILE_ERROR_ACCESS_DENIED
     export HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/development/python-modules/reptor/default.nix b/nixpkgs/pkgs/development/python-modules/reptor/default.nix
index 8ff2d984a4b7..d48a84025e4c 100644
--- a/nixpkgs/pkgs/development/python-modules/reptor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reptor/default.nix
@@ -30,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "reptor";
-  version = "0.5";
+  version = "0.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     owner = "Syslifters";
     repo = "reptor";
     rev = "refs/tags/${version}";
-    hash = "sha256-TN4ti860bMegxsCMhSxVQwiTLCB9nl+CJ+xDzJQcRuE=";
+    hash = "sha256-d76Hsf+leJKYOh7k/RVuo6adfjMW6yAYt+vh7KNh7sA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
index 1594d9296f3d..bc4ea00f055c 100644
--- a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "2023.9.2";
+  version = "2023.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZMzOrTKoFkIt2a4daTxdY1TZn2SuJsVjiPHY4ceFgyE=";
+    hash = "sha256-xA8jjMyf7/8/bQnUtXYqvWyRO6QuGjKJdrVNA4kBuDU=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/scooby/default.nix b/nixpkgs/pkgs/development/python-modules/scooby/default.nix
index 5a858e22326b..f1f6716c917f 100644
--- a/nixpkgs/pkgs/development/python-modules/scooby/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scooby/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "scooby";
-  version = "0.7.4";
+  version = "0.9.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "banesullivan";
     repo = "scooby";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BgQwsgAYtRgxxjo7NHbgNME1maoZQpocGGBW7Vddr+o=";
+    hash = "sha256-x6GPRo0OuXJtN41urviY0joZKzq0SQjUdRBpIylgcXY=";
   };
 
   nativeBuildInputs = [
@@ -54,6 +54,8 @@ buildPythonPackage rec {
     "test_tracking"
     "test_import_os_error"
     "test_import_time"
+    # TypeError: expected str, bytes or os.PathLike object, not list
+    "test_cli"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/spacy-transformers/default.nix b/nixpkgs/pkgs/development/python-modules/spacy-transformers/default.nix
index 6a34745848d1..123b1a2c508d 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy-transformers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy-transformers/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "spacy-transformers";
-  version = "1.3.0";
+  version = "1.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vxzDGLa+LoKnLpaqG7kGLfSLxqQdW+9AXw2YzBAz0UY=";
+    hash = "sha256-xfUePKLmR1Arhs0c1ZNjca6klJdGL0o2DdGLsejE6zw=";
   };
 
   nativeBuildInputs = [
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   ];
 
   pythonRelaxDeps = [
+    "spacy"
     "transformers"
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/default.nix b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
index 944fef7909c1..ccbfef1568e8 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
@@ -29,6 +29,7 @@
 , typer
 , typing-extensions
 , wasabi
+, weasel
 , writeScript
 , nix
 , git
@@ -37,14 +38,14 @@
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "3.6.1";
-  format = "setuptools";
+  version = "3.7.2";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YyOphwauLVVhaUsDqLC1dRiHoAKQOkiU5orrKcxnIWY=";
+    hash = "sha256-zt9JJ78NP+x3OmzkjV0skb2wL+08fV7Ae9uHPxEm8aA=";
   };
 
   pythonRelaxDeps = [
@@ -77,9 +78,12 @@ buildPythonPackage rec {
     tqdm
     typer
     wasabi
+    weasel
   ] ++ lib.optionals (pythonOlder "3.8") [
     typing-extensions
-  ];  postPatch = ''
+  ];
+
+  postPatch = ''
     substituteInPlace setup.cfg \
       --replace "thinc>=8.1.8,<8.2.0" "thinc>=8.1.8"
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/lookups-data.nix b/nixpkgs/pkgs/development/python-modules/spacy/lookups-data.nix
index 7d440706acbe..70469761eddb 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/lookups-data.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/lookups-data.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, setuptools
+, pythonOlder
+, fetchFromGitHub
 , spacy
 , pytestCheckHook
 }:
@@ -11,10 +11,13 @@ buildPythonPackage rec {
   version = "1.0.5";
   format = "setuptools";
 
-  src = fetchPypi {
-    pname = "spacy_lookups_data";
-    inherit version;
-    hash = "sha256-b5NcgfFFvcyE/GEV9kh2QoXH/z6P8kYpUEaBTpba1jw=";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "explosion";
+    repo = "spacy-lookups-data";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-6sKZ+GgCjLWYnV96nub4xEUFh1qpPQpbnoxyOVrvcD0=";
   };
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/models.json b/nixpkgs/pkgs/development/python-modules/spacy/models.json
index 8c6987d95d91..0514c9e41971 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/models.json
+++ b/nixpkgs/pkgs/development/python-modules/spacy/models.json
@@ -1,458 +1,458 @@
 [
   {
     "pname": "ca_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "01wssrmfjnx2lycqbpjpvzpfymwhiy1336s1123y747q7klzic08",
+    "version": "3.7.0",
+    "sha256": "1hlrbrgiahj6jkap3hrhki6zk10wg7dpajxcp540darprl7w60vy",
     "license": "gpl3"
   },
   {
     "pname": "ca_core_news_md",
-    "version": "3.5.0",
-    "sha256": "0z8p2wqp1jsv9ipiqkw7c144nla2xgfwzijkwbb6qf4k2gdizzmq",
+    "version": "3.7.0",
+    "sha256": "0ygygvw8bs510dyz4k9sfmxxlqssmv566aac9k3xiip3k5lfgysi",
     "license": "gpl3"
   },
   {
     "pname": "ca_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "0kwifrwf8iaxpry7v453hf8vawlwqpqm9df364k4ai6bhcpqad3k",
+    "version": "3.7.0",
+    "sha256": "1cj53w9vzdb2xqjpprkhgrglm70g0vaw0308jxnd7nvgn6vfx09s",
     "license": "gpl3"
   },
   {
     "pname": "ca_core_news_trf",
-    "version": "3.5.0",
-    "sha256": "12vlgy6n2xmap1z8fsf44dbnrw69fbdipss88v9ivwffn6yy3mj8",
+    "version": "3.7.0",
+    "sha256": "1il0ak0wh4dlxxdddwz8a2vr6817cn5fwrflxwgcd25njx7w886g",
     "license": "gpl3"
   },
   {
     "pname": "da_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "1289r8qmzfzwyvsz3dvl6r6wrbr6s1jfw1nmb0bpybjzcp48nfnh",
+    "version": "3.7.0",
+    "sha256": "04bm53v7dpdlnlk39wppfir792jp2qq9kkw0zs9i0ki68sxh8giz",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "da_core_news_md",
-    "version": "3.5.0",
-    "sha256": "1i3vamzxnv6xfa1ky2zf6cb9c0blvm5rkfmif15kvgfkjbmhi7id",
+    "version": "3.7.0",
+    "sha256": "1c35avbhkx16icnqsp571nvilcra143kqjvnszd7j0xnnzn5iqyx",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "da_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "0bmbk6vnad3xqhg0jg8dhfhh75vyahsm16mn8ddzchhl7wm8axcc",
+    "version": "3.7.0",
+    "sha256": "1hlx9zgixv91x4xa489gnwm3qdghffk4fimg7mjncyjw1g9xskif",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "da_core_news_trf",
-    "version": "3.5.0",
-    "sha256": "0b8mxr1ajyw8ccm0khmcp4n3jcxl4syfrmiy9kzf3cp4hcrnqnxy",
+    "version": "3.7.0",
+    "sha256": "02hbg58ql1dcd7zdlgb959106inaqnvxphc2dmxf7myjr4si3w37",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "de_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "0l3sg853xfkab7mj41n370x37iksp79nrjp7s60hhajpfbl546a0",
+    "version": "3.7.0",
+    "sha256": "1aag695nygpbxrvvknlcic79hyfzdwcc2d9vjgzq2bc43zdf05a0",
     "license": "mit"
   },
   {
     "pname": "de_core_news_md",
-    "version": "3.5.0",
-    "sha256": "01z9bg59k4aw324dzwa3hlf8fg8yys70k6c3ih93if55svfc5xym",
+    "version": "3.7.0",
+    "sha256": "1qnq7yy38nw1pg8ysxjqyxd82yc3ncl148p90hil2njxg771g1hk",
     "license": "mit"
   },
   {
     "pname": "de_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1qlqiqadv8r44a2y6iwpf28khmixsnwm8pss6miwdn0k5xh4kqbp",
+    "version": "3.7.0",
+    "sha256": "0r0wgf044r0nl267m5dc3zp4cq5ml4b9i6gpkas1hhn708d5sjb1",
     "license": "mit"
   },
   {
     "pname": "de_dep_news_trf",
-    "version": "3.5.0",
-    "sha256": "0d5vkdz653yhqwykn39xm78vmxn9bcl5a9wh6hsvzhg9brffh2cn",
+    "version": "3.7.0",
+    "sha256": "05xca8gjpmn7dlj8jb93rv7r0s4wa3nq5h7rkmq6d7h7gy6zpz8f",
     "license": "mit"
   },
   {
     "pname": "el_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "1y0na4fz3jfsjh43prc76rmkc508vk42mi9mgahz7n7nwfgyxspj",
+    "version": "3.7.0",
+    "sha256": "0n7xk8kbqqis1fivsgvyfmhd6qj853wylrwjl9q352cvbv8zg6dk",
     "license": "cc-by-nc-sa-30"
   },
   {
     "pname": "el_core_news_md",
-    "version": "3.5.0",
-    "sha256": "10li1rklw2yjs5rhzm2cr2pa0x9wx504hamkyb2d9fkcq1vnj3ds",
+    "version": "3.7.0",
+    "sha256": "042vmymi40zgwxg87sfsvq7b9crigh6g9ai7cyz49spcqmvq2qd3",
     "license": "cc-by-nc-sa-30"
   },
   {
     "pname": "el_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1j728bmmavhhn22k6ppz29ck8ag5y4299jir4y0bjjhn1ghmxq4d",
+    "version": "3.7.0",
+    "sha256": "0apky61l3gh2dvfpqaj6vqql5g6sh4bp9i91y7zfgacqvf7jp67g",
     "license": "cc-by-nc-sa-30"
   },
   {
     "pname": "en_core_web_lg",
-    "version": "3.5.0",
-    "sha256": "0ib93cn1nv5wv39dpxxs68nzmwr3j6qdc5l71mp6hi74cy0jqwr9",
+    "version": "3.7.0",
+    "sha256": "192mhp5niixq0crqwwmp70g63wbahgr41dpmmjsdqf9189s7qswr",
     "license": "mit"
   },
   {
     "pname": "en_core_web_md",
-    "version": "3.5.0",
-    "sha256": "02w0kjsbzmnp17p7b7cs4lqzg37mbk0ygva7c4qfb312x4wyr9vg",
+    "version": "3.7.0",
+    "sha256": "1wy2kpsninpxwjbqavh963i12041a0av4wmrn8plvb73czp995dg",
     "license": "mit"
   },
   {
     "pname": "en_core_web_sm",
-    "version": "3.5.0",
-    "sha256": "09j61i5nrdy2amml3kij2xndqawha3dgdm7lg9f67422vpn8zlv3",
+    "version": "3.7.0",
+    "sha256": "01hps9i3v73prqfjrch0da0s38vhbvx0d73g3x1bkrmavan26bj7",
     "license": "mit"
   },
   {
     "pname": "en_core_web_trf",
-    "version": "3.5.0",
-    "sha256": "1rqb9p8khy1zy041gsc04b5v9l4v0pc6nqzn5lm5p85161k55c7c",
+    "version": "3.7.0",
+    "sha256": "1pnm63bk5k6g6kc5s8v5pwdahqgbh3rlm5mxq3gxk8my3cfkklpc",
     "license": "mit"
   },
   {
     "pname": "es_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "0zw6z8aygh9pzdws88iclgnp277v0nlklykmdkkhqs75acpckzkx",
+    "version": "3.7.0",
+    "sha256": "1qfadw61yjz1hkp5wldg5ncj50db0b3wvpcfklybij56r4ibz6f2",
     "license": "gpl3"
   },
   {
     "pname": "es_core_news_md",
-    "version": "3.5.0",
-    "sha256": "1b5xsidys6jhq9rnv0q38q3hck11jx4z3yvmka83cbdwvzkncaq3",
+    "version": "3.7.0",
+    "sha256": "1z9m6f2c3cbjrljdlywdd4c4qj4lky1rb3n20yav5zb9k7jbj3s4",
     "license": "gpl3"
   },
   {
     "pname": "es_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "169xg2xwn3rkhal9ygwrnkb9xzdgz4rz3419xr252zji34cr8d6a",
+    "version": "3.7.0",
+    "sha256": "07fm2bmiwkkia4v491dzkgb3dbp1qfh4j7iba2h4wv8yci6la3n4",
     "license": "gpl3"
   },
   {
     "pname": "es_dep_news_trf",
-    "version": "3.5.0",
-    "sha256": "1py98kc6dxx5a6v6pc7hpldd6jm5s2a8vwp7l7d2jxadh947ma12",
+    "version": "3.7.0",
+    "sha256": "1n5sk5jlj6gx4w2ka1ia93bmi4nm2cyfg7fbca2kvmsg6zw8hq27",
     "license": "gpl3"
   },
   {
     "pname": "fi_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "0j3r01a0yqgj8apfjv1wkblhqg86yp2nzxv51nf99pi2nmh81jzx",
+    "version": "3.7.0",
+    "sha256": "08lk2dgwm99nj2a355s682ar4xwg1av4z3r6qpwq72rkm2h8jkmm",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "fi_core_news_md",
-    "version": "3.5.0",
-    "sha256": "09qfzwyw6wfdmw1bgd1kfg1gdbmzal5z1r240djivxygzn6f1ixs",
+    "version": "3.7.0",
+    "sha256": "07hqjw6w8332zf3ki5pbrv7m1kc4y6j3f0czharvv0grr2sfvh84",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "fi_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1ly71cacy0gr62acvc3vl8dxh2czd6zkm7ijprisdblw17ik9yln",
+    "version": "3.7.0",
+    "sha256": "03bhh3z3r70km19p3x202g66hikfyh309hgb96sycb8lhfr737lk",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "fr_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "1zjf348c60xf35zaldgykrlskvrryxv9vdaz49xlwq9caw0yzyh4",
+    "version": "3.7.0",
+    "sha256": "02dv00w67alc1avwq93hara49va7mnsmmm2kww961p5a3k3ldz20",
     "license": "lgpllr"
   },
   {
     "pname": "fr_core_news_md",
-    "version": "3.5.0",
-    "sha256": "1ph768pv2brv94fzydw8d2daxypvy61zwbmi4hbalgaar62lglhl",
+    "version": "3.7.0",
+    "sha256": "184gxwgf980x3vsn45zycd3cr1mkl3r1vbf3hb5hrhs8xk3y1v34",
     "license": "lgpllr"
   },
   {
     "pname": "fr_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1vhamgrv7adk85i9b3s5bh6j0aw21rma5xcb3ggy9ay51jfmkzzm",
+    "version": "3.7.0",
+    "sha256": "1ifbazd9hs1fhy22hjqhwkq0bnnsr3km3ff60v8arkyq5vlprhdb",
     "license": "lgpllr"
   },
   {
     "pname": "fr_dep_news_trf",
-    "version": "3.5.0",
-    "sha256": "0ciyilnc5gx0f1qakim57pizj1dknm8l8gd72avmrmzg3z52mgl2",
+    "version": "3.7.0",
+    "sha256": "0shhlmyyd79bbvxf6dfr5r99lfhjcywvvrji67k2hxz4604q8bxv",
     "license": "lgpllr"
   },
   {
     "pname": "hr_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "1fvkzfi539fmp6jy3hjcrwvdxw5k6zc3h351s887xidlw3gs1kr3",
+    "version": "3.7.0",
+    "sha256": "1r8cdyawf6fdvx1xn1l470mx31lbx5cjpivlx1pvv9ckp71zp28z",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "hr_core_news_md",
-    "version": "3.5.0",
-    "sha256": "1mi6k9qjxbigrl2fa60blyyz8b54jda5hc1s96vn9rykg4rni8cr",
+    "version": "3.7.0",
+    "sha256": "1dzi6dxwjpbddc0rjqajj4k1c61sacyycwnjvy03h3aclxacqn53",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "hr_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1s22mx7y5h135ry5l49az30l7mw7fdrz53s4a9gaxfsp9rzs474g",
+    "version": "3.7.0",
+    "sha256": "0dmhv1fa46hi78jgv562v4x3mfl7svchs6kiz35s63ph9ik5r6f2",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "it_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "1z64s632wbjlqmnmppcnpf2pfrjbml30gbil7mk0qln2i2hrh0qq",
+    "version": "3.7.0",
+    "sha256": "0gwn6pf0rzbplahs2wnzp6379mmj066dqhijhq4ln4552fz4d1yx",
     "license": "cc-by-nc-sa-30"
   },
   {
     "pname": "it_core_news_md",
-    "version": "3.5.0",
-    "sha256": "055gj5ai4rda5yc8lkhmfcwpfm7yfzyl6v05xhziz8sh1x4z58kz",
+    "version": "3.7.0",
+    "sha256": "003w99glj5jgb6gfqygb4c5jljhc85ck6yqn49h9m8fa9vmaylhx",
     "license": "cc-by-nc-sa-30"
   },
   {
     "pname": "it_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1fw262m7bl3g31gz0jb6fxrd385p67q82wfrsff6z9daxi3pi6ip",
+    "version": "3.7.0",
+    "sha256": "0kng2w5xj1irz6c5d6vl4px9my1z41h8zfvf9b01rh9yvjmhfyzc",
     "license": "cc-by-nc-sa-30"
   },
   {
     "pname": "ko_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "1q314wb114ynkf455cm8jd9jsx3yb6y0rrgf820ww31jlk5jzaa9",
+    "version": "3.7.0",
+    "sha256": "0hxwkb1w58vb4g1162ry12a63hnj20q20n66xnlvc0r96ibj4fia",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "ko_core_news_md",
-    "version": "3.5.0",
-    "sha256": "0dy7kk4bvjl944vv2m4hcvppar7clwq28y2rk40i3022jbqh2nxq",
+    "version": "3.7.0",
+    "sha256": "1ai7cyk58c7rj0dy82l01w5r4fkp2cpnhcsarzas1ml0icnk1srm",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "ko_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1i5q8dpyfa2sy80hr81r6s9dqpawp36ni8slz035b0wd9sq3i73v",
+    "version": "3.7.0",
+    "sha256": "16m1lsikf8ghsazpdprd9fc4n3m8an9qzjbyjwyvwkr0f2p0nmph",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "lt_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "002xalsrf85vg4c3gmj1zaka1zfy7smxv2xpqkl00idiixc5822y",
+    "version": "3.7.0",
+    "sha256": "174p8i2lnwq324qcs85s3c0j7iyav12yk0i896l23khg9gyzkmlg",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "lt_core_news_md",
-    "version": "3.5.0",
-    "sha256": "0rd3jmy7d42q5vwgx5kdf24kzd333i5l6v7pjmc5qnq4vwhqr96j",
+    "version": "3.7.0",
+    "sha256": "1117sij5w4s297q5j6h210hafh2amm6pd9m9m7m3608rfwsvm9g8",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "lt_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "039ldh4wvlnkq7cfxahk0m9hvb90hh2x0dqsqygglbdflxibmia0",
+    "version": "3.7.0",
+    "sha256": "1j04apdc63c2b2namic4blhm9mk8inmr8ynid09mncljwskg0fjb",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "mk_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "11daxcyapaqskwmfxl57s3hbjaajk79khnafg4k7zshlqpdyvc3p",
+    "version": "3.7.0",
+    "sha256": "0fshypj08hvcbbqjfxkzyfs72p5rm5fw1pfclgln2y0whfap0lqx",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "mk_core_news_md",
-    "version": "3.5.0",
-    "sha256": "0iky995dql569vg1manz4gv65jgr01nlx0559fljmysiqhq8ax76",
+    "version": "3.7.0",
+    "sha256": "1il8pzfk2nd09hd8kmk5znf66ir4bsrp1ax7jaxghi76ggrbpzyx",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "mk_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1ghjpk6p5p19l4gichg361191i7xibp5zw0g1hqn87y0x12d20y3",
+    "version": "3.7.0",
+    "sha256": "1805hkkm3hjbzw8pg6q08p61bpjk5h13ldzpik0gb9wqw9f69dbp",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "nb_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "06pcfcy28r57n9dysjqx6py8r0awwfan4g5s97byl1486h77jkaz",
+    "version": "3.7.0",
+    "sha256": "1zqwp8a8d26mi94dkib5ahhkr9hawxx4vag4fhibfa6m0prpzh9h",
     "license": "mit"
   },
   {
     "pname": "nb_core_news_md",
-    "version": "3.5.0",
-    "sha256": "05vsaqw4x8swi4yamwlwg4rw7nj3bsyxdq8g5qjhcj0mjdabz6kj",
+    "version": "3.7.0",
+    "sha256": "1ilxscc6hnmiby7ip7kgx3aih9msqmg21iqakkwny3z1lnnly466",
     "license": "mit"
   },
   {
     "pname": "nb_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "030j0v1csn2q38sy7nfxkx60i8ga7mlkma2f99mlh739j1s4nxaz",
+    "version": "3.7.0",
+    "sha256": "1wrchw1rhlzrji5j46lpwzydiaxcywaglz0nvm4vk1np45r7l3dm",
     "license": "mit"
   },
   {
     "pname": "nl_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "0qcfka8ahcdv1y9lz4zsd1q6xlfxajf5qbymg9cabxxyqjzjqwys",
+    "version": "3.7.0",
+    "sha256": "1777sdmjcc7lnj0j26zf00ab7pr09v1220k47fq724cw9l0knin1",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "nl_core_news_md",
-    "version": "3.5.0",
-    "sha256": "1cl3vynhlgkby7cnda1sgxqi8vrcj5amplmm96xhq5nmb6z6b8jx",
+    "version": "3.7.0",
+    "sha256": "19g6hzljz0zi1fppl7c3w8gdak42af3f7z45cg12qyw7vnjl9988",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "nl_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "16dkiklayp7irc5hwf7qv4pjww6kjg5pd0say25niclrgxfn3482",
+    "version": "3.7.0",
+    "sha256": "0gcbb0vs5snif4j5a7z9ha2sj9jby0hnxbp0w5h73yxyg37fk8d4",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "pl_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "194mjgbph4xgf7xywwajb0p4l19ww2z2ln7jykhnn2gy3j5dm6pd",
+    "version": "3.7.0",
+    "sha256": "0glpd8lv7gwq3bryx32q84ny6pdvwrjm7lhxg9h2cdjrair8vx94",
     "license": "gpl3"
   },
   {
     "pname": "pl_core_news_md",
-    "version": "3.5.0",
-    "sha256": "0435glcxzw1axlq8dkqv0wn8nxgav0dpx3pzvx475avxfp4qm1rv",
+    "version": "3.7.0",
+    "sha256": "04qwfh3dam7advyysdcdak7vna5gvirns001zq09kxhj766bc2k9",
     "license": "gpl3"
   },
   {
     "pname": "pl_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1ifl01ncfdph32ij1kl8f74ksjw0xiyszabi6q6pskjmcwhfixp7",
+    "version": "3.7.0",
+    "sha256": "00wygnwjpvfgiccb643720691pxhcb4pnk3zjj35hv9gbbx6qb8c",
     "license": "gpl3"
   },
   {
     "pname": "pt_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "182bl598x65akb368fy2nf4qnq89a8n1hcj2g92n3jwhn6d1xfpw",
+    "version": "3.7.0",
+    "sha256": "1im0hgr6wd4sfsfb0ddnl2ad9pi1vs0vvr7rq3g14vda3x2f1rxy",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "pt_core_news_md",
-    "version": "3.5.0",
-    "sha256": "19h8nzx5qfmfcv97sqrzwlv0n45i5yqcngf855djc360mfp2hv69",
+    "version": "3.7.0",
+    "sha256": "0zpgxg3ass084qv4bvk9wz15ya92w6a7d2p9p24g49a530b8gd7y",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "pt_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "19raq2b6q6a3ipxfzg4mdhq2wff9di5ip2mzf48blrj2xp2rjxyg",
+    "version": "3.7.0",
+    "sha256": "0z64w8599xwjvxdmrdlr08yyk4a5174m4a39m3zivgib0b5jyvdq",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "ro_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "10dc7c94wm3mia3japcsplxsv708q30yrqjml68zrrm5awwk30a7",
+    "version": "3.7.0",
+    "sha256": "1y45xhdjlhf8026vlsdrxvmiwj8p9hzlpdg628kdcdzmcrr23l5j",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "ro_core_news_md",
-    "version": "3.5.0",
-    "sha256": "1j8321nn8i13gy6n6rlcw7vsf2wnaf2ybiscwif3wrkzvb07113b",
+    "version": "3.7.0",
+    "sha256": "0jw71lav2fim48ff34mf137dsnn3arac555b9rf4flamiy8xg7y6",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "ro_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "117dyvkdgfrymh8qvdcfrcc6s8pcbnyzg83sib4vjv0nxxfp2xl8",
+    "version": "3.7.0",
+    "sha256": "0r35hxm6dgk2fnwl79ss25g6lfkgrd1h24zf96ys2p3cppp2i167",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "ru_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "1zdlsvlhcfxg2nvcrqvjyx9qyzjl39xb482qqhn572bv89v35h76",
+    "version": "3.7.0",
+    "sha256": "02qnl0cfvx0m0icdbpn9zfsv39sp9k6sfdarzazhz7xnxzxib93q",
     "license": "mit"
   },
   {
     "pname": "ru_core_news_md",
-    "version": "3.5.0",
-    "sha256": "0nqlr2kpbznksh5djc669kcqc61i0ljiazn4z81dblfhxxhv692x",
+    "version": "3.7.0",
+    "sha256": "187lkkm04x1ylg3jzyhf9avzpj2jkb48n86i36hqi6iqdv6yhfd5",
     "license": "mit"
   },
   {
     "pname": "ru_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "0yb0gx8kl5w0f9pkii788vxv9alc0xb08gdfnim0g2givqa5p4fn",
+    "version": "3.7.0",
+    "sha256": "11mh1rd0q024xfagdqkly1n4nndksrlq650n51jl1x1pmzlsdgzl",
     "license": "mit"
   },
   {
     "pname": "sv_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "100rf8wv4nf679fvvrnvd67wlx5w5d755ssvk9g76gzalzxywrmz",
+    "version": "3.7.0",
+    "sha256": "05qaff8r3vs30zaxja1lgpibd12njp9ciq49zs26i6d4dqa18hdp",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "sv_core_news_md",
-    "version": "3.5.0",
-    "sha256": "0ll1i767xb63gqmarxqk7nwg1xn5wjjhrix17hjq03q7rms267mw",
+    "version": "3.7.0",
+    "sha256": "0c64lqm10zmy863gs5h3ghx7662c8g7iyapn2rjhmz6909d82yyl",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "sv_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1c0w85xn8lnx394qmmnv3px68w0pha7fxx0qlqa74r2mfi3sv6s7",
+    "version": "3.7.0",
+    "sha256": "1ik8b2nvxdalglwqg0zl4wbqnd2dyhdcy5hvxh40gi77rg2qd6kb",
     "license": "cc-by-sa-40"
   },
   {
     "pname": "uk_core_news_lg",
-    "version": "3.5.0",
-    "sha256": "0hl9xjnxslckc6wvfgkj30r3py8q95yj7mrxdb6m5gvknlq72kp2",
+    "version": "3.7.0",
+    "sha256": "1qbw16y3ha690fqq71w7r46n8mz7d8za2iw1lljpqpf49my408q1",
     "license": "mit"
   },
   {
     "pname": "uk_core_news_md",
-    "version": "3.5.0",
-    "sha256": "05mg719ra5khm61yr7xhfcsh3apl29s3h2wkq0v87gkyqn13812p",
+    "version": "3.7.0",
+    "sha256": "0znfyl8cdvxbxfhypwkjv84hcs6n457wh4j2cl1sfp9pgsd7bmzb",
     "license": "mit"
   },
   {
     "pname": "uk_core_news_sm",
-    "version": "3.5.0",
-    "sha256": "1dkbmjbyhf6vsr7c4m4njgi969sfhbdnp73skl3k206dign5qgnz",
+    "version": "3.7.0",
+    "sha256": "08scx97j87rrhyrg5smj9ydwmdhl81859qaqj2klgqqpykg0xwlc",
     "license": "mit"
   },
   {
     "pname": "uk_core_news_trf",
-    "version": "3.5.0",
-    "sha256": "02bhvcivalifrxd3vl118799wvg6hgykj31wwfdsgnq68lwc28fb",
+    "version": "3.7.0",
+    "sha256": "14s4xwr0qs8x3d2fca2m1nj6ksl82gggj2by7c817gii1bdvn47p",
     "license": "mit"
   },
   {
     "pname": "xx_ent_wiki_sm",
-    "version": "3.5.0",
-    "sha256": "042aszgyzbp5n5bn6lgk1m38zxfl1irbryid5fslgh19b19l8v3x",
+    "version": "3.7.0",
+    "sha256": "1k06aa8xsx2qcmd4lz02sfxmgif5nngni8dc4y0w0d4x88icdscn",
     "license": "mit"
   },
   {
     "pname": "xx_sent_ud_sm",
-    "version": "3.5.0",
-    "sha256": "08hqldksllz387d6h3ch95g6rb6ls329hqh0cxyglg9njw9sc97z",
+    "version": "3.7.0",
+    "sha256": "13fc4dmmmkanxaxabyx0sa2sh53p92jp3mj263pf31yh98kryxpw",
     "license": "cc-by-sa-30"
   },
   {
     "pname": "zh_core_web_lg",
-    "version": "3.5.0",
-    "sha256": "17z7g5my5lyp34prcdqzv6w3cgyb7h5gvq61iwbkzppv0n2kldz2",
+    "version": "3.7.0",
+    "sha256": "1kqdczq5id0sqnyg3sq5g8n7fcknz53srvd72qmz4wrymy5h81qa",
     "license": "mit"
   },
   {
     "pname": "zh_core_web_md",
-    "version": "3.5.0",
-    "sha256": "03qxsxdvxn8l11drzicp53jma6j54gxgi8bw53xvbqr9cajxbqva",
+    "version": "3.7.0",
+    "sha256": "03m5gnx47mcyx7sh1g3dgqnarvprdkvkyxibsli6yrnvx3vz434j",
     "license": "mit"
   },
   {
     "pname": "zh_core_web_sm",
-    "version": "3.5.0",
-    "sha256": "0n3ajnbiyr56vy0kplm53rb421cxlc12q5f9p5i7icyv14dy4kml",
+    "version": "3.7.0",
+    "sha256": "1x9y4z2883m21rsvv6sw71l1nva3j8an8csdsabs4y84kb5y2by2",
     "license": "mit"
   },
   {
     "pname": "zh_core_web_trf",
-    "version": "3.5.0",
-    "sha256": "0gc4nn7zsng80j2qn8f7y85akls87dng72jkxp9pldav7k8435nb",
+    "version": "3.7.0",
+    "sha256": "1y4c9z4vjywmpg61yxsyp80cmz5s3aa95car01wq3i42qj09bvm6",
     "license": "mit"
   }
 ]
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-thebe/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-thebe/default.nix
index d2e05c755a25..d6d150d6e92b 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-thebe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-thebe/default.nix
@@ -1,29 +1,42 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchPypi
+, hatch-vcs
+, hatchling
+, pythonOlder
 , sphinx
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-thebe";
-  version = "0.2.1";
-  format = "pyproject";
+  version = "0.3.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "f4c8c1542054f991b73fcb28c4cf21697e42aba2f83f22348c1c851b82766583";
+    inherit version;
+    pname = "sphinx_thebe";
+    hash = "sha256-xg2rG1m5LWouq41xGeh8BzBHDaYvPIS/bKdWkEh9BQU=";
   };
 
-  propagatedBuildInputs = [ sphinx ];
+  nativeBuildInputs = [
+    hatch-vcs
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    sphinx
+  ];
 
-  pythonImportsCheck = [ "sphinx_thebe" ];
+  pythonImportsCheck = [
+    "sphinx_thebe"
+  ];
 
   meta = with lib; {
     description = "Integrate interactive code blocks into your documentation with Thebe and Binder";
     homepage = "https://github.com/executablebooks/sphinx-thebe";
+    changelog = "https://github.com/executablebooks/sphinx-thebe/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ marsam ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/sqids/default.nix b/nixpkgs/pkgs/development/python-modules/sqids/default.nix
index a53be04df711..dc6befc17991 100644
--- a/nixpkgs/pkgs/development/python-modules/sqids/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqids/default.nix
@@ -8,22 +8,20 @@
 
 buildPythonPackage rec {
   pname = "sqids";
-  version = "0.3.0";
-  format = "pyproject";
+  version = "0.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qAY41kOp0m+mua/4bvVwuDW5p0EpwY675Ux3W1JsqbE=";
+    hash = "sha256-U9nVpRc9PIM1ZO+bcL3RGIfAdlUMf+uFw/SpPTAjdnA=";
   };
 
   nativeBuildInputs = [
     setuptools-scm
   ];
 
-  doCheck = true;
-
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/sqlobject/default.nix b/nixpkgs/pkgs/development/python-modules/sqlobject/default.nix
index 4054cfcacf98..6a4ea78b82e0 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlobject/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlobject/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "sqlobject";
-  version = "3.10.2";
+  version = "3.10.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "SQLObject";
     inherit version;
-    hash = "sha256-dW9IsIdOSnCG3thWhYwIsz0Oa5runnXD84S5ITPH3ww=";
+    hash = "sha256-pbXO+gXgKD2ycuG6RirEnQnGmBJpUkorptBrS4b8FS4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sshfs/default.nix b/nixpkgs/pkgs/development/python-modules/sshfs/default.nix
index f1b47d75b8c5..17378c8611a0 100644
--- a/nixpkgs/pkgs/development/python-modules/sshfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sshfs/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "sshfs";
-  version = "2023.7.0";
+  version = "2023.10.0";
 
   src = fetchFromGitHub {
     owner = "fsspec";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-XKBpB3ackquVKsdF8b/45Kaz5Y2ussOl0o0HkD+k9tM=";
+    hash = "sha256-6MueDHR+jZFDZg4zufEVhBtSwcgDd7KnW9gJp2hDu0A=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/syncer/default.nix b/nixpkgs/pkgs/development/python-modules/syncer/default.nix
index cd3bbf699de2..48345b94e421 100644
--- a/nixpkgs/pkgs/development/python-modules/syncer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/syncer/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "syncer";
-  version = "1.3.0";
+  version = "2.0.3";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "miyakogi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13y8jllix1ipkcg9lxa4nxk8kj24vivxfizf4d02cdrha9dw500v";
+    sha256 = "sha256-3EYWy6LuZ/3i+9d0QaclCqWMMw5O3WzhTY3LUL5iMso=";
   };
 
   # Tests require an not maintained package (xfail)
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix
index 677afda4f1ff..8e017cc55b0f 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix
@@ -54,7 +54,8 @@ let
     LIBTOOL = lib.optionalString stdenv.isDarwin "${cctools}/bin/libtool";
 
     fetchAttrs = {
-      sha256 = "sha256-XChXujA2XpnkybrraN3FIJA/QkxLCfX97id2jMFzFJk=";
+      # FIXME: tensorflow is currently marked as broken, update the hash once it's fixed
+      sha256 = "sha256-0ChXujA2XpnkybrraN3FIJA/QkxLCfX97id2jMFzFJk=";
     };
 
     buildAttrs = {
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/absl_py_argparse_flags.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/absl_py_argparse_flags.patch
new file mode 100644
index 000000000000..1b130e22662e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/absl_py_argparse_flags.patch
@@ -0,0 +1,11 @@
+diff -Naurd x/third_party/systemlibs/absl_py.absl.flags.BUILD y/third_party/systemlibs/absl_py.absl.flags.BUILD
+--- x/third_party/systemlibs/absl_py.absl.flags.BUILD	2023-09-20 06:02:15.079683729 +0000
++++ y/third_party/systemlibs/absl_py.absl.flags.BUILD	2023-09-20 06:04:58.491897303 +0000
+@@ -5,3 +5,7 @@
+ py_library(
+     name = "flags",
+ )
++
++py_library(
++    name = "argparse_flags",
++)
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/absl_to_std.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/absl_to_std.patch
new file mode 100644
index 000000000000..b834ec983c94
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/absl_to_std.patch
@@ -0,0 +1,389 @@
+diff -Naurd x/tensorflow/c/experimental/stream_executor/stream_executor.cc y/tensorflow/c/experimental/stream_executor/stream_executor.cc
+--- x/tensorflow/c/experimental/stream_executor/stream_executor.cc	2023-10-19 14:25:48.648646416 +0000
++++ y/tensorflow/c/experimental/stream_executor/stream_executor.cc	2023-10-19 14:29:11.700743574 +0000
+@@ -23,6 +23,7 @@
+ 
+ #include <string>
+ #include <utility>
++#include <optional>
+ 
+ #include "absl/functional/any_invocable.h"
+ #include "tensorflow/c/c_api_macros.h"
+@@ -275,17 +276,17 @@
+     stream_executor_->unified_memory_deallocate(&device_, mem);
+   }
+ 
+-  absl::optional<AllocatorStats> GetAllocatorStats() override {
++  std::optional<AllocatorStats> GetAllocatorStats() override {
+     SP_AllocatorStats c_stats{SP_ALLOCATORSTATS_STRUCT_SIZE};
+     TF_Bool has_stats =
+         stream_executor_->get_allocator_stats(&device_, &c_stats);
+     if (!has_stats) {
+-      return absl::nullopt;
++      return std::nullopt;
+     }
+     tsl::Status status = ValidateSPAllocatorStats(c_stats);
+     if (!status.ok()) {
+       LOG(ERROR) << status.message();
+-      return absl::nullopt;
++      return std::nullopt;
+     }
+     ::stream_executor::AllocatorStats stats;
+     stats.num_allocs = c_stats.num_allocs;
+diff -Naurd x/tensorflow/c/experimental/stream_executor/stream_executor_test.cc y/tensorflow/c/experimental/stream_executor/stream_executor_test.cc
+--- x/tensorflow/c/experimental/stream_executor/stream_executor_test.cc	2023-10-19 14:25:48.648646416 +0000
++++ y/tensorflow/c/experimental/stream_executor/stream_executor_test.cc	2023-10-19 14:29:11.700743574 +0000
+@@ -15,6 +15,7 @@
+ #include "tensorflow/c/experimental/stream_executor/stream_executor.h"
+ 
+ #include <utility>
++#include <optional>
+ 
+ #include "tensorflow/c/experimental/stream_executor/stream_executor_internal.h"
+ #include "tensorflow/c/experimental/stream_executor/stream_executor_test_util.h"
+@@ -239,7 +240,7 @@
+   };
+ 
+   StreamExecutor* executor = GetExecutor(0);
+-  absl::optional<AllocatorStats> optional_stats = executor->GetAllocatorStats();
++  std::optional<AllocatorStats> optional_stats = executor->GetAllocatorStats();
+   ASSERT_TRUE(optional_stats.has_value());
+   AllocatorStats stats = optional_stats.value();
+   ASSERT_EQ(stats.bytes_in_use, 123);
+diff -Naurd x/tensorflow/compiler/xla/stream_executor/allocator_stats.h y/tensorflow/compiler/xla/stream_executor/allocator_stats.h
+--- x/tensorflow/compiler/xla/stream_executor/allocator_stats.h	2023-10-19 14:25:55.064649379 +0000
++++ y/tensorflow/compiler/xla/stream_executor/allocator_stats.h	2023-10-19 14:29:11.700743574 +0000
+@@ -17,6 +17,7 @@
+ #define TENSORFLOW_COMPILER_XLA_STREAM_EXECUTOR_ALLOCATOR_STATS_H_
+ 
+ #include <string>
++#include <optional>
+ 
+ #include "absl/types/optional.h"
+ #include "tensorflow/compiler/xla/stream_executor/platform/port.h"
+diff -Naurd x/tensorflow/core/common_runtime/mkl_cpu_allocator.h y/tensorflow/core/common_runtime/mkl_cpu_allocator.h
+--- x/tensorflow/core/common_runtime/mkl_cpu_allocator.h	2023-10-19 14:25:58.996651199 +0000
++++ y/tensorflow/core/common_runtime/mkl_cpu_allocator.h	2023-10-19 14:29:11.700743574 +0000
+@@ -22,6 +22,7 @@
+ #ifdef INTEL_MKL
+ 
+ #include <cstdlib>
++#include <optional>
+ 
+ #include "tensorflow/core/common_runtime/bfc_allocator.h"
+ #include "tensorflow/core/common_runtime/pool_allocator.h"
+@@ -80,7 +81,7 @@
+     port::AlignedFree(ptr);
+   }
+ 
+-  absl::optional<AllocatorStats> GetStats() override {
++  std::optional<AllocatorStats> GetStats() override {
+     mutex_lock l(mutex_);
+     return stats_;
+   }
+@@ -242,7 +243,7 @@
+       large_size_allocator_->DeallocateRaw(ptr);
+     }
+   }
+-  absl::optional<AllocatorStats> GetStats() override {
++  std::optional<AllocatorStats> GetStats() override {
+     auto s_stats = small_size_allocator_->GetStats();
+     auto l_stats = large_size_allocator_->GetStats();
+ 
+diff -Naurd x/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.cc y/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.cc
+--- x/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.cc	2023-10-19 14:25:59.236651310 +0000
++++ y/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.cc	2023-10-19 14:29:11.700743574 +0000
+@@ -32,7 +32,7 @@
+   return sub_allocator_->Free(ptr, 0);
+ }
+ 
+-absl::optional<AllocatorStats> PluggableDeviceSimpleAllocator::GetStats() {
++std::optional<AllocatorStats> PluggableDeviceSimpleAllocator::GetStats() {
+   AllocatorStats stats_;
+   stats_.num_allocs = 0;
+   stats_.peak_bytes_in_use = 0;
+diff -Naurd x/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.h y/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.h
+--- x/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.h	2023-10-19 14:25:59.236651310 +0000
++++ y/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.h	2023-10-19 14:29:11.700743574 +0000
+@@ -19,6 +19,7 @@
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
++#include <optional>
+ 
+ #include "tensorflow/core/common_runtime/device/device_mem_allocator.h"
+ #include "tensorflow/core/platform/thread_annotations.h"
+@@ -37,7 +38,7 @@
+ 
+   bool TracksAllocationSizes() const override { return false; }
+   string Name() override { return "Simple allocator"; }
+-  absl::optional<AllocatorStats> GetStats() override;
++  std::optional<AllocatorStats> GetStats() override;
+ 
+   AllocatorMemoryType GetMemoryType() const override {
+     return sub_allocator_->GetMemoryType();
+diff -Naurd x/tensorflow/core/common_runtime/process_state.h y/tensorflow/core/common_runtime/process_state.h
+--- x/tensorflow/core/common_runtime/process_state.h	2023-10-19 14:25:59.076651236 +0000
++++ y/tensorflow/core/common_runtime/process_state.h	2023-10-19 14:29:11.704743576 +0000
+@@ -20,6 +20,7 @@
+ #include <map>
+ #include <unordered_map>
+ #include <vector>
++#include <optional>
+ 
+ #include "tensorflow/core/framework/allocator.h"
+ #include "tensorflow/core/framework/allocator_registry.h"
+@@ -144,7 +145,7 @@
+   size_t AllocatedSize(const void* p) const override {
+     return a_->AllocatedSize(p);
+   }
+-  absl::optional<AllocatorStats> GetStats() override { return a_->GetStats(); }
++  std::optional<AllocatorStats> GetStats() override { return a_->GetStats(); }
+   bool ClearStats() override { return a_->ClearStats(); }
+ 
+   AllocatorMemoryType GetMemoryType() const override {
+diff -Naurd x/tensorflow/core/common_runtime/step_stats_collector.cc y/tensorflow/core/common_runtime/step_stats_collector.cc
+--- x/tensorflow/core/common_runtime/step_stats_collector.cc	2023-10-19 14:25:59.112651253 +0000
++++ y/tensorflow/core/common_runtime/step_stats_collector.cc	2023-10-19 14:29:11.704743576 +0000
+@@ -15,6 +15,7 @@
+ #include "tensorflow/core/common_runtime/step_stats_collector.h"
+ 
+ #include <memory>
++#include <optional>
+ 
+ #include "tensorflow/core/common_runtime/costmodel_manager.h"
+ #include "tensorflow/core/framework/allocation_description.pb.h"
+@@ -175,7 +176,7 @@
+   memory->set_peak_bytes(std::get<1>(sizes));
+   memory->set_live_bytes(std::get<2>(sizes));
+ 
+-  absl::optional<AllocatorStats> stats = allocator->GetStats();
++  std::optional<AllocatorStats> stats = allocator->GetStats();
+   if (stats) {
+     memory->set_allocator_bytes_in_use(stats->bytes_in_use);
+   }
+diff -Naurd x/tensorflow/core/framework/allocator_test.cc y/tensorflow/core/framework/allocator_test.cc
+--- x/tensorflow/core/framework/allocator_test.cc	2023-10-19 14:25:59.524651443 +0000
++++ y/tensorflow/core/framework/allocator_test.cc	2023-10-19 14:29:11.704743576 +0000
+@@ -17,6 +17,7 @@
+ 
+ #include <algorithm>
+ #include <vector>
++#include <optional>
+ 
+ #include "tensorflow/core/framework/typed_allocator.h"
+ #include "tensorflow/core/platform/logging.h"
+@@ -33,7 +34,7 @@
+ 
+ static void CheckStats(Allocator* a, int64_t num_allocs, int64_t bytes_in_use,
+                        int64_t peak_bytes_in_use, int64_t largest_alloc_size) {
+-  absl::optional<AllocatorStats> stats = a->GetStats();
++  std::optional<AllocatorStats> stats = a->GetStats();
+   EXPECT_TRUE(stats);
+   if (!stats) {
+     return;
+@@ -255,7 +256,7 @@
+   EXPECT_EQ(e0.Name(), "MemoryAllocation")
+       << "XSpace: " << xspace.DebugString();
+   {
+-    absl::optional<std::string> bytes_allocated, peak_bytes_in_use,
++    std::optional<std::string> bytes_allocated, peak_bytes_in_use,
+         requested_bytes, allocation_bytes;
+     e0.ForEachStat([&](const ::tensorflow::profiler::XStatVisitor& stat) {
+       LOG(ERROR) << "STAT " << stat.Name() << ": " << stat.ToString();
+@@ -282,7 +283,7 @@
+   EXPECT_EQ(e1.Name(), "MemoryDeallocation")
+       << "XSpace: " << xspace.DebugString();
+   {
+-    absl::optional<std::string> bytes_allocated, peak_bytes_in_use,
++    std::optional<std::string> bytes_allocated, peak_bytes_in_use,
+         allocation_bytes;
+     e1.ForEachStat([&](const ::tensorflow::profiler::XStatVisitor& stat) {
+       if (stat.Name() == "bytes_allocated") {
+diff -Naurd x/tensorflow/core/framework/tracking_allocator_test.cc y/tensorflow/core/framework/tracking_allocator_test.cc
+--- x/tensorflow/core/framework/tracking_allocator_test.cc	2023-10-19 14:25:59.700651525 +0000
++++ y/tensorflow/core/framework/tracking_allocator_test.cc	2023-10-19 14:29:11.704743576 +0000
+@@ -16,6 +16,7 @@
+ #include "tensorflow/core/framework/tracking_allocator.h"
+ 
+ #include <unordered_map>
++#include <optional>
+ 
+ #include "tensorflow/core/framework/allocator.h"
+ #include "tensorflow/core/platform/logging.h"
+@@ -44,7 +45,7 @@
+     EXPECT_NE(size_map_.end(), iter);
+     return iter->second;
+   }
+-  absl::optional<AllocatorStats> GetStats() override { return absl::nullopt; }
++  std::optional<AllocatorStats> GetStats() override { return std::nullopt; }
+ 
+  private:
+   std::unordered_map<const void*, size_t> size_map_;
+@@ -58,7 +59,7 @@
+   }
+   void DeallocateRaw(void* ptr) override {}
+   bool TracksAllocationSizes() const override { return true; }
+-  absl::optional<AllocatorStats> GetStats() override { return absl::nullopt; }
++  std::optional<AllocatorStats> GetStats() override { return std::nullopt; }
+ };
+ 
+ TEST(TrackingAllocatorTest, SimpleNoTracking) {
+diff -Naurd x/tensorflow/core/grappler/clusters/single_machine.cc y/tensorflow/core/grappler/clusters/single_machine.cc
+--- x/tensorflow/core/grappler/clusters/single_machine.cc	2023-10-19 14:25:59.964651648 +0000
++++ y/tensorflow/core/grappler/clusters/single_machine.cc	2023-10-19 14:29:11.704743576 +0000
+@@ -17,6 +17,7 @@
+ 
+ #include <atomic>
+ #include <memory>
++#include <optional>
+ 
+ #include "tensorflow/cc/training/queue_runner.h"
+ #include "tensorflow/core/common_runtime/device.h"
+@@ -230,7 +231,7 @@
+       return Status(absl::StatusCode::kInvalidArgument,
+                     "Tracking allocation is not enabled.");
+     }
+-    absl::optional<AllocatorStats> stats = allocator->GetStats();
++    std::optional<AllocatorStats> stats = allocator->GetStats();
+     (*device_peak_memory)[device->name()] =
+         (stats ? stats->peak_bytes_in_use : 0);
+   }
+diff -Naurd x/tensorflow/core/kernels/stack.cc y/tensorflow/core/kernels/stack.cc
+--- x/tensorflow/core/kernels/stack.cc	2023-10-19 14:26:01.668652437 +0000
++++ y/tensorflow/core/kernels/stack.cc	2023-10-19 14:29:11.704743576 +0000
+@@ -18,6 +18,7 @@
+ #include <limits.h>
+ #include <atomic>
+ #include <vector>
++#include <optional>
+ 
+ #include "tensorflow/core/common_runtime/device.h"
+ #include "tensorflow/core/framework/device_base.h"
+@@ -245,7 +246,7 @@
+     DeviceContext* device_ctxt = ctx->op_device_context();
+     auto device = static_cast<tensorflow::Device*>(ctx->device());
+     Allocator* allocator = device->GetAllocator(alloc_attrs);
+-    absl::optional<AllocatorStats> stats = allocator->GetStats();
++    std::optional<AllocatorStats> stats = allocator->GetStats();
+     if (stats && *stats->bytes_limit &&
+         stats->bytes_in_use > (*stats->bytes_limit * kOccupancy)) {
+       // Asynchronously copy the tensor from GPU to CPU memory.
+diff -Naurd x/tensorflow/python/tfe_wrapper.cc y/tensorflow/python/tfe_wrapper.cc
+--- x/tensorflow/python/tfe_wrapper.cc	2023-10-19 14:26:10.716656639 +0000
++++ y/tensorflow/python/tfe_wrapper.cc	2023-10-19 14:29:11.708743578 +0000
+@@ -14,6 +14,7 @@
+ ==============================================================================*/
+ 
+ #include <memory>
++#include <optional>
+ 
+ #include "Python.h"
+ #include "absl/strings/match.h"
+@@ -691,7 +692,7 @@
+     tensorflow::AllocatorAttributes attrs;
+     tensorflow::Allocator* allocator = matched_device->GetAllocator(attrs);
+ 
+-    if (absl::optional<tensorflow::AllocatorStats> stats =
++    if (std::optional<tensorflow::AllocatorStats> stats =
+             allocator->GetStats()) {
+       return std::map<std::string, int64_t>{{"current", stats->bytes_in_use},
+                                             {"peak", stats->peak_bytes_in_use}};
+diff -Naurd x/tensorflow/tsl/framework/allocator.h y/tensorflow/tsl/framework/allocator.h
+--- x/tensorflow/tsl/framework/allocator.h	2023-10-19 14:26:15.884659044 +0000
++++ y/tensorflow/tsl/framework/allocator.h	2023-10-19 14:29:11.708743578 +0000
+@@ -216,7 +216,7 @@
+   }
+ 
+   // Fills in 'stats' with statistics collected by this allocator.
+-  virtual absl::optional<AllocatorStats> GetStats() { return absl::nullopt; }
++  virtual std::optional<AllocatorStats> GetStats() { return std::nullopt; }
+ 
+   // If implemented, clears the internal stats except for the `in_use` fields
+   // and sets the `peak_bytes_in_use` to be equal to the `bytes_in_use`. Returns
+diff -Naurd x/tensorflow/tsl/framework/bfc_allocator.cc y/tensorflow/tsl/framework/bfc_allocator.cc
+--- x/tensorflow/tsl/framework/bfc_allocator.cc	2023-10-19 14:26:15.900659052 +0000
++++ y/tensorflow/tsl/framework/bfc_allocator.cc	2023-10-19 14:29:11.708743578 +0000
+@@ -1205,7 +1205,7 @@
+   return md;
+ }
+ 
+-absl::optional<AllocatorStats> BFCAllocator::GetStats() {
++std::optional<AllocatorStats> BFCAllocator::GetStats() {
+   mutex_lock l(lock_);
+   return stats_;
+ }
+diff -Naurd x/tensorflow/tsl/framework/bfc_allocator.h y/tensorflow/tsl/framework/bfc_allocator.h
+--- x/tensorflow/tsl/framework/bfc_allocator.h	2023-10-19 14:26:15.900659052 +0000
++++ y/tensorflow/tsl/framework/bfc_allocator.h	2023-10-19 14:29:11.708743578 +0000
+@@ -22,6 +22,7 @@
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
++#include <optional>
+ 
+ #include "absl/container/flat_hash_set.h"
+ #include "tensorflow/tsl/framework/allocator.h"
+@@ -93,7 +94,7 @@
+ 
+   int64_t AllocationId(const void* ptr) const override;
+ 
+-  absl::optional<AllocatorStats> GetStats() override;
++  std::optional<AllocatorStats> GetStats() override;
+ 
+   bool ClearStats() override;
+ 
+diff -Naurd x/tensorflow/tsl/framework/cpu_allocator_impl.cc y/tensorflow/tsl/framework/cpu_allocator_impl.cc
+--- x/tensorflow/tsl/framework/cpu_allocator_impl.cc	2023-10-19 14:26:15.928659065 +0000
++++ y/tensorflow/tsl/framework/cpu_allocator_impl.cc	2023-10-19 14:29:11.708743578 +0000
+@@ -15,6 +15,7 @@
+ 
+ #include <algorithm>
+ #include <atomic>
++#include <optional>
+ 
+ #include "tensorflow/tsl/framework/allocator.h"
+ #include "tensorflow/tsl/framework/allocator_registry.h"
+@@ -145,8 +146,8 @@
+         /*level=*/tsl::profiler::TraceMeLevel::kInfo);
+   }
+ 
+-  absl::optional<AllocatorStats> GetStats() override {
+-    if (!cpu_allocator_collect_stats) return absl::nullopt;
++  std::optional<AllocatorStats> GetStats() override {
++    if (!cpu_allocator_collect_stats) return std::nullopt;
+     mutex_lock l(mu_);
+     return stats_;
+   }
+diff -Naurd x/tensorflow/tsl/framework/tracking_allocator.cc y/tensorflow/tsl/framework/tracking_allocator.cc
+--- x/tensorflow/tsl/framework/tracking_allocator.cc	2023-10-19 14:26:15.968659084 +0000
++++ y/tensorflow/tsl/framework/tracking_allocator.cc	2023-10-19 14:29:11.708743578 +0000
+@@ -152,7 +152,7 @@
+   }
+ }
+ 
+-absl::optional<AllocatorStats> TrackingAllocator::GetStats() {
++std::optional<AllocatorStats> TrackingAllocator::GetStats() {
+   return allocator_->GetStats();
+ }
+ 
+diff -Naurd x/tensorflow/tsl/framework/tracking_allocator.h y/tensorflow/tsl/framework/tracking_allocator.h
+--- x/tensorflow/tsl/framework/tracking_allocator.h	2023-10-19 14:26:15.968659084 +0000
++++ y/tensorflow/tsl/framework/tracking_allocator.h	2023-10-19 14:29:11.712743580 +0000
+@@ -17,6 +17,7 @@
+ #define TENSORFLOW_TSL_FRAMEWORK_TRACKING_ALLOCATOR_H_
+ 
+ #include <unordered_map>
++#include <optional>
+ 
+ #include "tensorflow/tsl/framework/allocator.h"
+ #include "tensorflow/tsl/lib/gtl/inlined_vector.h"
+@@ -66,7 +67,7 @@
+   size_t RequestedSize(const void* ptr) const override;
+   size_t AllocatedSize(const void* ptr) const override;
+   int64_t AllocationId(const void* ptr) const override;
+-  absl::optional<AllocatorStats> GetStats() override;
++  std::optional<AllocatorStats> GetStats() override;
+   bool ClearStats() override;
+ 
+   AllocatorMemoryType GetMemoryType() const override {
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/com_google_absl_add_log.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/com_google_absl_add_log.patch
new file mode 100644
index 000000000000..ebb2fb129c06
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/com_google_absl_add_log.patch
@@ -0,0 +1,166 @@
+diff -Naurd x/third_party/absl/system.absl.base.BUILD y/third_party/absl/system.absl.base.BUILD
+--- x/third_party/absl/system.absl.base.BUILD	2023-09-17 09:12:05.499753364 +0000
++++ y/third_party/absl/system.absl.base.BUILD	2023-09-17 09:16:01.200082822 +0000
+@@ -22,7 +22,12 @@
+ 
+ cc_library(
+     name = "raw_logging_internal",
+-    linkopts = ["-labsl_raw_logging_internal"],
++    linkopts = [
++        "-labsl_raw_logging_internal",
++        "-labsl_log_internal_conditions",
++        "-labsl_log_internal_message",
++        "-labsl_log_internal_nullguard",
++    ],
+     visibility = [
+         "//absl:__subpackages__",
+     ],
+diff -Naurd x/third_party/absl/system.absl.log.BUILD y/third_party/absl/system.absl.log.BUILD
+--- x/third_party/absl/system.absl.log.BUILD	1970-01-01 00:00:00.000000000 +0000
++++ y/third_party/absl/system.absl.log.BUILD	2023-09-17 09:12:11.795762177 +0000
+@@ -0,0 +1,134 @@
++load("@rules_cc//cc:defs.bzl", "cc_library")
++
++package(default_visibility = ["//visibility:public"])
++
++cc_library(
++    name = "absl_check",
++    deps = [
++    ],
++)
++
++cc_library(
++    name = "absl_log",
++    deps = [
++    ],
++)
++
++cc_library(
++    name = "check",
++    deps = [
++    ],
++)
++
++cc_library(
++    name = "die_if_null",
++    deps = [
++        ":log",
++        "//absl/base:config",
++        "//absl/base:core_headers",
++        "//absl/strings",
++    ],
++)
++
++cc_library(
++    name = "flags",
++    deps = [
++        ":globals",
++        "//absl/base:config",
++        "//absl/base:core_headers",
++        "//absl/base:log_severity",
++        "//absl/flags:flag",
++        "//absl/flags:marshalling",
++        "//absl/strings",
++    ],
++)
++
++cc_library(
++    name = "globals",
++    deps = [
++        "//absl/base:atomic_hook",
++        "//absl/base:config",
++        "//absl/base:core_headers",
++        "//absl/base:log_severity",
++        "//absl/hash",
++        "//absl/strings",
++    ],
++)
++
++cc_library(
++    name = "initialize",
++    deps = [
++        ":globals",
++        "//absl/base:config",
++        "//absl/time",
++    ],
++)
++
++cc_library(
++    name = "log",
++    deps = [
++    ],
++)
++
++cc_library(
++    name = "log_entry",
++    deps = [
++        "//absl/base:config",
++        "//absl/base:core_headers",
++        "//absl/base:log_severity",
++        "//absl/strings",
++        "//absl/time",
++        "//absl/types:span",
++    ],
++)
++
++cc_library(
++    name = "log_sink",
++    deps = [
++        ":log_entry",
++        "//absl/base:config",
++    ],
++)
++
++cc_library(
++    name = "log_sink_registry",
++    deps = [
++        ":log_sink",
++        "//absl/base:config",
++    ],
++)
++
++cc_library(
++    name = "log_streamer",
++    deps = [
++        ":absl_log",
++        "//absl/base:config",
++        "//absl/base:log_severity",
++        "//absl/strings",
++        "//absl/strings:internal",
++        "//absl/types:optional",
++        "//absl/utility",
++    ],
++)
++
++cc_library(
++    name = "scoped_mock_log",
++    deps = [
++        ":log_entry",
++        ":log_sink",
++        ":log_sink_registry",
++        "//absl/base:config",
++        "//absl/base:log_severity",
++        "//absl/base:raw_logging_internal",
++        "//absl/strings",
++        "@com_google_googletest//:gtest",
++    ],
++)
++
++cc_library(
++    name = "structured",
++    deps = [
++        "//absl/base:config",
++        "//absl/strings",
++    ],
++)
+diff -Naurd x/third_party/absl/workspace.bzl y/third_party/absl/workspace.bzl
+--- x/third_party/absl/workspace.bzl	2023-09-17 09:12:05.499753364 +0000
++++ y/third_party/absl/workspace.bzl	2023-09-17 09:12:11.795762177 +0000
+@@ -20,6 +20,7 @@
+         "flags",
+         "functional",
+         "hash",
++        "log",
+         "memory",
+         "meta",
+         "numeric",
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix
index 348f5197a9d6..ff95c847eae5 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, bazel_5, buildBazelPackage, isPy3k, lib, fetchFromGitHub, symlinkJoin
-, addOpenGLRunpath, fetchpatch
+{ stdenv, bazel_5, buildBazelPackage, lib, fetchFromGitHub, symlinkJoin
+, addOpenGLRunpath, fetchpatch, fetchzip, linkFarm
 # Python deps
 , buildPythonPackage, pythonOlder, python
 # Python libraries
-, numpy, tensorboard, absl-py
-, packaging, setuptools, wheel, keras, keras-preprocessing, google-pasta
+, numpy, tensorboard, abseil-cpp, absl-py
+, packaging, setuptools, wheel, keras-preprocessing, google-pasta
 , opt-einsum, astunparse, h5py
 , termcolor, grpcio, six, wrapt, protobuf-python, tensorflow-estimator-bin
 , dill, flatbuffers-python, portpicker, tblib, typing-extensions
 # Common deps
-, git, pybind11, which, binutils, glibcLocales, cython, perl, coreutils
+, git, pybind11, which, binutils, glibcLocales, cython, perl
 # Common libraries
 , jemalloc, mpi, gast, grpc, sqlite, boringssl, jsoncpp, nsync
-, curl, snappy, flatbuffers-core, lmdb-core, icu, double-conversion, libpng, libjpeg_turbo, giflib, protobuf-core
+, curl, snappy, flatbuffers-core, icu, double-conversion, libpng, libjpeg_turbo, giflib, protobuf-core
 # Upstream by default includes cuda support since tensorflow 1.15. We could do
 # that in nix as well. It would make some things easier and less confusing, but
 # it would also make the default tensorflow package unfree. See
@@ -53,7 +53,18 @@ let
     if cudaSupport then cudaPackages.backendStdenv
     else if originalStdenv.isDarwin then llvmPackages_11.stdenv
     else originalStdenv;
-  inherit (cudaPackages) cudatoolkit cudnn nccl;
+  inherit (cudaPackages) cudatoolkit nccl;
+  # use compatible cuDNN (https://www.tensorflow.org/install/source#gpu)
+  # cudaPackages.cudnn led to this:
+  # https://github.com/tensorflow/tensorflow/issues/60398
+  cudnn = cudaPackages.cudnn_8_6;
+  gentoo-patches = fetchzip {
+    url = "https://dev.gentoo.org/~perfinion/patches/tensorflow-patches-2.12.0.tar.bz2";
+    hash = "sha256-SCRX/5/zML7LmKEPJkcM5Tebez9vv/gmE4xhT/jyqWs=";
+  };
+  protobuf-extra = linkFarm "protobuf-extra" [
+    { name = "include"; path = protobuf-core.src; }
+  ];
 in
 
 assert cudaSupport -> cudatoolkit != null
@@ -99,7 +110,7 @@ let
 
   tfFeature = x: if x then "1" else "0";
 
-  version = "2.11.1";
+  version = "2.13.0";
   variant = lib.optionalString cudaSupport "-gpu";
   pname = "tensorflow${variant}";
 
@@ -208,14 +219,14 @@ let
       owner = "tensorflow";
       repo = "tensorflow";
       rev = "refs/tags/v${version}";
-      hash = "sha256-q59cUW6613byHk4LGl+sefO5czLSWxOrSyLbJ1pkNEY=";
+      hash = "sha256-Rq5pAVmxlWBVnph20fkAwbfy+iuBNlfFy14poDPd5h0=";
     };
 
     # On update, it can be useful to steal the changes from gentoo
     # https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-libs/tensorflow
 
     nativeBuildInputs = [
-      which pythonEnv cython perl protobuf-core
+      which pythonEnv cython perl protobuf-core protobuf-extra
     ] ++ lib.optional cudaSupport addOpenGLRunpath;
 
     buildInputs = [
@@ -225,6 +236,7 @@ let
       git
 
       # libs taken from system through the TF_SYS_LIBS mechanism
+      abseil-cpp
       boringssl
       curl
       double-conversion
@@ -236,7 +248,6 @@ let
       jsoncpp
       libjpeg_turbo
       libpng
-      lmdb-core
       (pybind11.overridePythonAttrs (_: { inherit stdenv; }))
       snappy
       sqlite
@@ -265,6 +276,7 @@ let
       "astor_archive"
       "astunparse_archive"
       "boringssl"
+      "com_google_absl"
       # Not packaged in nixpkgs
       # "com_github_googleapis_googleapis"
       # "com_github_googlecloudplatform_google_cloud_cpp"
@@ -284,7 +296,6 @@ let
       "icu"
       "jsoncpp_git"
       "libjpeg_turbo"
-      "lmdb"
       "nasm"
       "opt_einsum_archive"
       "org_sqlite"
@@ -328,6 +339,25 @@ let
     GCC_HOST_COMPILER_PREFIX = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin";
     GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin/cc";
 
+    patches = [
+      "${gentoo-patches}/0002-systemlib-Latest-absl-LTS-has-split-cord-libs.patch"
+      "${gentoo-patches}/0005-systemlib-Updates-for-Abseil-20220623-LTS.patch"
+      "${gentoo-patches}/0007-systemlibs-Add-well_known_types_py_pb2-target.patch"
+      # https://github.com/conda-forge/tensorflow-feedstock/pull/329/commits/0a63c5a962451b4da99a9948323d8b3ed462f461
+      (fetchpatch {
+        name = "fix-layout-proto-duplicate-loading.patch";
+        url = "https://raw.githubusercontent.com/conda-forge/tensorflow-feedstock/0a63c5a962451b4da99a9948323d8b3ed462f461/recipe/patches/0001-Omit-linking-to-layout_proto_cc-if-protobuf-linkage-.patch";
+        hash = "sha256-/7buV6DinKnrgfqbe7KKSh9rCebeQdXv2Uj+Xg/083w=";
+      })
+      ./com_google_absl_add_log.patch
+      ./absl_py_argparse_flags.patch
+      ./protobuf_python.patch
+      ./pybind11_protobuf_python_runtime_dep.patch
+      ./pybind11_protobuf_newer_version.patch
+    ] ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-darwin") [
+      ./absl_to_std.patch
+    ];
+
     postPatch = ''
       # bazel 3.3 should work just as well as bazel 3.1
       rm -f .bazelversion
@@ -395,18 +425,30 @@ let
     fetchAttrs = {
       sha256 = {
       x86_64-linux = if cudaSupport
-        then "sha256-lURiR0Ra4kynDXyfuONG+A7CpxnAsfKzIdFTExKzp1o="
-        else "sha256-lDvRgj+UlaneRGZOO9UVCb6uyxcbRJfUhABf/sgKPi0=";
-      aarch64-linux = "sha256-z2d45fqHz5HW+qkv3fR9hMg3sEwUzJfxF54vng85bHk=";
-      x86_64-darwin = "sha256-AAvuz8o6ZRkaSYMgaep74lDDQcxOupDCX4vRaK/jnCU=";
-      aarch64-darwin = "sha256-kexRSvfQqb92ZRuUqAO070RnUUBidAqghiA7Y8do9vc=";
+        then "sha256-5VFMNHeLrUxW5RTr6EhT3pay9nWJ5JkZTGirDds5QkU="
+        else "sha256-KzgWV69Btr84FdwQ5JI2nQEsqiPg1/+TWdbw5bmxXOE=";
+      aarch64-linux = "sha256-9btXrNHqd720oXTPDhSmFidv5iaZRLjCVX8opmrMjXk=";
+      x86_64-darwin = "sha256-gqb03kB0z2pZQ6m1fyRp1/Nbt8AVVHWpOJSeZNCLc4w=";
+      aarch64-darwin = "sha256-WdgAaFZU+ePwWkVBhLzjlNT7ELfGHOTaMdafcAMD5yo=";
       }.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
     };
 
     buildAttrs = {
       outputs = [ "out" "python" ];
 
+      # need to rebuild schemas since we use a different flatbuffers version
       preBuild = ''
+        (cd tensorflow/lite/schema;${flatbuffers-core}/bin/flatc --gen-object-api -c schema.fbs)
+        (cd tensorflow/lite/schema;${flatbuffers-core}/bin/flatc --gen-object-api -c conversion_metadata.fbs)
+        (cd tensorflow/lite/acceleration/configuration;${flatbuffers-core}/bin/flatc -o configuration.fbs --proto configuration.proto)
+        sed -i s,tflite.proto,tflite,g tensorflow/lite/acceleration/configuration/configuration.fbs/configuration.fbs
+        (cd tensorflow/lite/acceleration/configuration;${flatbuffers-core}/bin/flatc --gen-compare --gen-object-api -c configuration.fbs/configuration.fbs)
+        cp -r tensorflow/lite/acceleration/configuration/configuration.fbs tensorflow/lite/experimental/acceleration/configuration
+        (cd tensorflow/lite/experimental/acceleration/configuration;${flatbuffers-core}/bin/flatc -c configuration.fbs/configuration.fbs)
+        (cd tensorflow/lite/delegates/gpu/cl;${flatbuffers-core}/bin/flatc -c compiled_program_cache.fbs)
+        (cd tensorflow/lite/delegates/gpu/cl;${flatbuffers-core}/bin/flatc -I $NIX_BUILD_TOP/source -c serialization.fbs)
+        (cd tensorflow/lite/delegates/gpu/common;${flatbuffers-core}/bin/flatc -I $NIX_BUILD_TOP/source -c gpu_model.fbs)
+        (cd tensorflow/lite/delegates/gpu/common/task;${flatbuffers-core}/bin/flatc -c serialization_base.fbs)
         patchShebangs .
       '';
 
@@ -448,10 +490,7 @@ let
       license = licenses.asl20;
       maintainers = with maintainers; [ abbradar ];
       platforms = with platforms; linux ++ darwin;
-      # More vulnerabilities in 2.11.1 really; https://github.com/tensorflow/tensorflow/releases
-      knownVulnerabilities = [ "CVE-2023-33976" ];
-      broken = true || # most likely needs dealing with protobuf/abseil updates
-        !(xlaSupport -> cudaSupport) || python.pythonVersion == "3.11";
+      broken = stdenv.isDarwin || !(xlaSupport -> cudaSupport);
     } // lib.optionalAttrs stdenv.isDarwin {
       timeout = 86400; # 24 hours
       maxSilent = 14400; # 4h, double the default of 7200s
@@ -460,7 +499,7 @@ let
 
 in buildPythonPackage {
   inherit version pname;
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.8";
 
   src = bazel-build.python;
 
@@ -493,6 +532,7 @@ in buildPythonPackage {
   # tensorflow/tools/pip_package/setup.py
   propagatedBuildInputs = [
     absl-py
+    abseil-cpp
     astunparse
     flatbuffers-python
     gast
@@ -529,7 +569,6 @@ in buildPythonPackage {
   # TEST_PACKAGES in tensorflow/tools/pip_package/setup.py
   nativeCheckInputs = [
     dill
-    keras
     portpicker
     tblib
   ];
@@ -540,18 +579,15 @@ in buildPythonPackage {
     hello = tf.constant("Hello, world!")
     tf.print(hello)
 
-    # Fit a simple model to random data
-    import numpy as np
-    np.random.seed(0)
     tf.random.set_seed(0)
-    model = tf.keras.models.Sequential([
-        tf.keras.layers.Dense(1, activation="linear")
-    ])
-    model.compile(optimizer="sgd", loss="mse")
-
-    x = np.random.uniform(size=(1,1))
-    y = np.random.uniform(size=(1,))
-    model.fit(x, y, epochs=1)
+    width = 512
+    choice = 48
+    t_in = tf.Variable(tf.random.uniform(shape=[width]))
+    with tf.GradientTape() as tape:
+        t_out = tf.slice(tf.nn.softmax(t_in), [choice], [1])
+    diff = tape.gradient(t_out, t_in)
+    assert(0 < tf.reduce_min(tf.slice(diff, [choice], [1])))
+    assert(0 > tf.reduce_max(tf.slice(diff, [1], [choice - 1])))
     EOF
   '';
   # Regression test for #77626 removed because not more `tensorflow.contrib`.
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/protobuf_python.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/protobuf_python.patch
new file mode 100644
index 000000000000..11de26605b4b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/protobuf_python.patch
@@ -0,0 +1,19 @@
+diff -Naurd x/tensorflow/workspace2.bzl y/tensorflow/workspace2.bzl
+--- x/tensorflow/workspace2.bzl	2023-09-16 20:44:02.266422132 +0000
++++ y/tensorflow/workspace2.bzl	2023-09-16 20:50:40.370998305 +0000
+@@ -469,6 +469,7 @@
+         system_link_files = {
+             "//third_party/systemlibs:protobuf.bzl": "protobuf.bzl",
+             "//third_party/systemlibs:protobuf_deps.bzl": "protobuf_deps.bzl",
++            "//third_party/systemlibs:protobuf.python.BUILD": "python/BUILD",
+         },
+         urls = tf_mirror_urls("https://github.com/protocolbuffers/protobuf/archive/v3.21.9.zip"),
+     )
+diff -Naurd x/third_party/systemlibs/protobuf.python.BUILD y/third_party/systemlibs/protobuf.python.BUILD
+--- x/third_party/systemlibs/protobuf.python.BUILD	1970-01-01 00:00:00.000000000 +0000
++++ y/third_party/systemlibs/protobuf.python.BUILD	2023-09-16 20:49:12.514890584 +0000
+@@ -0,0 +1,4 @@
++cc_library(
++    name = "proto_api",
++    visibility = ["//visibility:public"]
++)
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/pybind11_protobuf_newer_version.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/pybind11_protobuf_newer_version.patch
new file mode 100644
index 000000000000..460ada1fb562
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/pybind11_protobuf_newer_version.patch
@@ -0,0 +1,16 @@
+diff -Naurd x/tensorflow/workspace2.bzl y/tensorflow/workspace2.bzl
+--- x/tensorflow/workspace2.bzl	2023-09-21 12:55:06.104407343 +0000
++++ y/tensorflow/workspace2.bzl	2023-09-21 12:55:39.732453203 +0000
+@@ -872,9 +872,9 @@
+ 
+     tf_http_archive(
+         name = "pybind11_protobuf",
+-        urls = tf_mirror_urls("https://github.com/pybind/pybind11_protobuf/archive/80f3440cd8fee124e077e2e47a8a17b78b451363.zip"),
+-        sha256 = "c7ab64b1ccf9a678694a89035a8c865a693e4e872803778f91f0965c2f281d78",
+-        strip_prefix = "pybind11_protobuf-80f3440cd8fee124e077e2e47a8a17b78b451363",
++        urls = tf_mirror_urls("https://github.com/pybind/pybind11_protobuf/archive/c8cc30e2495309e3499b7d76033446236d21c837.zip"),
++        sha256 = "0663f73b34c0b4af55003edbb066e62aceff99bfcf12e47ea9a15d6013d81413",
++        strip_prefix = "pybind11_protobuf-c8cc30e2495309e3499b7d76033446236d21c837",
+         patch_file = [
+             "//third_party/pybind11_protobuf:remove_license.patch",
+             "//third_party/pybind11_protobuf:python_runtime_dep.patch",
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/pybind11_protobuf_python_runtime_dep.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/pybind11_protobuf_python_runtime_dep.patch
new file mode 100644
index 000000000000..daebaac86892
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/pybind11_protobuf_python_runtime_dep.patch
@@ -0,0 +1,30 @@
+diff -Naurd x/tensorflow/workspace2.bzl y/tensorflow/workspace2.bzl
+--- x/tensorflow/workspace2.bzl	2023-09-17 22:22:22.029075202 +0000
++++ y/tensorflow/workspace2.bzl	2023-09-17 22:25:27.501289587 +0000
+@@ -876,7 +876,10 @@
+         urls = tf_mirror_urls("https://github.com/pybind/pybind11_protobuf/archive/80f3440cd8fee124e077e2e47a8a17b78b451363.zip"),
+         sha256 = "c7ab64b1ccf9a678694a89035a8c865a693e4e872803778f91f0965c2f281d78",
+         strip_prefix = "pybind11_protobuf-80f3440cd8fee124e077e2e47a8a17b78b451363",
+-        patch_file = ["//third_party/pybind11_protobuf:remove_license.patch"],
++        patch_file = [
++            "//third_party/pybind11_protobuf:remove_license.patch",
++            "//third_party/pybind11_protobuf:python_runtime_dep.patch",
++	],
+     )
+ 
+     tf_http_archive(
+diff -Naurd x/third_party/pybind11_protobuf/python_runtime_dep.patch y/third_party/pybind11_protobuf/python_runtime_dep.patch
+--- x/third_party/pybind11_protobuf/python_runtime_dep.patch	1970-01-01 00:00:00.000000000 +0000
++++ y/third_party/pybind11_protobuf/python_runtime_dep.patch	2023-09-17 22:23:07.849128180 +0000
+@@ -0,0 +1,11 @@
++diff -Naurd x/pybind11_protobuf/BUILD y/pybind11_protobuf/BUILD
++--- x/pybind11_protobuf/BUILD	2023-09-17 22:17:19.932725814 +0000
+++++ y/pybind11_protobuf/BUILD	2023-09-17 22:20:44.056961932 +0000
++@@ -86,6 +86,7 @@
++         "//visibility:private",
++     ],
++     deps = [
+++        "@org_tensorflow//third_party/python_runtime:headers",
++         "@com_google_absl//absl/container:flat_hash_map",
++         "@com_google_absl//absl/container:flat_hash_set",
++         "@com_google_absl//absl/meta:type_traits",
diff --git a/nixpkgs/pkgs/development/python-modules/textacy/default.nix b/nixpkgs/pkgs/development/python-modules/textacy/default.nix
index 80c40f7d5514..4167cfd7d969 100644
--- a/nixpkgs/pkgs/development/python-modules/textacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textacy/default.nix
@@ -3,6 +3,7 @@
 , cachetools
 , cytoolz
 , fetchPypi
+, floret
 , jellyfish
 , joblib
 , matplotlib
@@ -23,7 +24,7 @@ buildPythonPackage rec {
   pname = "textacy";
   version = "0.13.0";
   disabled = pythonOlder "3.7";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -33,6 +34,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     cachetools
     cytoolz
+    floret
     jellyfish
     joblib
     matplotlib
diff --git a/nixpkgs/pkgs/development/python-modules/textnets/default.nix b/nixpkgs/pkgs/development/python-modules/textnets/default.nix
index c2e46990c114..f0dd9ab9a650 100644
--- a/nixpkgs/pkgs/development/python-modules/textnets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textnets/default.nix
@@ -59,6 +59,12 @@ buildPythonPackage rec {
     "textnets"
   ];
 
+  disabledTests = [
+    # Test fails: A warning is triggered because of a deprecation notice by pandas.
+    # TODO: Try to re-enable it when pandas is updated to 2.1.1
+    "test_corpus_czech"
+  ];
+
   meta = with lib; {
     description = "Text analysis with networks";
     homepage = "https://textnets.readthedocs.io";
diff --git a/nixpkgs/pkgs/development/python-modules/tlds/default.nix b/nixpkgs/pkgs/development/python-modules/tlds/default.nix
index 33dd694a7f5f..207b605070ae 100644
--- a/nixpkgs/pkgs/development/python-modules/tlds/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tlds/default.nix
@@ -1,20 +1,25 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "tlds";
-  version = "2023101900";
-  format = "setuptools";
+  version = "2023102600";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "kichik";
     repo = "tlds";
     rev = "refs/tags/${version}";
-    hash = "sha256-ac4gM2+7RvmUl8ZI+XhjOkvR3lsTgoowowFo5K+ZFJ8=";
+    hash = "sha256-ncbgR/syMChIL0/FGLOHxHJMUzH0G+rZX9aCXun7yc4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   pythonImportsCheck = [
     "tlds"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/torchinfo/default.nix b/nixpkgs/pkgs/development/python-modules/torchinfo/default.nix
index e22993e8d23f..6cc7bcf3e27c 100644
--- a/nixpkgs/pkgs/development/python-modules/torchinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchinfo/default.nix
@@ -1,26 +1,38 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pytestCheckHook
+, fetchpatch
 , pythonOlder
 , torch
 , torchvision
+, pytestCheckHook
+, transformers
 }:
 
 buildPythonPackage rec {
   pname = "torchinfo";
-  version = "1.64";
+  version = "1.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "TylerYep";
-    repo = pname;
+    repo = "torchinfo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gcl8RxCD017FP4LtB60WVtOh7jg2Otv/vNd9hKneEAU=";
+    hash = "sha256-pPjg498aT8y4b4tqIzNxxKyobZX01u+66ScS/mee51Q=";
   };
 
+  patches = [
+    (fetchpatch {  # Add support for Python 3.11 and pytorch 2.1
+      url = "https://github.com/TylerYep/torchinfo/commit/c74784c71c84e62bcf56664653b7f28d72a2ee0d.patch";
+      hash = "sha256-xSSqs0tuFpdMXUsoVv4sZLCeVnkK6pDDhX/Eobvn5mw=";
+      includes = [
+        "torchinfo/model_statistics.py"
+      ];
+    })
+  ];
+
   propagatedBuildInputs = [
     torch
     torchvision
@@ -28,17 +40,23 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
+    transformers
   ];
 
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   disabledTests = [
     # Skip as it downloads pretrained weights (require network access)
     "test_eval_order_doesnt_matter"
+    "test_flan_t5_small"
     # AssertionError in output
     "test_google"
   ];
 
   disabledTestPaths = [
-    # Wants "compressai", which we don't package (2023-03-23)
+    # Test requires network access
     "tests/torchinfo_xl_test.py"
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/traits/default.nix b/nixpkgs/pkgs/development/python-modules/traits/default.nix
index eeb04ba23477..47b5eef29ced 100644
--- a/nixpkgs/pkgs/development/python-modules/traits/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/traits/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "traits";
-  version = "6.4.2";
+  version = "6.4.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-W+fMX7epnLp+kBR4Y3PjrS9177RF7s7QlGVLuvOw+oI=";
+    hash = "sha256-qbv9ngwIt94H6G72TmnLlqKcIQWkO/gyzYsWL6HiL0Q=";
   };
 
   # Circular dependency
diff --git a/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix b/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix
index 24345b5f63d5..32427487934a 100644
--- a/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transmission-rpc/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "transmission-rpc";
-  version = "7.0.1";
+  version = "7.0.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Trim21";
     repo = "transmission-rpc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wBTx4gy6c6TMtc2m+xibEzCgYJJiMMZ16+pq3H06hgs=";
+    hash = "sha256-HthWeFInolNEs7RNA773DJjhGvl1rfDhvhO8WwRwuuY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/trytond/default.nix b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
index e0b14f2fc453..790a9e4f1a07 100644
--- a/nixpkgs/pkgs/development/python-modules/trytond/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
@@ -25,14 +25,14 @@
 
 buildPythonPackage rec {
   pname = "trytond";
-  version = "6.8.4";
+  version = "6.8.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jZTc9Cc5XC1KScpniVtbBPdfwo3LodVNOo/zQSDBWY4=";
+    hash = "sha256-o/U8bmCAotgDYY81eX+vXOxJC3f4aQvOF6ohMOHLuLY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-awscrt/default.nix b/nixpkgs/pkgs/development/python-modules/types-awscrt/default.nix
index f3d881debdb3..158948d7dd55 100644
--- a/nixpkgs/pkgs/development/python-modules/types-awscrt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-awscrt/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "types-awscrt";
-  version = "0.19.3";
+  version = "0.19.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "types_awscrt";
     inherit version;
-    hash = "sha256-miHKrEKHwRPdUmZXB3hcRbsdMkK3oriutXxJ6edJozA=";
+    hash = "sha256-GdSGfysTK7NPLdruHz/rp8xCqGivXgVcxqWAtC+heTM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-beautifulsoup4/default.nix b/nixpkgs/pkgs/development/python-modules/types-beautifulsoup4/default.nix
index 00ebb5123e3c..790692362677 100644
--- a/nixpkgs/pkgs/development/python-modules/types-beautifulsoup4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-beautifulsoup4/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-beautifulsoup4";
-  version = "4.12.0.6";
+  version = "4.12.0.7";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BFqyhdPlQBhuFhM2EvQ/Z+MfkQ5tdXiQa0OgrY+BE0c=";
+    hash = "sha256-WZgAKNKb9V0Ns1nvowW3W6zwy5Lj8/az/UCPJTHfJ0w=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/velbus-aio/default.nix b/nixpkgs/pkgs/development/python-modules/velbus-aio/default.nix
index 0b06bf91548d..6a7fd953c423 100644
--- a/nixpkgs/pkgs/development/python-modules/velbus-aio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/velbus-aio/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "velbus-aio";
-  version = "2023.10.1";
+  version = "2023.10.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-v2B+tDqvQTm+K+cvTRM8LnfaFp5CTsI8/B5clBDNE08=";
+    hash = "sha256-qRKVjiRrRg1YwwYCSp6KGvaS7QnYLIW5rum3X7vEANM=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/weasel/default.nix b/nixpkgs/pkgs/development/python-modules/weasel/default.nix
new file mode 100644
index 000000000000..6b1ffcb31f52
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/weasel/default.nix
@@ -0,0 +1,83 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, setuptools
+, wheel
+, black
+, cloudpathlib
+, confection
+, isort
+, mypy
+, packaging
+, pre-commit
+, pydantic
+, pytest
+, requests
+, ruff
+, smart-open
+, srsly
+, typer
+, types-requests
+, types-setuptools
+, wasabi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "weasel";
+  version = "0.3.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "explosion";
+    repo = "weasel";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-I8Omrez1wfAbCmr9hivqKN2fNgnFQRGm8OP7lb7YClk=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    black
+    cloudpathlib
+    confection
+    isort
+    mypy
+    packaging
+    pre-commit
+    pydantic
+    pytest
+    requests
+    ruff
+    smart-open
+    srsly
+    typer
+    types-requests
+    types-setuptools
+    wasabi
+  ];
+
+  pythonImportsCheck = [ "weasel" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # This test requires internet access
+    "test_project_assets"
+  ];
+
+  meta = with lib; {
+    description = "Weasel: A small and easy workflow system";
+    homepage = "https://github.com/explosion/weasel/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/xknxproject/default.nix b/nixpkgs/pkgs/development/python-modules/xknxproject/default.nix
index 64ad5a1ebf82..b6d596f7a88f 100644
--- a/nixpkgs/pkgs/development/python-modules/xknxproject/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xknxproject/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "xknxproject";
-  version = "3.3.0";
+  version = "3.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "XKNX";
     repo = "xknxproject";
     rev = "refs/tags/${version}";
-    hash = "sha256-RH5RQHLpfrI9fRg6OfPZ7/BPHQuHCrkJlwW/EJitdPo=";
+    hash = "sha256-YHHiA0AKyqOYQHeNJqInxjjn4L64z9Y2mf6otMZVscA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/yark/default.nix b/nixpkgs/pkgs/development/python-modules/yark/default.nix
index 9012efc8a81d..f7b9f696d6cf 100644
--- a/nixpkgs/pkgs/development/python-modules/yark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yark/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "yark";
-  version = "1.2.8";
+  version = "1.2.9";
 
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FXgJ/y8qN7FkR7nhpNgPvUH/EQgw8cgRFqUA9KiJKKM=";
+    hash = "sha256-g9JwFnB4tFuvRvQGEURbIB2gaXQgCQJkL1sNmYMFvck=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
index 7f3591468c0b..2531a6648e36 100644
--- a/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "1.3.0";
+  version = "1.3.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "sigma67";
     repo = "ytmusicapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-dJckAQ0sWdP7I10khcyKGKsIcDTXQxZtP7B8JHlIZEo=";
+    hash = "sha256-6dsMOFyZ8cX2zKXX682b5znJvXYTeKt99Wafz7RkfQw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-cc/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-cc/default.nix
index 54c750d94bbf..505e152f087b 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-cc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-cc/default.nix
@@ -32,6 +32,8 @@ buildPythonPackage rec {
     zigpy
   ];
 
+  doCheck = pythonOlder "3.11"; # asynctest is unsupported on python3.11
+
   nativeCheckInputs = [
     asynctest
     pytest-asyncio
diff --git a/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix b/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
index 105dbbbe0424..52f2422bab85 100644
--- a/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "zwave-js-server-python";
-  version = "0.52.1";
+  version = "0.53.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.11";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-+zGLWti99mYTyPkSxiYgE5RqVvEr2PGt8vFwesjcquo=";
+    hash = "sha256-WfKZraF/mh1YTgK2YXnP5JHqjj5oWI9PeZAvt75btr8=";
   };
 
   propagatedBuildInputs = [