about summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/absl-py/default.nix4
-rw-r--r--pkgs/development/python-modules/ago/default.nix6
-rw-r--r--pkgs/development/python-modules/aioairq/default.nix42
-rw-r--r--pkgs/development/python-modules/aiobiketrax/default.nix17
-rw-r--r--pkgs/development/python-modules/aiocoap/default.nix107
-rw-r--r--pkgs/development/python-modules/aioconsole/default.nix4
-rw-r--r--pkgs/development/python-modules/aiomisc/default.nix4
-rw-r--r--pkgs/development/python-modules/allure-python-commons-test/default.nix3
-rw-r--r--pkgs/development/python-modules/android-backup/default.nix4
-rw-r--r--pkgs/development/python-modules/anthropic/default.nix4
-rw-r--r--pkgs/development/python-modules/anyascii/default.nix2
-rw-r--r--pkgs/development/python-modules/argilla/default.nix278
-rw-r--r--pkgs/development/python-modules/aws-lambda-builders/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-cosmos/default.nix4
-rw-r--r--pkgs/development/python-modules/bash-kernel/default.nix20
-rw-r--r--pkgs/development/python-modules/bash-kernel/test.ipynb26
-rw-r--r--pkgs/development/python-modules/bayespy/default.nix5
-rw-r--r--pkgs/development/python-modules/beanhub-cli/default.nix78
-rw-r--r--pkgs/development/python-modules/beanhub-extract/default.nix47
-rw-r--r--pkgs/development/python-modules/beanhub-forms/default.nix55
-rw-r--r--pkgs/development/python-modules/beanhub-import/default.nix59
-rw-r--r--pkgs/development/python-modules/boto3-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/buienradar/default.nix3
-rw-r--r--pkgs/development/python-modules/cnvkit/default.nix4
-rw-r--r--pkgs/development/python-modules/coffea/default.nix23
-rw-r--r--pkgs/development/python-modules/comicon/default.nix6
-rw-r--r--pkgs/development/python-modules/cramjam/default.nix39
-rw-r--r--pkgs/development/python-modules/curl-cffi/default.nix6
-rw-r--r--pkgs/development/python-modules/cvelib/default.nix49
-rw-r--r--pkgs/development/python-modules/dash/default.nix4
-rw-r--r--pkgs/development/python-modules/dataclasses-json/default.nix29
-rw-r--r--pkgs/development/python-modules/dataprep-ml/default.nix4
-rw-r--r--pkgs/development/python-modules/dbt-bigquery/default.nix4
-rw-r--r--pkgs/development/python-modules/django-allauth/default.nix7
-rw-r--r--pkgs/development/python-modules/django-auditlog/default.nix10
-rw-r--r--pkgs/development/python-modules/domeneshop/default.nix6
-rw-r--r--pkgs/development/python-modules/dramatiq/default.nix4
-rw-r--r--pkgs/development/python-modules/dronecan/default.nix2
-rw-r--r--pkgs/development/python-modules/dtlssocket/default.nix4
-rw-r--r--pkgs/development/python-modules/dugong/default.nix2
-rw-r--r--pkgs/development/python-modules/dvclive/default.nix4
-rw-r--r--pkgs/development/python-modules/dynalite-panel/default.nix3
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix4
-rw-r--r--pkgs/development/python-modules/fakeredis/default.nix4
-rw-r--r--pkgs/development/python-modules/filedate/default.nix59
-rw-r--r--pkgs/development/python-modules/functools32/default.nix22
-rw-r--r--pkgs/development/python-modules/gcal-sync/default.nix4
-rw-r--r--pkgs/development/python-modules/gcovr/default.nix2
-rw-r--r--pkgs/development/python-modules/globus-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/gmpy/default.nix31
-rw-r--r--pkgs/development/python-modules/gmpy2/default.nix81
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery/default.nix8
-rw-r--r--pkgs/development/python-modules/google-cloud-dlp/default.nix4
-rw-r--r--pkgs/development/python-modules/gotailwind/default.nix59
-rw-r--r--pkgs/development/python-modules/gpapi/default.nix2
-rw-r--r--pkgs/development/python-modules/gurobipy/default.nix14
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix4
-rw-r--r--pkgs/development/python-modules/hcs-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/hiyapyco/default.nix4
-rw-r--r--pkgs/development/python-modules/httpserver/default.nix5
-rw-r--r--pkgs/development/python-modules/humanfriendly/default.nix4
-rw-r--r--pkgs/development/python-modules/hurry-filesize/default.nix5
-rw-r--r--pkgs/development/python-modules/ifcopenshell/default.nix6
-rw-r--r--pkgs/development/python-modules/imgtool/default.nix4
-rw-r--r--pkgs/development/python-modules/json-schema-for-humans/default.nix4
-rw-r--r--pkgs/development/python-modules/justext/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain-text-splitters/default.nix29
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix4
-rw-r--r--pkgs/development/python-modules/ldappool/default.nix58
-rw-r--r--pkgs/development/python-modules/libarcus/default.nix4
-rw-r--r--pkgs/development/python-modules/libgravatar/default.nix17
-rw-r--r--pkgs/development/python-modules/limnoria/default.nix4
-rw-r--r--pkgs/development/python-modules/line-profiler/default.nix4
-rw-r--r--pkgs/development/python-modules/litellm/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-parse/default.nix29
-rw-r--r--pkgs/development/python-modules/llm/default.nix4
-rw-r--r--pkgs/development/python-modules/lmfit/default.nix4
-rw-r--r--pkgs/development/python-modules/localzone/default.nix35
-rw-r--r--pkgs/development/python-modules/maestral/default.nix10
-rw-r--r--pkgs/development/python-modules/mandown/default.nix4
-rw-r--r--pkgs/development/python-modules/matlink-gpapi/default.nix2
-rw-r--r--pkgs/development/python-modules/memestra/default.nix3
-rw-r--r--pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocstrings-python/default.nix4
-rw-r--r--pkgs/development/python-modules/mock-open/default.nix11
-rw-r--r--pkgs/development/python-modules/msgraph-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/nbdev/default.nix4
-rw-r--r--pkgs/development/python-modules/nethsm/default.nix4
-rw-r--r--pkgs/development/python-modules/niaaml/default.nix4
-rw-r--r--pkgs/development/python-modules/nidaqmx/default.nix4
-rw-r--r--pkgs/development/python-modules/nocaselist/default.nix4
-rw-r--r--pkgs/development/python-modules/opencensus-ext-azure/default.nix3
-rw-r--r--pkgs/development/python-modules/orange-canvas-core/default.nix4
-rw-r--r--pkgs/development/python-modules/orange-widget-base/default.nix4
-rw-r--r--pkgs/development/python-modules/orange3/default.nix40
-rw-r--r--pkgs/development/python-modules/outcome/default.nix3
-rw-r--r--pkgs/development/python-modules/owslib/default.nix8
-rw-r--r--pkgs/development/python-modules/paste/default.nix4
-rw-r--r--pkgs/development/python-modules/pathlib2/default.nix4
-rw-r--r--pkgs/development/python-modules/peewee/default.nix55
-rw-r--r--pkgs/development/python-modules/pgspecial/default.nix34
-rw-r--r--pkgs/development/python-modules/phe/default.nix49
-rw-r--r--pkgs/development/python-modules/phonopy/default.nix4
-rw-r--r--pkgs/development/python-modules/pickleshare/default.nix5
-rw-r--r--pkgs/development/python-modules/pinecone-client/default.nix49
-rw-r--r--pkgs/development/python-modules/pipetools/default.nix32
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/prometrix/default.nix46
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pure-cdb/default.nix3
-rw-r--r--pkgs/development/python-modules/py-multihash/default.nix3
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--pkgs/development/python-modules/pyais/default.nix49
-rw-r--r--pkgs/development/python-modules/pycognito/default.nix57
-rw-r--r--pkgs/development/python-modules/pydeck/default.nix4
-rw-r--r--pkgs/development/python-modules/pyduotecno/default.nix4
-rw-r--r--pkgs/development/python-modules/pygount/default.nix4
-rw-r--r--pkgs/development/python-modules/pyipp/default.nix56
-rw-r--r--pkgs/development/python-modules/pykrakenapi/default.nix3
-rw-r--r--pkgs/development/python-modules/pylint/default.nix121
-rw-r--r--pkgs/development/python-modules/pymarshal/default.nix2
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix4
-rw-r--r--pkgs/development/python-modules/pynmeagps/default.nix34
-rw-r--r--pkgs/development/python-modules/pypass/default.nix4
-rw-r--r--pkgs/development/python-modules/pypng/default.nix10
-rw-r--r--pkgs/development/python-modules/pyqtgraph/default.nix2
-rw-r--r--pkgs/development/python-modules/pyrainbird/default.nix59
-rw-r--r--pkgs/development/python-modules/pyrisco/default.nix4
-rw-r--r--pkgs/development/python-modules/pyserial/default.nix5
-rw-r--r--pkgs/development/python-modules/pysqlcipher3/default.nix4
-rw-r--r--pkgs/development/python-modules/pystemd/default.nix3
-rw-r--r--pkgs/development/python-modules/pytado/default.nix4
-rw-r--r--pkgs/development/python-modules/python-glanceclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-ironicclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-jsonrpc-server/default.nix7
-rw-r--r--pkgs/development/python-modules/python-manilaclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-roborock/default.nix4
-rw-r--r--pkgs/development/python-modules/pytorch-lightning/default.nix4
-rw-r--r--pkgs/development/python-modules/pywbem/default.nix4
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix2
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/default.nix9
-rw-r--r--pkgs/development/python-modules/qreactor/default.nix3
-rw-r--r--pkgs/development/python-modules/queuelib/default.nix4
-rw-r--r--pkgs/development/python-modules/quil/default.nix4
-rw-r--r--pkgs/development/python-modules/reolink-aio/default.nix33
-rw-r--r--pkgs/development/python-modules/requirements-detector/default.nix14
-rw-r--r--pkgs/development/python-modules/resend/default.nix4
-rw-r--r--pkgs/development/python-modules/roadlib/default.nix4
-rw-r--r--pkgs/development/python-modules/roadtx/default.nix4
-rw-r--r--pkgs/development/python-modules/rotary-embedding-torch/default.nix4
-rw-r--r--pkgs/development/python-modules/sigtools/default.nix3
-rw-r--r--pkgs/development/python-modules/simple-term-menu/default.nix3
-rw-r--r--pkgs/development/python-modules/slack-bolt/default.nix83
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix55
-rw-r--r--pkgs/development/python-modules/snitun/default.nix100
-rw-r--r--pkgs/development/python-modules/soco/default.nix4
-rw-r--r--pkgs/development/python-modules/srt/default.nix3
-rw-r--r--pkgs/development/python-modules/stashy/default.nix2
-rw-r--r--pkgs/development/python-modules/stdlibs/default.nix25
-rw-r--r--pkgs/development/python-modules/stickytape/default.nix6
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/tabula-py/default.nix47
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix4
-rw-r--r--pkgs/development/python-modules/tesla-fleet-api/default.nix4
-rw-r--r--pkgs/development/python-modules/theano/default.nix2
-rw-r--r--pkgs/development/python-modules/timm/default.nix14
-rw-r--r--pkgs/development/python-modules/torchmetrics/default.nix4
-rw-r--r--pkgs/development/python-modules/transitions/default.nix4
-rw-r--r--pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--pkgs/development/python-modules/tubes/default.nix31
-rw-r--r--pkgs/development/python-modules/types-ujson/default.nix21
-rw-r--r--pkgs/development/python-modules/unstructured/default.nix4
-rw-r--r--pkgs/development/python-modules/uproot/default.nix10
-rw-r--r--pkgs/development/python-modules/waybackpy/default.nix34
-rw-r--r--pkgs/development/python-modules/wcmatch/default.nix4
-rw-r--r--pkgs/development/python-modules/willow/default.nix3
-rw-r--r--pkgs/development/python-modules/wled/default.nix4
-rw-r--r--pkgs/development/python-modules/xmltodict/default.nix2
-rw-r--r--pkgs/development/python-modules/yapf/default.nix1
181 files changed, 1727 insertions, 1267 deletions
diff --git a/pkgs/development/python-modules/absl-py/default.nix b/pkgs/development/python-modules/absl-py/default.nix
index eb412275a8821..99271645f19a5 100644
--- a/pkgs/development/python-modules/absl-py/default.nix
+++ b/pkgs/development/python-modules/absl-py/default.nix
@@ -1,10 +1,8 @@
 { buildPythonPackage
 , lib
-, pythonOlder
 , fetchPypi
 , setuptools
 , six
-, enum34
 }:
 
 buildPythonPackage rec {
@@ -23,8 +21,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     six
-  ] ++ lib.optionals (pythonOlder "3.4") [
-    enum34
   ];
 
   # checks use bazel; should be revisited
diff --git a/pkgs/development/python-modules/ago/default.nix b/pkgs/development/python-modules/ago/default.nix
index ad095c441db26..59aaf184a6fcd 100644
--- a/pkgs/development/python-modules/ago/default.nix
+++ b/pkgs/development/python-modules/ago/default.nix
@@ -1,11 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-
-, pythonOlder
-
 , pytestCheckHook
-
 , setuptools
 }:
 
@@ -14,8 +10,6 @@ buildPythonPackage rec {
   version = "0.0.95";
   pyproject = true;
 
-  disabled = pythonOlder "3.3";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-0gEPXqw99UTsSOwRYQLgaFkaNFsaWA8ylz24pQX8p0Q=";
diff --git a/pkgs/development/python-modules/aioairq/default.nix b/pkgs/development/python-modules/aioairq/default.nix
index 5be97a3d9c9df..274b25202a3a7 100644
--- a/pkgs/development/python-modules/aioairq/default.nix
+++ b/pkgs/development/python-modules/aioairq/default.nix
@@ -1,35 +1,49 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pycryptodome
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodome,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aioairq";
-  version = "0.3.2";
-  format = "setuptools";
+  version = "0.4.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "CorantGmbH";
-    repo = pname;
+    repo = "aioairq";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Sau0Ih+9WRChbztl8yjXVWy4/QxyllQKOPslbZroBeQ=";
+    hash = "sha256-ppjhGBAoA5iV+ZfUKkUCNJRYN82JtclRe36pbe85i5w=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     pycryptodome
   ];
 
   # Module has no tests
-  doCheck = false;
+  #doCheck = false;
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aioairq" ];
 
-  pythonImportsCheck = [
-    "aioairq"
+  disabledTestPaths = [
+    # Tests require network access
+    "tests/test_core_on_device.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aiobiketrax/default.nix b/pkgs/development/python-modules/aiobiketrax/default.nix
index 93333448ad112..9d6d7ab52114d 100644
--- a/pkgs/development/python-modules/aiobiketrax/default.nix
+++ b/pkgs/development/python-modules/aiobiketrax/default.nix
@@ -14,34 +14,37 @@
 
 buildPythonPackage rec {
   pname = "aiobiketrax";
-  version = "1.1.2";
-  format = "pyproject";
+  version = "1.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "basilfx";
-    repo = pname;
+    repo = "aiobiketrax";
     rev = "refs/tags/v${version}";
-    hash = "sha256-71gPdA1snPJCR0Pmcaki55Ukf5xtUjuZ+xX8VvspKC4=";
+    hash = "sha256-6hSSPanagYKZxoyU8mp/1bWRcpJJkhNw3Rh82ogKGr4=";
   };
 
   postPatch = ''
     # https://github.com/basilfx/aiobiketrax/pull/63
     substituteInPlace aiobiketrax/api.py \
-      --replace "auth0.v3" "auth0"
+      --replace-fail "auth0.v3" "auth0"
   '';
 
   pythonRelaxDeps = [
     "auth0-python"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
+  ];
+
+  nativeBuildInputs = [
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     auth0-python
     python-dateutil
diff --git a/pkgs/development/python-modules/aiocoap/default.nix b/pkgs/development/python-modules/aiocoap/default.nix
index af2b220a21c2b..5aff82034bcc3 100644
--- a/pkgs/development/python-modules/aiocoap/default.nix
+++ b/pkgs/development/python-modules/aiocoap/default.nix
@@ -1,44 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-
-# build-system
-, setuptools
-
-# optionals
-, cbor2
-, cbor-diag
-, cryptography
-, filelock
-, ge25519
-, dtlssocket
-, websockets
-, termcolor
-, pygments
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  cbor-diag,
+  cbor2,
+  cryptography,
+  dtlssocket,
+  fetchFromGitHub,
+  filelock,
+  ge25519,
+  pygments,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  termcolor,
+  websockets,
 }:
 
 buildPythonPackage rec {
   pname = "aiocoap";
-  version = "0.4.7";
+  version = "0.4.8";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "chrysn";
-    repo = pname;
+    repo = "aiocoap";
     rev = "refs/tags/${version}";
-    hash = "sha256-4iwoPfmIwk+PlWUp60aqA5qZgzyj34pnZHf9uH5UhnY=";
+    hash = "sha256-jBRxorHr5/CgAR6WVXBUycZpJ6n1DYVFQk6kqVv8D1Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   passthru.optional-dependencies = {
     oscore = [
@@ -47,12 +40,8 @@ buildPythonPackage rec {
       filelock
       ge25519
     ];
-    tinydtls = [
-      dtlssocket
-    ];
-    ws = [
-      websockets
-    ];
+    tinydtls = [ dtlssocket ];
+    ws = [ websockets ];
     prettyprint = [
       termcolor
       cbor2
@@ -61,26 +50,7 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  pytestFlagsArray = lib.optionals (pythonAtLeast "3.12") [
-    # https://github.com/chrysn/aiocoap/issues/339
-    "--deselect=tests/test_server.py::TestServerTCP::test_big_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_empty_accept"
-    "--deselect=tests/test_server.py::TestServerTCP::test_error_resources"
-    "--deselect=tests/test_server.py::TestServerTCP::test_fast_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_js_accept"
-    "--deselect=tests/test_server.py::TestServerTCP::test_manualbig_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_nonexisting_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_replacing_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_root_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_slow_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_slowbig_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_spurious_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_unacceptable_accept"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Don't test the plugins
@@ -89,14 +59,29 @@ buildPythonPackage rec {
     "tests/test_oscore_plugtest.py"
   ];
 
-  disabledTests = [
-    # Communication is not properly mocked
-    "test_uri_parser"
-  ];
+  disabledTests =
+    [
+      # Communication is not properly mocked
+      "test_uri_parser"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # https://github.com/chrysn/aiocoap/issues/339
+      "TestServerTCP::test_big_resource"
+      "TestServerTCP::test_empty_accept"
+      "TestServerTCP::test_error_resources"
+      "TestServerTCP::test_fast_resource"
+      "TestServerTCP::test_js_accept"
+      "TestServerTCP::test_manualbig_resource"
+      "TestServerTCP::test_nonexisting_resource"
+      "TestServerTCP::test_replacing_resource"
+      "TestServerTCP::test_root_resource"
+      "TestServerTCP::test_slow_resource"
+      "TestServerTCP::test_slowbig_resource"
+      "TestServerTCP::test_spurious_resource"
+      "TestServerTCP::test_unacceptable_accept"
+    ];
 
-  pythonImportsCheck = [
-    "aiocoap"
-  ];
+  pythonImportsCheck = [ "aiocoap" ];
 
   meta = with lib; {
     description = "Python CoAP library";
diff --git a/pkgs/development/python-modules/aioconsole/default.nix b/pkgs/development/python-modules/aioconsole/default.nix
index 8cb67f32a920d..0c5346eebd67a 100644
--- a/pkgs/development/python-modules/aioconsole/default.nix
+++ b/pkgs/development/python-modules/aioconsole/default.nix
@@ -17,7 +17,7 @@
 # wrapped to be able to find aioconsole and any other packages.
 buildPythonPackage rec {
   pname = "aioconsole";
-  version = "0.7.0";
+  version = "0.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "vxgmichel";
     repo = "aioconsole";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SKJLc1Tauwpmh2xtFFyHqKRaaQAK99SpbbGLFmAbKcQ=";
+    hash = "sha256-c8zeKebS04bZS9pMIKAauaLPvRrWaGoDKbnF906tFzQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiomisc/default.nix b/pkgs/development/python-modules/aiomisc/default.nix
index 47a702ddf0837..0b4bf7483d84a 100644
--- a/pkgs/development/python-modules/aiomisc/default.nix
+++ b/pkgs/development/python-modules/aiomisc/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "aiomisc";
-  version = "17.5.15";
+  version = "17.5.19";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tfJm0W20UeuWIrihXpEmbiX5+Zs1ASIzJbhjodLdctI=";
+    hash = "sha256-0tcWfi4zxqDDMknDPOLNm+S+K1qmHQ5n/PqNFyNbwZg=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/allure-python-commons-test/default.nix b/pkgs/development/python-modules/allure-python-commons-test/default.nix
index da1d4a3dca4ca..2e08bef31d70e 100644
--- a/pkgs/development/python-modules/allure-python-commons-test/default.nix
+++ b/pkgs/development/python-modules/allure-python-commons-test/default.nix
@@ -1,7 +1,6 @@
 { lib
 , fetchPypi
 , buildPythonPackage
-, pythonOlder
 , attrs
 , pluggy
 , six
@@ -15,8 +14,6 @@ buildPythonPackage rec {
   version = "2.13.5";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-pWkLVfBrLEhdhuTE95K3aqrhEY2wEyo5uRzuJC3ngjE=";
diff --git a/pkgs/development/python-modules/android-backup/default.nix b/pkgs/development/python-modules/android-backup/default.nix
index 647a36f78b330..e958e853b046c 100644
--- a/pkgs/development/python-modules/android-backup/default.nix
+++ b/pkgs/development/python-modules/android-backup/default.nix
@@ -2,8 +2,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pycrypto
-, pythonOlder
-, enum34
 , python
 }:
 
@@ -21,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     pycrypto
-  ] ++ lib.optional (pythonOlder "3.4") enum34;
+  ];
 
   checkPhase = ''
     ${python.interpreter} -m android_backup.tests
diff --git a/pkgs/development/python-modules/anthropic/default.nix b/pkgs/development/python-modules/anthropic/default.nix
index 5eef6a51010a4..bfa36713ca096 100644
--- a/pkgs/development/python-modules/anthropic/default.nix
+++ b/pkgs/development/python-modules/anthropic/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "anthropic";
-  version = "0.25.6";
+  version = "0.25.8";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "anthropics";
     repo = "anthropic-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-83TufOgu6W9UvoCEUgDiw6gXDAdwyIKEALVF0hjj6wk=";
+    hash = "sha256-CBe5rzO2+m1AGfDbAqxCzZ+Rm1Er4e0JuxtFRzgHV/Q=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/anyascii/default.nix b/pkgs/development/python-modules/anyascii/default.nix
index d781a552cca10..3e001d5a18743 100644
--- a/pkgs/development/python-modules/anyascii/default.nix
+++ b/pkgs/development/python-modules/anyascii/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchPypi
 , pytestCheckHook
 }:
@@ -9,7 +8,6 @@ buildPythonPackage rec {
   pname = "anyascii";
   version = "0.3.2";
   format = "setuptools";
-  disabled = pythonOlder "3.3";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/argilla/default.nix b/pkgs/development/python-modules/argilla/default.nix
index d3b87ca99f442..2d2e25a83ed5f 100644
--- a/pkgs/development/python-modules/argilla/default.nix
+++ b/pkgs/development/python-modules/argilla/default.nix
@@ -1,145 +1,98 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, deprecated
-, rich
-, backoff
-, packaging
-, pydantic
-, typer
-, tqdm
-, wrapt
-, numpy
-, httpx
-, pandas
-, monotonic
-# optional-dependencies
-, fastapi
-, opensearch-py
-, elasticsearch8
-, uvicorn
-, smart-open
-, brotli-asgi
-, alembic
-, sqlalchemy
-, greenlet
-, aiosqlite
-, luqum
-, scikit-learn
-, aiofiles
-, pyyaml
-, python-multipart
-, python-jose
-, passlib
-, psutil
-# , segment-analytics-python
-, asyncpg
-, psycopg2
-, schedule
-, prodict
-, cleanlab
-, datasets
-, huggingface-hub
+{
+  lib,
+  aiofiles,
+  aiosqlite,
+  alembic,
+  asyncpg,
+  backoff,
+  brotli-asgi,
+  buildPythonPackage,
+  cleanlab,
+  datasets,
+  deprecated,
+  elasticsearch8,
+  evaluate,
+  factory-boy,
+  faiss,
+  fastapi,
+  fetchFromGitHub,
+  flyingsquid,
+  greenlet,
+  httpx,
+  huggingface-hub,
+  luqum,
+  monotonic,
+  numpy,
+  openai,
+  opensearch-py,
+  packaging,
+  pandas,
+  passlib,
+  peft,
+  pgmpy,
+  plotly,
+  prodict,
+  psutil,
+  psycopg2,
+  pydantic,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  python-jose,
+  python-multipart,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pyyaml,
+  rich,
+  schedule,
+  scikit-learn,
+  sentence-transformers,
+  seqeval,
+  setuptools,
+  smart-open,
+  snorkel,
+  spacy,
+  spacy-transformers,
+  sqlalchemy,
+  tqdm,
+  transformers,
+  typer,
+  uvicorn,
+  wrapt,
 # , flair
-, faiss
-, flyingsquid
-, pgmpy
-, plotly
-, snorkel
-, spacy
-, transformers
-, evaluate
-, seqeval
 # , setfit
+# , spacy-huggingface-hub
 # , span_marker
-, openai
-, peft
-# test dependencies
-, pytestCheckHook
-, pytest-cov
-, pytest-mock
-, pytest-asyncio
-, factory-boy
+# , trl
 }:
-let
+
+buildPythonPackage rec {
   pname = "argilla";
-  version = "1.27.0";
-  optional-dependencies = {
-    server = [
-      fastapi
-      opensearch-py
-      elasticsearch8
-      uvicorn
-      smart-open
-      brotli-asgi
-      alembic
-      sqlalchemy
-      greenlet
-      aiosqlite
-      luqum
-      scikit-learn
-      aiofiles
-      pyyaml
-      python-multipart
-      python-jose
-      passlib
-      psutil
-      # segment-analytics-python
-    ] ++
-      elasticsearch8.optional-dependencies.async ++
-      uvicorn.optional-dependencies.standard ++
-      python-jose.optional-dependencies.cryptography ++
-      passlib.optional-dependencies.bcrypt;
-    postgresql = [ asyncpg psycopg2 ];
-    listeners = [ schedule prodict ];
-    integrations = [
-      pyyaml
-      cleanlab
-      datasets
-      huggingface-hub
-      # flair
-      faiss
-      flyingsquid
-      pgmpy
-      plotly
-      snorkel
-      spacy
-      transformers
-      evaluate
-      seqeval
-      # setfit
-      # span_marker
-      openai
-      peft
-    ] ++ transformers.optional-dependencies.torch;
-  };
-in
-buildPythonPackage {
-  inherit pname version;
-  format = "setuptools";
+  version = "1.28.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "argilla-io";
-    repo = pname;
+    repo = "argilla";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CBVP/+XFKnJBMcxsDd7lgQ1JFX7zFlHmdBwkAMmq85g=";
+    hash = "sha256-gQpJ2umi3IE5BhRu3bM7ONPIP0hb2YG37jGvDKQHZWA=";
   };
 
   pythonRelaxDeps = [
-    "typer"
-    "rich"
+    "httpx"
     "numpy"
+    "rich"
+    "typer"
+    "wrapt"
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     httpx
     deprecated
     packaging
@@ -154,7 +107,67 @@ buildPythonPackage {
     typer
   ];
 
-  # still quite a bit of optional dependencies missing
+  passthru.optional-dependencies = {
+    server =
+      [
+        aiofiles
+        aiosqlite
+        alembic
+        brotli-asgi
+        elasticsearch8
+        fastapi
+        greenlet
+        luqum
+        opensearch-py
+        passlib
+        psutil
+        python-jose
+        python-multipart
+        pyyaml
+        scikit-learn
+        smart-open
+        sqlalchemy
+        uvicorn
+      ]
+      ++ elasticsearch8.optional-dependencies.async
+      ++ uvicorn.optional-dependencies.standard
+      ++ python-jose.optional-dependencies.cryptography
+      ++ passlib.optional-dependencies.bcrypt;
+    postgresql = [
+      asyncpg
+      psycopg2
+    ];
+    listeners = [
+      schedule
+      prodict
+    ];
+    integrations = [
+      cleanlab
+      datasets
+      evaluate
+      faiss
+      flyingsquid
+      huggingface-hub
+      openai
+      peft
+      pgmpy
+      plotly
+      pyyaml
+      sentence-transformers
+      seqeval
+      snorkel
+      spacy
+      spacy-transformers
+      transformers
+      # flair
+      # setfit
+      # span_marker
+      # trl
+      # spacy-huggingface-hub
+    ] ++ transformers.optional-dependencies.torch;
+  };
+
+  # Still quite a bit of optional dependencies missing
   doCheck = false;
 
   preCheck = ''
@@ -163,26 +176,19 @@ buildPythonPackage {
 
   nativeCheckInputs = [
     pytestCheckHook
-    pytest-cov
     pytest-mock
     pytest-asyncio
     factory-boy
-  ]
-    ++ optional-dependencies.server
-    ++ optional-dependencies.postgresql
-    ++ optional-dependencies.listeners
-    ++ optional-dependencies.integrations;
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pytestFlagsArray = [ "--ignore=tests/server/datasets/test_dao.py" ];
-
-  passthru.optional-dependencies = optional-dependencies;
+  disabledTestPaths = [ "tests/server/datasets/test_dao.py" ];
 
   meta = with lib; {
-    description = "Argilla: the open-source data curation platform for LLMs";
-    mainProgram = "argilla";
+    description = "Open-source data curation platform for LLMs";
     homepage = "https://github.com/argilla-io/argilla";
     changelog = "https://github.com/argilla-io/argilla/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
+    mainProgram = "argilla";
   };
 }
diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix
index 9e32768ee18dc..561942aa79cef 100644
--- a/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "1.48.0";
+  version = "1.49.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g1f0OL41lvs8OLyLcBk6XJk9wZO/oWluUj5sUcXlUIE=";
+    hash = "sha256-14qG3AuIlQI6n2XouPfUx7LNZqR0gSnI4OlkiYS62jA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/azure-cosmos/default.nix b/pkgs/development/python-modules/azure-cosmos/default.nix
index df687eb52ac52..3b593399469e6 100644
--- a/pkgs/development/python-modules/azure-cosmos/default.nix
+++ b/pkgs/development/python-modules/azure-cosmos/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-cosmos";
-  version = "4.6.0";
+  version = "4.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2uxqwgHGRzsJK2Ku5x44G+62w6jcNhJJgytwSMTwYeI=";
+    hash = "sha256-ctcUAzE0ZWMCouiVfEuTWQZzvSiLDKYMsSPjSK6ZokE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/bash-kernel/default.nix b/pkgs/development/python-modules/bash-kernel/default.nix
index c3ab6083ba1dd..57f28860fca92 100644
--- a/pkgs/development/python-modules/bash-kernel/default.nix
+++ b/pkgs/development/python-modules/bash-kernel/default.nix
@@ -6,7 +6,7 @@
 , ipykernel
 , python
 , pexpect
-, bash
+, bashInteractive
 , substituteAll
 }:
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   patches = [
     (substituteAll {
       src = ./bash-path.patch;
-      bash = lib.getExe bash;
+      bash = lib.getExe bashInteractive;
     })
   ];
 
@@ -45,8 +45,20 @@ buildPythonPackage rec {
     ${python.pythonOnBuildForHost.interpreter} -m bash_kernel.install --prefix $out
   '';
 
-  # no tests
-  doCheck = false;
+  checkPhase = ''
+    runHook preCheck
+
+    # Create a JUPYTER_PATH with the kernelspec
+    export JUPYTER_PATH=$(mktemp -d)
+    mkdir -p $JUPYTER_PATH/kernels/bash
+    echo '{ "language": "bash", "argv": [ "${python}/bin/python", "-m", "bash_kernel", "-f", "{connection_file}" ] }' > $JUPYTER_PATH/kernels/bash/kernel.json
+
+    # Evaluate a test notebook with papermill
+    cd $(mktemp -d)
+    ${python.withPackages (ps: [ps.papermill])}/bin/papermill --kernel bash ${./test.ipynb} out.ipynb
+
+    runHook postCheck
+  '';
 
   meta = with lib; {
     description = "Bash Kernel for Jupyter";
diff --git a/pkgs/development/python-modules/bash-kernel/test.ipynb b/pkgs/development/python-modules/bash-kernel/test.ipynb
new file mode 100644
index 0000000000000..4d061381b96d1
--- /dev/null
+++ b/pkgs/development/python-modules/bash-kernel/test.ipynb
@@ -0,0 +1,26 @@
+{
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "echo hi"
+      ]
+    }
+  ],
+  "metadata": {
+    "kernel_info": {
+      "display_name": "Unknown",
+      "name": "bash"
+    },
+    "language_info": {
+      "file_extension": ".ipynb",
+      "name": "bash",
+      "version": "5.0"
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 2
+}
diff --git a/pkgs/development/python-modules/bayespy/default.nix b/pkgs/development/python-modules/bayespy/default.nix
index 6c4d629e0843a..7768dd5a8d7c5 100644
--- a/pkgs/development/python-modules/bayespy/default.nix
+++ b/pkgs/development/python-modules/bayespy/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  pythonOlder,
   setuptools,
   numpy,
   scipy,
@@ -16,10 +15,6 @@ buildPythonPackage rec {
   version = "0.6.1";
   pyproject = true;
 
-  # Python 2 not supported and not some old Python 3 because MPL doesn't support
-  # them properly.
-  disabled = pythonOlder "3.4";
-
   src = fetchFromGitHub {
     owner = "bayespy";
     repo = "bayespy";
diff --git a/pkgs/development/python-modules/beanhub-cli/default.nix b/pkgs/development/python-modules/beanhub-cli/default.nix
new file mode 100644
index 0000000000000..25c003e192923
--- /dev/null
+++ b/pkgs/development/python-modules/beanhub-cli/default.nix
@@ -0,0 +1,78 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pythonOlder
+, pytestCheckHook
+, beancount-black
+, beancount-parser
+, beanhub-forms
+, beanhub-import
+, click
+, fastapi
+, httpx
+, jinja2
+, poetry-core
+, pydantic
+, pydantic-core
+, pydantic-settings
+, pytz
+, pyyaml
+, rich
+, starlette-wtf
+, uvicorn
+}:
+
+buildPythonPackage rec {
+  pname = "beanhub-cli";
+  version = "1.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "LaunchPlatform";
+    repo = "beanhub-cli";
+    rev = "refs/tags/${version}";
+    hash = "sha256-vYBbaUVJAs+aIp6aQpJb62DEDxe/sQTzgOkjPq6ADoc=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    beancount-black
+    beancount-parser
+    beanhub-forms
+    beanhub-import
+    click
+    fastapi
+    jinja2
+    pydantic
+    pydantic-core
+    pydantic-settings
+    pytz
+    pyyaml
+    rich
+    starlette-wtf
+    uvicorn
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    httpx
+  ];
+
+  pythonImportsCheck = [
+    "beanhub_cli"
+  ];
+
+  meta = {
+    description = "Command line tools for BeanHub or Beancount users";
+    mainProgram = "bh";
+    homepage = "https://github.com/LaunchPlatform/beanhub-cli/";
+    changelog = "https://github.com/LaunchPlatform/beanhub-cli/releases/tag/${version}";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ fangpen ];
+  };
+}
diff --git a/pkgs/development/python-modules/beanhub-extract/default.nix b/pkgs/development/python-modules/beanhub-extract/default.nix
new file mode 100644
index 0000000000000..c0c623b88f30a
--- /dev/null
+++ b/pkgs/development/python-modules/beanhub-extract/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pythonOlder
+, pytestCheckHook
+, poetry-core
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "beanhub-extract";
+  version = "0.0.7";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "LaunchPlatform";
+    repo = "beanhub-extract";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Wt8ZCyCaERNXEd0/Q89QWUW/wGFSHAP2RZLhnv5xkgY=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    pytz
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "beanhub_extract"
+  ];
+
+  meta = {
+    description = "The simple library for extracting all kind of bank account transaction export files, mostly for beanhub-import to ingest and generate transactions";
+    homepage = "https://github.com/LaunchPlatform/beanhub-extract/";
+    changelog = "https://github.com/LaunchPlatform/beanhub-extract/releases/tag/${version}";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ fangpen ];
+  };
+}
diff --git a/pkgs/development/python-modules/beanhub-forms/default.nix b/pkgs/development/python-modules/beanhub-forms/default.nix
new file mode 100644
index 0000000000000..27cf644b96f03
--- /dev/null
+++ b/pkgs/development/python-modules/beanhub-forms/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pythonOlder
+, pytestCheckHook
+, jinja2
+, multidict
+, poetry-core
+, pydantic
+, pyyaml
+, wtforms
+}:
+
+buildPythonPackage rec {
+  pname = "beanhub-forms";
+  version = "0.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "LaunchPlatform";
+    repo = "beanhub-forms";
+    rev = "refs/tags/${version}";
+    hash = "sha256-313c+ENmTe1LyfEiMXNB9AUoGx3Yv/1D0T3HnAbd+Zw=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    jinja2
+    pydantic
+    pyyaml
+    wtforms
+  ];
+
+  nativeCheckInputs = [
+    multidict
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "beanhub_forms"
+  ];
+
+  meta = {
+    description = "Library for generating and processing BeanHub's custom forms";
+    homepage = "https://github.com/LaunchPlatform/beanhub-forms/";
+    changelog = "https://github.com/LaunchPlatform/beanhub-forms/releases/tag/${version}";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ fangpen ];
+  };
+}
diff --git a/pkgs/development/python-modules/beanhub-import/default.nix b/pkgs/development/python-modules/beanhub-import/default.nix
new file mode 100644
index 0000000000000..7097c45356a19
--- /dev/null
+++ b/pkgs/development/python-modules/beanhub-import/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pythonOlder
+, pytestCheckHook
+, beancount-black
+, beancount-parser
+, beanhub-extract
+, jinja2
+, poetry-core
+, pydantic
+, pytz
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "beanhub-import";
+  version = "0.1.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "LaunchPlatform";
+    repo = "beanhub-import";
+    rev = "refs/tags/${version}";
+    hash = "sha256-BH+d7cKC83b7T2Z1Xlwpsv3KACo1vDn6v65tElhir/c=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    beancount-black
+    beancount-parser
+    beanhub-extract
+    jinja2
+    pydantic
+    pytz
+    pyyaml
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "beanhub_import"
+  ];
+
+  meta = {
+    description = "Declarative idempotent rule-based Beancount transaction import engine in Python";
+    homepage = "https://github.com/LaunchPlatform/beanhub-import/";
+    changelog = "https://github.com/LaunchPlatform/beanhub-import/releases/tag/${version}";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ fangpen ];
+  };
+}
diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix
index 1ef9b59acd01a..d5666ac03e7cf 100644
--- a/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -366,7 +366,7 @@
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.104";
+  version = "1.34.107";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -374,7 +374,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "boto3_stubs";
     inherit version;
-    hash = "sha256-GsQmm7pLMdSCQfAtLwa0WB+75hdC3O44MV4BQgwQMVs=";
+    hash = "sha256-ii93ArgE69LK2oUXGVSYHrvW++TxfuZManUOsdnVNnY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/buienradar/default.nix b/pkgs/development/python-modules/buienradar/default.nix
index 23a19f89f2797..3a0c5fbd3dd12 100644
--- a/pkgs/development/python-modules/buienradar/default.nix
+++ b/pkgs/development/python-modules/buienradar/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchFromGitHub
 , docopt
 , pytz
@@ -16,8 +15,6 @@ buildPythonPackage rec {
   version = "1.0.5";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchFromGitHub {
     owner = "mjj4791";
     repo = "python-buienradar";
diff --git a/pkgs/development/python-modules/cnvkit/default.nix b/pkgs/development/python-modules/cnvkit/default.nix
index 35195b1db529e..f705cfbeff9f5 100644
--- a/pkgs/development/python-modules/cnvkit/default.nix
+++ b/pkgs/development/python-modules/cnvkit/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "cnvkit";
-  version = "0.9.10";
+  version = "0.9.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "etal";
     repo = "cnvkit";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mCQXo3abwC06x/g51UBshqUk3dpqEVNUvx+cJ/EdYGQ=";
+    hash = "sha256-tlR1LsR+M1nkzk3CgrkkNcSGP3juv25GXddWDDWJ5ao=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/coffea/default.nix b/pkgs/development/python-modules/coffea/default.nix
index 538e25ee01575..2f390d3bab160 100644
--- a/pkgs/development/python-modules/coffea/default.nix
+++ b/pkgs/development/python-modules/coffea/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , hatchling
 , hatch-vcs
+, aiohttp
 , awkward
 , cachetools
 , cloudpickle
@@ -21,6 +22,7 @@
 , packaging
 , pandas
 , pyarrow
+, requests
 , scipy
 , toml
 , tqdm
@@ -32,7 +34,7 @@
 
 buildPythonPackage rec {
   pname = "coffea";
-  version = "2024.4.1";
+  version = "2024.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -41,20 +43,16 @@ buildPythonPackage rec {
     owner = "CoffeaTeam";
     repo = "coffea";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Iu1GHnLUqdhYO7hoHaf+O/S6KO0P+dvl0wgfRA5vtGI=";
+    hash = "sha256-FHE7/VL0mnf0eBPzCsrr8ISr7OmfFvI9xuV0CPa7JdU=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace-fail "numba>=0.58.1" "numba"
-  '';
-
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     hatch-vcs
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    aiohttp
     awkward
     cachetools
     cloudpickle
@@ -72,6 +70,7 @@ buildPythonPackage rec {
     packaging
     pandas
     pyarrow
+    requests
     scipy
     toml
     tqdm
@@ -88,6 +87,12 @@ buildPythonPackage rec {
     "coffea"
   ];
 
+  disabledTests = [
+    # Requires internet access
+    # https://github.com/CoffeaTeam/coffea/issues/1094
+    "test_lumimask"
+  ];
+
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/comicon/default.nix b/pkgs/development/python-modules/comicon/default.nix
index 72d89533e1c07..c13234b85d28b 100644
--- a/pkgs/development/python-modules/comicon/default.nix
+++ b/pkgs/development/python-modules/comicon/default.nix
@@ -8,11 +8,12 @@
 , lxml
 , pillow
 , pypdf
+, python-slugify
 }:
 
 buildPythonPackage rec {
   pname = "comicon";
-  version = "1.0.1";
+  version = "1.1.0";
   pyproject = true;
   disabled = pythonOlder "3.10";
 
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "potatoeggy";
     repo = "comicon";
     rev = "v${version}";
-    hash = "sha256-e9YEr8IwttMlj6FOxk+/kw79qiF1N8/e2qusfw3WH00=";
+    hash = "sha256-VP4n2pWXHge2gJ67O2nErJ30gI0vaAMn0VOpX8sLkfs=";
   };
 
   nativeBuildInputs = [
@@ -37,6 +38,7 @@ buildPythonPackage rec {
     lxml
     pillow
     pypdf
+    python-slugify
   ];
 
   pythonImportsCheck = [ "comicon" ];
diff --git a/pkgs/development/python-modules/cramjam/default.nix b/pkgs/development/python-modules/cramjam/default.nix
index 7a799429907ee..e61e75da117f5 100644
--- a/pkgs/development/python-modules/cramjam/default.nix
+++ b/pkgs/development/python-modules/cramjam/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, rustPlatform
-, stdenv
-, libiconv
-, hypothesis
-, numpy
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  rustPlatform,
+  stdenv,
+  libiconv,
+  hypothesis,
+  numpy,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "cramjam";
-  version = "2.8.2";
+  version = "2.8.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "milesgranger";
     repo = "pyrus-cramjam";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BO35s7qOW4+l968I9qn9L1m2BtgRFNYUNlA7W1sctT8=";
+    hash = "sha256-1KD5/oZjfdXav1ZByQoyyiDSzbmY4VJsSJg/FtUFdDE=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
-    hash = "sha256-YWXf+ZDJLq6VxI5sa9G63fCPz2377BVSTmPM0mQSu8M=";
+    hash = "sha256-Bp7EtyuLdLUfU3yvouNVE42klfqYt9QOwt+iGe521yI=";
   };
 
   buildAndTestSubdir = "cramjam-python";
@@ -43,17 +44,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "cramjam-python/tests"
-  ];
+  pytestFlagsArray = [ "cramjam-python/tests" ];
 
   disabledTestPaths = [
     "cramjam-python/benchmarks/test_bench.py"
+    # test_variants.py appears to be flaky
+    #
+    # https://github.com/NixOS/nixpkgs/pull/311584#issuecomment-2117656380
+    "cramjam-python/tests/test_variants.py"
   ];
 
-  pythonImportsCheck = [
-    "cramjam"
-  ];
+  pythonImportsCheck = [ "cramjam" ];
 
   meta = with lib; {
     description = "Thin Python bindings to de/compression algorithms in Rust";
diff --git a/pkgs/development/python-modules/curl-cffi/default.nix b/pkgs/development/python-modules/curl-cffi/default.nix
index 3f752f703bf74..00b87dff252e1 100644
--- a/pkgs/development/python-modules/curl-cffi/default.nix
+++ b/pkgs/development/python-modules/curl-cffi/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "curl-cffi";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     owner = "yifeikong";
     repo = "curl_cffi";
-    rev = "v${version}";
-    hash = "sha256-VeBh5wp/VEMDGR2YK06w34hBv9qHIyA+EiZHrhEhAGw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-bNBpZAIdfub2osByo827RBw/gouCmNt8uVN0y1KdcUk=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/cvelib/default.nix b/pkgs/development/python-modules/cvelib/default.nix
index c269c351c1da9..b51d4ea6f64f2 100644
--- a/pkgs/development/python-modules/cvelib/default.nix
+++ b/pkgs/development/python-modules/cvelib/default.nix
@@ -1,48 +1,55 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, jsonschema
-, pytestCheckHook
-, pythonOlder
-, requests
-, testers
-, cve
+{
+  lib,
+  buildPythonPackage,
+  click,
+  cve,
+  fetchFromGitHub,
+  jsonschema,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  testers,
 }:
 
 buildPythonPackage rec {
   pname = "cvelib";
-  version = "1.3.0";
-  format = "setuptools";
+  version = "1.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "RedHatProductSecurity";
     repo = "cvelib";
-    rev = "tags/${version}";
-    hash = "sha256-PCZUAKgE80PD//4qK8ap55IN9vtx9WdpRZUAC3UdaWM=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-nj5bkep8jYJE1qh2zNxivjKOpHj93UZ8bU+qNs2On8s=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # collective.checkdocs is unmaintained for over 10 years
+    substituteInPlace pyproject.toml \
+      --replace-fail '"collective.checkdocs",' ""
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     click
     jsonschema
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cvelib"
-  ];
+  pythonImportsCheck = [ "cvelib" ];
 
   passthru.tests.version = testers.testVersion { package = cve; };
 
   meta = with lib; {
     description = "Library and a command line interface for the CVE Services API";
     homepage = "https://github.com/RedHatProductSecurity/cvelib";
+    changelog = "https://github.com/RedHatProductSecurity/cvelib/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ raboof ];
     mainProgram = "cve";
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
index 89601f3f482d5..61fbeb9ae6b7d 100644
--- a/pkgs/development/python-modules/dash/default.nix
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -36,7 +36,7 @@
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "2.16.1";
+  version = "2.17.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     owner = "plotly";
     repo = "dash";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IPyGQXrC2FTTSIC4IFGwKTceyzPYAe4jwDoO5C9YeF0=";
+    hash = "sha256-45nSQ3N7VcPsXthmMj3gMWFPi/i9z0peI1Wc6fUT7So=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dataclasses-json/default.nix b/pkgs/development/python-modules/dataclasses-json/default.nix
index 05f5eb06e0984..9c8c350185de6 100644
--- a/pkgs/development/python-modules/dataclasses-json/default.nix
+++ b/pkgs/development/python-modules/dataclasses-json/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, marshmallow
-, poetry-core
-, poetry-dynamic-versioning
-, pytestCheckHook
-, pythonOlder
-, typing-inspect
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  marshmallow,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pytestCheckHook,
+  pythonOlder,
+  typing-inspect,
 }:
 
 buildPythonPackage rec {
   pname = "dataclasses-json";
-  version = "0.6.5";
+  version = "0.6.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "lidatong";
     repo = "dataclasses-json";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YkGxUQgnUB7WfpsZz74b3j/TIqJi2ihsk9Ib05S7uPM=";
+    hash = "sha256-JpZwRln7QC0SO/+8xFxc6xrC+ZBFSHVQ9NJscAO+Lf8=";
   };
 
   postPatch = ''
@@ -51,9 +52,7 @@ buildPythonPackage rec {
     "tests/test_annotations.py"
   ];
 
-  pythonImportsCheck = [
-    "dataclasses_json"
-  ];
+  pythonImportsCheck = [ "dataclasses_json" ];
 
   meta = with lib; {
     description = "Simple API for encoding and decoding dataclasses to and from JSON";
diff --git a/pkgs/development/python-modules/dataprep-ml/default.nix b/pkgs/development/python-modules/dataprep-ml/default.nix
index 3bb919b6dc100..eef2f7f4f6fa6 100644
--- a/pkgs/development/python-modules/dataprep-ml/default.nix
+++ b/pkgs/development/python-modules/dataprep-ml/default.nix
@@ -27,7 +27,7 @@ let
 in
 buildPythonPackage rec {
   pname = "dataprep-ml";
-  version = "0.0.23";
+  version = "24.5.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "dataprep_ml";
     inherit version;
-    hash = "sha256-NYlKLdV2xZPODXpHvaFB8cRFTdCndl3UOd6bCfNbsZo=";
+    hash = "sha256-pZhHlNcQJLBww7ur2Z6Yb2IdbRsBtjzQAzfa4UzGKt4=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/dbt-bigquery/default.nix b/pkgs/development/python-modules/dbt-bigquery/default.nix
index d6401c6502a0b..2ad6e8b1a42e4 100644
--- a/pkgs/development/python-modules/dbt-bigquery/default.nix
+++ b/pkgs/development/python-modules/dbt-bigquery/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "dbt-bigquery";
-  version = "1.7.7";
+  version = "1.7.8";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-bigquery";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+UF49ReSxKQ8ouutOv1b9JcU/6CNk7Yw8f1/tlRvwnU=";
+    hash = "sha256-Uc842hkrCYDR92ACDtNW+Iqq5l54CSp40D1tOL7wt8o=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/django-allauth/default.nix b/pkgs/development/python-modules/django-allauth/default.nix
index 8a1f6dc8ac06f..6046f1964d8f6 100644
--- a/pkgs/development/python-modules/django-allauth/default.nix
+++ b/pkgs/development/python-modules/django-allauth/default.nix
@@ -2,10 +2,14 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, python
 
 # build-system
 , setuptools
 
+# build-time dependencies
+, gettext
+
 # dependencies
 , django
 , python3-openid
@@ -41,6 +45,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
+    gettext
     setuptools
   ];
 
@@ -52,6 +57,8 @@ buildPythonPackage rec {
     requests-oauthlib
   ] ++ pyjwt.optional-dependencies.crypto;
 
+  preBuild = "${python.interpreter} -m django compilemessages";
+
   passthru.optional-dependencies = {
     saml = [
       python3-saml
diff --git a/pkgs/development/python-modules/django-auditlog/default.nix b/pkgs/development/python-modules/django-auditlog/default.nix
index 4a176b0b14ec3..ef7fbb133f476 100644
--- a/pkgs/development/python-modules/django-auditlog/default.nix
+++ b/pkgs/development/python-modules/django-auditlog/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "django-auditlog";
-  version = "2.2.2";
+  version = "3.0.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jazzband";
-    repo = pname;
+    repo = "django-auditlog";
     rev = "v${version}";
-    hash = "sha256-QHSGqtpkOgltAg+RlG/Ik3DfEjtSWt45sqlD+Zw4Bh0=";
+    hash = "sha256-SJ4GJp/gVIxiLbdAj3ZS+weevqIDZCMQnW/pqc5liJU=";
   };
 
   nativeBuildInputs = [
@@ -46,9 +46,11 @@ buildPythonPackage rec {
   checkPhase = ''
     runHook preCheck
 
+    # strip escape codes otherwise tests fail
+    # see https://github.com/jazzband/django-auditlog/issues/644
     TEST_DB_USER=$PGUSER \
     TEST_DB_HOST=$PGHOST \
-    ${python.interpreter} runtests.py
+    ${python.interpreter} runtests.py | cat
 
     runHook postCheck
   '';
diff --git a/pkgs/development/python-modules/domeneshop/default.nix b/pkgs/development/python-modules/domeneshop/default.nix
index 8778dfc6aa935..c48d7603a045d 100644
--- a/pkgs/development/python-modules/domeneshop/default.nix
+++ b/pkgs/development/python-modules/domeneshop/default.nix
@@ -1,12 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pythonOlder
 , setuptools
 , urllib3
-, pyopenssl
-, cryptography
-, idna
 , certifi
 }:
 
@@ -15,8 +11,6 @@ buildPythonPackage rec {
   version = "0.4.4";
   pyproject = true;
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-UCxIDnhIAkxZ1oQXYRyAMdGgUsUZ6AlYXwsxL49TFAg=";
diff --git a/pkgs/development/python-modules/dramatiq/default.nix b/pkgs/development/python-modules/dramatiq/default.nix
index 35c2b79c438dd..fb434bf0e8b49 100644
--- a/pkgs/development/python-modules/dramatiq/default.nix
+++ b/pkgs/development/python-modules/dramatiq/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "dramatiq";
-  version = "1.16.0";
+  version = "1.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "Bogdanp";
     repo = "dramatiq";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gC1vWnG3zDuFT61i2VgDrP/qIwmGN5GkGv6EVxqUf4U=";
+    hash = "sha256-xKHTBo2AirxDXe/CLSqo++3AgxP4pVkGTNdgS5CCZ3c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dronecan/default.nix b/pkgs/development/python-modules/dronecan/default.nix
index 49c5dbb51db42..fc051d105bf65 100644
--- a/pkgs/development/python-modules/dronecan/default.nix
+++ b/pkgs/development/python-modules/dronecan/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pythonOlder
 , pytestCheckHook
 }:
 
@@ -9,7 +8,6 @@ buildPythonPackage rec {
   pname = "dronecan";
   version = "1.0.26";
   format = "setuptools";
-  disabled = pythonOlder "3.3";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/dtlssocket/default.nix b/pkgs/development/python-modules/dtlssocket/default.nix
index bad1a6c733777..16b60266c6a77 100644
--- a/pkgs/development/python-modules/dtlssocket/default.nix
+++ b/pkgs/development/python-modules/dtlssocket/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "dtlssocket";
-  version = "0.1.16";
+  version = "0.1.18";
 
   format = "pyproject";
 
   src = fetchPypi {
     pname = "DTLSSocket";
     inherit version;
-    hash = "sha256-MLEIrkX84cAz4+9sLd1+dBgGKuN0Io46f6lpslQ2ajk=";
+    hash = "sha256-TnS2LYe6CeAlezc83bGpRqOpQbPJMQHzJn6PnXon4FI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dugong/default.nix b/pkgs/development/python-modules/dugong/default.nix
index 7cfc29c9ff813..e66763b23d5e1 100644
--- a/pkgs/development/python-modules/dugong/default.nix
+++ b/pkgs/development/python-modules/dugong/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
-, pythonAtLeast
 , pytestCheckHook
 }:
 
@@ -10,7 +9,6 @@ buildPythonPackage rec {
   pname = "dugong";
   version = "3.8.1";
   format = "setuptools";
-  disabled = pythonOlder "3.3";
 
   src = fetchFromGitHub {
     owner = "python-dugong";
diff --git a/pkgs/development/python-modules/dvclive/default.nix b/pkgs/development/python-modules/dvclive/default.nix
index 7090433431a9e..fd78c6ca873dd 100644
--- a/pkgs/development/python-modules/dvclive/default.nix
+++ b/pkgs/development/python-modules/dvclive/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "dvclive";
-  version = "3.45.0";
+  version = "3.46.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvclive";
     rev = "refs/tags/${version}";
-    hash = "sha256-76PjBPr3m1y5osW024dkhuvuXl2FiZ5oxlJ1Ucq8msI=";
+    hash = "sha256-yIViKlkCdoG2vSZdScL38fZd9musLRKzBd9wSR6lJdk=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/dynalite-panel/default.nix b/pkgs/development/python-modules/dynalite-panel/default.nix
index 33be58906c750..960f5544d30ed 100644
--- a/pkgs/development/python-modules/dynalite-panel/default.nix
+++ b/pkgs/development/python-modules/dynalite-panel/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchPypi
 , setuptools
 }:
@@ -10,8 +9,6 @@ buildPythonPackage rec {
   version = "0.0.4";
   pyproject = true;
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-m7nQzbxRe2qXUWAMeQlDZtc9F01DsbTzF/kI0ci3TFE=";
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index c41a7da3a8075..1e560b59895bd 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -29,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "5.3.0";
+  version = "5.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = "exchangelib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rcXQJYjyWLPrlMci/j8IY7EbDEyyc+5uSOOXo0YwjKo=";
+    hash = "sha256-GBfSdX9gFLx+CCV8DWHWtVpWi6zI3fg/3g/MiIvRoVM=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/fakeredis/default.nix b/pkgs/development/python-modules/fakeredis/default.nix
index d3ef95253addd..a89d85efcafdb 100644
--- a/pkgs/development/python-modules/fakeredis/default.nix
+++ b/pkgs/development/python-modules/fakeredis/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "fakeredis";
-  version = "2.23.0";
+  version = "2.23.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "dsoftwareinc";
     repo = "fakeredis-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qiqJO8uZ3vy9TpTHmExlUoQ78avPVqlKn0jgvDsKdP0=";
+    hash = "sha256-IMYxzlvPgwJNpb976jYXNW+6veQlUxQph43ZClyC4Eg=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/filedate/default.nix b/pkgs/development/python-modules/filedate/default.nix
new file mode 100644
index 0000000000000..5317169caa68c
--- /dev/null
+++ b/pkgs/development/python-modules/filedate/default.nix
@@ -0,0 +1,59 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  python-dateutil,
+  setuptools,
+}:
+buildPythonPackage rec {
+  pname = "filedate";
+  version = "3.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "kubinka0505";
+    repo = "filedate";
+    rev = version;
+    hash = "sha256-HvuGP+QlUlfAUfFmaVVvtPHGdrbWVxghQipnqTTvAQc=";
+  };
+
+  sourceRoot = "${src.name}/Files";
+
+  # The repo stores everything in "src" and uses setup.py to move "src" ->
+  # "filedate" before calling setup() and then tries to rename "filedate" back
+  # to "src" after.
+  postPatch = ''
+    mv src filedate
+    substituteInPlace setup.py \
+      --replace-fail "__title__ = os.path.basename(os.path.dirname(os.path.dirname(__file__)))" '__title__ = "filedate"'
+    substituteInPlace setup.py \
+      --replace-fail "cleanup = True" "cleanup = False"
+
+    # Disable renaming "filedate" dir back to "src"
+    substituteInPlace setup.py \
+      --replace-fail "if os.path.exists(__title__):" ""
+    substituteInPlace setup.py \
+      --replace-fail "	os.rename(__title__, directory)" ""
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [ python-dateutil ];
+
+  pythonImportsCheck = [ "filedate" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "tests/unit.py" ];
+
+  disabledTests = [ "test_created" ];
+
+  meta = {
+    description = "Simple, convenient and cross-platform file date changing library";
+    homepage = "https://github.com/kubinka0505/filedate";
+    changelog = "https://github.com/kubinka0505/filedate/blob/${src.rev}/Documents/ChangeLog.md";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ thornycrackers ];
+  };
+}
diff --git a/pkgs/development/python-modules/functools32/default.nix b/pkgs/development/python-modules/functools32/default.nix
deleted file mode 100644
index be907e963c100..0000000000000
--- a/pkgs/development/python-modules/functools32/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-}:
-
-if isPy3k then null else buildPythonPackage rec {
-  pname = "functools32";
-  version = "3.2.3-2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn";
-  };
-
-  meta = with lib; {
-    description = "This is a backport of the functools standard library module from";
-    homepage = "https://github.com/MiCHiLU/python-functools32";
-    license = licenses.psfl;
-  };
-
-}
diff --git a/pkgs/development/python-modules/gcal-sync/default.nix b/pkgs/development/python-modules/gcal-sync/default.nix
index 7a2ce7e511971..59914e2335825 100644
--- a/pkgs/development/python-modules/gcal-sync/default.nix
+++ b/pkgs/development/python-modules/gcal-sync/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "gcal-sync";
-  version = "6.0.4";
+  version = "6.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "gcal_sync";
     rev = "refs/tags/${version}";
-    hash = "sha256-ufoe9+4zhlixcSGMAhuhJx2Y2vrN036N8UvyP3xuTRQ=";
+    hash = "sha256-mZn/3oROIUSv6cCxXs3rBJtlmKsqNflTW2pcER8GisE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gcovr/default.nix b/pkgs/development/python-modules/gcovr/default.nix
index 7b8b32b2c5de2..98051cc1a40cf 100644
--- a/pkgs/development/python-modules/gcovr/default.nix
+++ b/pkgs/development/python-modules/gcovr/default.nix
@@ -46,6 +46,6 @@ buildPythonPackage rec {
     homepage = "https://www.gcovr.com/";
     changelog = "https://github.com/gcovr/gcovr/blob/${version}/CHANGELOG.rst";
     license = licenses.bsd0;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ sigmanificient ];
   };
 }
diff --git a/pkgs/development/python-modules/globus-sdk/default.nix b/pkgs/development/python-modules/globus-sdk/default.nix
index 5cb49c0e9723d..646fb31650d17 100644
--- a/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/pkgs/development/python-modules/globus-sdk/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "globus-sdk";
-  version = "3.39.0";
+  version = "3.41.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "globus";
     repo = "globus-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-DjGwwpXzYRq5/hiUs/l8kD/yA58vbhvrKirKDlWoAmY=";
+    hash = "sha256-FQO1D960mg0G/zYMo4J5MtJbPID4oE8UWNpTPKWtsic=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/gmpy/default.nix b/pkgs/development/python-modules/gmpy/default.nix
index 072ef985dc01c..d68f038ec3b96 100644
--- a/pkgs/development/python-modules/gmpy/default.nix
+++ b/pkgs/development/python-modules/gmpy/default.nix
@@ -1,28 +1,39 @@
-{ buildPythonPackage, fetchurl, isPyPy, gmp, pythonAtLeast } :
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPyPy,
+  pythonAtLeast,
+  setuptools,
+  gmp,
+}:
 
-let
+buildPythonPackage rec {
   pname = "gmpy";
   version = "1.17";
-  format = "setuptools";
-in
-
-buildPythonPackage {
-  inherit pname version;
+  pyproject = true;
 
   # Python 3.11 has finally made changes to its C API for which gmpy 1.17,
   # published in 2013, would require patching. It seems unlikely that any
   # patches will be forthcoming.
   disabled = isPyPy || pythonAtLeast "3.11";
 
-  src = fetchurl {
-    url = "mirror://pypi/g/gmpy/${pname}-${version}.zip";
-    sha256 = "1a79118a5332b40aba6aa24b051ead3a31b9b3b9642288934da754515da8fa14";
+  src = fetchFromGitHub {
+    owner = "aleaxit";
+    repo = "gmpy";
+    rev = "refs/tags/gmpy_${lib.replaceStrings [ "." ] [ "_" ] version}";
+    hash = "sha256-kMidOjhKJlDRu2qaiq9c+XcwD1tNAoPhRTvvGcOJe8I=";
   };
 
+  build-system = [ setuptools ];
+
   buildInputs = [ gmp ];
 
+  pythonImportsCheck = [ "gmpy" ];
+
   meta = {
     description = "GMP or MPIR interface to Python 2.4+ and 3.x";
     homepage = "https://github.com/aleaxit/gmpy/";
+    license = lib.licenses.lgpl21Plus;
   };
 }
diff --git a/pkgs/development/python-modules/gmpy2/default.nix b/pkgs/development/python-modules/gmpy2/default.nix
index e3d4118c335ba..7bf82ed02b2dd 100644
--- a/pkgs/development/python-modules/gmpy2/default.nix
+++ b/pkgs/development/python-modules/gmpy2/default.nix
@@ -1,42 +1,73 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPyPy
-, gmp
-, mpfr
-, libmpc
-
-# Reverse dependency
-, sage
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPyPy,
+  pythonOlder,
+  setuptools,
+  gmp,
+  mpfr,
+  libmpc,
+  pytestCheckHook,
+  hypothesis,
+  cython,
+  mpmath,
+  # Reverse dependency
+  sage,
 }:
 
-let
+buildPythonPackage rec {
   pname = "gmpy2";
-  version = "2.1.2";
-  format = "setuptools";
-in
+  version = "2.2.0a2";
+  pyproject = true;
 
-buildPythonPackage {
-  inherit pname version;
-
-  disabled = isPyPy;
+  disabled = isPyPy || pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aleaxit";
     repo = "gmpy";
-    rev = "gmpy2-${version}";
-    hash = "sha256-ARCttNzRA+Ji2j2NYaSCDXgvoEg01T9BnYadyqON2o0=";
+    rev = "refs/tags/gmpy2-${version}";
+    hash = "sha256-luLEDEY1cezhzZo4fXmM/MUg2YyAaz7n0HwSpbNayP8=";
   };
 
-  buildInputs = [ gmp mpfr libmpc ];
+  build-system = [ setuptools ];
+
+  buildInputs = [
+    gmp
+    mpfr
+    libmpc
+  ];
+
+  # make relative imports in tests work properly
+  preCheck = ''
+    rm gmpy2 -r
+  '';
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    hypothesis
+    cython
+    mpmath
+  ];
+
+  disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+    # issue with some overflow logic
+    "test_mpz_to_bytes"
+    "test_mpz_from_bytes"
+  ];
 
   pythonImportsCheck = [ "gmpy2" ];
 
-  passthru.tests = { inherit sage; };
+  passthru.tests = {
+    inherit sage;
+  };
 
-  meta = with lib; {
-    description = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x";
+  meta = {
+    changelog = "https://github.com/aleaxit/gmpy/blob/${src.rev}/docs/history.rst";
+    description = "Interface to GMP, MPFR, and MPC for Python 3.7+";
     homepage = "https://github.com/aleaxit/gmpy/";
-    license = licenses.gpl3Plus;
+    license = lib.licenses.lgpl3Plus;
+    maintainers = with lib.maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index 31a750c9ae589..a7811fbf5c03f 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.4.1";
+  version = "0.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = "goodwe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5Z8eHhCqfCTswS0C56z9TUQfoIdifuqcdWOupVlOJt8=";
+    hash = "sha256-Zptw8iEPjakMQ/OytGAqDaG973XuMy5UzsNv4LONlRU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
index 1cda61e137576..a669bd3641332 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-storage";
-  version = "2.24.0";
+  version = "2.25.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tK9bmqzYOWuEB9G4d2AaN22O6m0ZKCOop4gb0v3Ads4=";
+    hash = "sha256-GV/9KxgOnqoivqs+QKC2Hs0UbssyZnz0Immo1xEbTUg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
index a079fffd2510c..564ea58c7136f 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -30,14 +30,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "3.21.0";
+  version = "3.22.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YmXDn51b31DxHLganCoGBdKF3zSsE53g0jM7ElCt0P8=";
+    hash = "sha256-lXWR5vlI18tKoPeo5OR7RhfNfwJp4opxw3lTw5tuikw=";
   };
 
   build-system = [ setuptools ];
@@ -93,8 +93,10 @@ buildPythonPackage rec {
     "test_arrow_extension_types_same_for_storage_and_REST_APIs_894"
     "test_list_rows_empty_table"
     "test_list_rows_page_size"
-    "test_list_rows_scalars"
+    "test_list_rows_range_csv"
+    "test_list_rows_range"
     "test_list_rows_scalars_extreme"
+    "test_list_rows_scalars"
     "test_dry_run"
     "test_session"
     # Mocking of _ensure_bqstorage_client fails
diff --git a/pkgs/development/python-modules/google-cloud-dlp/default.nix b/pkgs/development/python-modules/google-cloud-dlp/default.nix
index f3895b8e3ef17..52c1ee3e4f2dd 100644
--- a/pkgs/development/python-modules/google-cloud-dlp/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dlp/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "3.16.0";
+  version = "3.17.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DWmh96XviHVsmeVrivTDnq5A0hBog/DieUxcs2QmltU=";
+    hash = "sha256-YMUEBj8c154KA5Y/cm1gbypDxkfY4ncCq5wbym5rS9s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gotailwind/default.nix b/pkgs/development/python-modules/gotailwind/default.nix
index f1ae7880a2799..8593c49ddc115 100644
--- a/pkgs/development/python-modules/gotailwind/default.nix
+++ b/pkgs/development/python-modules/gotailwind/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, aiohttp
-, aresponses
-, awesomeversion
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
-, typer
-, yarl
-, zeroconf
+{
+  lib,
+  aiohttp,
+  aresponses,
+  awesomeversion,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  typer,
+  yarl,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
   pname = "gotailwind";
-  version = "0.2.2";
+  version = "0.2.3";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -28,21 +29,19 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-gotailwind";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JtMBud3iON4xLc9dQdXniv51EBqs7zkat8cYm3q0uEE=";
+    hash = "sha256-FRFcFn5aRg+H9M6ZwEfLO1Dwcybvs0ODQv2ruCG+4v0=";
   };
 
   postPatch = ''
     # Upstream doesn't set a version for the pyproject.toml
     substituteInPlace pyproject.toml \
-      --replace "0.0.0" "${version}" \
-      --replace "--cov" ""
+      --replace-fail "0.0.0" "${version}" \
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     awesomeversion
     backoff
@@ -53,9 +52,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    cli = [
-      typer
-    ];
+    cli = [ typer ];
   };
 
   nativeCheckInputs = [
@@ -65,16 +62,14 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "gotailwind"
-  ];
+  pythonImportsCheck = [ "gotailwind" ];
 
   meta = with lib; {
     description = "Modul to communicate with Tailwind garage door openers";
-    mainProgram = "tailwind";
     homepage = "https://github.com/frenck/python-gotailwind";
     changelog = "https://github.com/frenck/python-gotailwind/releases/tag/v$version";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "tailwind";
   };
 }
diff --git a/pkgs/development/python-modules/gpapi/default.nix b/pkgs/development/python-modules/gpapi/default.nix
index 307e8dfb63b80..1ec16d8216aa3 100644
--- a/pkgs/development/python-modules/gpapi/default.nix
+++ b/pkgs/development/python-modules/gpapi/default.nix
@@ -2,7 +2,6 @@
 , cryptography
 , fetchPypi
 , lib
-, pythonOlder
 , protobuf
 , pycryptodome
 , requests
@@ -12,7 +11,6 @@ buildPythonPackage rec {
   version = "0.4.4";
   format = "setuptools";
   pname = "gpapi";
-  disabled = pythonOlder "3.3"; # uses shutil.which(), added in 3.3
 
   src = fetchPypi {
     inherit version pname;
diff --git a/pkgs/development/python-modules/gurobipy/default.nix b/pkgs/development/python-modules/gurobipy/default.nix
index 7793009abe963..9dc2cc10676d0 100644
--- a/pkgs/development/python-modules/gurobipy/default.nix
+++ b/pkgs/development/python-modules/gurobipy/default.nix
@@ -17,14 +17,14 @@ let
   };
   platform = platforms.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
   hashes = rec {
-    cp311-aarch64-darwin = "sha256-pMwq4TXvr0mrKxZppeW2MQE/KrplWWFGmjKRLKwbHCI=";
-    cp311-aarch64-linux = "sha256-fxJSQUt+nk7JBGtkDi+qTl/js0hnWGZGyht4AqD9g60=";
+    cp311-aarch64-darwin = "sha256-jODaasqXupII5JDE1QLUK+Jd07WJfAtxB3NIHCeuDa4=";
+    cp311-aarch64-linux = "sha256-hx6BgCbI8ojXRA/NS4Qr7N8QBvQ0lfxPbj7G2bi6PXo=";
     cp311-x86_64-darwin = cp311-aarch64-darwin;
-    cp311-x86_64-linux = "sha256-q1nmuWmlDPeNWWw4bX3KECOChNQkwU+6hItYqWcyY4M=";
-    cp312-aarch64-darwin = "sha256-5+1QxYOhjbs01S3gqhkQ9Bx/0/NhbXEi710BGpiC5kM=";
-    cp312-aarch64-linux = "sha256-N7cFtibenj+SrZ7ZtevZtDUdW48DnLC4p5jB9vrWlb8=";
+    cp311-x86_64-linux = "sha256-hiZbepqPPlMcG77m5hwefQtoJk6XZ5W0z3rsaLnmbrg=";
+    cp312-aarch64-darwin = "sha256-H5J44n2CUqOo8jzn2G6gZPehWsbPnZtHXi4Iygx2RRM=";
+    cp312-aarch64-linux = "sha256-xFUR7yizqSsytyfStRigKlZ7q8uY+VgRR/j29DKPWp0=";
     cp312-x86_64-darwin = cp312-aarch64-darwin;
-    cp312-x86_64-linux = "sha256-Aw5xxvCwdgfdT7HMrWT/jKWx3RDjs8IuB4in0ZGdqcw=";
+    cp312-x86_64-linux = "sha256-giNHTNfLX1hIiWOPQlLOnqjrbPWkKQrA4KXug6ujYxI=";
   };
   hash =
     hashes."${pyShortVersion}-${stdenv.system}"
@@ -32,7 +32,7 @@ let
 in
 buildPythonPackage rec {
   pname = "gurobipy";
-  version = "11.0.1";
+  version = "11.0.2";
   inherit format;
 
   src = fetchPypi {
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index ac32e43cf9322..ecaa475906d68 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.80.0";
+  version = "0.81.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "nabucasa";
     repo = "hass-nabucasa";
     rev = "refs/tags/${version}";
-    hash = "sha256-8KxnS6LTK077/hr81JOiOj8GaNWBXO8XlvpYBm/sZbI=";
+    hash = "sha256-61pdl9bjtvC9Fa7jCtSPEz/5PJiANmKqOSSHjK7is2s=";
   };
 
   pythonRelaxDeps = [ "acme" ];
diff --git a/pkgs/development/python-modules/hcs-utils/default.nix b/pkgs/development/python-modules/hcs-utils/default.nix
index 2dc90870b6143..d8d6bb67e47fc 100644
--- a/pkgs/development/python-modules/hcs-utils/default.nix
+++ b/pkgs/development/python-modules/hcs-utils/default.nix
@@ -1,4 +1,4 @@
-{ lib, pythonOlder, buildPythonPackage, fetchPypi, six, glibcLocales, pytest }:
+{ lib, buildPythonPackage, fetchPypi, six, glibcLocales, pytest }:
 
 buildPythonPackage rec {
   pname = "hcs-utils";
@@ -21,8 +21,6 @@ buildPythonPackage rec {
   buildInputs = [ six glibcLocales ];
   nativeCheckInputs = [ pytest ];
 
-  disabled = pythonOlder "3.4";
-
   meta = with lib; {
     description = "Library collecting some useful snippets";
     homepage    = "https://pypi.python.org/pypi/hcs_utils/1.3";
diff --git a/pkgs/development/python-modules/hiyapyco/default.nix b/pkgs/development/python-modules/hiyapyco/default.nix
index 96baf1790b04e..4fd8f10bd1113 100644
--- a/pkgs/development/python-modules/hiyapyco/default.nix
+++ b/pkgs/development/python-modules/hiyapyco/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "hiyapyco";
-  version = "0.5.5";
+  version = "0.5.6";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "zerwes";
     repo = pname;
     rev = "refs/tags/release-${version}";
-    hash = "sha256-LuENNwVB/1GyPLsfMRwHjz87c7+3/7U82m1MnHfRHdU=";
+    hash = "sha256-WBSOjOX4naa0XDTnO593EAvtz5EjVPWCbiZaPXdx0e4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/httpserver/default.nix b/pkgs/development/python-modules/httpserver/default.nix
index 6d13740758863..59530ab5a7046 100644
--- a/pkgs/development/python-modules/httpserver/default.nix
+++ b/pkgs/development/python-modules/httpserver/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, buildPythonPackage, docopt, pythonOlder }:
+{ lib, fetchPypi, buildPythonPackage, docopt }:
 
 buildPythonPackage rec {
   pname = "httpserver";
@@ -11,9 +11,6 @@ buildPythonPackage rec {
   # drivers.
   doCheck = false;
 
-  # Because it uses asyncio
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "1q62g324dvb0hqdwwrnj41sqr4d3ly78v9nc26rz1whj4pwdmhsv";
diff --git a/pkgs/development/python-modules/humanfriendly/default.nix b/pkgs/development/python-modules/humanfriendly/default.nix
index d8a3fa92e4832..2c60b0b294b86 100644
--- a/pkgs/development/python-modules/humanfriendly/default.nix
+++ b/pkgs/development/python-modules/humanfriendly/default.nix
@@ -1,8 +1,6 @@
 { lib
-, pythonOlder
 , buildPythonPackage
 , fetchPypi
-, monotonic
 }:
 
 buildPythonPackage rec {
@@ -15,8 +13,6 @@ buildPythonPackage rec {
     sha256 = "6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc";
   };
 
-  propagatedBuildInputs = lib.optional (pythonOlder "3.3") monotonic;
-
   # humanfriendly tests depends on coloredlogs which itself depends on
   # humanfriendly. This lead to infinite recursion when trying to
   # build this package so we have to disable the test suite :(
diff --git a/pkgs/development/python-modules/hurry-filesize/default.nix b/pkgs/development/python-modules/hurry-filesize/default.nix
index 62bd1f810f9d5..7dd168bf9704e 100644
--- a/pkgs/development/python-modules/hurry-filesize/default.nix
+++ b/pkgs/development/python-modules/hurry-filesize/default.nix
@@ -1,9 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-
-, pythonOlder
-
 , setuptools
 }:
 
@@ -12,8 +9,6 @@ buildPythonPackage rec {
   version = "0.9";
   pyproject = true;
 
-  disabled = pythonOlder "3.3";
-
   src = fetchPypi {
     pname = "hurry.filesize";
     inherit version;
diff --git a/pkgs/development/python-modules/ifcopenshell/default.nix b/pkgs/development/python-modules/ifcopenshell/default.nix
index 3fc63b13bb391..7288eb8d96bcc 100644
--- a/pkgs/development/python-modules/ifcopenshell/default.nix
+++ b/pkgs/development/python-modules/ifcopenshell/default.nix
@@ -7,11 +7,13 @@
 , icu
 , swig
 , pcre
-, opencascade-occt
+, opencascade-occt_7_6
 , opencollada
 , libxml2
 }:
-
+let
+  opencascade-occt = opencascade-occt_7_6;
+in
 buildPythonPackage rec {
   pname = "ifcopenshell";
   version = "240306";
diff --git a/pkgs/development/python-modules/imgtool/default.nix b/pkgs/development/python-modules/imgtool/default.nix
index dc8a9ec630891..52f203f9b1e9c 100644
--- a/pkgs/development/python-modules/imgtool/default.nix
+++ b/pkgs/development/python-modules/imgtool/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "imgtool";
-  version = "2.0.0";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-elQSVeae7B8Sqjjc4fHU/iDYISZ3xoqbbsY0ypGgZhI=";
+    hash = "sha256-T3+831PETqqmImUEUQzLUvfvAMmXUDz5STSzMMlge2A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/json-schema-for-humans/default.nix b/pkgs/development/python-modules/json-schema-for-humans/default.nix
index e96a5b37db430..6b976adc6b1ed 100644
--- a/pkgs/development/python-modules/json-schema-for-humans/default.nix
+++ b/pkgs/development/python-modules/json-schema-for-humans/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "json-schema-for-humans";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "coveooss";
     repo = "json-schema-for-humans";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZlGIttfFOL4uLgzXIFvmyFDGrm8/Vr94QaFSn4/5ITI=";
+    hash = "sha256-SSMUHC4IsMIIhmRrG0ZWNO2MNKKvoBSybmEEibAY5q0=";
   };
 
   pythonRelaxDeps = [ "dataclasses-json" ];
diff --git a/pkgs/development/python-modules/justext/default.nix b/pkgs/development/python-modules/justext/default.nix
index 82f0aa8045654..2446dccf0823e 100644
--- a/pkgs/development/python-modules/justext/default.nix
+++ b/pkgs/development/python-modules/justext/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "justext";
-  version = "3.0.0";
+  version = "3.0.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "miso-belica";
     repo = "jusText";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WNxDoM5666tEHS9pMl5dOoig4S7dSYaCLZq71tehWqw=";
+    hash = "sha256-9i7hzCK/ijh8xw9l2ZbVhVj5IBf0WD/49/R1tSWgqrQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/langchain-text-splitters/default.nix b/pkgs/development/python-modules/langchain-text-splitters/default.nix
index 81cb942e51553..3f8fa837af7a3 100644
--- a/pkgs/development/python-modules/langchain-text-splitters/default.nix
+++ b/pkgs/development/python-modules/langchain-text-splitters/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, langchain-core
-, lxml
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  langchain-core,
+  lxml,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-text-splitters";
-  version = "0.0.1";
+  version = "0.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -17,14 +18,12 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_text_splitters";
     inherit version;
-    hash = "sha256-rEWfqYeZ9RF61UJakzCyGWEyHjC8GaKi+fdh3a3WKqE=";
+    hash = "sha256-rIkn3AugjrpwL2lhye19986tjeGan3EBqyteo0IBs8E=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     langchain-core
     lxml
   ];
@@ -32,9 +31,7 @@ buildPythonPackage rec {
   # PyPI source does not have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "langchain_text_splitters"
-  ];
+  pythonImportsCheck = [ "langchain_text_splitters" ];
 
   meta = with lib; {
     description = "Build context-aware reasoning applications";
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index fe26d306a3985..4e7bc1d107f34 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.1.57";
+  version = "0.1.59";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-L725AfkmBEe44LkJ0y6PdDvbnbCf31LXL3YdnOshnqE=";
+    hash = "sha256-k9WsJUiJPCahwUHzsOblBCm58z2dHQZGk3U6GMm7SpQ=";
   };
 
   sourceRoot = "${src.name}/python";
diff --git a/pkgs/development/python-modules/ldappool/default.nix b/pkgs/development/python-modules/ldappool/default.nix
index 2cb2155bfed4e..3d56668c88149 100644
--- a/pkgs/development/python-modules/ldappool/default.nix
+++ b/pkgs/development/python-modules/ldappool/default.nix
@@ -1,42 +1,56 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, python-ldap
-, prettytable
-, six
-, fixtures
-, testresources
-, testtools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pbr,
+  python-ldap,
+  prettytable,
+  six,
+  unittestCheckHook,
+  fixtures,
+  testresources,
+  testtools,
 }:
 
 buildPythonPackage rec {
   pname = "ldappool";
   version = "3.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "ldappool";
     inherit version;
-    sha256 = "4bb59b7d6b11407f48ee01a781267e3c8ba98d91f426806ac7208612ae087b86";
+    hash = "sha256-S7WbfWsRQH9I7gGngSZ+PIupjZH0JoBqxyCGEq4Ie4Y=";
   };
 
-  postPatch = ''
-    # Tests run without most of the dependencies
-    echo "" > test-requirements.txt
-    # PrettyTable is now maintained again
-    substituteInPlace requirements.txt --replace "PrettyTable<0.8,>=0.7.2" "PrettyTable"
-  '';
+  build-system = [
+    setuptools
+    pbr
+  ];
 
-  nativeBuildInputs = [ pbr ];
+  dependencies = [
+    python-ldap
+    prettytable
+    six
+  ];
 
-  propagatedBuildInputs = [ python-ldap prettytable six ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    fixtures
+    testresources
+    testtools
+  ];
 
-  nativeCheckInputs = [ fixtures testresources testtools ];
+  pythonImportsCheck = [ "ldappool" ];
 
   meta = with lib; {
     description = "A simple connector pool for python-ldap";
     homepage = "https://opendev.org/openstack/ldappool/";
-    license = with licenses; [ mpl11 lgpl21Plus gpl2Plus ];
+    license = with licenses; [
+      mpl11
+      lgpl21Plus
+      gpl2Plus
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/libarcus/default.nix b/pkgs/development/python-modules/libarcus/default.nix
index b95c2b295257a..989967719d09a 100644
--- a/pkgs/development/python-modules/libarcus/default.nix
+++ b/pkgs/development/python-modules/libarcus/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, python, fetchFromGitHub
 , fetchpatch
-, cmake, sip4, protobuf, pythonOlder }:
+, cmake, sip4, protobuf }:
 
 buildPythonPackage rec {
   pname = "libarcus";
@@ -23,8 +23,6 @@ buildPythonPackage rec {
     })
   ];
 
-  disabled = pythonOlder "3.4";
-
   propagatedBuildInputs = [ sip4 ];
   nativeBuildInputs = [ cmake ];
   buildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/libgravatar/default.nix b/pkgs/development/python-modules/libgravatar/default.nix
index f246f61a75a08..37d3373c7aa2f 100644
--- a/pkgs/development/python-modules/libgravatar/default.nix
+++ b/pkgs/development/python-modules/libgravatar/default.nix
@@ -1,12 +1,18 @@
 {
   lib,
-  python3Packages,
+  buildPythonPackage,
   fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
-python3Packages.buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "libgravatar";
   version = "1.0.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pabluk";
@@ -15,15 +21,16 @@ python3Packages.buildPythonApplication rec {
     hash = "sha256-rJv/jfdT+JldxR0kKtXQLOI5wXQYSQRWJnqwExwWjTA=";
   };
 
-  nativeBuildInputs = with python3Packages; [ setuptools ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "libgravatar" ];
 
   meta = with lib; {
-    homepage = "https://github.com/pabluk/libgravatar";
     description = "A library that provides a Python 3 interface for the Gravatar API";
+    homepage = "https://github.com/pabluk/libgravatar";
+    changelog = "https://github.com/pabluk/libgravatar/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ gador ];
   };
diff --git a/pkgs/development/python-modules/limnoria/default.nix b/pkgs/development/python-modules/limnoria/default.nix
index b791095ed68d2..3eba2971c6453 100644
--- a/pkgs/development/python-modules/limnoria/default.nix
+++ b/pkgs/development/python-modules/limnoria/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "limnoria";
-  version = "2023.11.18";
+  version = "2024.4.26";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ftm5OGTt1emQsYso3hAUA9yMNBkIK5jybdFaRKJJk0o=";
+    hash = "sha256-H8GAJvmkYJy8PJsXn4Yl9qY3zb9aFBa7sr4DN0bKYfQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/line-profiler/default.nix b/pkgs/development/python-modules/line-profiler/default.nix
index 73fa920139de6..85d8cdf8d8af7 100644
--- a/pkgs/development/python-modules/line-profiler/default.nix
+++ b/pkgs/development/python-modules/line-profiler/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "line-profiler";
-  version = "4.1.2";
+  version = "4.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6" || isPyPy;
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "line_profiler";
     inherit version;
-    hash = "sha256-qlZXiw/1p1b+GAs/2nvWfCe71Hiz0BJGEtjPAOSiHfI=";
+    hash = "sha256-5fESPDZywyGLoGPCO9ZKURWeRGSf7WeAuZPHgfte0xg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index 32bf3798001cd..d5446110c6c08 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "litellm";
-  version = "1.36.1";
+  version = "1.37.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OGu3+E3T8EpKVVqndgmJwTftWcfLbKId/PmVz7dk3x8=";
+    hash = "sha256-yLJprng/33bwLpfSwBKSIFtk7/KsYWHqm0H5O1w00ZM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/llama-parse/default.nix b/pkgs/development/python-modules/llama-parse/default.nix
index 1f6183df9ae34..e56d34436ce99 100644
--- a/pkgs/development/python-modules/llama-parse/default.nix
+++ b/pkgs/development/python-modules/llama-parse/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-parse";
-  version = "0.4.2";
+  version = "0.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,20 +17,14 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_parse";
     inherit version;
-    hash = "sha256-+gTAlzCxAhVfZQXenPkZmMhtM0WB8PEll8XrR8pduFk=";
+    hash = "sha256-AYNhR7UjiHOySn3UHFq5QrAbCbktdVcPMM8oYcCEoOs=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    llama-index-core
-  ];
+  dependencies = [ llama-index-core ];
 
-  pythonImportsCheck = [
-    "llama_parse"
-  ];
+  pythonImportsCheck = [ "llama_parse" ];
 
   meta = with lib; {
     description = "Parse files into RAG-Optimized formats";
diff --git a/pkgs/development/python-modules/llm/default.nix b/pkgs/development/python-modules/llm/default.nix
index 5626da5e3858e..582cba89763f0 100644
--- a/pkgs/development/python-modules/llm/default.nix
+++ b/pkgs/development/python-modules/llm/default.nix
@@ -12,7 +12,7 @@
 let
   llm = buildPythonPackage rec {
     pname = "llm";
-    version = "0.13.1";
+    version = "0.14";
     pyproject = true;
 
     disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ let
       owner = "simonw";
       repo = "llm";
       rev = "refs/tags/${version}";
-      hash = "sha256-Nq6pduzl8IK+nA3pctst/W4ux7+P6mBFTEHMF+vtBQw=";
+      hash = "sha256-CgGVFUsntVkF0zORAtYQQMAeGtIwBbj9hE0Ei1OCGq4=";
     };
 
     patches = [
diff --git a/pkgs/development/python-modules/lmfit/default.nix b/pkgs/development/python-modules/lmfit/default.nix
index 5df47bc867a15..a7e8c6970bdbe 100644
--- a/pkgs/development/python-modules/lmfit/default.nix
+++ b/pkgs/development/python-modules/lmfit/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "lmfit";
-  version = "1.3.0";
+  version = "1.3.1";
 
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-foI668BSN8qA0z0mDO27peJhkMzsn69ZXmgUOQneDJM=";
+    hash = "sha256-vDhiRK29EO8aKixPnRez3vkFVSwKZK74VPCtRswwnMU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/localzone/default.nix b/pkgs/development/python-modules/localzone/default.nix
index 84c5acd276901..02319312ce22f 100644
--- a/pkgs/development/python-modules/localzone/default.nix
+++ b/pkgs/development/python-modules/localzone/default.nix
@@ -1,34 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, dnspython
-, sphinx
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dnspython,
+  pytestCheckHook,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "localzone";
   version = "0.9.8";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ags-slc";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1cbiv21yryjqy46av9hbjccks95sxznrx8nypd3yzihf1vkjiq5a";
+    repo = "localzone";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-quAo5w4Oxu9Hu96inu3vuiQ9GZMLpq0M8Vj67IPYcbE=";
   };
 
-  propagatedBuildInputs = [ dnspython sphinx ];
+  build-system = [ setuptools ];
+
+  dependencies = [ dnspython ];
 
-  nativeCheckInputs = [ pytest ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    pytest
-  '';
+  pythonImportsCheck = [ "localzone" ];
 
   meta = with lib; {
     description = "A simple DNS library for managing zone files";
     homepage = "https://localzone.iomaestro.com";
+    changelog = "https://github.com/ags-slc/localzone/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ flyfloh ];
   };
diff --git a/pkgs/development/python-modules/maestral/default.nix b/pkgs/development/python-modules/maestral/default.nix
index 885911b181c8f..52c24504174de 100644
--- a/pkgs/development/python-modules/maestral/default.nix
+++ b/pkgs/development/python-modules/maestral/default.nix
@@ -31,7 +31,7 @@
 buildPythonPackage rec {
   pname = "maestral";
   version = "1.9.3";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -42,7 +42,11 @@ buildPythonPackage rec {
     hash = "sha256-h7RDaCVICi3wl6/b1s01cINhFirDOpOXoxTPZIBH3jE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     click
     desktop-notifier
     dbus-python
@@ -67,7 +71,7 @@ buildPythonPackage rec {
 
   makeWrapperArgs = [
     # Add the installed directories to the python path so the daemon can find them
-    "--prefix PYTHONPATH : ${makePythonPath propagatedBuildInputs}"
+    "--prefix PYTHONPATH : ${makePythonPath dependencies}"
     "--prefix PYTHONPATH : $out/${python.sitePackages}"
   ];
 
diff --git a/pkgs/development/python-modules/mandown/default.nix b/pkgs/development/python-modules/mandown/default.nix
index 34004e3a9fbbd..d32696de51e9e 100644
--- a/pkgs/development/python-modules/mandown/default.nix
+++ b/pkgs/development/python-modules/mandown/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "mandown";
-  version = "1.8.0";
+  version = "1.8.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "potatoeggy";
     repo = "mandown";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vzvidtfBwbIV6cIUjQQIezN12VfxsBOKODoSChz2VDA=";
+    hash = "sha256-DSbxWff5pY7tjB9aXY8/rQJzCQyDN2+OrmP10uEeXWM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/matlink-gpapi/default.nix b/pkgs/development/python-modules/matlink-gpapi/default.nix
index 3c3cda1bf8db0..c88638e4391f3 100644
--- a/pkgs/development/python-modules/matlink-gpapi/default.nix
+++ b/pkgs/development/python-modules/matlink-gpapi/default.nix
@@ -2,7 +2,6 @@
 , cryptography
 , fetchPypi
 , lib
-, pythonOlder
 , protobuf
 , pycryptodome
 , requests
@@ -12,7 +11,6 @@ buildPythonPackage rec {
   version = "0.4.4.5";
   format = "setuptools";
   pname = "matlink-gpapi";
-  disabled = pythonOlder "3.3"; # uses shutil.which(), added in 3.3
 
   src = fetchPypi {
     inherit version pname;
diff --git a/pkgs/development/python-modules/memestra/default.nix b/pkgs/development/python-modules/memestra/default.nix
index db7d4e254a738..0bbf08a846987 100644
--- a/pkgs/development/python-modules/memestra/default.nix
+++ b/pkgs/development/python-modules/memestra/default.nix
@@ -6,7 +6,6 @@
 , gast
 , nbconvert
 , nbformat
-, pythonOlder
 , pyyaml
 }:
 
@@ -15,8 +14,6 @@ buildPythonPackage rec {
   version = "0.2.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-6shwf9BoDfZMy0itP8esNP4ov6fw6LJpO3Y5ZahwDZw=";
diff --git a/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix b/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix
index 01eb0fa2375e4..ddb611da7fb87 100644
--- a/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-git-authors-plugin";
-  version = "0.8.0";
+  version = "0.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "timvink";
     repo = "mkdocs-git-authors-plugin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ie6kDrj7ulmdQ7w3n7MnKgIWs321uPFxpQC3DNUGsTg=";
+    hash = "sha256-UomcEXWNt5aVE9JxP9wskkHkFYXKN/+jXwr1SXCmeyE=";
   };
 
   propagatedBuildInputs = [ mkdocs ];
diff --git a/pkgs/development/python-modules/mkdocstrings-python/default.nix b/pkgs/development/python-modules/mkdocstrings-python/default.nix
index 094713367e902..5e634d2da0eaf 100644
--- a/pkgs/development/python-modules/mkdocstrings-python/default.nix
+++ b/pkgs/development/python-modules/mkdocstrings-python/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocstrings-python";
-  version = "1.10.0";
+  version = "1.10.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "python";
     rev = "refs/tags/${version}";
-    hash = "sha256-sKRheGIR//kmiznHKsVGd35oSvGHgoocsbYCzDRv2Zs=";
+    hash = "sha256-Dz74q7bsa8bInxn4RpP9MFXFDEL2yWifDe64K8AOl8k=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/mock-open/default.nix b/pkgs/development/python-modules/mock-open/default.nix
index 704054c46c040..413c5f832d296 100644
--- a/pkgs/development/python-modules/mock-open/default.nix
+++ b/pkgs/development/python-modules/mock-open/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, pythonOlder, mock }:
+{ lib, buildPythonPackage, fetchFromGitHub }:
 
 buildPythonPackage rec {
   pname = "mock-open";
@@ -13,15 +13,6 @@ buildPythonPackage rec {
     sha256 = "0qlz4y8jqxsnmqg03yp9f87rmnjrvmxm5qvm6n1218gm9k5dixbm";
   };
 
-  patches = lib.optional (pythonOlder "3.0")
-    (fetchpatch {
-      name = "ascii-only.patch";
-      url = "https://github.com/das-g/mock-open/commit/521ff260da127949fe4aceff1667cba223c5b07b.patch";
-      sha256 = "0ampbhk7kwkn0q5d2h9wrflkr8fji2bybmdck4qdzw1qkslfwwrn";
-    });
-
-  propagatedBuildInputs = lib.optional (pythonOlder "3.3") mock;
-
   meta = with lib; {
     homepage = "https://github.com/nivbend/mock-open";
     description = "A better mock for file I/O";
diff --git a/pkgs/development/python-modules/msgraph-sdk/default.nix b/pkgs/development/python-modules/msgraph-sdk/default.nix
index 7dc4e3fd062f2..5740955f6d63f 100644
--- a/pkgs/development/python-modules/msgraph-sdk/default.nix
+++ b/pkgs/development/python-modules/msgraph-sdk/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "msgraph-sdk";
-  version = "1.2.0";
+  version = "1.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "microsoftgraph";
     repo = "msgraph-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UaGdusPGWlF7gTzpCq9WrF/evdDSK5srrkH8/Vz9O8M=";
+    hash = "sha256-afnxk79duKzTykNnSHPE6lZhMkOt+9JhEskj/KjQpQI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/nbdev/default.nix b/pkgs/development/python-modules/nbdev/default.nix
index 389f0977677d3..4178f611e43da 100644
--- a/pkgs/development/python-modules/nbdev/default.nix
+++ b/pkgs/development/python-modules/nbdev/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "nbdev";
-  version = "2.3.20";
+  version = "2.3.21";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tBrWdG8njNQzQ3kc0ATeu3ToP34gdmOBKj2jcB0X8+8=";
+    hash = "sha256-H3KHnVOdy+Hdpka+dxp/qPj1HZSXIbXJshnZuXVo9DQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/nethsm/default.nix b/pkgs/development/python-modules/nethsm/default.nix
index 902fa62e33873..9120b29638fcd 100644
--- a/pkgs/development/python-modules/nethsm/default.nix
+++ b/pkgs/development/python-modules/nethsm/default.nix
@@ -12,7 +12,7 @@
 
 let
   pname = "nethsm";
-  version = "1.0.0";
+  version = "1.1.0";
 in
 
 buildPythonPackage {
@@ -21,7 +21,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sENuSdA4pYt8v2w2RvDkcQLYCP9V0vZOdWOlkNBi3/o=";
+    hash = "sha256-CQhheHQ0BlfznKjoOSRvbDtnlTvv/SLtl0GWd7LUSt8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/niaaml/default.nix b/pkgs/development/python-modules/niaaml/default.nix
index 8559087214906..d2b9868cacac2 100644
--- a/pkgs/development/python-modules/niaaml/default.nix
+++ b/pkgs/development/python-modules/niaaml/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "niaaml";
-  version = "1.2.0";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "lukapecnik";
     repo = "NiaAML";
     rev = "refs/tags/${version}";
-    hash = "sha256-jGbsxYlRJ81g74LqSKpquciPsLP+KSoNBTJPEaD/CHM=";
+    hash = "sha256-d6UlpMrT0GBZlcD1BCZxInXTdyFMBVltxnSyUFbSy0g=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/nidaqmx/default.nix b/pkgs/development/python-modules/nidaqmx/default.nix
index 7c010a224340d..04ae611925db5 100644
--- a/pkgs/development/python-modules/nidaqmx/default.nix
+++ b/pkgs/development/python-modules/nidaqmx/default.nix
@@ -5,8 +5,6 @@
 , numpy
 , pytestCheckHook
 , pykka
-, enum34
-, pythonOlder
 , pythonAtLeast
 }:
 
@@ -32,8 +30,6 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     numpy
     six
-  ] ++ lib.optionals (pythonOlder "3.4") [
-    enum34
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/nocaselist/default.nix b/pkgs/development/python-modules/nocaselist/default.nix
index fcad1844e2f65..dd667c0a3c718 100644
--- a/pkgs/development/python-modules/nocaselist/default.nix
+++ b/pkgs/development/python-modules/nocaselist/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "nocaselist";
-  version = "2.0.0";
+  version = "2.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RWqgAMZ3fF0hsCnFLlMvlDKNT7TxWtKk3T3WLbMLOJI=";
+    hash = "sha256-MnCLcAoaUxM+a7XMUzMsl3Wwx8lZpflyV5MXH9L0yKU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/opencensus-ext-azure/default.nix b/pkgs/development/python-modules/opencensus-ext-azure/default.nix
index 4effafe3311a0..121b162b2fe18 100644
--- a/pkgs/development/python-modules/opencensus-ext-azure/default.nix
+++ b/pkgs/development/python-modules/opencensus-ext-azure/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pythonOlder
 , azure-core
 , azure-identity
 , opencensus
@@ -14,8 +13,6 @@ buildPythonPackage rec {
   version = "1.1.13";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-rsMEchdwBTebpWpwKgl9YYxfV1WOG7ZnbsdflIEwaSo=";
diff --git a/pkgs/development/python-modules/orange-canvas-core/default.nix b/pkgs/development/python-modules/orange-canvas-core/default.nix
index 592aa2afa509a..37683a9994882 100644
--- a/pkgs/development/python-modules/orange-canvas-core/default.nix
+++ b/pkgs/development/python-modules/orange-canvas-core/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "orange-canvas-core";
-  version = "0.2.0";
+  version = "0.1.35";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KMEFZkAZkDhuDPpAts+u825p5pFJZbyrsMW/S1AArp4=";
+    hash = "sha256-xLCwjeNDx9RqxlNkIWMo0Pcrg7akGuu4Rv9oRDgOK18=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/orange-widget-base/default.nix b/pkgs/development/python-modules/orange-widget-base/default.nix
index 95dadbb04d796..3a1d5cd6e8933 100644
--- a/pkgs/development/python-modules/orange-widget-base/default.nix
+++ b/pkgs/development/python-modules/orange-widget-base/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "orange-widget-base";
-  version = "4.23.0";
+  version = "4.22.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mz+BcZEdg1p9V0ewYRrw3jKBWLMbL9RR6o4hUEUx9DA=";
+    hash = "sha256-nV2aBPZzn7K+QECtCVoLLh5smG31zE2G9jFTKlxh9qM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/orange3/default.nix b/pkgs/development/python-modules/orange3/default.nix
index 1c4531254ae8c..a5f9d5f85fd48 100644
--- a/pkgs/development/python-modules/orange3/default.nix
+++ b/pkgs/development/python-modules/orange3/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , baycomp
 , bottleneck
 , buildPythonPackage
@@ -24,12 +25,15 @@
 , orange-canvas-core
 , orange-widget-base
 , pandas
+, pytestCheckHook
+, pytest-qt
 , pyqtgraph
 , pyqtwebengine
 , python
 , python-louvain
 , pythonOlder
 , pyyaml
+, pip
 , qt5
 , qtconsole
 , recommonmark
@@ -112,6 +116,7 @@ let
       keyrings-alt
       pyyaml
       baycomp
+      pip
     ];
 
     # FIXME: ImportError: cannot import name '_variable' from partially initialized module 'Orange.data' (most likely due to a circular import) (/build/source/Orange/data/__init__.py)
@@ -146,9 +151,9 @@ let
 
     passthru = {
       updateScript = nix-update-script { };
-      tests.unittests = self.overridePythonAttrs (old: {
-        pname = "${old.pname}-tests";
-        format = "other";
+      tests.unittests = stdenv.mkDerivation {
+        name = "${self.name}-tests";
+        inherit (self) src;
 
         preCheck = ''
           export HOME=$(mktemp -d)
@@ -160,23 +165,32 @@ let
           cp -r ${self}/${python.sitePackages}/Orange .
           chmod +w -R .
 
-          rm Orange/tests/test_url_reader.py # uses network
-          rm Orange/tests/test_ada_boost.py # broken: The 'base_estimator' parameter of AdaBoostRegressor must be an object implementing 'fit' and 'predict' or a str among {'deprecated'}. Got None instead.
-        '';
+          substituteInPlace Orange/classification/tests/test_xgb_cls.py \
+            --replace test_learners mk_test_learners
+
+          substituteInPlace Orange/modelling/tests/test_xgb.py \
+            --replace test_learners mk_test_learners
+
+          substituteInPlace Orange/**/tests/*.py \
+            --replace test_filename filename_test
+
+          # TODO: debug why orange is crashing on GC, may be a upstream issue
+          chmod +x Orange/__init__.py
+          echo "import gc; gc.disable()" | tee -a Orange/__init__.py
 
-        checkPhase = ''
-          runHook preCheck
-          ${python.interpreter} -m unittest -b -v ./Orange/**/test*.py
-          runHook postCheck
         '';
 
-        postInstall = "";
+        nativeBuildInputs = [ pytestCheckHook pytest-qt ];
+
+        postCheck = ''
+          touch $out
+        '';
 
         doBuild = false;
         doInstall = false;
 
-        nativeBuildInputs = [ self ] ++ old.nativeBuildInputs;
-      });
+        buildInputs = [ self ];
+      };
     };
 
     meta = with lib; {
diff --git a/pkgs/development/python-modules/outcome/default.nix b/pkgs/development/python-modules/outcome/default.nix
index 0fa4ba74deabc..7aa65b2d1d229 100644
--- a/pkgs/development/python-modules/outcome/default.nix
+++ b/pkgs/development/python-modules/outcome/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pythonOlder
 , setuptools
 , attrs
 , pytest
@@ -11,8 +10,6 @@ buildPythonPackage rec {
   pname = "outcome";
   version = "1.3.0.post0";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-nc8C5l8pcbgAR7N3Ro5yomjhXArzzxI45v8U9/kRQ7g=";
diff --git a/pkgs/development/python-modules/owslib/default.nix b/pkgs/development/python-modules/owslib/default.nix
index 8bf7b8bcbe857..efa0a744f4b54 100644
--- a/pkgs/development/python-modules/owslib/default.nix
+++ b/pkgs/development/python-modules/owslib/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
+
 , lxml
 , pyproj
 , pytestCheckHook
@@ -10,12 +11,11 @@
 , pytz
 , pyyaml
 , requests
-, python
 }:
 
 buildPythonPackage rec {
   pname = "owslib";
-  version = "0.30.0";
+  version = "0.31.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,8 +23,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "geopython";
     repo = "OWSLib";
-    rev = "refs/tags/${version}";
-    hash = "sha256-miKAgZBiqZ6+0qDvlf8+VZ6omH5hlImO0E7AVK7FuD0=";
+    rev = version;
+    hash = "sha256-vjJsLavVOqTTrVtYbtA0G+nl0HanKeGtzNFFj92Frw8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
index 47fb42209dec2..8b6b3e9765bae 100644
--- a/pkgs/development/python-modules/paste/default.nix
+++ b/pkgs/development/python-modules/paste/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "paste";
-  version = "3.10.0";
+  version = "3.10.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "cdent";
     repo = "paste";
     rev = "refs/tags/${version}";
-    hash = "sha256-gl0+mw0D0iGVmOc5jQP7b3EL1ZmT1lAr9ffx+XegdU0=";
+    hash = "sha256-NY/h6hbpluEu1XAv3o4mqoG+l0LXfM1dw7+G0Rm1E4o=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pathlib2/default.nix b/pkgs/development/python-modules/pathlib2/default.nix
index 15238a8589908..ab1948005fe88 100644
--- a/pkgs/development/python-modules/pathlib2/default.nix
+++ b/pkgs/development/python-modules/pathlib2/default.nix
@@ -5,7 +5,6 @@
 , pythonOlder
 , scandir ? null
 , glibcLocales
-, mock
 , typing
 }:
 
@@ -21,8 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ]
     ++ lib.optionals (pythonOlder "3.5") [ scandir typing ];
-  nativeCheckInputs = [ glibcLocales ]
-    ++ lib.optional (pythonOlder "3.3") mock;
+  nativeCheckInputs = [ glibcLocales ];
 
   preCheck = ''
     export LC_ALL="en_US.UTF-8"
diff --git a/pkgs/development/python-modules/peewee/default.nix b/pkgs/development/python-modules/peewee/default.nix
index a99abb74559d8..93b27731359c7 100644
--- a/pkgs/development/python-modules/peewee/default.nix
+++ b/pkgs/development/python-modules/peewee/default.nix
@@ -1,32 +1,36 @@
-{ lib
-, apsw
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, flask
-, python
-, sqlite
-, withMysql ? false
-, mysql-connector
-, withPostgres ? false
-, psycopg2
-, pythonOlder
+{
+  lib,
+  apsw,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  flask,
+  python,
+  sqlite,
+  withMysql ? false,
+  mysql-connector,
+  withPostgres ? false,
+  psycopg2,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "peewee";
-  version = "3.17.3";
-  format = "setuptools";
+  version = "3.17.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "coleifer";
-    repo = pname;
+    repo = "peewee";
     rev = "refs/tags/${version}";
-    hash = "sha256-F0bv9J2etrVF8wMU3caQ1ZA6TmQQOPTZWFjGsKOEPwo=";
+    hash = "sha256-2SrqWPyeDBKOweLu7bEcDIAqCCtnKv0VBdzfpaA22ow=";
   };
 
+  build-system = [ setuptools ];
+
   buildInputs = [
     sqlite
     cython
@@ -34,15 +38,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     apsw
-  ] ++ lib.optionals withPostgres [
-    psycopg2
-  ] ++ lib.optionals withMysql [
-    mysql-connector
-  ];
+  ] ++ lib.optionals withPostgres [ psycopg2 ] ++ lib.optionals withMysql [ mysql-connector ];
 
-  nativeCheckInputs = [
-    flask
-  ];
+  nativeCheckInputs = [ flask ];
 
   doCheck = withPostgres;
 
@@ -51,15 +49,14 @@ buildPythonPackage rec {
     ${python.interpreter} runtests.py
   '';
 
-  pythonImportsCheck = [
-    "peewee"
-  ];
+  pythonImportsCheck = [ "peewee" ];
 
   meta = with lib; {
     description = "Python ORM with support for various database implementation";
-    mainProgram = "pwiz.py";
     homepage = "http://peewee-orm.com";
+    changelog = "https://github.com/coleifer/peewee/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "pwiz.py";
   };
 }
diff --git a/pkgs/development/python-modules/pgspecial/default.nix b/pkgs/development/python-modules/pgspecial/default.nix
index 5c4e1bf84a2ac..6ce163dd74c40 100644
--- a/pkgs/development/python-modules/pgspecial/default.nix
+++ b/pkgs/development/python-modules/pgspecial/default.nix
@@ -1,24 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, psycopg
-, click
-, configobj
-, sqlparse
+{
+  lib,
+  buildPythonPackage,
+  click,
+  configobj,
+  fetchPypi,
+  psycopg,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  sqlparse,
 }:
 
 buildPythonPackage rec {
   pname = "pgspecial";
-  version = "2.1.1";
-  format = "setuptools";
+  version = "2.1.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-o4I5zZYfrDPObaNcRm11istvlCkBWY19905bgv5vVjY=";
+    hash = "sha256-8EGeGzt4+zpy/jtUb2eIpxIJFTLVmf51k7X27lWoj4c=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     click
     sqlparse
     psycopg
@@ -30,13 +37,14 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # requires a postgresql server
+    # Test requires a Postgresql server
     "test_slash_dp_pattern_schema"
   ];
 
   meta = with lib; {
     description = "Meta-commands handler for Postgres Database";
     homepage = "https://github.com/dbcli/pgspecial";
+    changelog = "https://github.com/dbcli/pgspecial/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/phe/default.nix b/pkgs/development/python-modules/phe/default.nix
index 0dc423883c4bd..98f6a02f2f19b 100644
--- a/pkgs/development/python-modules/phe/default.nix
+++ b/pkgs/development/python-modules/phe/default.nix
@@ -1,31 +1,48 @@
-{ lib, buildPythonPackage, fetchPypi, isPyPy, isPy3k, click, gmpy2, numpy } :
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPyPy,
+  isPy3k,
+  setuptools,
+  click,
+  gmpy2,
+  pytestCheckHook,
+  numpy,
+}:
 
-let
+buildPythonPackage rec {
   pname = "phe";
   version = "1.5.0";
-  format = "setuptools";
-in
+  pyproject = true;
 
-buildPythonPackage {
-  inherit pname version;
+  # https://github.com/data61/python-paillier/issues/51
+  disabled = isPyPy || !isPy3k;
 
-  # https://github.com/n1analytics/python-paillier/issues/51
-  disabled = isPyPy || ! isPy3k;
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-mS+3CR0kJ/DZczlG+PNQrN1NHQEgV/Kq02S6eflwM5w=";
+  src = fetchFromGitHub {
+    owner = "data61";
+    repo = "python-paillier";
+    rev = "refs/tags/${version}";
+    hash = "sha256-fsZ8x/K+8V4zyVgkci6XNAm89zQFWEbmRVp4jazFfVY=";
   };
 
-  buildInputs = [ click gmpy2 numpy ];
+  build-system = [ setuptools ];
+
+  dependencies = [
+    click
+    gmpy2 # optional, but major speed improvement
+  ];
 
-  # 29/233 tests fail
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+    numpy
+  ];
 
   meta = with lib; {
     description = "A library for Partially Homomorphic Encryption in Python";
     mainProgram = "pheutil";
-    homepage = "https://github.com/n1analytics/python-paillier";
+    homepage = "https://github.com/data61/python-paillier";
     license = licenses.gpl3;
+    maintainers = with maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/phonopy/default.nix b/pkgs/development/python-modules/phonopy/default.nix
index 0cdd9d8bff130..f0c443136adff 100644
--- a/pkgs/development/python-modules/phonopy/default.nix
+++ b/pkgs/development/python-modules/phonopy/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "phonopy";
-  version = "2.22.1";
+  version = "2.23.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nux6/1z1xBr+4+fWrR/oOc+zVOI9j60p/SHHAPZ+hWI=";
+    hash = "sha256-xJohROJNAPdEITtM/VncAYL8ASkfgThKy8XXnqiS3hU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pickleshare/default.nix b/pkgs/development/python-modules/pickleshare/default.nix
index d6be608aaa2bb..52ddc93672511 100644
--- a/pkgs/development/python-modules/pickleshare/default.nix
+++ b/pkgs/development/python-modules/pickleshare/default.nix
@@ -2,8 +2,6 @@
 , buildPythonPackage
 , fetchPypi
 , path
-, pathlib2
-, pythonOlder
 }:
 
 buildPythonPackage rec {
@@ -16,8 +14,7 @@ buildPythonPackage rec {
     sha256 = "87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca";
   };
 
-  propagatedBuildInputs = [ path ]
-    ++ lib.optional (pythonOlder "3.4") pathlib2;
+  propagatedBuildInputs = [ path ];
 
   # No proper test suite
   doCheck = false;
diff --git a/pkgs/development/python-modules/pinecone-client/default.nix b/pkgs/development/python-modules/pinecone-client/default.nix
index ae21d2042c57e..84460718dfdb5 100644
--- a/pkgs/development/python-modules/pinecone-client/default.nix
+++ b/pkgs/development/python-modules/pinecone-client/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, dnspython
-, fetchPypi
-, loguru
-, numpy
-, poetry-core
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, requests
-, setuptools
-, tqdm
-, typing-extensions
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  dnspython,
+  fetchPypi,
+  loguru,
+  numpy,
+  poetry-core,
+  python-dateutil,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  pyyaml,
+  requests,
+  setuptools,
+  tqdm,
+  typing-extensions,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "pinecone-client";
-  version = "4.0.0";
+  version = "4.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,16 +27,12 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pinecone_client";
     inherit version;
-    hash = "sha256-1E2yEuZKo0PRTvybCOnkXZi6e2gfYymLhwM1QuoBfyM=";
+    hash = "sha256-QgYqYo56lB0Lwku4r7Am861NJkzwbWpiej3lgyFK494=";
   };
 
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
+  pythonRelaxDeps = [ "urllib3" ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   build-system = [
     setuptools
@@ -57,9 +54,7 @@ buildPythonPackage rec {
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pinecone"
-  ];
+  pythonImportsCheck = [ "pinecone" ];
 
   meta = with lib; {
     description = "The Pinecone python client";
diff --git a/pkgs/development/python-modules/pipetools/default.nix b/pkgs/development/python-modules/pipetools/default.nix
new file mode 100644
index 0000000000000..9003f61b28e89
--- /dev/null
+++ b/pkgs/development/python-modules/pipetools/default.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "pipetools";
+  version = "1.1.0";
+
+  # Used github as the src since the pypi package does not include the tests
+  src = fetchFromGitHub {
+    owner = "0101";
+    repo = pname;
+    rev = "6cba9fadab07a16fd85eed16d5cffc609f84c62b";
+    hash = "sha256-BoZFePQCQfz1dkct5p/WQLuXoNX3eLcnKf3Mf0fG6u8=";
+  };
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  propagatedBuildInputs = [ setuptools ];
+
+  pythonImportsCheck = [ "pipetools" ];
+
+  meta = {
+    description = "A library that enables function composition similar to using Unix pipes";
+    homepage = "https://0101.github.io/pipetools/";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index 358b81eb4c209..9f70d36118df4 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.37.3";
+  version = "0.37.5";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "plugwise";
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aQz0p+DNi1XVoFwdFjc3RjpHqA2kGf4pU1QS6m271gU=";
+    hash = "sha256-37GnuF8Z2UC02TqP6f14qxct5QCWi+8k7KUDhd7EYRQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/prometrix/default.nix b/pkgs/development/python-modules/prometrix/default.nix
index 58b3ac27361e3..fefbfd5f8298a 100644
--- a/pkgs/development/python-modules/prometrix/default.nix
+++ b/pkgs/development/python-modules/prometrix/default.nix
@@ -1,36 +1,46 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
 , boto3
 , botocore
+, buildPythonPackage
 , dateparser
+, fetchFromGitHub
 , matplotlib
 , numpy
 , pandas
 , poetry-core
 , prometheus-api-client
-, pydantic_1
+, pydantic
+, pythonRelaxDepsHook
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "prometrix";
-  version = "unstable-2024-02-20";
-  format = "pyproject";
+  version = "0.1.18-unstable-2024-04-30";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "robusta-dev";
     repo = "prometrix";
-    rev = "ab2dad2192ed3df91c1a25446a4f54b8f2f6742f";
-    hash = "sha256-/72Qkd2BojYgiQi5rq7dVsEje7M0aQQXhenvIM7lSy4=";
+    # https://github.com/robusta-dev/prometrix/issues/19
+    rev = "35128847d46016b88455e0a98f0eeec08d042107";
+    hash = "sha256-g8ZqgL9ETVwpKLMQS7s7A4GpSGfaFEDLOr8JBvFl2C4=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace-fail 'pydantic = "^1.8.1"' 'pydantic = "*"'
-  '';
+  pythonRelaxDeps = [
+    "pydantic"
+    "urllib3"
+  ];
+
+  build-system = [
+    poetry-core
+  ];
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     boto3
     botocore
     dateparser
@@ -38,13 +48,13 @@ buildPythonPackage rec {
     numpy
     pandas
     prometheus-api-client
-    pydantic_1
+    pydantic
     requests
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  # Fixture is missing
+  # https://github.com/robusta-dev/prometrix/issues/9
+  doCheck = false;
 
   pythonImportsCheck = [
     "prometrix"
@@ -56,7 +66,11 @@ buildPythonPackage rec {
       This Python package provides a unified Prometheus client that can be used
       to connect to and query various types of Prometheus instances.
     '';
+    homepage = "https://github.com/robusta-dev/prometrix";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
+    # prometheus-api-client 0.5.5 is not working
+    # https://github.com/robusta-dev/prometrix/issues/14
+    broken = versionAtLeast prometheus-api-client.version "0.5.3";
   };
 }
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index 615e076cb702f..a693890d45668 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240512";
+  version = "0.10.0.20240515";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-776icZQcsDEZv0EOeLmLlKmK1tidWi/FQ2SZ/N4Cbqo=";
+    hash = "sha256-0BlbqefYDjYRIWv5UgjTRInD12l1wGp+nnwJBE5vbXs=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pure-cdb/default.nix b/pkgs/development/python-modules/pure-cdb/default.nix
index f8df017c9b18c..b07843c8eaa6c 100644
--- a/pkgs/development/python-modules/pure-cdb/default.nix
+++ b/pkgs/development/python-modules/pure-cdb/default.nix
@@ -1,10 +1,9 @@
-{ lib, fetchFromGitHub, buildPythonPackage, pythonOlder, flake8 }:
+{ lib, fetchFromGitHub, buildPythonPackage, flake8 }:
 
 buildPythonPackage rec {
   pname = "pure-cdb";
   version = "4.0.0";
   format = "setuptools";
-  disabled = pythonOlder "3.4";
 
   # Archive on pypi has no tests.
   src = fetchFromGitHub {
diff --git a/pkgs/development/python-modules/py-multihash/default.nix b/pkgs/development/python-modules/py-multihash/default.nix
index 9ae0d1a1d3dbd..bf860e83e6b67 100644
--- a/pkgs/development/python-modules/py-multihash/default.nix
+++ b/pkgs/development/python-modules/py-multihash/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , morphys
 , pytestCheckHook
-, pythonOlder
 , six
 , varint
 }:
@@ -14,8 +13,6 @@ buildPythonPackage rec {
   version = "2.0.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchFromGitHub {
     owner = "multiformats";
     repo = pname;
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index 90b623c35ef49..9659da0e0aaa0 100644
--- a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "pytelegrambotapi";
-  version = "4.17.0";
+  version = "4.18.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "eternnoir";
     repo = "pyTelegramBotAPI";
     rev = "refs/tags/${version}";
-    hash = "sha256-Asw6wpZs0FgsUYLVQ4u4qQgIFdvShcsN3XvgHn48cbI=";
+    hash = "sha256-MlKLLLoEbB+ju+ewYDSEUCLVpCt+MsRKzTDVDuxDr8I=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/pyais/default.nix b/pkgs/development/python-modules/pyais/default.nix
new file mode 100644
index 0000000000000..2070b0616cb10
--- /dev/null
+++ b/pkgs/development/python-modules/pyais/default.nix
@@ -0,0 +1,49 @@
+{
+  lib,
+  attrs,
+  bitarray,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "pyais";
+  version = "2.6.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "M0r13n";
+    repo = "pyais";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/I/4ATvX/0ya8xtineXyjSFJBGhDNy/tosh2NdnKLK4=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  dependencies = [
+    attrs
+    bitarray
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pyais" ];
+
+  disabledTestPaths = [
+    # Tests the examples which have additional requirements
+    "tests/test_examples.py"
+  ];
+
+  meta = with lib; {
+    description = "Module for decoding and encoding AIS messages (AIVDM/AIVDO)";
+    homepage = "https://github.com/M0r13n/pyais";
+    changelog = "https://github.com/M0r13n/pyais/blob/${version}/CHANGELOG.txt";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycognito/default.nix b/pkgs/development/python-modules/pycognito/default.nix
index e0f4e1d190a7f..fc601fca868d1 100644
--- a/pkgs/development/python-modules/pycognito/default.nix
+++ b/pkgs/development/python-modules/pycognito/default.nix
@@ -1,38 +1,42 @@
-{ lib
-, boto3
-, buildPythonPackage
-, envs
-, fetchFromGitHub
-, isPy27
-, freezegun
-, mock
-, moto
-, pyjwt
-, pytestCheckHook
-, requests
-, requests-mock
+{
+  lib,
+  boto3,
+  buildPythonPackage,
+  envs,
+  fetchFromGitHub,
+  freezegun,
+  mock,
+  moto,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pycognito";
-  version = "2024.2.0";
-  format = "setuptools";
-  disabled = isPy27;
+  version = "2024.5.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pvizeli";
-    repo = pname;
+    repo = "pycognito";
     rev = "refs/tags/${version}";
-    hash = "sha256-VYko5KcJvnhPUceTll2BBJWb88SYnSL7S3mZ7XSLPSQ=";
+    hash = "sha256-U23fFLru4j6GnWMcYtsCW9BVJkVcCoefPH6oMijYGew=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     boto3
     envs
     pyjwt
     requests
-  ]
-  ++ pyjwt.optional-dependencies.crypto;
+  ] ++ pyjwt.optional-dependencies.crypto;
 
   nativeCheckInputs = [
     freezegun
@@ -40,18 +44,12 @@ buildPythonPackage rec {
     moto
     pytestCheckHook
     requests-mock
-  ]
-  ++ moto.optional-dependencies.cognitoidp;
-
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'python-jose[cryptography]' 'python-jose'
-  '';
+  ] ++ moto.optional-dependencies.cognitoidp;
 
   pytestFlagsArray = [ "tests.py" ];
 
   disabledTests = [
-    # requires network access
+    # Test requires network access
     "test_srp_requests_http_auth"
   ];
 
@@ -60,6 +58,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python class to integrate Boto3's Cognito client so it is easy to login users. With SRP support";
     homepage = "https://github.com/pvizeli/pycognito";
+    changelog = "https://github.com/NabuCasa/pycognito/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ mic92 ];
   };
diff --git a/pkgs/development/python-modules/pydeck/default.nix b/pkgs/development/python-modules/pydeck/default.nix
index 2ea1a86f356a0..d5468492162bd 100644
--- a/pkgs/development/python-modules/pydeck/default.nix
+++ b/pkgs/development/python-modules/pydeck/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "pydeck";
-  version = "0.9.0";
+  version = "0.9.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-/Yt19hyg1HEtMrTgc0QPHLdPLgwWoLV+V6AOZcVjzFQ=";
+    hash = "sha256-90R1rmN5UdY/LuWDJnV/jU+c2fKkV89ClQcVAD4stgU=";
   };
 
   # upstream has an invalid pyproject.toml
diff --git a/pkgs/development/python-modules/pyduotecno/default.nix b/pkgs/development/python-modules/pyduotecno/default.nix
index a52d43e06a0f3..da84cb7bffe3d 100644
--- a/pkgs/development/python-modules/pyduotecno/default.nix
+++ b/pkgs/development/python-modules/pyduotecno/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyduotecno";
-  version = "2024.3.2";
+  version = "2024.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = "pyDuotecno";
     rev = "refs/tags/${version}";
-    hash = "sha256-aak1e8NOxj7kncOyChpCEAQP1jpduhiSKDqm3mf5bqs=";
+    hash = "sha256-59dwSr/IlNmHoJnPEBTR2FOXZ8JiFIo1V69/r0yxKNM=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pygount/default.nix b/pkgs/development/python-modules/pygount/default.nix
index 4b12364288368..36c0ae86304b7 100644
--- a/pkgs/development/python-modules/pygount/default.nix
+++ b/pkgs/development/python-modules/pygount/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pygount";
-  version = "1.6.1";
+  version = "1.8.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "roskakori";
     repo = "pygount";
     rev = "refs/tags/v${version}";
-    hash = "sha256-j+mXIyF/54MCm0yv7Z+ymy/EeZz7iS/a+/5I9lo1+Zo=";
+    hash = "sha256-PFqcSnJoGL4bXFy3hu3Iurbb8QK1NqCDs8aJmMxP4Hc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyipp/default.nix b/pkgs/development/python-modules/pyipp/default.nix
index bfeb5e4a5eeef..284fb8368ffd7 100644
--- a/pkgs/development/python-modules/pyipp/default.nix
+++ b/pkgs/development/python-modules/pyipp/default.nix
@@ -1,49 +1,49 @@
-{ lib
-, aiohttp
-, aresponses
-, awesomeversion
-, backoff
-, buildPythonPackage
-, deepmerge
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  async-timeout,
+  awesomeversion,
+  backoff,
+  buildPythonPackage,
+  deepmerge,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "pyipp";
-  version = "0.15.0";
-  format = "pyproject";
+  version = "0.16.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
-   owner = "ctalkington";
-   repo = "python-ipp";
-   rev = "refs/tags/${version}";
-   hash = "sha256-k7NSCmugGov+lJXWeopUwKkGKL/EGhvxSSiby4CcmFM=";
+    owner = "ctalkington";
+    repo = "python-ipp";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ddI9K0lJDZbVgO+hptP4I+EH//5vOoFDYXWxGALF8Ik=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'version = "0.0.0"' 'version = "${version}"' \
-      --replace "--cov" ""
+      --replace-fail 'version = "0.0.0"' 'version = "${version}"' \
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     awesomeversion
     backoff
     deepmerge
     yarl
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   nativeCheckInputs = [
     aresponses
@@ -53,9 +53,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "pyipp"
-  ];
+  pythonImportsCheck = [ "pyipp" ];
 
   meta = with lib; {
     changelog = "https://github.com/ctalkington/python-ipp/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/pykrakenapi/default.nix b/pkgs/development/python-modules/pykrakenapi/default.nix
index 8326580395319..02d00afd628f5 100644
--- a/pkgs/development/python-modules/pykrakenapi/default.nix
+++ b/pkgs/development/python-modules/pykrakenapi/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchFromGitHub
 , krakenex
 , pandas
@@ -10,8 +9,6 @@ buildPythonPackage rec {
   pname = "pykrakenapi";
   version = "0.3.2";
 
-  disabled = pythonOlder "3.3";
-
   format = "setuptools";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index 046277a5fa586..cfa1b686a72a9 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -1,28 +1,29 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, astroid
-, dill
-, isort
-, mccabe
-, platformdirs
-, requests
-, setuptools
-, tomli
-, tomlkit
-, typing-extensions
-, gitpython
-, py
-, pytest-timeout
-, pytest-xdist
-, pytest7CheckHook
+{
+  lib,
+  stdenv,
+  astroid,
+  buildPythonPackage,
+  dill,
+  fetchFromGitHub,
+  gitpython,
+  isort,
+  mccabe,
+  platformdirs,
+  py,
+  pytest-timeout,
+  pytest-xdist,
+  pytest7CheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  tomli,
+  tomlkit,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "3.1.0";
+  version = "3.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,25 +32,22 @@ buildPythonPackage rec {
     owner = "pylint-dev";
     repo = "pylint";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JHtMaZNwl+yLwEDD4Nl0vOt9NQ9DO7iIy5LR/9ta1Pw=";
+    hash = "sha256-LmpLt2GCzYU73BUpORHaFbGqkxyYqoPoKZpUJSChqKQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    astroid
-    dill
-    isort
-    mccabe
-    platformdirs
-    tomlkit
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    typing-extensions
-  ];
+  dependencies =
+    [
+      astroid
+      dill
+      isort
+      mccabe
+      platformdirs
+      tomlkit
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [ tomli ]
+    ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
   nativeCheckInputs = [
     gitpython
@@ -67,7 +65,8 @@ buildPythonPackage rec {
     # displaying implemented interfaces in pylint 3.0. The
     # implementation relies on the '__implements__'  attribute proposed
     # in PEP 245, which was rejected in 2006.
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
     "-v"
   ];
 
@@ -84,30 +83,32 @@ buildPythonPackage rec {
     "tests/pyreverse/test_writer.py"
   ];
 
-  disabledTests = [
-    # AssertionError when self executing and checking output
-    # expected output looks like it should match though
-    "test_invocation_of_pylint_config"
-    "test_generate_rcfile"
-    "test_generate_toml_config"
-    "test_help_msg"
-    "test_output_of_callback_options"
-    # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted. The list of emitted warnings is: [].
-    "test_save_and_load_not_a_linter_stats"
-    # Truncated string expectation mismatch
-    "test_truncated_compare"
-    # Probably related to pytest versions, see pylint-dev/pylint#9477 and pylint-dev/pylint#9483
-    "test_functional"
-    # AssertionError: assert [('specializa..., 'Ancestor')] == [('aggregatio..., 'Ancestor')]
-    "test_functional_relation_extraction"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_parallel_execution"
-    "test_py3k_jobs_option"
-  ];
+  disabledTests =
+    [
+      # AssertionError when self executing and checking output
+      # expected output looks like it should match though
+      "test_invocation_of_pylint_config"
+      "test_generate_rcfile"
+      "test_generate_toml_config"
+      "test_help_msg"
+      "test_output_of_callback_options"
+      # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted. The list of emitted warnings is: [].
+      "test_save_and_load_not_a_linter_stats"
+      # Truncated string expectation mismatch
+      "test_truncated_compare"
+      # Probably related to pytest versions, see pylint-dev/pylint#9477 and pylint-dev/pylint#9483
+      "test_functional"
+      # AssertionError: assert [('specializa..., 'Ancestor')] == [('aggregatio..., 'Ancestor')]
+      "test_functional_relation_extraction"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_parallel_execution"
+      "test_py3k_jobs_option"
+    ];
 
   meta = with lib; {
-    homepage = "https://pylint.readthedocs.io/en/stable/";
     description = "A bug and style checker for Python";
+    homepage = "https://pylint.readthedocs.io/en/stable/";
     changelog = "https://github.com/pylint-dev/pylint/releases/tag/v${version}";
     longDescription = ''
       Pylint is a Python static code analysis tool which looks for programming errors,
@@ -118,7 +119,7 @@ buildPythonPackage rec {
       - symilar: an independent similarities checker
       - epylint: Emacs and Flymake compatible Pylint
     '';
-    license = licenses.gpl1Plus;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pymarshal/default.nix b/pkgs/development/python-modules/pymarshal/default.nix
index 755c03501e562..6a4736c3fb213 100644
--- a/pkgs/development/python-modules/pymarshal/default.nix
+++ b/pkgs/development/python-modules/pymarshal/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
 , bson
 , pytestCheckHook
 , pyyaml
@@ -12,7 +11,6 @@ buildPythonPackage rec {
   pname = "pymarshal";
   version = "2.2.0";
   format = "setuptools";
-  disabled = pythonOlder "3.0";
 
   src = fetchFromGitHub {
     owner = "stargateaudio";
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index 59981da7e7809..5547279c0654f 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2024.4.13";
+  version = "2024.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "materialsproject";
     repo = "pymatgen";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vjasWQgwjtoM/6Y1HwK1otMFejRWEj+YBxaIYDDSeeo=";
+    hash = "sha256-ZMOZ4eFtIaIcBPGT6bgAV+47LEGWAAnF/ml68j0fXws=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pynmeagps/default.nix b/pkgs/development/python-modules/pynmeagps/default.nix
index 89bfe09c1637b..fa306cf7b52bc 100644
--- a/pkgs/development/python-modules/pynmeagps/default.nix
+++ b/pkgs/development/python-modules/pynmeagps/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -11,6 +12,8 @@ buildPythonPackage rec {
   version = "1.0.36";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "semuconsulting";
     repo = "pynmeagps";
@@ -18,20 +21,21 @@ buildPythonPackage rec {
     hash = "sha256-n7dCr85TeBLxdrD1ZAA7PGJd9+3+xFJ8gjRU/JOFysY=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov --cov-report html --cov-fail-under 95" ""
+  '';
+
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytest-cov
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pynmeagps"
-  ];
+  pythonImportsCheck = [ "pynmeagps" ];
 
   meta = {
-    homepage = "https://github.com/semuconsulting/pynmeagps";
     description = "NMEA protocol parser and generator";
+    homepage = "https://github.com/semuconsulting/pynmeagps";
+    changelog = "https://github.com/semuconsulting/pynmeagps/releases/tag/v${version}";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ dylan-gonzalez ];
   };
diff --git a/pkgs/development/python-modules/pypass/default.nix b/pkgs/development/python-modules/pypass/default.nix
index 7e609cbe1ccd9..b900618e4dd29 100644
--- a/pkgs/development/python-modules/pypass/default.nix
+++ b/pkgs/development/python-modules/pypass/default.nix
@@ -3,7 +3,6 @@
 , buildPythonPackage
 , click
 , colorama
-, enum34
 , fetchPypi
 , git
 , gnugrep
@@ -12,7 +11,6 @@
 , pbr
 , pexpect
 , pythonAtLeast
-, pythonOlder
 , substituteAll
 , tree
 , xclip
@@ -53,7 +51,7 @@ buildPythonPackage rec {
     click
     colorama
     pexpect
-  ] ++ lib.optional (pythonOlder "3.4") enum34;
+  ];
 
   nativeCheckInputs = [ nose ];
 
diff --git a/pkgs/development/python-modules/pypng/default.nix b/pkgs/development/python-modules/pypng/default.nix
index c79ec4f92a0ef..ca47266e9dfc5 100644
--- a/pkgs/development/python-modules/pypng/default.nix
+++ b/pkgs/development/python-modules/pypng/default.nix
@@ -1,20 +1,20 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchFromGitLab
 , pytestCheckHook
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pypng";
-  version = "0.0.21";
-  format = "pyproject";
+  version = "0.20220715.0";
+  pyproject = true;
 
-  src = fetchFromGitHub {
+  src = fetchFromGitLab {
     owner = "drj11";
     repo = "pypng";
     rev = "refs/tags/${pname}-${version}";
-    hash = "sha256-JU1GCSTm2s6Kczn6aRcF5DizPJVpizNtnAMJxTBi9vo=";
+    hash = "sha256-tTnsGCAmHexDWm/T5xpHpcBaQcBEqMfTFaoOAeC+pDs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyqtgraph/default.nix b/pkgs/development/python-modules/pyqtgraph/default.nix
index 2599fb1d813c3..f09ed4fa0cb78 100644
--- a/pkgs/development/python-modules/pyqtgraph/default.nix
+++ b/pkgs/development/python-modules/pyqtgraph/default.nix
@@ -11,6 +11,7 @@
 , freefont_ttf
 , makeFontsConf
 , setuptools
+, python
 }:
 
 let
@@ -70,6 +71,7 @@ buildPythonPackage rec {
     homepage = "https://www.pyqtgraph.org/";
     changelog = "https://github.com/pyqtgraph/pyqtgraph/blob/master/CHANGELOG";
     license = licenses.mit;
+    broken = lib.versionAtLeast python.version "3.12";
     platforms = platforms.unix;
     maintainers = with maintainers; [ koral ];
   };
diff --git a/pkgs/development/python-modules/pyrainbird/default.nix b/pkgs/development/python-modules/pyrainbird/default.nix
index bca013babd9e9..131cf9f551de4 100644
--- a/pkgs/development/python-modules/pyrainbird/default.nix
+++ b/pkgs/development/python-modules/pyrainbird/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, aiohttp-retry
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, ical
-, parameterized
-, pycryptodome
-, pydantic
-, pytest-aiohttp
-, pytest-asyncio
-, pytest-golden
-, pytest-mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pyyaml
-, requests
-, requests-mock
-, responses
-, setuptools
+{
+  lib,
+  aiohttp-retry,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  ical,
+  mashumaro,
+  parameterized,
+  pycryptodome,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytest-golden,
+  pytest-mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pyyaml,
+  requests,
+  requests-mock,
+  responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyrainbird";
-  version = "4.0.2";
+  version = "6.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -32,7 +33,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "pyrainbird";
     rev = "refs/tags/${version}";
-    hash = "sha256-4AoxLZv0u8wCG3ihw0JqsqsO5zG5UyP4ebSX99ve8sg=";
+    hash = "sha256-kRPRyEt31SJpNRXcTshGByKAfPzEj+CDNpEQp4Klgks=";
   };
 
   postPatch = ''
@@ -40,15 +41,13 @@ buildPythonPackage rec {
       --replace-fail "--cov=pyrainbird --cov-report=term-missing" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp-retry
     ical
+    mashumaro
     pycryptodome
-    pydantic
     python-dateutil
     pyyaml
     requests
@@ -68,9 +67,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "pyrainbird"
-  ];
+  pythonImportsCheck = [ "pyrainbird" ];
 
   meta = with lib; {
     description = "Module to interact with Rainbird controllers";
diff --git a/pkgs/development/python-modules/pyrisco/default.nix b/pkgs/development/python-modules/pyrisco/default.nix
index ee84881ff5f9b..129d5935fb351 100644
--- a/pkgs/development/python-modules/pyrisco/default.nix
+++ b/pkgs/development/python-modules/pyrisco/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyrisco";
-  version = "0.6.1";
+  version = "0.6.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "OnFreund";
     repo = "pyrisco";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NviB3C+YApOo3WGQ1L8Qwyh8C9l8sCgaSA+xn2wYhjg=";
+    hash = "sha256-sksM84BvBVfegYtRo1NNRbDvqNCr/V4K2Ol9X2Il8D0=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyserial/default.nix b/pkgs/development/python-modules/pyserial/default.nix
index a515c5acfcd15..ea51736d6dd96 100644
--- a/pkgs/development/python-modules/pyserial/default.nix
+++ b/pkgs/development/python-modules/pyserial/default.nix
@@ -3,8 +3,6 @@
 , buildPythonPackage
 , fetchPypi
 , unittestCheckHook
-, pythonOlder
-, isPy3k
 }:
 
 buildPythonPackage rec {
@@ -12,9 +10,6 @@ buildPythonPackage rec {
   version = "3.5";
   format = "setuptools";
 
-  # Supports Python 2.7 and 3.4+
-  disabled = isPy3k && pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-PHfgFBcN//vYFub/wgXphC77EL6fWOwW0+hnW0klzds=";
diff --git a/pkgs/development/python-modules/pysqlcipher3/default.nix b/pkgs/development/python-modules/pysqlcipher3/default.nix
index 1b573628edda1..1bfd129cf21e9 100644
--- a/pkgs/development/python-modules/pysqlcipher3/default.nix
+++ b/pkgs/development/python-modules/pysqlcipher3/default.nix
@@ -1,12 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, sqlcipher }:
+{ lib, buildPythonPackage, fetchPypi, sqlcipher }:
 
 buildPythonPackage rec {
   pname = "pysqlcipher3";
   version = "1.2.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.3";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-PIAzgSZVlH6/KagJrFEGsrxpvgJ06szva1j0WAyNBsU=";
diff --git a/pkgs/development/python-modules/pystemd/default.nix b/pkgs/development/python-modules/pystemd/default.nix
index 44251a333ed9c..57db690b04cbb 100644
--- a/pkgs/development/python-modules/pystemd/default.nix
+++ b/pkgs/development/python-modules/pystemd/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , buildPythonPackage
 , lib
-, python
 , fetchPypi
 , systemd
 , lxml
@@ -19,8 +18,6 @@ buildPythonPackage rec {
     hash = "sha256-Tc+ksTpVaFxJ09F8EGMeyhjDN3D2Yxb47yM3uJUcwUQ=";
   };
 
-  disabled = python.pythonOlder "3.4";
-
   buildInputs = [ systemd ];
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/pytado/default.nix b/pkgs/development/python-modules/pytado/default.nix
index 8a9a3f4cf2fa6..5d84a47702b00 100644
--- a/pkgs/development/python-modules/pytado/default.nix
+++ b/pkgs/development/python-modules/pytado/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pytado";
-  version = "0.17.5";
+  version = "0.17.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "wmalgadey";
     repo = "PyTado";
     rev = "refs/tags/${version}";
-    hash = "sha256-FjdqZc4Zt2sLYJpnD/MAzr8Y9lGHteHB5psQqheS84I=";
+    hash = "sha256-KcYxUKQuO7TLS4YPg2mrBjP+DMnvZeJokGzwmeM/CvE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-glanceclient/default.nix b/pkgs/development/python-modules/python-glanceclient/default.nix
index 13ed448938d96..0130c690ef4c3 100644
--- a/pkgs/development/python-modules/python-glanceclient/default.nix
+++ b/pkgs/development/python-modules/python-glanceclient/default.nix
@@ -22,7 +22,7 @@
 }:
 let
   pname = "python-glanceclient";
-  version = "4.5.0";
+  version = "4.6.0";
 
   disabledTests = [
     "test_http_chunked_response"
@@ -42,7 +42,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZGTE1be+S/4Tbhw6Px+9qMgkNTZgoDn6lnAJhNvVYuA=";
+    hash = "sha256-gJm4TzxtIjvkpOlbN82MPbY0JmDdiwlEMGGxZvTR+Po=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-ironicclient/default.nix b/pkgs/development/python-modules/python-ironicclient/default.nix
index 7e9a3b4ee7c27..feb8849b21d30 100644
--- a/pkgs/development/python-modules/python-ironicclient/default.nix
+++ b/pkgs/development/python-modules/python-ironicclient/default.nix
@@ -20,12 +20,12 @@
 
 buildPythonPackage rec {
   pname = "python-ironicclient";
-  version = "5.5.0";
+  version = "5.6.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JlO487QSPsBJZqPYRhsQYFA7noIN2q/stH4eZXAFLnY=";
+    hash = "sha256-zWlfy+Pfu0l7vBQnLOIP9vaXzx+i35k4oQqPUtLg3cE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-jsonrpc-server/default.nix b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
index 2cb13c747742e..4a659c1e26a5b 100644
--- a/pkgs/development/python-modules/python-jsonrpc-server/default.nix
+++ b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
@@ -1,6 +1,6 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+{ lib, buildPythonPackage, fetchFromGitHub
 , pytestCheckHook, mock, pytest-cov, coverage
-, future, futures ? null, ujson}:
+, future, ujson}:
 
 buildPythonPackage rec {
   pname = "python-jsonrpc-server";
@@ -22,8 +22,7 @@ buildPythonPackage rec {
     pytestCheckHook mock pytest-cov coverage
   ];
 
-  propagatedBuildInputs = [ future ujson ]
-    ++ lib.optional (pythonOlder "3.2") futures;
+  propagatedBuildInputs = [ future ujson ];
 
   meta = with lib; {
     homepage = "https://github.com/palantir/python-jsonrpc-server";
diff --git a/pkgs/development/python-modules/python-manilaclient/default.nix b/pkgs/development/python-modules/python-manilaclient/default.nix
index b2fbfef19f8cf..61fbc746f7ccd 100644
--- a/pkgs/development/python-modules/python-manilaclient/default.nix
+++ b/pkgs/development/python-modules/python-manilaclient/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "python-manilaclient";
-  version = "4.8.0";
+  version = "4.9.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TwvDtbYGkDZFIsr0GgwD2R0Il7pV2GCuDw3OZXxDXso=";
+    hash = "sha256-Q7ADjuGQh5C88WqT5II+NMYLYFwTip/bzZinca/xqFY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-roborock/default.nix b/pkgs/development/python-modules/python-roborock/default.nix
index 7d746131636e1..1417b78a9235c 100644
--- a/pkgs/development/python-modules/python-roborock/default.nix
+++ b/pkgs/development/python-modules/python-roborock/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "python-roborock";
-  version = "2.2.1";
+  version = "2.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "humbertogontijo";
     repo = "python-roborock";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qyaERNaisfDWXW1IeyFMOV6nLqT+0O9QJ4U02LOyiuE=";
+    hash = "sha256-W/42NUs3fQKCxM6hlJTmNQ7E8FevxO3XJCOYyZHQsqs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pytorch-lightning/default.nix b/pkgs/development/python-modules/pytorch-lightning/default.nix
index a09e91fca0ce5..780b2be18ca70 100644
--- a/pkgs/development/python-modules/pytorch-lightning/default.nix
+++ b/pkgs/development/python-modules/pytorch-lightning/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "pytorch-lightning";
-  version = "2.2.3";
+  version = "2.2.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Lightning-AI";
     repo = "pytorch-lightning";
     rev = "refs/tags/${version}";
-    hash = "sha256-5dz4NQZC0tKIYA9omRZAsSlvH5hpyCSmV0yvoRICcqg=";
+    hash = "sha256-IkoSID7nEPbKrhEMlo/UaMcF80HYldvndFA54DoHT+M=";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/pywbem/default.nix b/pkgs/development/python-modules/pywbem/default.nix
index c298c1e51209e..4f06262c59d28 100644
--- a/pkgs/development/python-modules/pywbem/default.nix
+++ b/pkgs/development/python-modules/pywbem/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "pywbem";
-  version = "1.7.1";
+  version = "1.7.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6jx5H4FtM93JToXQwq9ihiPfMw7nX4KwFFQzHkAgnP4=";
+    hash = "sha256-3Dt4WEABf1/LY4HFZoJZjOu/yEUYUXaPheIxioTga2g=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index 98e3b05812f1c..c884dfe01e628 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -8,6 +8,7 @@
   iso8601,
   poetry-core,
   pydantic,
+  pydantic-settings,
   pyjwt,
   pytest-asyncio,
   pytestCheckHook,
@@ -60,6 +61,7 @@ buildPythonPackage rec {
     httpx
     iso8601
     pydantic
+    pydantic-settings
     pyjwt
     python-dateutil
     retrying
diff --git a/pkgs/development/python-modules/qcs-sdk-python/default.nix b/pkgs/development/python-modules/qcs-sdk-python/default.nix
index 100a7874fd187..d63eb97b9faa5 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/default.nix
+++ b/pkgs/development/python-modules/qcs-sdk-python/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   fetchFromGitHub,
   pytest-asyncio,
@@ -7,6 +8,8 @@
   pythonOlder,
   quil,
   rustPlatform,
+  darwin,
+  libiconv,
   syrupy,
 }:
 
@@ -40,6 +43,12 @@ buildPythonPackage rec {
 
   dependencies = [ quil ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
+    libiconv
+  ];
+
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
diff --git a/pkgs/development/python-modules/qreactor/default.nix b/pkgs/development/python-modules/qreactor/default.nix
index e4648919d9f7c..77d2c30fa32b6 100644
--- a/pkgs/development/python-modules/qreactor/default.nix
+++ b/pkgs/development/python-modules/qreactor/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchFromGitHub
 , twisted
 , qtpy
@@ -18,8 +17,6 @@ buildPythonPackage rec {
     sha256 = "1nb5iwg0nfz86shw28a2kj5pyhd4jvvxhf73fhnfbl8scgnvjv9h";
   };
 
-  disabled = pythonOlder "3.0";
-
   propagatedBuildInputs = [
     twisted qtpy
   ];
diff --git a/pkgs/development/python-modules/queuelib/default.nix b/pkgs/development/python-modules/queuelib/default.nix
index e9643b813d77b..d2622ffbf5fb6 100644
--- a/pkgs/development/python-modules/queuelib/default.nix
+++ b/pkgs/development/python-modules/queuelib/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "queuelib";
-  version = "1.6.2";
+  version = "1.7.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4b207267f2642a8699a1f806045c56eb7ad1a85a10c0e249884580d139c2fcd2";
+    sha256 = "sha256-KFUWIJbPAjBRCJCzVDeeocD/GdEF0xR9NJ0kM7siKwg=";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/quil/default.nix b/pkgs/development/python-modules/quil/default.nix
index 41f79d79bdf3d..4043f8b332fd9 100644
--- a/pkgs/development/python-modules/quil/default.nix
+++ b/pkgs/development/python-modules/quil/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   pythonOlder,
   fetchFromGitHub,
@@ -7,6 +8,7 @@
   numpy,
   pytestCheckHook,
   syrupy,
+  libiconv
 }:
 
 buildPythonPackage rec {
@@ -40,6 +42,8 @@ buildPythonPackage rec {
     rustPlatform.maturinBuildHook
   ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+
   dependencies = [ numpy ];
 
   pythonImportsCheck = [ "numpy" ];
diff --git a/pkgs/development/python-modules/reolink-aio/default.nix b/pkgs/development/python-modules/reolink-aio/default.nix
index b1fb08c4bdf33..65746304921a9 100644
--- a/pkgs/development/python-modules/reolink-aio/default.nix
+++ b/pkgs/development/python-modules/reolink-aio/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, aiortsp
-, buildPythonPackage
-, fetchFromGitHub
-, orjson
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  aiohttp,
+  aiortsp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  orjson,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "reolink-aio";
-  version = "0.8.9";
+  version = "0.8.10";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,23 +21,19 @@ buildPythonPackage rec {
     owner = "starkillerOG";
     repo = "reolink_aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-MUhB8A51dj+FA3+lvBrFyAWizKq5CpYwo38E1euJsHs=";
+    hash = "sha256-qawrTTLp+qFUVn5TUQ73TcPu37c0EywzJl+8oFW8L04=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     aiortsp
     orjson
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "reolink_aio"
-  ];
+  pythonImportsCheck = [ "reolink_aio" ];
 
   # All tests require a network device
   doCheck = false;
diff --git a/pkgs/development/python-modules/requirements-detector/default.nix b/pkgs/development/python-modules/requirements-detector/default.nix
index aab180853d5a9..164500d3e2186 100644
--- a/pkgs/development/python-modules/requirements-detector/default.nix
+++ b/pkgs/development/python-modules/requirements-detector/default.nix
@@ -7,7 +7,6 @@
 , semver
 , pytestCheckHook
 , pythonOlder
-, pythonRelaxDepsHook
 , toml
 }:
 
@@ -25,16 +24,11 @@ buildPythonPackage rec {
     hash = "sha256-qmrHFQRypBJOI1N6W/Dtc5ss9JGqoPhFlbqrLHcb6vc=";
   };
 
-  pythonRelaxDeps = [
-    "astroid"
-  ];
-
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astroid
     packaging
     toml
@@ -51,10 +45,12 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python tool to find and list requirements of a Python project";
-    mainProgram = "detect-requirements";
     homepage = "https://github.com/landscapeio/requirements-detector";
     changelog = "https://github.com/landscapeio/requirements-detector/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ kamadorueda ];
+    mainProgram = "detect-requirements";
+    # https://github.com/landscapeio/requirements-detector/issues/48
+    broken = versionAtLeast astroid.version "3";
   };
 }
diff --git a/pkgs/development/python-modules/resend/default.nix b/pkgs/development/python-modules/resend/default.nix
index a8dca71c52691..ddd38de916f85 100644
--- a/pkgs/development/python-modules/resend/default.nix
+++ b/pkgs/development/python-modules/resend/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "resend";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "resend";
     repo = "resend-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TuumT77SGVIi/zaWd7FJwTZFiwZcyb1RioMcG7QXxgE=";
+    hash = "sha256-lBeVHG3MuHtEEXPgH116yNs9pBX3kEj5Oyws2deui/o=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/roadlib/default.nix b/pkgs/development/python-modules/roadlib/default.nix
index 77c05f8dc5972..c2ac5e3cba691 100644
--- a/pkgs/development/python-modules/roadlib/default.nix
+++ b/pkgs/development/python-modules/roadlib/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "roadlib";
-  version = "0.24.0";
+  version = "0.24.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+5vR2iTFu50PJIsj4sW6McH1sg3yyEIwk15W8Jk0GKA=";
+    hash = "sha256-tQbJWHXxvjGhqGBI9nn8EL7rJcVyH095FfNSsxkrImQ=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/roadtx/default.nix b/pkgs/development/python-modules/roadtx/default.nix
index eca756a0f0338..d390acea281d0 100644
--- a/pkgs/development/python-modules/roadtx/default.nix
+++ b/pkgs/development/python-modules/roadtx/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "roadtx";
-  version = "1.8.1";
+  version = "1.8.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hhxmwD1+mZtU/VmB8yXeQESh0AGtjhdpDXRG3+mYfEk=";
+    hash = "sha256-BJYBQBxgYbozY0rPgxpiduUxb6wEFBJxXY8TRVlLz5M=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/rotary-embedding-torch/default.nix b/pkgs/development/python-modules/rotary-embedding-torch/default.nix
index a04262e401735..22720a7592383 100644
--- a/pkgs/development/python-modules/rotary-embedding-torch/default.nix
+++ b/pkgs/development/python-modules/rotary-embedding-torch/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "rotary-embedding-torch";
-  version = "0.5.3";
+  version = "0.6.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "lucidrains";
     repo = "rotary-embedding-torch";
     rev = "refs/tags/${version}";
-    hash = "sha256-CCz/va5oydgU1JRDHKooRezbDbeGZHtD8Zy6fWJ2uRg=";
+    hash = "sha256-/gVBQ9lUzVN/eEtm6qPajw0TZs87JOC7d02qnQ8sdVk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/sigtools/default.nix b/pkgs/development/python-modules/sigtools/default.nix
index 87dc4e91e6e90..7e9e7971e1372 100644
--- a/pkgs/development/python-modules/sigtools/default.nix
+++ b/pkgs/development/python-modules/sigtools/default.nix
@@ -3,7 +3,6 @@
 , buildPythonPackage
 , fetchPypi
 , mock
-, pythonOlder
 , repeated-test
 , setuptools-scm
 , sphinx
@@ -15,8 +14,6 @@ buildPythonPackage rec {
   version = "4.0.1";
   format = "pyproject";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-S44TWpzU0uoA2mcMCTNy105nK6OruH9MmNjnPepURFw=";
diff --git a/pkgs/development/python-modules/simple-term-menu/default.nix b/pkgs/development/python-modules/simple-term-menu/default.nix
index 7a348b1f602da..f6b808cf31c86 100644
--- a/pkgs/development/python-modules/simple-term-menu/default.nix
+++ b/pkgs/development/python-modules/simple-term-menu/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchPypi
 , setuptools
 }:
@@ -10,8 +9,6 @@ buildPythonPackage rec {
   version = "1.6.4";
   pyproject = true;
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-vpxdvY3xKkBLFM2Oldb8AtWMYOJVX2Xd3kF3fEh/s7k=";
diff --git a/pkgs/development/python-modules/slack-bolt/default.nix b/pkgs/development/python-modules/slack-bolt/default.nix
index 94291d7a9cc41..8b2e41c782c42 100644
--- a/pkgs/development/python-modules/slack-bolt/default.nix
+++ b/pkgs/development/python-modules/slack-bolt/default.nix
@@ -1,33 +1,35 @@
-{ aiohttp
-, bottle
-, buildPythonPackage
-, chalice
-, cherrypy
-, django
-, docker
-, falcon
-, fastapi
-, fetchFromGitHub
-, flask
-, flask-sockets
-, gunicorn
-, lib
-, moto
-, numpy
-, pyramid
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, sanic
-, setuptools
-, sanic-testing
-, slack-sdk
-, starlette
-, tornado
-, uvicorn
-, websocket-client
-, websockets
-, werkzeug
+{
+  lib,
+  aiohttp,
+  bottle,
+  buildPythonPackage,
+  chalice,
+  cherrypy,
+  django,
+  docker,
+  falcon,
+  fastapi,
+  fetchFromGitHub,
+  fetchpatch,
+  flask,
+  flask-sockets,
+  gunicorn,
+  moto,
+  numpy,
+  pyramid,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  sanic,
+  setuptools,
+  sanic-testing,
+  slack-sdk,
+  starlette,
+  tornado,
+  uvicorn,
+  websocket-client,
+  websockets,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -44,19 +46,23 @@ buildPythonPackage rec {
     hash = "sha256-UwVStemFVA4hgqnSpCKpQGwLYG+p5z7MwFXXnIhrvNk=";
   };
 
-  # The packaged pytest-runner version is too new as of 2023-07-27. It's not really needed anyway. Unfortunately,
-  # pythonRelaxDepsHook doesn't work on setup_requires packages.
   postPatch = ''
-    substituteInPlace setup.py --replace "pytest-runner==5.2" ""
+    substituteInPlace setup.py \
+      --replace-fail "pytest-runner==5.2" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
+  patches = [
+    # moto >=5 support, https://github.com/slackapi/bolt-python/pull/1046
+    (fetchpatch {
+      name = "moto-support.patch";
+      url = "https://github.com/slackapi/bolt-python/commit/69c2015ef49773de111f184dca9668aefac9e7c0.patch";
+      hash = "sha256-KW7KPeOqanV4n1UOv4DCadplJsqsPY+ju4ry0IvUqpA=";
+    })
   ];
 
-  propagatedBuildInputs = [
-    slack-sdk
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ slack-sdk ];
 
   passthru.optional-dependencies = {
     async = [
@@ -91,7 +97,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  # Work around "Read-only file system: '/homeless-shelter'" errors
   preCheck = ''
     export HOME="$(mktemp -d)"
   '';
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index 2782b5eea5db7..4ef216531c622 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -1,27 +1,28 @@
-{ stdenv
-, lib
-, aiodns
-, aiohttp
-, boto3
-, buildPythonPackage
-, codecov
-, fetchFromGitHub
-, flake8
-, flask-sockets
-, moto
-, pythonOlder
-, psutil
-, pytest-asyncio
-, pytestCheckHook
-, setuptools
-, sqlalchemy
-, websocket-client
-, websockets
+{
+  lib,
+  stdenv,
+  aiodns,
+  aiohttp,
+  boto3,
+  buildPythonPackage,
+  codecov,
+  fetchFromGitHub,
+  flake8,
+  flask-sockets,
+  moto,
+  pythonOlder,
+  psutil,
+  pytest-asyncio,
+  pytestCheckHook,
+  setuptools,
+  sqlalchemy,
+  websocket-client,
+  websockets,
 }:
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.27.1";
+  version = "3.27.2";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -30,7 +31,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fBHu4e6pSt8yzXbLWr5cwjRFDfvdH2jzpSNzdMBg4N0=";
+    hash = "sha256-1I08OUseiwCN9vUd56f9IFzCSB9kGjTLojyWm2dIimE=";
   };
 
   postPatch = ''
@@ -38,11 +39,9 @@ buildPythonPackage rec {
       --replace-fail ', "pytest-runner"' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiodns
     aiohttp
     boto3
@@ -78,15 +77,13 @@ buildPythonPackage rec {
     "test_issue_690_oauth_access"
   ];
 
-  pythonImportsCheck = [
-    "slack_sdk"
-  ];
+  pythonImportsCheck = [ "slack_sdk" ];
 
   meta = with lib; {
     description = "Slack Developer Kit for Python";
     homepage = "https://slack.dev/python-slack-sdk/";
     changelog = "https://github.com/slackapi/python-slack-sdk/releases/tag/v${version}";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/snitun/default.nix b/pkgs/development/python-modules/snitun/default.nix
index 10df697818267..a0192ee1188e0 100644
--- a/pkgs/development/python-modules/snitun/default.nix
+++ b/pkgs/development/python-modules/snitun/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, stdenv
-, setuptools
-, async-timeout
-, attrs
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytest-aiohttp
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  stdenv,
+  aiohttp,
+  async-timeout,
+  attrs,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "snitun";
-  version = "0.36.2";
+  version = "0.39.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "NabuCasa";
     repo = "snitun";
     rev = "refs/tags/${version}";
-    hash = "sha256-ViNsmTq1iLxNujA71b9JZB5AZ79ZbiqdTyDeBGd4gUA=";
+    hash = "sha256-jewDQqvLUh/066BSEADXkCvjLFRnodKtUPKfvi0KUpI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    aiohttp
     async-timeout
     attrs
     cryptography
@@ -41,41 +42,44 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # AssertionError: Expected 'fileno' to not have been called. Called 1 times.
-    "test_client_stop_no_wait"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_multiplexer_data_channel_abort_full" # https://github.com/NabuCasa/snitun/issues/61
-    # port binding conflicts
-    "test_snitun_single_runner_timeout"
-    "test_snitun_single_runner_throttling"
-    # ConnectionResetError: [Errno 54] Connection reset by peer
-    "test_peer_listener_timeout"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # blocking
-    "test_flow_client_peer"
-    "test_close_client_peer"
-    "test_init_connector"
-    "test_flow_connector"
-    "test_close_connector_remote"
-    "test_init_connector_whitelist"
-    "test_init_multiplexer_server"
-    "test_init_multiplexer_client"
-    "test_init_multiplexer_server_throttling"
-    "test_init_multiplexer_client_throttling"
-    "test_multiplexer_ping"
-    "test_multiplexer_ping_error"
-    "test_multiplexer_init_channel_full"
-    "test_multiplexer_close_channel_full"
-    "test_init_dual_peer_with_multiplexer"
-  ];
+  disabledTests =
+    [
+      # AssertionError: Expected 'fileno' to not have been called. Called 1 times.
+      "test_client_stop_no_wait"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_multiplexer_data_channel_abort_full" # https://github.com/NabuCasa/snitun/issues/61
+      # port binding conflicts
+      "test_snitun_single_runner_timeout"
+      "test_snitun_single_runner_throttling"
+      # ConnectionResetError: [Errno 54] Connection reset by peer
+      "test_peer_listener_timeout"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # blocking
+      "test_flow_client_peer"
+      "test_close_client_peer"
+      "test_init_connector"
+      "test_flow_connector"
+      "test_close_connector_remote"
+      "test_init_connector_whitelist"
+      "test_init_multiplexer_server"
+      "test_init_multiplexer_client"
+      "test_init_multiplexer_server_throttling"
+      "test_init_multiplexer_client_throttling"
+      "test_multiplexer_ping"
+      "test_multiplexer_ping_error"
+      "test_multiplexer_init_channel_full"
+      "test_multiplexer_close_channel_full"
+      "test_init_dual_peer_with_multiplexer"
+    ];
 
   pythonImportsCheck = [ "snitun" ];
 
   meta = with lib; {
+    description = "SNI proxy with TCP multiplexer";
     changelog = "https://github.com/NabuCasa/snitun/releases/tag/${version}";
     homepage = "https://github.com/nabucasa/snitun";
-    description = "SNI proxy with TCP multiplexer";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Scriptkiddi ];
     platforms = platforms.linux;
diff --git a/pkgs/development/python-modules/soco/default.nix b/pkgs/development/python-modules/soco/default.nix
index 347273e453e61..191f963c7594e 100644
--- a/pkgs/development/python-modules/soco/default.nix
+++ b/pkgs/development/python-modules/soco/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "soco";
-  version = "0.30.3";
+  version = "0.30.4";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "SoCo";
     repo = "SoCo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QAF3f1JMGFFsgdZzoyo+RwKKMaLG+hy+lvZwCzceU/g=";
+    hash = "sha256-t5Cxlm5HhN6WY6ty4i2MAtqjbC7DwZqSp1g5nybFAH4=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/srt/default.nix b/pkgs/development/python-modules/srt/default.nix
index 8fb0d72761418..9bd76b15d2bd2 100644
--- a/pkgs/development/python-modules/srt/default.nix
+++ b/pkgs/development/python-modules/srt/default.nix
@@ -3,7 +3,6 @@
 , fetchPypi
 , hypothesis
 , pytestCheckHook
-, pythonOlder
 }:
 
 buildPythonPackage rec {
@@ -11,8 +10,6 @@ buildPythonPackage rec {
   version = "3.5.3";
   format = "setuptools";
 
-  disabled = pythonOlder "2.7";
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "sha256-SIQxUEOk8HQP0fh47WyqN2rAbXDhNfMGptxEYy7tDMA=";
diff --git a/pkgs/development/python-modules/stashy/default.nix b/pkgs/development/python-modules/stashy/default.nix
index fbac0df71f1de..24a1573606367 100644
--- a/pkgs/development/python-modules/stashy/default.nix
+++ b/pkgs/development/python-modules/stashy/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , decorator
 , fetchPypi
-, pythonOlder
 , requests
  }:
 
@@ -10,7 +9,6 @@ buildPythonPackage rec {
   pname = "stashy";
   version = "0.7";
   format = "setuptools";
-  disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/stdlibs/default.nix b/pkgs/development/python-modules/stdlibs/default.nix
index 677d282f06536..fb9c0f54479f4 100644
--- a/pkgs/development/python-modules/stdlibs/default.nix
+++ b/pkgs/development/python-modules/stdlibs/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "stdlibs";
-  version = "2024.1.28";
-  format = "pyproject";
+  version = "2024.5.15";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -16,19 +17,15 @@ buildPythonPackage rec {
     owner = "omnilib";
     repo = "stdlibs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xf46ih7viVUKNIT1tLs5MQPNjNtQlQ2N9BJIGPt4Srk=";
+    hash = "sha256-DthHvL5x3HVwACLnxeyuoC0hb8OokabODircEY9eEhE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "stdlibs"
-  ];
+  pythonImportsCheck = [ "stdlibs" ];
 
   meta = with lib; {
     description = "Overview of the Python stdlib";
diff --git a/pkgs/development/python-modules/stickytape/default.nix b/pkgs/development/python-modules/stickytape/default.nix
index 99e63ebd3dfb2..71d5327ef5cfc 100644
--- a/pkgs/development/python-modules/stickytape/default.nix
+++ b/pkgs/development/python-modules/stickytape/default.nix
@@ -1,10 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, nose
-, pytestCheckHook
-, pythonOlder
-, spur
 }:
 
 buildPythonPackage rec {
@@ -12,8 +8,6 @@ buildPythonPackage rec {
   version = "0.2.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchFromGitHub {
     owner = "mwilliamson";
     repo = pname;
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index f13eef796b6f2..9017a5b7a6ffc 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "9.5.0";
+  version = "9.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zTg2lkGuYUDhzp7c1UAK7NsaELpwTmU6Lyp1UMuPJ34=";
+    hash = "sha256-kwXYSc6nFdxZxeOdAYkUdbguEO252V7h2BiUV+XeeS8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tabula-py/default.nix b/pkgs/development/python-modules/tabula-py/default.nix
index bdc31012cf2d0..4556443136b2f 100644
--- a/pkgs/development/python-modules/tabula-py/default.nix
+++ b/pkgs/development/python-modules/tabula-py/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, distro
-, fetchFromGitHub
-, jre
-, numpy
-, pandas
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, jpype1
+{
+  lib,
+  buildPythonPackage,
+  distro,
+  fetchFromGitHub,
+  jre,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  jpype1,
 }:
 
 buildPythonPackage rec {
   pname = "tabula-py";
-  version = "2.9.0";
+  version = "2.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,37 +24,31 @@ buildPythonPackage rec {
     owner = "chezou";
     repo = "tabula-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MGv2n8DoSjumD3lRcqwI0sEsaEDgs1n+st8DwZuZauo=";
+    hash = "sha256-C06du4mhpnF2qxcEMZxp5O/8xpNaj9Jp8LFaxBkGF/Q=";
   };
 
   postPatch = ''
     substituteInPlace tabula/backend.py \
-      --replace '"java"' '"${lib.getExe jre}"'
+      --replace-fail '"java"' '"${lib.getExe jre}"'
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  buildInputs = [
-    jre
-  ];
+  buildInputs = [ jre ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     distro
     numpy
     pandas
     jpype1
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tabula"
-  ];
+  pythonImportsCheck = [ "tabula" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index 0244e1b2d54da..5b0513a0d8316 100644
--- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1144";
+  version = "3.0.1149";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-cUuigY67wgYj6DvFiplXJbqcLNKxH9odeG5a8bSZ7/8=";
+    hash = "sha256-3c5MxP2u539++7R6ZMfRMqcxu9THTAWGjaPSdGbqTC8=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/tesla-fleet-api/default.nix b/pkgs/development/python-modules/tesla-fleet-api/default.nix
index 31317cd7b7b43..95b4e84390b10 100644
--- a/pkgs/development/python-modules/tesla-fleet-api/default.nix
+++ b/pkgs/development/python-modules/tesla-fleet-api/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tesla-fleet-api";
-  version = "0.5.9";
+  version = "0.5.11";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Teslemetry";
     repo = "python-tesla-fleet-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aDejd9UHGXkBa5xyCJaLOkT1A2cWmnx1rKJkXjjw0fc=";
+    hash = "sha256-CwgIWTcLHlV+0ZoSUduQIX/lzmz65dFb+rWkQ/qfKY4=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/theano/default.nix b/pkgs/development/python-modules/theano/default.nix
index 78a2a0836e765..ef8b809533906 100644
--- a/pkgs/development/python-modules/theano/default.nix
+++ b/pkgs/development/python-modules/theano/default.nix
@@ -53,7 +53,7 @@ in buildPythonPackage rec {
   version = "1.0.5";
   format = "setuptools";
 
-  disabled = isPyPy || pythonOlder "2.6" || (isPy3k && pythonOlder "3.3");
+  disabled = isPyPy || pythonOlder "2.6";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/timm/default.nix b/pkgs/development/python-modules/timm/default.nix
index 18ac893e9261d..087b25003acca 100644
--- a/pkgs/development/python-modules/timm/default.nix
+++ b/pkgs/development/python-modules/timm/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "timm";
-  version = "0.9.16";
+  version = "1.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,14 +24,14 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "pytorch-image-models";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IWEDKuI2565Z07q1MxTpzKS+CROPR6SyaD5fKcQ5eXk=";
+    hash = "sha256-h2J1v2zXUMGRKBBqq+RnxrXKOzlD5RRrVoODWSuj9Ms=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     pdm-backend
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     huggingface-hub
     pyyaml
     safetensors
@@ -64,11 +64,11 @@ buildPythonPackage rec {
     "timm.data"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch image models, scripts, and pretrained weights";
     homepage = "https://huggingface.co/docs/timm/index";
     changelog = "https://github.com/huggingface/pytorch-image-models/blob/v${version}/README.md#whats-new";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ bcdarwin ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ bcdarwin ];
   };
 }
diff --git a/pkgs/development/python-modules/torchmetrics/default.nix b/pkgs/development/python-modules/torchmetrics/default.nix
index 5cc57ed0bed3a..c9485359cb87a 100644
--- a/pkgs/development/python-modules/torchmetrics/default.nix
+++ b/pkgs/development/python-modules/torchmetrics/default.nix
@@ -21,7 +21,7 @@
 
 let
   pname = "torchmetrics";
-  version = "1.4.0";
+  version = "1.4.0.post0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -33,7 +33,7 @@ buildPythonPackage {
     owner = "Lightning-AI";
     repo = "torchmetrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5ANEpUdd5eyzBhhAEHrvHNHMOQuXhkkKuL1t3dJLhdE=";
+    hash = "sha256-tQqlLfdk8rSJqwR3rC7kqnM+pLFYZSPHfI7RmIi2Iq4=";
   };
 
   dependencies = [
diff --git a/pkgs/development/python-modules/transitions/default.nix b/pkgs/development/python-modules/transitions/default.nix
index 8ed221cd23e94..7e73b9c73abae 100644
--- a/pkgs/development/python-modules/transitions/default.nix
+++ b/pkgs/development/python-modules/transitions/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "transitions";
-  version = "0.9.0";
+  version = "0.9.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-L1TRG9siV3nX5ykBHpOp+3F2aM49xl+NT1pde6L0jhA=";
+    hash = "sha256-NULDcQjpPirl8hUgjsVzLJSncpN4VKECzXNFuWf+5hs=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index 8660e95508ff6..1a00120a80da1 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -25,14 +25,14 @@
 
 buildPythonPackage rec {
   pname = "trytond";
-  version = "7.0.10";
+  version = "7.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-N/O27qQBD18lncW0hCfJkUlmCuej8HtV2x/MnRUDGcc=";
+    hash = "sha256-gIWWzm7emSwgKoO5geNIXUqKNsDiq6fle5OHb+KvhLE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tubes/default.nix b/pkgs/development/python-modules/tubes/default.nix
index 28d7b7bc4be22..7d593371d11e6 100644
--- a/pkgs/development/python-modules/tubes/default.nix
+++ b/pkgs/development/python-modules/tubes/default.nix
@@ -1,19 +1,30 @@
-{ lib, buildPythonPackage, fetchPypi, python
-, characteristic, six, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  characteristic,
+  six,
+  twisted,
 }:
 
 buildPythonPackage rec {
   pname = "tubes";
-  version = "0.2.1";
+  version = "0.2.1-unstable-2023-11-06";
   format = "setuptools";
 
-  src = fetchPypi {
-    pname = "Tubes";
-    inherit version;
-    hash = "sha256-WbkZfy+m9/xrwygd5VeXrccpu3XJxhO09tbEFZnw14s=";
+  src = fetchFromGitHub {
+    owner = "twisted";
+    repo = "tubes";
+    rev = "b74680b8e7bcfe64362865356bb9461b77bbd5c0";
+    hash = "sha256-E8brnt8CtTEEP1KQTsTsgnl54H4zRGp+1IuoI/Qf5NA=";
   };
 
-  propagatedBuildInputs = [ characteristic six twisted ];
+  propagatedBuildInputs = [
+    characteristic
+    six
+    twisted
+  ];
 
   checkPhase = ''
     ${python.interpreter} -m twisted.trial -j $NIX_BUILD_CORES tubes
@@ -23,8 +34,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "a data-processing and flow-control engine for event-driven programs";
-    homepage    = "https://github.com/twisted/tubes";
-    license     = licenses.mit;
+    homepage = "https://github.com/twisted/tubes";
+    license = licenses.mit;
     maintainers = with maintainers; [ exarkun ];
   };
 }
diff --git a/pkgs/development/python-modules/types-ujson/default.nix b/pkgs/development/python-modules/types-ujson/default.nix
index eb46df9c93378..cbd3c4c7c08bb 100644
--- a/pkgs/development/python-modules/types-ujson/default.nix
+++ b/pkgs/development/python-modules/types-ujson/default.nix
@@ -1,23 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "types-ujson";
-  version = "5.9.0.0";
-  format = "setuptools";
+  version = "5.10.0.20240515";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fnBCRU3HzX8xsJxCDXyvNrk9ML30uNuTeRvQVhcT0Bc=";
+    hash = "sha256-zq5xJ/Da/kr13Q7PmO4T6ddZUe+WO1xam36pLg1x8Nc=";
   };
 
+  build-system = [ setuptools ];
+
+  # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ujson-stubs"
-  ];
+  pythonImportsCheck = [ "ujson-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for ujson";
diff --git a/pkgs/development/python-modules/unstructured/default.nix b/pkgs/development/python-modules/unstructured/default.nix
index a2de522334133..1340b1c79c7ee 100644
--- a/pkgs/development/python-modules/unstructured/default.nix
+++ b/pkgs/development/python-modules/unstructured/default.nix
@@ -56,7 +56,7 @@
 , grpcio
 }:
 let
-  version = "0.13.4";
+  version = "0.13.7";
   optional-dependencies = {
     huggingflace = [
       langdetect
@@ -90,7 +90,7 @@ buildPythonPackage {
     owner = "Unstructured-IO";
     repo = "unstructured";
     rev = "refs/tags/${version}";
-    hash = "sha256-HAZVnyjbeHF6knipTxmmy/BI1wvoJ8c65PiMAIqgJ+0=";
+    hash = "sha256-Ekfa454mL7isMX79bd/YXPPHnetSzo1Mlg/XJakYyDM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
index 4fd55870b0f42..094e118340ff2 100644
--- a/pkgs/development/python-modules/uproot/default.nix
+++ b/pkgs/development/python-modules/uproot/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "uproot";
-  version = "5.3.2";
+  version = "5.3.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,15 +28,15 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = "uproot5";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dq362pevqgLx5KwZ19zQ6aOn5NCyiqynPCF7YdI6tkw=";
+    hash = "sha256-ptfT31eUNSpVaZfXAyRcIc2T2p82rXmzUyySSVbI9lI=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     awkward
     cramjam
     numpy
@@ -76,6 +76,7 @@ buildPythonPackage rec {
     "test_http_size"
     "test_http_size_port"
     "test_issue_1054_filename_colons"
+    "test_multiple_page_lists"
     "test_no_multipart"
     "test_open_fsspec_github"
     "test_open_fsspec_http"
@@ -83,6 +84,7 @@ buildPythonPackage rec {
     "test_pickle_roundtrip_http"
     "test_split_ranges_if_large_file_in_http"
     # Cyclic dependency with dask-awkward
+    "test_dask_duplicated_keys"
     "test_decompression_executor_for_dask"
   ];
 
diff --git a/pkgs/development/python-modules/waybackpy/default.nix b/pkgs/development/python-modules/waybackpy/default.nix
new file mode 100644
index 0000000000000..1faa3beaef8fc
--- /dev/null
+++ b/pkgs/development/python-modules/waybackpy/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, click
+, urllib3
+, requests
+, pytest
+}:
+buildPythonPackage rec {
+  pname = "waybackpy";
+  version = "3.0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-SXo3F1arp2ROt62g69TtsVy4xTvBNMyXO/AjoSyv+D8=";
+  };
+
+  dependencies = [
+    click
+    urllib3
+    requests
+  ];
+
+  nativeBuildInputs = [ pytest ];
+
+  pythonImportsCheck = [ "waybackpy" ];
+
+  meta = with lib; {
+    homepage = "https://akamhy.github.io/waybackpy/";
+    description = "Wayback Machine API interface & a command-line tool";
+    license = licenses.mit;
+    maintainers = with maintainers; [ chpatrick ];
+  };
+}
diff --git a/pkgs/development/python-modules/wcmatch/default.nix b/pkgs/development/python-modules/wcmatch/default.nix
index fa5a75c132683..7f86afe621177 100644
--- a/pkgs/development/python-modules/wcmatch/default.nix
+++ b/pkgs/development/python-modules/wcmatch/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "wcmatch";
-  version = "8.5.1";
+  version = "8.5.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wAiMf2Qmz2vyflMOK3tzQDGQX35JBHX9g8fFAIq1gbM=";
+    hash = "sha256-pwIiuG3qgvs4Ldh7cyeMEHVsE4vW+PcU4hgxKIh7nrI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/willow/default.nix b/pkgs/development/python-modules/willow/default.nix
index 2b0058357d88d..cb4d128eb2467 100644
--- a/pkgs/development/python-modules/willow/default.nix
+++ b/pkgs/development/python-modules/willow/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
 
 # build-system
 , flit-core
@@ -26,8 +25,6 @@ buildPythonPackage rec {
   version = "1.8.0";
   format = "pyproject";
 
-  disabled = pythonOlder "2.7";
-
   src = fetchFromGitHub {
     owner = "wagtail";
     repo = "Willow";
diff --git a/pkgs/development/python-modules/wled/default.nix b/pkgs/development/python-modules/wled/default.nix
index 7d90c554907ca..fe0b4b9a19cf8 100644
--- a/pkgs/development/python-modules/wled/default.nix
+++ b/pkgs/development/python-modules/wled/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "wled";
-  version = "0.17.0";
+  version = "0.17.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.11";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-wled";
     rev = "refs/tags/v${version}";
-    hash = "sha256-y32zynkVsn5vWw+BZ6ZRf9zemGOWJMN4yfNQZ0bRpos=";
+    hash = "sha256-9682AbcADhd9m5XrYeDFiX+sJCCe+pnuvntJDnpzJ+U=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/xmltodict/default.nix b/pkgs/development/python-modules/xmltodict/default.nix
index bd4e2cbb0f2d6..3b06401c39246 100644
--- a/pkgs/development/python-modules/xmltodict/default.nix
+++ b/pkgs/development/python-modules/xmltodict/default.nix
@@ -2,14 +2,12 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
-, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "xmltodict";
   version = "0.13.0";
   format = "setuptools";
-  disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/yapf/default.nix b/pkgs/development/python-modules/yapf/default.nix
index 70f31fe5308b0..01b84b2f3dc21 100644
--- a/pkgs/development/python-modules/yapf/default.nix
+++ b/pkgs/development/python-modules/yapf/default.nix
@@ -66,6 +66,7 @@ buildPythonPackage rec {
       takes away some of the drudgery of maintaining your code.
     '';
     license = lib.licenses.asl20;
+    mainProgram = "yapf";
     maintainers = with lib.maintainers; [ AndersonTorres siddharthist ];
   };
 }