diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index af951cc3e805e..9c9dba3f7e9b1 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -61,7 +61,7 @@ sets are and the aliases * `pkgs.python2Packages` pointing to `pkgs.python27Packages` -* `pkgs.python3Packages` pointing to `pkgs.python312Packages` +* `pkgs.python3Packages` pointing to `pkgs.python313Packages` * `pkgs.pythonPackages` pointing to `pkgs.python2Packages` * `pkgs.pypy2Packages` pointing to `pkgs.pypy27Packages` * `pkgs.pypy3Packages` pointing to `pkgs.pypy310Packages` @@ -583,9 +583,9 @@ are used in [`buildPythonPackage`](#buildpythonpackage-function). Several versions of the Python interpreter are available on Nix, as well as a high amount of packages. The attribute `python3` refers to the default -interpreter, which is currently CPython 3.12. The attribute `python` refers to +interpreter, which is currently CPython 3.13. The attribute `python` refers to CPython 2.7 for backwards-compatibility. It is also possible to refer to -specific versions, e.g. `python312` refers to CPython 3.12, and `pypy` refers to +specific versions, e.g. `python313` refers to CPython 3.13, and `pypy` refers to the default PyPy interpreter. Python is used a lot, and in different ways. This affects also how it is @@ -601,10 +601,10 @@ however, are in separate sets, with one set per interpreter version. The interpreters have several common attributes. One of these attributes is `pkgs`, which is a package set of Python libraries for this specific interpreter. E.g., the `toolz` package corresponding to the default interpreter -is `python3.pkgs.toolz`, and the CPython 3.12 version is `python312.pkgs.toolz`. +is `python3.pkgs.toolz`, and the CPython 3.13 version is `python313.pkgs.toolz`. The main package set contains aliases to these package sets, e.g. -`pythonPackages` refers to `python.pkgs` and `python312Packages` to -`python312.pkgs`. +`pythonPackages` refers to `python.pkgs` and `python313Packages` to +`python313.pkgs`. #### Installing Python and packages {#installing-python-and-packages} @@ -629,7 +629,7 @@ with [`python.buildEnv`](#python.buildenv-function) or [`python.withPackages`](# executables are wrapped to be able to find each other and all of the modules. In the following examples we will start by creating a simple, ad-hoc environment -with a nix-shell that has `numpy` and `toolz` in Python 3.12; then we will create +with a nix-shell that has `numpy` and `toolz` in Python 3.13; then we will create a re-usable environment in a single-file Python script; then we will create a full Python environment for development with this same environment. @@ -645,10 +645,10 @@ temporary shell session with a Python and a *precise* list of packages (plus their runtime dependencies), with no other Python packages in the Python interpreter's scope. -To create a Python 3.12 session with `numpy` and `toolz` available, run: +To create a Python 3.13 session with `numpy` and `toolz` available, run: ```sh -$ nix-shell -p 'python312.withPackages(ps: with ps; [ numpy toolz ])' +$ nix-shell -p 'python313.withPackages(ps: with ps; [ numpy toolz ])' ``` By default `nix-shell` will start a `bash` session with this interpreter in our @@ -656,7 +656,7 @@ By default `nix-shell` will start a `bash` session with this interpreter in our ```Python console [nix-shell:~/src/nixpkgs]$ python3 -Python 3.12.4 (main, Jun 6 2024, 18:26:44) [GCC 13.3.0] on linux +Python 3.13.3 (main, Apr 8 2025, 13:54:08) [GCC 14.2.1 20250322] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import numpy; import toolz ``` @@ -676,8 +676,8 @@ will still get 1 wrapped Python interpreter. We can start the interpreter directly like so: ```sh -$ nix-shell -p "python312.withPackages (ps: with ps; [ numpy toolz requests ])" --run python3 -Python 3.12.4 (main, Jun 6 2024, 18:26:44) [GCC 13.3.0] on linux +$ nix-shell -p "python313.withPackages (ps: with ps; [ numpy toolz requests ])" --run python3 +Python 3.13.3 (main, Apr 8 2025, 13:54:08) [GCC 14.2.1 20250322] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import requests >>> @@ -717,7 +717,7 @@ Executing this script requires a `python3` that has `numpy`. Using what we learn in the previous section, we could startup a shell and just run it like so: ```ShellSession -$ nix-shell -p 'python312.withPackages (ps: with ps; [ numpy ])' --run 'python3 foo.py' +$ nix-shell -p 'python313.withPackages (ps: with ps; [ numpy ])' --run 'python3 foo.py' The dot product of [1 2] and [3 4] is: 11 ``` @@ -780,12 +780,12 @@ create a single script with Python dependencies, but in the course of normal development we're usually working in an entire package repository. As explained [in the `nix-shell` section](https://nixos.org/manual/nix/stable/command-ref/nix-shell) of the Nix manual, `nix-shell` can also load an expression from a `.nix` file. -Say we want to have Python 3.12, `numpy` and `toolz`, like before, +Say we want to have Python 3.13, `numpy` and `toolz`, like before, in an environment. We can add a `shell.nix` file describing our dependencies: ```nix with import { }; -(python312.withPackages ( +(python313.withPackages ( ps: with ps; [ numpy toolz @@ -804,7 +804,7 @@ What's happening here? imports the `` function, `{}` calls it and the `with` statement brings all attributes of `nixpkgs` in the local scope. These attributes form the main package set. -2. Then we create a Python 3.12 environment with the [`withPackages`](#python.withpackages-function) function, as before. +2. Then we create a Python 3.13 environment with the [`withPackages`](#python.withpackages-function) function, as before. 3. The [`withPackages`](#python.withpackages-function) function expects us to provide a function as an argument that takes the set of all Python packages and returns a list of packages to include in the environment. Here, we select the packages `numpy` and `toolz` @@ -815,7 +815,7 @@ To combine this with `mkShell` you can: ```nix with import { }; let - pythonEnv = python312.withPackages (ps: [ + pythonEnv = python313.withPackages (ps: [ ps.numpy ps.toolz ]); @@ -977,8 +977,8 @@ information. The output of the function is a derivation. An expression for `toolz` can be found in the Nixpkgs repository. As explained in the introduction of this Python section, a derivation of `toolz` is available -for each interpreter version, e.g. `python312.pkgs.toolz` refers to the `toolz` -derivation corresponding to the CPython 3.12 interpreter. +for each interpreter version, e.g. `python313.pkgs.toolz` refers to the `toolz` +derivation corresponding to the CPython 3.13 interpreter. The above example works when you're directly working on `pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though, @@ -992,7 +992,7 @@ with import { }; ( let - my_toolz = python312.pkgs.buildPythonPackage rec { + my_toolz = python313.pkgs.buildPythonPackage rec { pname = "toolz"; version = "0.10.0"; pyproject = true; @@ -1003,7 +1003,7 @@ with import { }; }; build-system = [ - python312.pkgs.setuptools + python313.pkgs.setuptools ]; # has no tests @@ -1017,7 +1017,7 @@ with import { }; }; in - python312.withPackages ( + python313.withPackages ( ps: with ps; [ numpy my_toolz @@ -1027,7 +1027,7 @@ with import { }; ``` Executing `nix-shell` will result in an environment in which you can use -Python 3.12 and the `toolz` package. As you can see we had to explicitly mention +Python 3.13 and the `toolz` package. As you can see we had to explicitly mention for which Python version we want to build a package. So, what did we do here? Well, we took the Nix expression that we used earlier @@ -2130,7 +2130,7 @@ has security implications and is relevant for those using Python in a When the environment variable `DETERMINISTIC_BUILD` is set, all bytecode will have timestamp 1. The [`buildPythonPackage`](#buildpythonpackage-function) function sets `DETERMINISTIC_BUILD=1` -and [PYTHONHASHSEED=0](https://docs.python.org/3.12/using/cmdline.html#envvar-PYTHONHASHSEED). +and [PYTHONHASHSEED=0](https://docs.python.org/3.13/using/cmdline.html#envvar-PYTHONHASHSEED). Both are also exported in `nix-shell`. ### How to provide automatic tests to Python packages? {#automatic-tests} @@ -2179,10 +2179,10 @@ The following rules are desired to be respected: It does not need to be set explicitly unless the package requires a specific platform. * The file is formatted with `nixfmt-rfc-style`. * Commit names of Python libraries must reflect that they are Python - libraries (e.g. `python312Packages.numpy: 1.11 -> 1.12` rather than `numpy: 1.11 -> 1.12`). + libraries (e.g. `python313Packages.numpy: 1.11 -> 1.12` rather than `numpy: 1.11 -> 1.12`). * The current default version of python should be included in commit messages to enable automatic builds by ofborg. - For example `python312Packages.numpy: 1.11 -> 1.12` should be used rather + For example `python313Packages.numpy: 1.11 -> 1.12` should be used rather than `python3Packages.numpy: 1.11 -> 1.12`. Note that `pythonPackages` is an alias for `python27Packages`. * Attribute names in `python-packages.nix` as well as `pname`s should match the diff --git a/pkgs/by-name/ar/arouteserver/package.nix b/pkgs/by-name/ar/arouteserver/package.nix index 331d761fad15a..e172edac1b119 100644 --- a/pkgs/by-name/ar/arouteserver/package.nix +++ b/pkgs/by-name/ar/arouteserver/package.nix @@ -26,6 +26,8 @@ python3Packages.buildPythonPackage rec { build-system = with python3Packages; [ setuptools ]; + pythonRelaxDeps = [ "packaging" ]; + dependencies = with python3Packages; [ aggregate6 jinja2 diff --git a/pkgs/by-name/aw/awscli/package.nix b/pkgs/by-name/aw/awscli/package.nix index daa7e88c83e9e..311201f73d07a 100644 --- a/pkgs/by-name/aw/awscli/package.nix +++ b/pkgs/by-name/aw/awscli/package.nix @@ -14,14 +14,14 @@ let pname = "awscli"; # N.B: if you change this, change botocore and boto3 to a matching version too # check e.g. https://github.com/aws/aws-cli/blob/1.33.21/setup.py - version = "1.37.21"; + version = "1.40.8"; pyproject = true; src = fetchFromGitHub { owner = "aws"; repo = "aws-cli"; tag = version; - hash = "sha256-gKRWhOhZjGhPVIG6KgCyDqxuyBGbaS8bHD7vnJ4gA+o="; + hash = "sha256-gldyfko4yrpq/U8w87qxRzqXEfUxfCTEjsRO8bPJOAc="; }; pythonRelaxDeps = [ diff --git a/pkgs/by-name/aw/awscli2/package.nix b/pkgs/by-name/aw/awscli2/package.nix index 069be0822da02..7ebc9a3d24e32 100644 --- a/pkgs/by-name/aw/awscli2/package.nix +++ b/pkgs/by-name/aw/awscli2/package.nix @@ -64,20 +64,20 @@ let in py.pkgs.buildPythonApplication rec { pname = "awscli2"; - version = "2.27.2"; # N.B: if you change this, check if overrides are still up-to-date + version = "2.27.8"; # N.B: if you change this, check if overrides are still up-to-date pyproject = true; src = fetchFromGitHub { owner = "aws"; repo = "aws-cli"; tag = version; - hash = "sha256-rdgjA6t5L4mNKnyRyNdIyzX6fjMUgbD0YCjresK94Dg="; + hash = "sha256-AluBRKB5HKK+8Pb2UooUWqrE48ZNGffkW1z3mLHzVRg="; }; postPatch = '' substituteInPlace pyproject.toml \ --replace-fail 'flit_core>=3.7.1,<3.9.1' 'flit_core>=3.7.1' \ - --replace-fail 'awscrt==0.25.4' 'awscrt>=0.25.4' \ + --replace-fail 'awscrt==' 'awscrt>=' \ --replace-fail 'cryptography>=40.0.0,<43.0.2' 'cryptography>=43.0.0' \ --replace-fail 'distro>=1.5.0,<1.9.0' 'distro>=1.5.0' \ --replace-fail 'docutils>=0.10,<0.20' 'docutils>=0.10' \ diff --git a/pkgs/by-name/aw/awsebcli/package.nix b/pkgs/by-name/aw/awsebcli/package.nix index f74292beb65be..f03f76498420d 100644 --- a/pkgs/by-name/aw/awsebcli/package.nix +++ b/pkgs/by-name/aw/awsebcli/package.nix @@ -39,6 +39,7 @@ python.pkgs.buildPythonApplication rec { "botocore" "colorama" "pathspec" + "packaging" "PyYAML" "six" "termcolor" @@ -53,7 +54,6 @@ python.pkgs.buildPythonApplication rec { fabric pathspec pyyaml - future requests semantic-version setuptools diff --git a/pkgs/by-name/gi/gixy/package.nix b/pkgs/by-name/gi/gixy/package.nix index 5d1bfb65d4c2a..2e7a1206fa373 100644 --- a/pkgs/by-name/gi/gixy/package.nix +++ b/pkgs/by-name/gi/gixy/package.nix @@ -43,6 +43,7 @@ python.pkgs.buildPythonApplication rec { url = "https://github.com/yandex/gixy/compare/6f68624a7540ee51316651bda656894dc14c9a3e...b1c6899b3733b619c244368f0121a01be028e8c2.patch"; hash = "sha256-6VUF2eQ2Haat/yk8I5qIXhHdG9zLQgEXJMLfe25OKEo="; }) + ./python3.13-compat.patch ]; build-system = [ python.pkgs.setuptools ]; diff --git a/pkgs/by-name/gi/gixy/python3.13-compat.patch b/pkgs/by-name/gi/gixy/python3.13-compat.patch new file mode 100644 index 0000000000000..c7265461ffada --- /dev/null +++ b/pkgs/by-name/gi/gixy/python3.13-compat.patch @@ -0,0 +1,25 @@ +diff --git a/gixy/core/sre_parse/sre_parse.py b/gixy/core/sre_parse/sre_parse.py +index df69044..f90c795 100644 +--- a/gixy/core/sre_parse/sre_parse.py ++++ b/gixy/core/sre_parse/sre_parse.py +@@ -14,7 +14,7 @@ from __future__ import print_function + + """Internal support module for sre""" + +-from sre_constants import * ++from gixy.core.sre_parse.sre_constants import * + + SPECIAL_CHARS = ".\\[{()*+?^$|" + REPEAT_CHARS = "*+?{" +diff --git a/tests/plugins/test_simply.py b/tests/plugins/test_simply.py +index 1a33c63..7d5a32f 100644 +--- a/tests/plugins/test_simply.py ++++ b/tests/plugins/test_simply.py +@@ -5,6 +5,7 @@ from os import path + import json + + from ..utils import * ++from gixy.formatters.base import BaseFormatter + from gixy.core.manager import Manager as Gixy + from gixy.core.plugins_manager import PluginsManager + from gixy.core.config import Config diff --git a/pkgs/by-name/ma/maturin/package.nix b/pkgs/by-name/ma/maturin/package.nix index c9f694e68cf95..140083a3e6361 100644 --- a/pkgs/by-name/ma/maturin/package.nix +++ b/pkgs/by-name/ma/maturin/package.nix @@ -3,7 +3,6 @@ stdenv, fetchFromGitHub, rustPlatform, - fetchpatch, libiconv, testers, nix-update-script, @@ -13,27 +12,17 @@ rustPlatform.buildRustPackage rec { pname = "maturin"; - version = "1.8.3"; + version = "1.8.6"; src = fetchFromGitHub { owner = "PyO3"; repo = "maturin"; rev = "v${version}"; - hash = "sha256-qMiFHoEm6Q3Pwz8Gv6U75rTKO2Pj81g9rhqdyYJKOys="; + hash = "sha256-Dfq8kBg6gk1j/Y1flOb2yw9hhY40n5gi4h08znI2Yw8="; }; useFetchCargoVendor = true; - cargoHash = "sha256-7YPUTTRo9+aBmVXLq5NfU+t5VPxfEQc4+rdQnPN+AZ0="; - - patches = [ - # Sorts RECORD file in wheel archives to make them deterministic. See: https://github.com/NixOS/nixpkgs/issues/384708 - # Remove on next bump https://github.com/PyO3/maturin/pull/2550 - (fetchpatch { - name = "wheel-deterministic-record.patch"; - url = "https://github.com/PyO3/maturin/commit/bade37e108514f4288c1dd6457119a257bf95db4.patch"; - hash = "sha256-jcZ/NMHKFYQuOfR+fu5UPykEljUq3l/+ZAx0Tlyu3Zw="; - }) - ]; + cargoHash = "sha256-LDVmNtpu+J8rnSlpTslwm6QcyN6E3ZlVdpmowKc/kZo="; buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv diff --git a/pkgs/by-name/pa/paperless-ngx/package.nix b/pkgs/by-name/pa/paperless-ngx/package.nix index cc3e97393ca76..74d8ed4238405 100644 --- a/pkgs/by-name/pa/paperless-ngx/package.nix +++ b/pkgs/by-name/pa/paperless-ngx/package.nix @@ -150,6 +150,7 @@ python.pkgs.buildPythonApplication rec { pythonRelaxDeps = [ "django-allauth" + "redis" ]; dependencies = diff --git a/pkgs/by-name/re/redisTestHook/package.nix b/pkgs/by-name/re/redisTestHook/package.nix index 5ffc0be7c2390..c3ff3c842b4c7 100644 --- a/pkgs/by-name/re/redisTestHook/package.nix +++ b/pkgs/by-name/re/redisTestHook/package.nix @@ -3,6 +3,7 @@ callPackage, makeSetupHook, valkey, + python3Packages, }: makeSetupHook { @@ -13,5 +14,6 @@ makeSetupHook { }; passthru.tests = { simple = callPackage ./test.nix { }; + python3-valkey = python3Packages.valkey; }; } ./redis-test-hook.sh diff --git a/pkgs/by-name/re/redisTestHook/redis-test-hook.sh b/pkgs/by-name/re/redisTestHook/redis-test-hook.sh index 58496021760c6..f2f0dd5295830 100644 --- a/pkgs/by-name/re/redisTestHook/redis-test-hook.sh +++ b/pkgs/by-name/re/redisTestHook/redis-test-hook.sh @@ -7,18 +7,30 @@ redisStart() { redisTestPort=6379 fi + mkdir "$NIX_BUILD_TOP/run" + if [[ "${REDIS_SOCKET:-}" == "" ]]; then - mkdir -p "$NIX_BUILD_TOP/run/" REDIS_SOCKET="$NIX_BUILD_TOP/run/redis.sock" fi export REDIS_SOCKET + REDIS_CONF="$NIX_BUILD_TOP/run/redis.conf" + export REDIS_CONF + + cat < "$REDIS_CONF" +unixsocket ${REDIS_SOCKET} +port ${redisTestPort} +protected-mode no +enable-debug-command yes +enable-module-command yes +EOF + echo 'starting redis' # Note about Darwin: unless the output is redirected, the parent process becomes launchd instead of bash. # This would leave the Redis process running in case of a test failure (the postCheckHook would not be executed), # hanging the Nix build forever. - @server@ --unixsocket "$REDIS_SOCKET" --port "$redisTestPort" > /dev/null 2>&1 & + @server@ "$REDIS_CONF" > /dev/null 2>&1 & REDIS_PID=$! echo 'waiting for redis to be ready' diff --git a/pkgs/development/interpreters/python/cpython/3.14/CVE-2025-4516.patch b/pkgs/development/interpreters/python/cpython/3.14/CVE-2025-4516.patch new file mode 100644 index 0000000000000..40cc8ef5266e2 --- /dev/null +++ b/pkgs/development/interpreters/python/cpython/3.14/CVE-2025-4516.patch @@ -0,0 +1,483 @@ +From 9f69a58623bd01349a18ba0c7a9cb1dad6a51e8e Mon Sep 17 00:00:00 2001 +From: Serhiy Storchaka +Date: Mon, 12 May 2025 20:42:23 +0300 +Subject: [PATCH] gh-133767: Fix use-after-free in the unicode-escape decoder + with an error handler (GH-129648) + +If the error handler is used, a new bytes object is created to set as +the object attribute of UnicodeDecodeError, and that bytes object then +replaces the original data. A pointer to the decoded data will became invalid +after destroying that temporary bytes object. So we need other way to return +the first invalid escape from _PyUnicode_DecodeUnicodeEscapeInternal(). + +_PyBytes_DecodeEscape() does not have such issue, because it does not +use the error handlers registry, but it should be changed for compatibility +with _PyUnicode_DecodeUnicodeEscapeInternal(). +--- + Include/internal/pycore_bytesobject.h | 5 +- + Include/internal/pycore_unicodeobject.h | 12 +++-- + Lib/test/test_codeccallbacks.py | 39 +++++++++++++- + Lib/test/test_codecs.py | 52 +++++++++++++++---- + ...-05-09-20-22-54.gh-issue-133767.kN2i3Q.rst | 2 + + Objects/bytesobject.c | 41 ++++++++------- + Objects/unicodeobject.c | 46 +++++++++------- + Parser/string_parser.c | 26 ++++++---- + 8 files changed, 160 insertions(+), 63 deletions(-) + create mode 100644 Misc/NEWS.d/next/Security/2025-05-09-20-22-54.gh-issue-133767.kN2i3Q.rst + +diff --git a/Include/internal/pycore_bytesobject.h b/Include/internal/pycore_bytesobject.h +index 300e7f4896a39e..8ea9b3ebb88454 100644 +--- a/Include/internal/pycore_bytesobject.h ++++ b/Include/internal/pycore_bytesobject.h +@@ -20,8 +20,9 @@ extern PyObject* _PyBytes_FromHex( + + // Helper for PyBytes_DecodeEscape that detects invalid escape chars. + // Export for test_peg_generator. +-PyAPI_FUNC(PyObject*) _PyBytes_DecodeEscape(const char *, Py_ssize_t, +- const char *, const char **); ++PyAPI_FUNC(PyObject*) _PyBytes_DecodeEscape2(const char *, Py_ssize_t, ++ const char *, ++ int *, const char **); + + + // Substring Search. +diff --git a/Include/internal/pycore_unicodeobject.h b/Include/internal/pycore_unicodeobject.h +index c85d53b89accdb..3791b913c17546 100644 +--- a/Include/internal/pycore_unicodeobject.h ++++ b/Include/internal/pycore_unicodeobject.h +@@ -139,14 +139,18 @@ extern PyObject* _PyUnicode_DecodeUnicodeEscapeStateful( + // Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape + // chars. + // Export for test_peg_generator. +-PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeInternal( ++PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeInternal2( + const char *string, /* Unicode-Escape encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed, /* bytes consumed */ +- const char **first_invalid_escape); /* on return, points to first +- invalid escaped char in +- string. */ ++ int *first_invalid_escape_char, /* on return, if not -1, contain the first ++ invalid escaped char (<= 0xff) or invalid ++ octal escape (> 0xff) in string. */ ++ const char **first_invalid_escape_ptr); /* on return, if not NULL, may ++ point to the first invalid escaped ++ char in string. ++ May be NULL if errors is not NULL. */ + + /* --- Raw-Unicode-Escape Codecs ---------------------------------------------- */ + +diff --git a/Lib/test/test_codeccallbacks.py b/Lib/test/test_codeccallbacks.py +index 86e5e5c1474674..a767f67a02cf56 100644 +--- a/Lib/test/test_codeccallbacks.py ++++ b/Lib/test/test_codeccallbacks.py +@@ -2,6 +2,7 @@ + import codecs + import html.entities + import itertools ++import re + import sys + import unicodedata + import unittest +@@ -1125,7 +1126,7 @@ def test_bug828737(self): + text = 'abcghi'*n + text.translate(charmap) + +- def test_mutatingdecodehandler(self): ++ def test_mutating_decode_handler(self): + baddata = [ + ("ascii", b"\xff"), + ("utf-7", b"++"), +@@ -1160,6 +1161,42 @@ def mutating(exc): + for (encoding, data) in baddata: + self.assertEqual(data.decode(encoding, "test.mutating"), "\u4242") + ++ def test_mutating_decode_handler_unicode_escape(self): ++ decode = codecs.unicode_escape_decode ++ def mutating(exc): ++ if isinstance(exc, UnicodeDecodeError): ++ r = data.get(exc.object[:exc.end]) ++ if r is not None: ++ exc.object = r[0] + exc.object[exc.end:] ++ return ('\u0404', r[1]) ++ raise AssertionError("don't know how to handle %r" % exc) ++ ++ codecs.register_error('test.mutating2', mutating) ++ data = { ++ br'\x0': (b'\\', 0), ++ br'\x3': (b'xxx\\', 3), ++ br'\x5': (b'x\\', 1), ++ } ++ def check(input, expected, msg): ++ with self.assertWarns(DeprecationWarning) as cm: ++ self.assertEqual(decode(input, 'test.mutating2'), (expected, len(input))) ++ self.assertIn(msg, str(cm.warning)) ++ ++ check(br'\x0n\z', '\u0404\n\\z', r'"\z" is an invalid escape sequence') ++ check(br'\x0n\501', '\u0404\n\u0141', r'"\501" is an invalid octal escape sequence') ++ check(br'\x0z', '\u0404\\z', r'"\z" is an invalid escape sequence') ++ ++ check(br'\x3n\zr', '\u0404\n\\zr', r'"\z" is an invalid escape sequence') ++ check(br'\x3zr', '\u0404\\zr', r'"\z" is an invalid escape sequence') ++ check(br'\x3z5', '\u0404\\z5', r'"\z" is an invalid escape sequence') ++ check(memoryview(br'\x3z5x')[:-1], '\u0404\\z5', r'"\z" is an invalid escape sequence') ++ check(memoryview(br'\x3z5xy')[:-2], '\u0404\\z5', r'"\z" is an invalid escape sequence') ++ ++ check(br'\x5n\z', '\u0404\n\\z', r'"\z" is an invalid escape sequence') ++ check(br'\x5n\501', '\u0404\n\u0141', r'"\501" is an invalid octal escape sequence') ++ check(br'\x5z', '\u0404\\z', r'"\z" is an invalid escape sequence') ++ check(memoryview(br'\x5zy')[:-1], '\u0404\\z', r'"\z" is an invalid escape sequence') ++ + # issue32583 + def test_crashing_decode_handler(self): + # better generating one more character to fill the extra space slot +diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py +index 94fcf98e75721f..d42270da15ee32 100644 +--- a/Lib/test/test_codecs.py ++++ b/Lib/test/test_codecs.py +@@ -1196,23 +1196,39 @@ def test_escape(self): + check(br"[\1010]", b"[A0]") + check(br"[\x41]", b"[A]") + check(br"[\x410]", b"[A0]") ++ ++ def test_warnings(self): ++ decode = codecs.escape_decode ++ check = coding_checker(self, decode) + for i in range(97, 123): + b = bytes([i]) + if b not in b'abfnrtvx': +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\%c" is an invalid escape sequence' % i): + check(b"\\" + b, b"\\" + b) +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\%c" is an invalid escape sequence' % (i-32)): + check(b"\\" + b.upper(), b"\\" + b.upper()) +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\8" is an invalid escape sequence'): + check(br"\8", b"\\8") + with self.assertWarns(DeprecationWarning): + check(br"\9", b"\\9") +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\\xfa" is an invalid escape sequence') as cm: + check(b"\\\xfa", b"\\\xfa") + for i in range(0o400, 0o1000): +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\%o" is an invalid octal escape sequence' % i): + check(rb'\%o' % i, bytes([i & 0o377])) + ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\z" is an invalid escape sequence'): ++ self.assertEqual(decode(br'\x\z', 'ignore'), (b'\\z', 4)) ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\501" is an invalid octal escape sequence'): ++ self.assertEqual(decode(br'\x\501', 'ignore'), (b'A', 6)) ++ + def test_errors(self): + decode = codecs.escape_decode + self.assertRaises(ValueError, decode, br"\x") +@@ -2661,24 +2677,40 @@ def test_escape_decode(self): + check(br"[\x410]", "[A0]") + check(br"\u20ac", "\u20ac") + check(br"\U0001d120", "\U0001d120") ++ ++ def test_decode_warnings(self): ++ decode = codecs.unicode_escape_decode ++ check = coding_checker(self, decode) + for i in range(97, 123): + b = bytes([i]) + if b not in b'abfnrtuvx': +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\%c" is an invalid escape sequence' % i): + check(b"\\" + b, "\\" + chr(i)) + if b.upper() not in b'UN': +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\%c" is an invalid escape sequence' % (i-32)): + check(b"\\" + b.upper(), "\\" + chr(i-32)) +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\8" is an invalid escape sequence'): + check(br"\8", "\\8") + with self.assertWarns(DeprecationWarning): + check(br"\9", "\\9") +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\\xfa" is an invalid escape sequence') as cm: + check(b"\\\xfa", "\\\xfa") + for i in range(0o400, 0o1000): +- with self.assertWarns(DeprecationWarning): ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\%o" is an invalid octal escape sequence' % i): + check(rb'\%o' % i, chr(i)) + ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\z" is an invalid escape sequence'): ++ self.assertEqual(decode(br'\x\z', 'ignore'), ('\\z', 4)) ++ with self.assertWarnsRegex(DeprecationWarning, ++ r'"\\501" is an invalid octal escape sequence'): ++ self.assertEqual(decode(br'\x\501', 'ignore'), ('\u0141', 6)) ++ + def test_decode_errors(self): + decode = codecs.unicode_escape_decode + for c, d in (b'x', 2), (b'u', 4), (b'U', 4): +diff --git a/Misc/NEWS.d/next/Security/2025-05-09-20-22-54.gh-issue-133767.kN2i3Q.rst b/Misc/NEWS.d/next/Security/2025-05-09-20-22-54.gh-issue-133767.kN2i3Q.rst +new file mode 100644 +index 00000000000000..39d2f1e1a892cf +--- /dev/null ++++ b/Misc/NEWS.d/next/Security/2025-05-09-20-22-54.gh-issue-133767.kN2i3Q.rst +@@ -0,0 +1,2 @@ ++Fix use-after-free in the "unicode-escape" decoder with a non-"strict" error ++handler. +diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c +index fc407ec6bf99d6..87ea1162e03513 100644 +--- a/Objects/bytesobject.c ++++ b/Objects/bytesobject.c +@@ -1075,10 +1075,11 @@ _PyBytes_FormatEx(const char *format, Py_ssize_t format_len, + } + + /* Unescape a backslash-escaped string. */ +-PyObject *_PyBytes_DecodeEscape(const char *s, ++PyObject *_PyBytes_DecodeEscape2(const char *s, + Py_ssize_t len, + const char *errors, +- const char **first_invalid_escape) ++ int *first_invalid_escape_char, ++ const char **first_invalid_escape_ptr) + { + int c; + char *p; +@@ -1092,7 +1093,8 @@ PyObject *_PyBytes_DecodeEscape(const char *s, + return NULL; + writer.overallocate = 1; + +- *first_invalid_escape = NULL; ++ *first_invalid_escape_char = -1; ++ *first_invalid_escape_ptr = NULL; + + end = s + len; + while (s < end) { +@@ -1130,9 +1132,10 @@ PyObject *_PyBytes_DecodeEscape(const char *s, + c = (c<<3) + *s++ - '0'; + } + if (c > 0377) { +- if (*first_invalid_escape == NULL) { +- *first_invalid_escape = s-3; /* Back up 3 chars, since we've +- already incremented s. */ ++ if (*first_invalid_escape_char == -1) { ++ *first_invalid_escape_char = c; ++ /* Back up 3 chars, since we've already incremented s. */ ++ *first_invalid_escape_ptr = s - 3; + } + } + *p++ = c; +@@ -1173,9 +1176,10 @@ PyObject *_PyBytes_DecodeEscape(const char *s, + break; + + default: +- if (*first_invalid_escape == NULL) { +- *first_invalid_escape = s-1; /* Back up one char, since we've +- already incremented s. */ ++ if (*first_invalid_escape_char == -1) { ++ *first_invalid_escape_char = (unsigned char)s[-1]; ++ /* Back up one char, since we've already incremented s. */ ++ *first_invalid_escape_ptr = s - 1; + } + *p++ = '\\'; + s--; +@@ -1195,18 +1199,19 @@ PyObject *PyBytes_DecodeEscape(const char *s, + Py_ssize_t Py_UNUSED(unicode), + const char *Py_UNUSED(recode_encoding)) + { +- const char* first_invalid_escape; +- PyObject *result = _PyBytes_DecodeEscape(s, len, errors, +- &first_invalid_escape); ++ int first_invalid_escape_char; ++ const char *first_invalid_escape_ptr; ++ PyObject *result = _PyBytes_DecodeEscape2(s, len, errors, ++ &first_invalid_escape_char, ++ &first_invalid_escape_ptr); + if (result == NULL) + return NULL; +- if (first_invalid_escape != NULL) { +- unsigned char c = *first_invalid_escape; +- if ('4' <= c && c <= '7') { ++ if (first_invalid_escape_char != -1) { ++ if (first_invalid_escape_char > 0xff) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, +- "b\"\\%.3s\" is an invalid octal escape sequence. " ++ "b\"\\%o\" is an invalid octal escape sequence. " + "Such sequences will not work in the future. ", +- first_invalid_escape) < 0) ++ first_invalid_escape_char) < 0) + { + Py_DECREF(result); + return NULL; +@@ -1216,7 +1221,7 @@ PyObject *PyBytes_DecodeEscape(const char *s, + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "b\"\\%c\" is an invalid escape sequence. " + "Such sequences will not work in the future. ", +- c) < 0) ++ first_invalid_escape_char) < 0) + { + Py_DECREF(result); + return NULL; +diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c +index f3f0c9646a652e..cd26494ad8f1d6 100644 +--- a/Objects/unicodeobject.c ++++ b/Objects/unicodeobject.c +@@ -6596,13 +6596,15 @@ _PyUnicode_GetNameCAPI(void) + /* --- Unicode Escape Codec ----------------------------------------------- */ + + PyObject * +-_PyUnicode_DecodeUnicodeEscapeInternal(const char *s, ++_PyUnicode_DecodeUnicodeEscapeInternal2(const char *s, + Py_ssize_t size, + const char *errors, + Py_ssize_t *consumed, +- const char **first_invalid_escape) ++ int *first_invalid_escape_char, ++ const char **first_invalid_escape_ptr) + { + const char *starts = s; ++ const char *initial_starts = starts; + _PyUnicodeWriter writer; + const char *end; + PyObject *errorHandler = NULL; +@@ -6610,7 +6612,8 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s, + _PyUnicode_Name_CAPI *ucnhash_capi; + + // so we can remember if we've seen an invalid escape char or not +- *first_invalid_escape = NULL; ++ *first_invalid_escape_char = -1; ++ *first_invalid_escape_ptr = NULL; + + if (size == 0) { + if (consumed) { +@@ -6698,9 +6701,12 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s, + } + } + if (ch > 0377) { +- if (*first_invalid_escape == NULL) { +- *first_invalid_escape = s-3; /* Back up 3 chars, since we've +- already incremented s. */ ++ if (*first_invalid_escape_char == -1) { ++ *first_invalid_escape_char = ch; ++ if (starts == initial_starts) { ++ /* Back up 3 chars, since we've already incremented s. */ ++ *first_invalid_escape_ptr = s - 3; ++ } + } + } + WRITE_CHAR(ch); +@@ -6795,9 +6801,12 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s, + goto error; + + default: +- if (*first_invalid_escape == NULL) { +- *first_invalid_escape = s-1; /* Back up one char, since we've +- already incremented s. */ ++ if (*first_invalid_escape_char == -1) { ++ *first_invalid_escape_char = c; ++ if (starts == initial_starts) { ++ /* Back up one char, since we've already incremented s. */ ++ *first_invalid_escape_ptr = s - 1; ++ } + } + WRITE_ASCII_CHAR('\\'); + WRITE_CHAR(c); +@@ -6842,19 +6851,20 @@ _PyUnicode_DecodeUnicodeEscapeStateful(const char *s, + const char *errors, + Py_ssize_t *consumed) + { +- const char *first_invalid_escape; +- PyObject *result = _PyUnicode_DecodeUnicodeEscapeInternal(s, size, errors, ++ int first_invalid_escape_char; ++ const char *first_invalid_escape_ptr; ++ PyObject *result = _PyUnicode_DecodeUnicodeEscapeInternal2(s, size, errors, + consumed, +- &first_invalid_escape); ++ &first_invalid_escape_char, ++ &first_invalid_escape_ptr); + if (result == NULL) + return NULL; +- if (first_invalid_escape != NULL) { +- unsigned char c = *first_invalid_escape; +- if ('4' <= c && c <= '7') { ++ if (first_invalid_escape_char != -1) { ++ if (first_invalid_escape_char > 0xff) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, +- "\"\\%.3s\" is an invalid octal escape sequence. " ++ "\"\\%o\" is an invalid octal escape sequence. " + "Such sequences will not work in the future. ", +- first_invalid_escape) < 0) ++ first_invalid_escape_char) < 0) + { + Py_DECREF(result); + return NULL; +@@ -6864,7 +6874,7 @@ _PyUnicode_DecodeUnicodeEscapeStateful(const char *s, + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "\"\\%c\" is an invalid escape sequence. " + "Such sequences will not work in the future. ", +- c) < 0) ++ first_invalid_escape_char) < 0) + { + Py_DECREF(result); + return NULL; +diff --git a/Parser/string_parser.c b/Parser/string_parser.c +index d3631b114c5a3c..ebe68989d1af58 100644 +--- a/Parser/string_parser.c ++++ b/Parser/string_parser.c +@@ -196,15 +196,18 @@ decode_unicode_with_escapes(Parser *parser, const char *s, size_t len, Token *t) + len = (size_t)(p - buf); + s = buf; + +- const char *first_invalid_escape; +- v = _PyUnicode_DecodeUnicodeEscapeInternal(s, (Py_ssize_t)len, NULL, NULL, &first_invalid_escape); ++ int first_invalid_escape_char; ++ const char *first_invalid_escape_ptr; ++ v = _PyUnicode_DecodeUnicodeEscapeInternal2(s, (Py_ssize_t)len, NULL, NULL, ++ &first_invalid_escape_char, ++ &first_invalid_escape_ptr); + + // HACK: later we can simply pass the line no, since we don't preserve the tokens + // when we are decoding the string but we preserve the line numbers. +- if (v != NULL && first_invalid_escape != NULL && t != NULL) { +- if (warn_invalid_escape_sequence(parser, s, first_invalid_escape, t) < 0) { +- /* We have not decref u before because first_invalid_escape points +- inside u. */ ++ if (v != NULL && first_invalid_escape_ptr != NULL && t != NULL) { ++ if (warn_invalid_escape_sequence(parser, s, first_invalid_escape_ptr, t) < 0) { ++ /* We have not decref u before because first_invalid_escape_ptr ++ points inside u. */ + Py_XDECREF(u); + Py_DECREF(v); + return NULL; +@@ -217,14 +220,17 @@ decode_unicode_with_escapes(Parser *parser, const char *s, size_t len, Token *t) + static PyObject * + decode_bytes_with_escapes(Parser *p, const char *s, Py_ssize_t len, Token *t) + { +- const char *first_invalid_escape; +- PyObject *result = _PyBytes_DecodeEscape(s, len, NULL, &first_invalid_escape); ++ int first_invalid_escape_char; ++ const char *first_invalid_escape_ptr; ++ PyObject *result = _PyBytes_DecodeEscape2(s, len, NULL, ++ &first_invalid_escape_char, ++ &first_invalid_escape_ptr); + if (result == NULL) { + return NULL; + } + +- if (first_invalid_escape != NULL) { +- if (warn_invalid_escape_sequence(p, s, first_invalid_escape, t) < 0) { ++ if (first_invalid_escape_ptr != NULL) { ++ if (warn_invalid_escape_sequence(p, s, first_invalid_escape_ptr, t) < 0) { + Py_DECREF(result); + return NULL; + } diff --git a/pkgs/development/interpreters/python/cpython/CVE-2025-0938.patch b/pkgs/development/interpreters/python/cpython/CVE-2025-0938.patch deleted file mode 100644 index 4bd6916a62971..0000000000000 --- a/pkgs/development/interpreters/python/cpython/CVE-2025-0938.patch +++ /dev/null @@ -1,200 +0,0 @@ -From 6204ab9f989be3841c8c47e1e2cfe6a658fe16d5 Mon Sep 17 00:00:00 2001 -From: Seth Michael Larson -Date: Tue, 28 Jan 2025 14:09:00 -0600 -Subject: [PATCH 1/4] gh-105704: Disallow square brackets ( and ) in domain - names for parsed URLs - ---- - Lib/test/test_urlparse.py | 14 +++++++++++++ - Lib/urllib/parse.py | 20 +++++++++++++++++-- - ...-01-28-14-08-03.gh-issue-105704.EnhHxu.rst | 4 ++++ - 3 files changed, 36 insertions(+), 2 deletions(-) - create mode 100644 Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst - -diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py -index 4516bdea6adb19..0f15a0998ff2ea 100644 ---- a/Lib/test/test_urlparse.py -+++ b/Lib/test/test_urlparse.py -@@ -1412,6 +1412,20 @@ def test_invalid_bracketed_hosts(self): - self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[0439:23af::2309::fae7:1234]/Path?Query') - self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[0439:23af:2309::fae7:1234:2342:438e:192.0.2.146]/Path?Query') - self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@]v6a.ip[/Path') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[v6a.ip]') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[v6a.ip].suffix') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[v6a.ip]/') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[v6a.ip].suffix/') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[v6a.ip]?') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[v6a.ip].suffix?') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[::1]') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[::1]/') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix/') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[::1]?') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix?') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://user@prefix.[v6a.ip]') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://user@[v6a.ip].suffix') - - def test_splitting_bracketed_hosts(self): - p1 = urllib.parse.urlsplit('scheme://user@[v6a.ip]/path?query') -diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py -index c412c729852272..9d51f4c6812b57 100644 ---- a/Lib/urllib/parse.py -+++ b/Lib/urllib/parse.py -@@ -439,6 +439,23 @@ def _checknetloc(netloc): - raise ValueError("netloc '" + netloc + "' contains invalid " + - "characters under NFKC normalization") - -+def _check_bracketed_netloc(netloc): -+ # Note that this function must mirror the splitting -+ # done in NetlocResultMixins._hostinfo(). -+ hostname_and_port = netloc.rpartition('@')[2] -+ before_bracket, have_open_br, bracketed = hostname_and_port.partition('[') -+ if have_open_br: -+ # No data is allowed before a bracket. -+ if before_bracket: -+ raise ValueError("Invalid IPv6 URL") -+ hostname, _, port = bracketed.partition(']') -+ # No data is allowed after the bracket but before the port delimiter. -+ if port and not port.startswith(":"): -+ raise ValueError("Invalid IPv6 URL") -+ else: -+ hostname, _, port = hostname_and_port.partition(':') -+ _check_bracketed_host(hostname) -+ - # Valid bracketed hosts are defined in - # https://www.rfc-editor.org/rfc/rfc3986#page-49 and https://url.spec.whatwg.org/ - def _check_bracketed_host(hostname): -@@ -505,8 +522,7 @@ def _urlsplit(url, scheme=None, allow_fragments=True): - (']' in netloc and '[' not in netloc)): - raise ValueError("Invalid IPv6 URL") - if '[' in netloc and ']' in netloc: -- bracketed_host = netloc.partition('[')[2].partition(']')[0] -- _check_bracketed_host(bracketed_host) -+ _check_bracketed_netloc(netloc) - if allow_fragments and '#' in url: - url, fragment = url.split('#', 1) - if '?' in url: -diff --git a/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst b/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst -new file mode 100644 -index 00000000000000..aaeac71678de87 ---- /dev/null -+++ b/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst -@@ -0,0 +1,4 @@ -+When using ``urllib.parse.urlsplit()`` and ``urlparse()`` host parsing would -+not reject domain names containing square brackets (``[`` and ``]``). Square -+brackets are only valid for IPv6 and IPvFuture hosts according to `RFC 3986 -+Section 3.2.2 `__. - -From 3ab35e8d890e2c5d4e6b0c0299f94775a3ded9ae Mon Sep 17 00:00:00 2001 -From: Seth Michael Larson -Date: Thu, 30 Jan 2025 09:50:14 -0600 -Subject: [PATCH 2/4] Use Sphinx references - -Co-authored-by: Peter Bierma ---- - .../Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst b/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst -index aaeac71678de87..fb8674f558db59 100644 ---- a/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst -+++ b/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst -@@ -1,4 +1,4 @@ --When using ``urllib.parse.urlsplit()`` and ``urlparse()`` host parsing would -+When using :func:`urllib.parse.urlsplit()` and :func:`urllib.parse.urlparse()` host parsing would - not reject domain names containing square brackets (``[`` and ``]``). Square - brackets are only valid for IPv6 and IPvFuture hosts according to `RFC 3986 - Section 3.2.2 `__. - -From ebf92bb4d323d41778e5de6df177b26f18ecf7f9 Mon Sep 17 00:00:00 2001 -From: Seth Michael Larson -Date: Thu, 30 Jan 2025 11:10:35 -0600 -Subject: [PATCH 3/4] Add mismatched bracket test cases, fix news format - ---- - Lib/test/test_urlparse.py | 10 ++++++++++ - .../2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst | 8 ++++---- - 2 files changed, 14 insertions(+), 4 deletions(-) - -diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py -index 0f15a0998ff2ea..f8ce61b2b49621 100644 ---- a/Lib/test/test_urlparse.py -+++ b/Lib/test/test_urlparse.py -@@ -1426,6 +1426,16 @@ def test_invalid_bracketed_hosts(self): - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix?') - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://user@prefix.[v6a.ip]') - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://user@[v6a.ip].suffix') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[v6a.ip') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://v6a.ip]') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://]v6a.ip[') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://]v6a.ip') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://v6a.ip[') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[v6a.ip') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://v6a.ip].suffix') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix]v6a.ip[suffix') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix]v6a.ip') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://v6a.ip[suffix') - - def test_splitting_bracketed_hosts(self): - p1 = urllib.parse.urlsplit('scheme://user@[v6a.ip]/path?query') -diff --git a/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst b/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst -index fb8674f558db59..bff1bc6b0d609c 100644 ---- a/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst -+++ b/Misc/NEWS.d/next/Security/2025-01-28-14-08-03.gh-issue-105704.EnhHxu.rst -@@ -1,4 +1,4 @@ --When using :func:`urllib.parse.urlsplit()` and :func:`urllib.parse.urlparse()` host parsing would --not reject domain names containing square brackets (``[`` and ``]``). Square --brackets are only valid for IPv6 and IPvFuture hosts according to `RFC 3986 --Section 3.2.2 `__. -+When using :func:`urllib.parse.urlsplit` and :func:`urllib.parse.urlparse` host -+parsing would not reject domain names containing square brackets (``[`` and -+``]``). Square brackets are only valid for IPv6 and IPvFuture hosts according to -+`RFC 3986 Section 3.2.2 `__. - -From 2817b2e29c8b28a24f9eb97abce1e1b60b1162fa Mon Sep 17 00:00:00 2001 -From: Seth Michael Larson -Date: Thu, 30 Jan 2025 13:01:19 -0600 -Subject: [PATCH 4/4] Add more test coverage for ports - ---- - Lib/test/test_urlparse.py | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py -index f8ce61b2b49621..b51cc006b73280 100644 ---- a/Lib/test/test_urlparse.py -+++ b/Lib/test/test_urlparse.py -@@ -1424,6 +1424,15 @@ def test_invalid_bracketed_hosts(self): - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix/') - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[::1]?') - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix?') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[::1]:a') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix:a') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[::1]:a1') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix:a1') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[::1]:1a') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix:1a') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[::1]:') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[::1].suffix:/') -+ self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://prefix.[::1]:?') - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://user@prefix.[v6a.ip]') - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://user@[v6a.ip].suffix') - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://[v6a.ip') -@@ -1438,14 +1447,16 @@ def test_invalid_bracketed_hosts(self): - self.assertRaises(ValueError, urllib.parse.urlsplit, 'scheme://v6a.ip[suffix') - - def test_splitting_bracketed_hosts(self): -- p1 = urllib.parse.urlsplit('scheme://user@[v6a.ip]/path?query') -+ p1 = urllib.parse.urlsplit('scheme://user@[v6a.ip]:1234/path?query') - self.assertEqual(p1.hostname, 'v6a.ip') - self.assertEqual(p1.username, 'user') - self.assertEqual(p1.path, '/path') -+ self.assertEqual(p1.port, 1234) - p2 = urllib.parse.urlsplit('scheme://user@[0439:23af:2309::fae7%test]/path?query') - self.assertEqual(p2.hostname, '0439:23af:2309::fae7%test') - self.assertEqual(p2.username, 'user') - self.assertEqual(p2.path, '/path') -+ self.assertIs(p2.port, None) - p3 = urllib.parse.urlsplit('scheme://user@[0439:23af:2309::fae7:1234:192.0.2.146%test]/path?query') - self.assertEqual(p3.hostname, '0439:23af:2309::fae7:1234:192.0.2.146%test') - self.assertEqual(p3.username, 'user') diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 727aa262ced5c..f3ffbe7e0cfe2 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -17,14 +17,14 @@ passthruFun = import ./passthrufun.nix args; sources = { - python312 = { + python313 = { sourceVersion = { major = "3"; - minor = "12"; - patch = "10"; + minor = "13"; + patch = "3"; suffix = ""; }; - hash = "sha256-B6tpdHRZXgbwZkdBfTx/qX3tB6/Bp+RFTFY5kZtG6uo="; + hash = "sha256-QPhovL3rgUmjFJWAu5v9QHszIc1I8L5jGvlVrJLA4EE="; }; }; @@ -67,26 +67,26 @@ inherit passthruFun; }; - python312 = callPackage ./cpython ( - { - self = __splicedPackages.python312; - inherit passthruFun; - } - // sources.python312 - ); - - python313 = callPackage ./cpython { - self = __splicedPackages.python313; + python312 = callPackage ./cpython { + self = __splicedPackages.python312; sourceVersion = { major = "3"; - minor = "13"; - patch = "3"; + minor = "12"; + patch = "10"; suffix = ""; }; - hash = "sha256-QPhovL3rgUmjFJWAu5v9QHszIc1I8L5jGvlVrJLA4EE="; + hash = "sha256-B6tpdHRZXgbwZkdBfTx/qX3tB6/Bp+RFTFY5kZtG6uo="; inherit passthruFun; }; + python313 = callPackage ./cpython ( + { + self = __splicedPackages.python313; + inherit passthruFun; + } + // sources.python313 + ); + python314 = callPackage ./cpython { self = __splicedPackages.python314; sourceVersion = { @@ -139,7 +139,7 @@ "libffi" ]; } - // sources.python312 + // sources.python313 )).overrideAttrs (old: { # TODO(@Artturin): Add this to the main cpython expr diff --git a/pkgs/development/python-modules/absl-py/default.nix b/pkgs/development/python-modules/absl-py/default.nix index 5c5898f1b1e10..ca12c857ca097 100644 --- a/pkgs/development/python-modules/absl-py/default.nix +++ b/pkgs/development/python-modules/absl-py/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "absl-py"; - version = "2.2.1"; + version = "2.2.2"; pyproject = true; src = fetchFromGitHub { owner = "abseil"; repo = "abseil-py"; tag = "v${version}"; - hash = "sha256-FCmilW9/gWdlV1QA+4INVa5cDafiAl9GwO/4YyU0ZY4="; + hash = "sha256-KsaFfdq6+Pc8k0gM1y+HJ1v6VrTAK7TBgh92BSFuc+Q="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/accelerate/default.nix b/pkgs/development/python-modules/accelerate/default.nix index 8bcebc59ca353..7c2b4d7bd1ab3 100644 --- a/pkgs/development/python-modules/accelerate/default.nix +++ b/pkgs/development/python-modules/accelerate/default.nix @@ -3,7 +3,6 @@ lib, buildPythonPackage, fetchFromGitHub, - fetchpatch, pythonAtLeast, # buildInputs @@ -34,24 +33,16 @@ buildPythonPackage rec { pname = "accelerate"; - version = "1.5.2"; + version = "1.7.0"; pyproject = true; src = fetchFromGitHub { owner = "huggingface"; repo = "accelerate"; tag = "v${version}"; - hash = "sha256-J4eDm/PcyKK3256l6CAWUj4AWTB6neTKgxbBmul0BPE="; + hash = "sha256-nZoa2Uwd8cHl0H4LM8swHjce7HktpGdcD+6ykfoQ90M="; }; - patches = [ - # Fix tests on darwin: https://github.com/huggingface/accelerate/pull/3464 - (fetchpatch { - url = "https://github.com/huggingface/accelerate/commit/8b31a2fe2c6d0246fff9885fb1f8456fb560abc7.patch"; - hash = "sha256-Ek9Ou4Y/H1jt3qanf2g3HowBoTsN/bn4yV9O3ogcXMo="; - }) - ]; - buildInputs = [ llvmPackages.openmp ]; build-system = [ setuptools ]; @@ -94,6 +85,9 @@ buildPythonPackage rec { "test_no_split_modules" "test_remote_code" "test_transformers_model" + "test_extract_model_keep_torch_compile" + "test_extract_model_remove_torch_compile" + "test_regions_are_compiled" # nondeterministic, tests GC behaviour by thresholding global ram usage "test_free_memory_dereferences_prepared_components" diff --git a/pkgs/development/python-modules/aioboto3/default.nix b/pkgs/development/python-modules/aioboto3/default.nix index e96167296eab1..810ec74151f49 100644 --- a/pkgs/development/python-modules/aioboto3/default.nix +++ b/pkgs/development/python-modules/aioboto3/default.nix @@ -8,25 +8,22 @@ dill, fetchFromGitHub, moto, - poetry-core, - poetry-dynamic-versioning, pytest-asyncio, pytestCheckHook, - pythonOlder, + setuptools, + setuptools-scm, }: buildPythonPackage rec { pname = "aioboto3"; - version = "13.4.0"; + version = "14.2.0"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "terrycain"; repo = "aioboto3"; tag = "v${version}"; - hash = "sha256-o3PynPW6nPvbBrsw+HU2fJheVRpCHCb0EnJdmseorsE="; + hash = "sha256-RzaMsJtGvC6IILgwj09kymw+Hv3gjyBf2PHBzYC9itE="; }; pythonRelaxDeps = [ @@ -34,8 +31,8 @@ buildPythonPackage rec { ]; build-system = [ - poetry-core - poetry-dynamic-versioning + setuptools + setuptools-scm ]; dependencies = [ @@ -58,6 +55,10 @@ buildPythonPackage rec { ++ moto.optional-dependencies.server ++ lib.flatten (builtins.attrValues optional-dependencies); + disabledTests = [ + "test_patches" + ]; + pythonImportsCheck = [ "aioboto3" ]; meta = { diff --git a/pkgs/development/python-modules/aiobotocore/default.nix b/pkgs/development/python-modules/aiobotocore/default.nix index 75cbc510ccf0f..b0d435e2efa0f 100644 --- a/pkgs/development/python-modules/aiobotocore/default.nix +++ b/pkgs/development/python-modules/aiobotocore/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - pythonOlder, aiohttp, aioitertools, botocore, @@ -24,16 +23,14 @@ buildPythonPackage rec { pname = "aiobotocore"; - version = "2.19.0"; + version = "2.22.0"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "aio-libs"; repo = "aiobotocore"; tag = version; - hash = "sha256-8wtWIkGja4zb2OoYALH9hTR6i90sIjIjYWTUulfYIYA="; + hash = "sha256-Zzwj0osXqWSCWsuxlpiqpptzjLhFwlqfXqiWMP7CgXg="; }; # Relax version constraints: aiobotocore works with newer botocore versions @@ -75,7 +72,6 @@ buildPythonPackage rec { # Test requires network access "tests/test_version.py" # Test not compatible with latest moto - "tests/boto_tests/unit/test_eventstream.py" "tests/python3.8/test_eventstreams.py" "tests/test_basic_s3.py" "tests/test_batch.py" @@ -94,7 +90,7 @@ buildPythonPackage rec { meta = { description = "Python client for amazon services"; homepage = "https://github.com/aio-libs/aiobotocore"; - changelog = "https://github.com/aio-libs/aiobotocore/releases/tag/${src.tag}"; + changelog = "https://github.com/aio-libs/aiobotocore/blob/${src.tag}/CHANGES.rst"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ teh ]; }; diff --git a/pkgs/development/python-modules/aiodns/default.nix b/pkgs/development/python-modules/aiodns/default.nix index 3e5f34ae5c7ad..acb227e901a7a 100644 --- a/pkgs/development/python-modules/aiodns/default.nix +++ b/pkgs/development/python-modules/aiodns/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "aiodns"; - version = "3.3.0"; + version = "3.4.0"; pyproject = true; src = fetchFromGitHub { owner = "saghul"; repo = "aiodns"; tag = "v${version}"; - hash = "sha256-soWGqBKg/Qkm8lE7gKRIKspbtuZq+iTAbDkcQnAV0jc="; + hash = "sha256-y3QuMj2y/V6orM+1+cbUCgj0UL8sXQVzLLYXLnBdlio="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/aioguardian/default.nix b/pkgs/development/python-modules/aioguardian/default.nix index bf082c4d66a0b..923b05321fd5e 100644 --- a/pkgs/development/python-modules/aioguardian/default.nix +++ b/pkgs/development/python-modules/aioguardian/default.nix @@ -37,6 +37,7 @@ buildPythonPackage rec { pythonRelaxDeps = [ "asyncio_dgram" + "frozenlist" "typing-extensions" ]; diff --git a/pkgs/development/python-modules/aiohasupervisor/default.nix b/pkgs/development/python-modules/aiohasupervisor/default.nix index d1025c881c867..53fb2a4e4c721 100644 --- a/pkgs/development/python-modules/aiohasupervisor/default.nix +++ b/pkgs/development/python-modules/aiohasupervisor/default.nix @@ -31,7 +31,8 @@ buildPythonPackage rec { postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail 'version = "0.0.0"' 'version = "${version}"' + --replace-fail 'version = "0.0.0"' 'version = "${version}"' \ + --replace-fail 'setuptools>=68.0,<79.1' setuptools ''; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix index ec2dc52ec18db..accf8af4f1f8a 100644 --- a/pkgs/development/python-modules/aiohttp/default.nix +++ b/pkgs/development/python-modules/aiohttp/default.nix @@ -45,14 +45,14 @@ buildPythonPackage rec { pname = "aiohttp"; - version = "3.11.15"; + version = "3.11.18"; pyproject = true; src = fetchFromGitHub { owner = "aio-libs"; repo = "aiohttp"; tag = "v${version}"; - hash = "sha256-cmPvhSnkocq87lJUtdQSs9QuJlgZB8p5m1pZs2bplh4="; + hash = "sha256-+vnrYdUz1Stti9XE99InAouKN5kfTSaOuEG9Anxb3gs="; }; patches = [ @@ -115,6 +115,8 @@ buildPythonPackage rec { "test_requote_redirect_url_default" # don't run benchmarks "test_import_time" + # racy + "test_uvloop_secure_https_proxy" ] # these tests fail with python310 but succeeds with 11+ ++ lib.optionals isPy310 [ diff --git a/pkgs/development/python-modules/ansible-runner/default.nix b/pkgs/development/python-modules/ansible-runner/default.nix index 9806d003ff431..a185fea3aa04a 100644 --- a/pkgs/development/python-modules/ansible-runner/default.nix +++ b/pkgs/development/python-modules/ansible-runner/default.nix @@ -30,19 +30,20 @@ buildPythonPackage rec { pname = "ansible-runner"; - version = "2.4.0"; + version = "2.4.1"; pyproject = true; src = fetchFromGitHub { owner = "ansible"; repo = "ansible-runner"; tag = version; - hash = "sha256-lmaYTdJ7NlaCJ5/CVds6Xzwbe45QXbtS3h8gi5xqvUc="; + hash = "sha256-Fyavc13TRHbslRVoBawyBgvUKhuIZsxBc7go66axE0Y="; }; postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail '"setuptools>=45, <=69.0.2", "setuptools-scm[toml]>=6.2, <=8.0.4"' '"setuptools", "setuptools-scm"' + --replace-fail "setuptools>=45, <=70.0.0" setuptools \ + --replace-fail "setuptools-scm[toml]>=6.2, <=8.1.0" setuptools-scm ''; build-system = [ diff --git a/pkgs/development/python-modules/apache-beam/default.nix b/pkgs/development/python-modules/apache-beam/default.nix index bcf7f40062c84..fc18c23e33ad0 100644 --- a/pkgs/development/python-modules/apache-beam/default.nix +++ b/pkgs/development/python-modules/apache-beam/default.nix @@ -90,6 +90,7 @@ buildPythonPackage rec { "pyarrow" "pydot" + "redis" ]; sourceRoot = "${src.name}/sdks/python"; diff --git a/pkgs/development/python-modules/appnope/default.nix b/pkgs/development/python-modules/appnope/default.nix index 19a9263a0697f..55a66aaf82717 100644 --- a/pkgs/development/python-modules/appnope/default.nix +++ b/pkgs/development/python-modules/appnope/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "appnope"; - version = "0.1.3"; + version = "0.1.4"; format = "setuptools"; src = fetchFromGitHub { owner = "minrk"; repo = "appnope"; rev = version; - hash = "sha256-JYzNOPD1ofOrtZK5TTKxbF1ausmczsltR7F1Vwss8Sw="; + hash = "sha256-We7sZKVbQFIMdZpS+VMdi0RH1O/qtFNrfJNg/98tO5A="; }; checkInputs = [ pytestCheckHook ]; diff --git a/pkgs/development/python-modules/argcomplete/default.nix b/pkgs/development/python-modules/argcomplete/default.nix index 7bcff5ff5d7b1..9bb66f64b07b5 100644 --- a/pkgs/development/python-modules/argcomplete/default.nix +++ b/pkgs/development/python-modules/argcomplete/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "argcomplete"; - version = "3.5.3"; + version = "3.6.2"; pyproject = true; disabled = pythonOlder "3.8"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "kislyuk"; repo = "argcomplete"; tag = "v${version}"; - hash = "sha256-rxo27SCOQxauMbC7GK3co/HZK8cRqbqHyk9ORQYHta4="; + hash = "sha256-2o0gQtkQP9cax/8SUd9+65TwAIAjBYnI+ufuzZtrVyo="; }; build-system = [ diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix index 01c25a4c2be60..2e82ff76ea46b 100644 --- a/pkgs/development/python-modules/astroid/default.nix +++ b/pkgs/development/python-modules/astroid/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "astroid"; - version = "3.3.8"; # Check whether the version is compatible with pylint + version = "3.3.10"; # Check whether the version is compatible with pylint pyproject = true; disabled = pythonOlder "3.8"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "PyCQA"; repo = "astroid"; tag = "v${version}"; - hash = "sha256-KKQuLomCHhVYMX1gE9WuqbXOfsf2izGlLE0Ml62gY3k="; + hash = "sha256-q4ZPXz2xaKJ39q6g1c9agktKSCfbRp+3INDfXg/wP8k="; }; nativeBuildInputs = [ setuptools ]; @@ -33,6 +33,11 @@ buildPythonPackage rec { pytestCheckHook ]; + disabledTestPaths = [ + # requires mypy + "tests/test_raw_building.py" + ]; + passthru.tests = { inherit pylint; }; diff --git a/pkgs/development/python-modules/aws-encryption-sdk/default.nix b/pkgs/development/python-modules/aws-encryption-sdk/default.nix index 82bfe7d180624..178aa2a7d50e4 100644 --- a/pkgs/development/python-modules/aws-encryption-sdk/default.nix +++ b/pkgs/development/python-modules/aws-encryption-sdk/default.nix @@ -44,6 +44,8 @@ buildPythonPackage rec { # Tests require networking "examples" "test/integration" + # requires yet to be packaged aws-cryptographic-material-providers + "test/mpl" ]; disabledTests = [ diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix index ad414dbdecae8..5d58a7171c121 100644 --- a/pkgs/development/python-modules/boto3/default.nix +++ b/pkgs/development/python-modules/boto3/default.nix @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "boto"; repo = "boto3"; tag = version; - hash = "sha256-89GUr0isFEKmBevWgPW5z4uU1zOTQ1kM8RX1mlsvdXw="; + hash = "sha256-OYD/PC/UO6jqBBlMwXJE+5kdIIX72C1Bpz4iswmQ/IA="; }; build-system = [ diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix index 41709defbe1c4..2fb38ef93148a 100644 --- a/pkgs/development/python-modules/botocore/default.nix +++ b/pkgs/development/python-modules/botocore/default.nix @@ -19,14 +19,14 @@ buildPythonPackage rec { pname = "botocore"; - version = "1.36.21"; # N.B: if you change this, change boto3 and awscli to a matching version + version = "1.38.9"; # N.B: if you change this, change boto3 and awscli to a matching version pyproject = true; src = fetchFromGitHub { owner = "boto"; repo = "botocore"; tag = version; - hash = "sha256-wk3KCRagEju4ywJfoBR8/4dH3xYgzGgaSHavDYCd5XY="; + hash = "sha256-rFLnSM7SwzXS08+Qde2FqU+sP5SIVAawP34iG8keAtM="; }; build-system = [ diff --git a/pkgs/development/python-modules/bottle/default.nix b/pkgs/development/python-modules/bottle/default.nix index 33239ef0b163a..207e2059903e3 100644 --- a/pkgs/development/python-modules/bottle/default.nix +++ b/pkgs/development/python-modules/bottle/default.nix @@ -9,12 +9,12 @@ buildPythonPackage rec { pname = "bottle"; - version = "0.13.2"; + version = "0.13.3"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-5TgDudKYx9ND0Aun0nsAWUFfBLn29AuNWLW/kUup00g="; + hash = "sha256-HCOuswqooT85xgwNpJRTDd1d49ojW8QxuBilDZmd5J8="; }; nativeBuildInputs = [ setuptools ]; diff --git a/pkgs/development/python-modules/brotli/default.nix b/pkgs/development/python-modules/brotli/default.nix index a3880604ea60d..081a9a203d983 100644 --- a/pkgs/development/python-modules/brotli/default.nix +++ b/pkgs/development/python-modules/brotli/default.nix @@ -3,12 +3,13 @@ buildPythonPackage, fetchFromGitHub, pytestCheckHook, + setuptools, }: buildPythonPackage rec { pname = "brotli"; version = "1.1.0"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "google"; @@ -19,6 +20,8 @@ buildPythonPackage rec { forceFetchGit = true; }; + build-system = [ setuptools ]; + # only returns information how to really build dontConfigure = true; diff --git a/pkgs/development/python-modules/calver/default.nix b/pkgs/development/python-modules/calver/default.nix index b05ee44195998..df45ea99e4819 100644 --- a/pkgs/development/python-modules/calver/default.nix +++ b/pkgs/development/python-modules/calver/default.nix @@ -10,14 +10,14 @@ let self = buildPythonPackage rec { pname = "calver"; - version = "2025.04.01"; + version = "2025.04.17"; pyproject = true; src = fetchFromGitHub { owner = "di"; repo = "calver"; - rev = version; - hash = "sha256-F7OnhwlwCw6cZeigmzyyIkttQMfxFoC2ynpxw0FGYMo="; + tag = version; + hash = "sha256-C0l/SThDhA1DnOeMJfuh3d8R606nzyQag+cg7QqvYWY="; }; postPatch = '' @@ -34,16 +34,12 @@ let pytestCheckHook ]; - preCheck = '' - unset SOURCE_DATE_EPOCH - ''; - pythonImportsCheck = [ "calver" ]; passthru.tests.calver = self.overridePythonAttrs { doCheck = true; }; meta = { - changelog = "https://github.com/di/calver/releases/tag/${src.rev}"; + changelog = "https://github.com/di/calver/releases/tag/${src.tag}"; description = "Setuptools extension for CalVer package versions"; homepage = "https://github.com/di/calver"; license = lib.licenses.asl20; diff --git a/pkgs/development/python-modules/cattrs/default.nix b/pkgs/development/python-modules/cattrs/default.nix index f0f94f4674f18..0eb5d3148be55 100644 --- a/pkgs/development/python-modules/cattrs/default.nix +++ b/pkgs/development/python-modules/cattrs/default.nix @@ -26,14 +26,14 @@ buildPythonPackage rec { pname = "cattrs"; - version = "24.1.2"; + version = "24.1.3"; pyproject = true; src = fetchFromGitHub { owner = "python-attrs"; repo = "cattrs"; tag = "v${version}"; - hash = "sha256-LSP8a/JduK0h9GytfbN7/CjFlnGGChaa3VbbCHQ3AFE="; + hash = "sha256-yrrb2Lvq7zMzeOLr8wwxVsKmPYEZxzDKR2mnCMNuHdE="; }; patches = [ diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix index a125dc86da394..415e9292d3c51 100644 --- a/pkgs/development/python-modules/certifi/default.nix +++ b/pkgs/development/python-modules/certifi/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "certifi"; - version = "2025.01.31"; + version = "2025.04.26"; pyproject = true; disabled = pythonOlder "3.6"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = pname; repo = "python-certifi"; rev = version; - hash = "sha256-LHoFI9+vrrrRzyhWNchQYp4AAiFcQwZHdeNzMjTJ8jk="; + hash = "sha256-OJ/XzywazpG0QpGTjTcLv1tDSqVdVP7xvp/tnyPPZzQ="; }; patches = [ diff --git a/pkgs/development/python-modules/charset-normalizer/default.nix b/pkgs/development/python-modules/charset-normalizer/default.nix index 7321c180eb070..284d86db8a049 100644 --- a/pkgs/development/python-modules/charset-normalizer/default.nix +++ b/pkgs/development/python-modules/charset-normalizer/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "charset-normalizer"; - version = "3.4.1"; + version = "3.4.2"; pyproject = true; disabled = pythonOlder "3.5"; @@ -22,14 +22,9 @@ buildPythonPackage rec { owner = "Ousret"; repo = "charset_normalizer"; tag = version; - hash = "sha256-z6XUXfNJ4+2Gq2O13MgF1D3j/bVBjgAG2wCWLaNgADE="; + hash = "sha256-PkFmNEMdp9duDCqMTKooOLAOCqHf3IjrGlr8jKYT2WE="; }; - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail "mypy>=1.4.1,<=1.14.0" mypy - ''; - build-system = [ mypy setuptools diff --git a/pkgs/development/python-modules/confluent-kafka/default.nix b/pkgs/development/python-modules/confluent-kafka/default.nix index c5ae7416f29db..8bd682ae2454c 100644 --- a/pkgs/development/python-modules/confluent-kafka/default.nix +++ b/pkgs/development/python-modules/confluent-kafka/default.nix @@ -1,11 +1,12 @@ { lib, + attrs, + authlib, avro, azure-identity, azure-keyvault-keys, boto3, buildPythonPackage, - cacert, cachetools, fastavro, fetchFromGitHub, @@ -13,7 +14,9 @@ google-api-core, google-cloud-kms, hvac, + httpx, jsonschema, + orjson, protobuf, pyflakes, pyrsistent, @@ -29,7 +32,7 @@ buildPythonPackage rec { pname = "confluent-kafka"; - version = "2.8.0"; + version = "2.10.0"; pyproject = true; disabled = pythonOlder "3.7"; @@ -38,7 +41,7 @@ buildPythonPackage rec { owner = "confluentinc"; repo = "confluent-kafka-python"; tag = "v${version}"; - hash = "sha256-EDEp260G/t7s17RlbT+Bcl7FZlVQFagNijDNw53DFpY="; + hash = "sha256-JJSGYGM/ukEABgzlHbw8xJr1HKVm/EW6EXEIJQBSCt8="; }; buildInputs = [ rdkafka ]; @@ -74,11 +77,17 @@ buildPythonPackage rec { pyyaml # TODO: tink ]; - schema-registry = [ requests ]; + schema-registry = [ + attrs + authlib + cachetools + httpx + ]; }; nativeCheckInputs = [ cachetools + orjson pyflakes pytestCheckHook requests-mock @@ -95,6 +104,10 @@ buildPythonPackage rec { "tests/schema_registry/test_avro_serdes.py" "tests/schema_registry/test_json_serdes.py" "tests/schema_registry/test_proto_serdes.py" + # missing tink dependency + "tests/schema_registry/test_config.py" + # crashes the test runner on shutdown + "tests/test_KafkaError.py" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/contourpy/default.nix b/pkgs/development/python-modules/contourpy/default.nix index e8eac0516419b..3215238120ff3 100644 --- a/pkgs/development/python-modules/contourpy/default.nix +++ b/pkgs/development/python-modules/contourpy/default.nix @@ -31,7 +31,7 @@ let contourpy = buildPythonPackage rec { pname = "contourpy"; - version = "1.3.1"; + version = "1.3.2"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -40,7 +40,7 @@ let owner = "contourpy"; repo = "contourpy"; tag = "v${version}"; - hash = "sha256-vZO9hHPHlfZhK/icJYE6nQPCPdXAYZFe1GF5X25MUcQ="; + hash = "sha256-mtD54KfCm1vNBjcGuAKqRpKF+FLy3WmTYo7FLoE01QY="; }; # prevent unnecessary references to the build python when cross compiling diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix index c358750961a4c..8a635b36e4521 100644 --- a/pkgs/development/python-modules/cryptography/default.nix +++ b/pkgs/development/python-modules/cryptography/default.nix @@ -11,7 +11,6 @@ fetchFromGitHub, isPyPy, libiconv, - libxcrypt, openssl, pkg-config, pretend, @@ -23,7 +22,7 @@ buildPythonPackage rec { pname = "cryptography"; - version = "44.0.2"; # Also update the hash in vectors.nix + version = "45.0.2"; # Also update the hash in vectors.nix pyproject = true; disabled = pythonOlder "3.7"; @@ -32,13 +31,13 @@ buildPythonPackage rec { owner = "pyca"; repo = "cryptography"; tag = version; - hash = "sha256-nXwW6v+U47/+CmjhREHcuQ7QQi/b26gagWBQ3F16DuQ="; + hash = "sha256-SjlzEyX30b3LbEH5NOhCJvds9KuguTTdF2A0kbIysA4="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit src; name = "${pname}-${version}"; - hash = "sha256-HbUsV+ABE89UvhCRZYXr+Q/zRDKUy+HgCVdQFHqaP4o="; + hash = "sha256-dKwNnWBzBM9QEcRbbvkNhFJnFxFakqZ/MS7rqE8/tNQ="; }; postPatch = '' @@ -57,8 +56,7 @@ buildPythonPackage rec { [ openssl ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv - ] - ++ lib.optionals (pythonOlder "3.9") [ libxcrypt ]; + ]; dependencies = lib.optionals (!isPyPy) [ cffi ]; diff --git a/pkgs/development/python-modules/cryptography/vectors.nix b/pkgs/development/python-modules/cryptography/vectors.nix index 0c9f40976766b..d10d417d3f5b7 100644 --- a/pkgs/development/python-modules/cryptography/vectors.nix +++ b/pkgs/development/python-modules/cryptography/vectors.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "cryptography_vectors"; inherit version; - hash = "sha256-qzLhVrbn6vbYxyejIkWWfczgSUhzAUgvyjjAxf3ITks="; + hash = "sha256-U+PmRHxCmYVM+Rlb3Bn3sEZg3II/0upEaDBcIsrsGac="; }; build-system = [ flit-core ]; diff --git a/pkgs/development/python-modules/curve25519-donna/default.nix b/pkgs/development/python-modules/curve25519-donna/default.nix deleted file mode 100644 index 8ff358be69058..0000000000000 --- a/pkgs/development/python-modules/curve25519-donna/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, -}: - -buildPythonPackage rec { - pname = "curve25519-donna"; - version = "1.3"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "1w0vkjyh4ki9n98lr2hg09f1lr1g3pz48kshrlic01ba6pasj60q"; - }; - - meta = with lib; { - description = "Python wrapper for the portable curve25519-donna implementation"; - homepage = "http://code.google.com/p/curve25519-donna/"; - license = licenses.bsd3; - maintainers = [ ]; - }; -} diff --git a/pkgs/development/python-modules/dacite/default.nix b/pkgs/development/python-modules/dacite/default.nix index 5041a06a8e162..24a9c33edfb56 100644 --- a/pkgs/development/python-modules/dacite/default.nix +++ b/pkgs/development/python-modules/dacite/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "dacite"; - version = "1.8.1"; + version = "1.9.2"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "konradhalas"; repo = pname; tag = "v${version}"; - hash = "sha256-lvObQ+jyBH2s4GOwyDXEAYmG7ZGQN9WDqL8ftNItPCQ="; + hash = "sha256-mAPqWvBpkTbtzHpwtCSDXMNkoc8/hbRH3OIEeK2yStU="; }; postPatch = '' diff --git a/pkgs/development/python-modules/datetime/default.nix b/pkgs/development/python-modules/datetime/default.nix index e6a0c45979471..3cedae446d841 100644 --- a/pkgs/development/python-modules/datetime/default.nix +++ b/pkgs/development/python-modules/datetime/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "datetime"; - version = "5.4"; + version = "5.5"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "zopefoundation"; repo = "datetime"; tag = version; - hash = "sha256-k4q9n3uikz+B9CUyqQTgl61OTKDWMsyhAt2gB1HWGRw="; + hash = "sha256-VgIEpa3WpxfIUpBjXMor/xEEu+sp7z/EsLYEvU0RzWk="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix index a4bcc20e30418..68dc5da1d7db3 100644 --- a/pkgs/development/python-modules/deepdiff/default.nix +++ b/pkgs/development/python-modules/deepdiff/default.nix @@ -5,7 +5,7 @@ stdenv, # build-system - setuptools, + flit-core, # dependencies orderly-set, @@ -27,18 +27,18 @@ buildPythonPackage rec { pname = "deepdiff"; - version = "8.4.1"; + version = "8.5.0"; pyproject = true; src = fetchFromGitHub { owner = "seperman"; repo = "deepdiff"; tag = version; - hash = "sha256-RXr+6DLzhnuow9JNqqnNmuehE89eOY4oYn4tw4VSI+A="; + hash = "sha256-JIxlWy2uVpI98BmpH2+EyOxfYBoO2G2S0D9krduVo08="; }; build-system = [ - setuptools + flit-core ]; dependencies = [ diff --git a/pkgs/development/python-modules/deltalake/default.nix b/pkgs/development/python-modules/deltalake/default.nix index 93b592d465d4e..58fa044f6b7d6 100644 --- a/pkgs/development/python-modules/deltalake/default.nix +++ b/pkgs/development/python-modules/deltalake/default.nix @@ -9,6 +9,7 @@ stdenv, libiconv, pkg-config, + polars, pytestCheckHook, pytest-benchmark, pytest-cov, @@ -19,17 +20,17 @@ buildPythonPackage rec { pname = "deltalake"; - version = "0.20.1"; + version = "0.25.5"; format = "pyproject"; src = fetchPypi { inherit pname version; - hash = "sha256-serMb6Rirmw+QLpET3NT2djBoFBW/TGu1/5qYjiYpKE="; + hash = "sha256-Fz5Lg/z/EPJkdK4RcWHD8r3V9EwwwgRjwktri1IOdlY="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit src; - hash = "sha256-WGnjVYws8ZZMv0MvBrohozxQuyOImktaLxuvAIiH+U0="; + hash = "sha256-6SGVKJu01MzZxJv29PZKea+Z2YwAnvzbdDlnA4R6Az0="; }; env.OPENSSL_NO_VENDOR = 1; @@ -61,6 +62,7 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook pandas + polars pytest-benchmark pytest-cov pytest-mock diff --git a/pkgs/development/python-modules/dill/default.nix b/pkgs/development/python-modules/dill/default.nix index ca2b5ae1742b4..146fac8afe1f1 100644 --- a/pkgs/development/python-modules/dill/default.nix +++ b/pkgs/development/python-modules/dill/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "dill"; - version = "0.3.9"; + version = "0.4.0"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "uqfoundation"; repo = pname; tag = version; - hash = "sha256-p+W0ppNMfSgplKsQjaTnTrMvQ5poF/E/xSzsiLf9h58="; + hash = "sha256-RIyWTeIkK5cS4Fh3TK48XLa/EU9Iwlvcml0CTs5+Uh8="; }; nativeBuildInputs = [ setuptools ]; diff --git a/pkgs/development/python-modules/django-tasks/default.nix b/pkgs/development/python-modules/django-tasks/default.nix index c7a71c48a3191..b7798dce23198 100644 --- a/pkgs/development/python-modules/django-tasks/default.nix +++ b/pkgs/development/python-modules/django-tasks/default.nix @@ -9,19 +9,22 @@ mysqlclient, psycopg, dj-database-url, - python, + django-rq, + fakeredis, + pytestCheckHook, + pytest-django, }: buildPythonPackage rec { pname = "django-tasks"; - version = "0.6.1"; + version = "0.7.0"; pyproject = true; src = fetchFromGitHub { owner = "RealOrangeOne"; repo = "django-tasks"; tag = version; - hash = "sha256-MLztM4jVQV2tHPcIExbPGX+hCHSTqaQJeTbQqaVA3V4="; + hash = "sha256-AWsqAvn11uklrFXtiV2a6fR3owZ02osEzrdHZgDKkOM="; }; build-system = [ @@ -47,15 +50,25 @@ buildPythonPackage rec { nativeCheckInputs = [ dj-database-url + django-rq + fakeredis + pytestCheckHook + pytest-django ]; - checkPhase = '' - runHook preCheck + disabledTests = [ + # AssertionError: Lists differ: [] != ['Starting worker for queues=default', ... + "test_verbose_logging" + # AssertionError: '' != 'Deleted 0 task result(s)' + "test_doesnt_prune_new_task" + # AssertionError: '' != 'Would delete 1 task result(s)' + "test_dry_run" + # AssertionError: '' != 'Deleted 1 task result(s)' + "test_prunes_tasks" + ]; + preCheck = '' export DJANGO_SETTINGS_MODULE="tests.settings" - ${python.interpreter} -m manage test --noinput - - runHook postCheck ''; meta = { diff --git a/pkgs/development/python-modules/einops/default.nix b/pkgs/development/python-modules/einops/default.nix index a24f75f1a8eee..f159fbd4f00f0 100644 --- a/pkgs/development/python-modules/einops/default.nix +++ b/pkgs/development/python-modules/einops/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - fetchpatch2, hatchling, jupyter, nbconvert, @@ -11,11 +10,12 @@ pillow, pytestCheckHook, pythonOlder, + torch, }: buildPythonPackage rec { pname = "einops"; - version = "0.8.0"; + version = "0.8.1"; pyproject = true; disabled = pythonOlder "3.7"; @@ -24,18 +24,9 @@ buildPythonPackage rec { owner = "arogozhnikov"; repo = pname; tag = "v${version}"; - hash = "sha256-6x9AttvSvgYrHaS5ESKOwyEnXxD2BitYTGtqqSKur+0="; + hash = "sha256-J9m5LMOleHf2UziUbOtwf+DFpu/wBDcAyHUor4kqrR8="; }; - patches = [ - # https://github.com/arogozhnikov/einops/pull/325 - (fetchpatch2 { - name = "numpy_2-compatibility.patch"; - url = "https://github.com/arogozhnikov/einops/commit/11680b457ce2216d9827330d0b794565946847d7.patch"; - hash = "sha256-OKWp319ClYarNrek7TdRHt+NKTOEfBdJaV0U/6vLeMc="; - }) - ]; - nativeBuildInputs = [ hatchling ]; nativeCheckInputs = [ @@ -45,6 +36,7 @@ buildPythonPackage rec { parameterized pillow pytestCheckHook + torch ]; env.EINOPS_TEST_BACKENDS = "numpy"; @@ -61,13 +53,16 @@ buildPythonPackage rec { "test_all_notebooks" "test_dl_notebook_with_all_backends" "test_backends_installed" + # depends on tensorflow, which is not available on Python 3.13 + "test_notebook_2_with_all_backends" ]; - disabledTestPaths = [ "tests/test_layers.py" ]; + disabledTestPaths = [ "einops/tests/test_layers.py" ]; __darwinAllowLocalNetworking = true; meta = with lib; { + changelog = "https://github.com/arogozhnikov/einops/releases/tag/${src.tag}"; description = "Flexible and powerful tensor operations for readable and reliable code"; homepage = "https://github.com/arogozhnikov/einops"; license = licenses.mit; diff --git a/pkgs/development/python-modules/elastic-transport/default.nix b/pkgs/development/python-modules/elastic-transport/default.nix index 31cf86df0a940..394d3cd16331a 100644 --- a/pkgs/development/python-modules/elastic-transport/default.nix +++ b/pkgs/development/python-modules/elastic-transport/default.nix @@ -9,6 +9,7 @@ opentelemetry-sdk, orjson, pytest-asyncio, + pytest-cov-stub, pytest-httpserver, pytestCheckHook, pythonOlder, @@ -21,7 +22,7 @@ buildPythonPackage rec { pname = "elastic-transport"; - version = "8.17.0"; + version = "8.17.1"; pyproject = true; disabled = pythonOlder "3.7"; @@ -30,17 +31,12 @@ buildPythonPackage rec { owner = "elastic"; repo = "elastic-transport-python"; tag = "v${version}"; - hash = "sha256-ZCzG7a/SWvUDWiIWwzVfj4JG/w7XUa25yKuuR53XCEQ="; + hash = "sha256-LWSvE88wEwMxRi6IZsMkIRP8UTRfImC9QZnuka1oiso="; }; - postPatch = '' - substituteInPlace setup.cfg \ - --replace " --cov-report=term-missing --cov=elastic_transport" "" - ''; - build-system = [ setuptools ]; - propagatedBuildInputs = [ + dependencies = [ urllib3 certifi ]; @@ -52,6 +48,7 @@ buildPythonPackage rec { opentelemetry-sdk orjson pytest-asyncio + pytest-cov-stub pytest-httpserver pytestCheckHook requests @@ -87,7 +84,7 @@ buildPythonPackage rec { meta = with lib; { description = "Transport classes and utilities shared among Python Elastic client libraries"; - homepage = "https://github.com/elasticsearch/elastic-transport-python"; + homepage = "https://github.com/elastic/elastic-transport-python"; changelog = "https://github.com/elastic/elastic-transport-python/releases/tag/${src.tag}"; license = licenses.asl20; maintainers = with maintainers; [ fab ]; diff --git a/pkgs/development/python-modules/elasticsearch-dsl/default.nix b/pkgs/development/python-modules/elasticsearch-dsl/default.nix index edaaa8f7dfe3b..e15fd9cb6e1ea 100644 --- a/pkgs/development/python-modules/elasticsearch-dsl/default.nix +++ b/pkgs/development/python-modules/elasticsearch-dsl/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "elasticsearch-dsl"; - version = "8.17.1"; + version = "8.18.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "elasticsearch_dsl"; inherit version; - hash = "sha256-2BcGmb/bT+f6s4VM2sMZotbd26opyep5k9LsIgVttaA="; + hash = "sha256-djRl26nq4Wat0QVn6STGVzCqEigZsIv+mgd+kbE7MNE="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix index e8d8c4d294584..f545d9135b442 100644 --- a/pkgs/development/python-modules/elasticsearch/default.nix +++ b/pkgs/development/python-modules/elasticsearch/default.nix @@ -7,25 +7,31 @@ hatchling, orjson, pyarrow, + python-dateutil, pythonOlder, requests, + typing-extensions, }: buildPythonPackage rec { pname = "elasticsearch"; - version = "8.17.2"; + version = "8.18.1"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-/38duK7v2HzrpO3OOqQHCZRYLmzwKdLme3TmbWNFCds="; + hash = "sha256-mYA18XqMH7p64msYPcp5fc+V24baan7LpW0xr8QPB8c="; }; build-system = [ hatchling ]; - dependencies = [ elastic-transport ]; + dependencies = [ + elastic-transport + python-dateutil + typing-extensions + ]; optional-dependencies = { requests = [ requests ]; diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix index 638d7c0a695a8..f1077552559ac 100644 --- a/pkgs/development/python-modules/eventlet/default.nix +++ b/pkgs/development/python-modules/eventlet/default.nix @@ -22,14 +22,14 @@ buildPythonPackage rec { pname = "eventlet"; - version = "0.38.2"; + version = "0.40.0"; pyproject = true; src = fetchFromGitHub { owner = "eventlet"; repo = "eventlet"; tag = version; - hash = "sha256-oQCHnW+t4VczEFvV7neLUQTCCwRigJsUGpTRkivdyjU="; + hash = "sha256-fzCN+idYQ97nuDVfYn6VYQFBaaMxmnjWzFrmn+Aj+u4="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/exceptiongroup/default.nix b/pkgs/development/python-modules/exceptiongroup/default.nix index 5094ede93be8a..e60b527cfd442 100644 --- a/pkgs/development/python-modules/exceptiongroup/default.nix +++ b/pkgs/development/python-modules/exceptiongroup/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "exceptiongroup"; - version = "1.2.2"; + version = "1.3.0"; pyproject = true; disabled = pythonOlder "3.7"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "agronholm"; repo = "exceptiongroup"; tag = version; - hash = "sha256-k88+9FpB/aBun73SnsN6GsBceSUekT8Ig1XBt3hO4ok="; + hash = "sha256-b3Z1NsYKp0CecUq8kaC/j3xR/ZZHDIw4MhUeadizz88="; }; nativeBuildInputs = [ flit-scm ]; diff --git a/pkgs/development/python-modules/faker/default.nix b/pkgs/development/python-modules/faker/default.nix index d2c3842b723f3..e02a83d91c09d 100644 --- a/pkgs/development/python-modules/faker/default.nix +++ b/pkgs/development/python-modules/faker/default.nix @@ -15,12 +15,12 @@ buildPythonPackage rec { pname = "faker"; - version = "37.1.0"; + version = "37.3.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-rZ3GajuEiIuDfKcp6FKZqWtY/a7wMj7QuqzpPJYUrwY="; + hash = "sha256-d7eeeiIo1XF1Ezrwu83SbcYj34HbOQ7lL1EE1GwBDy8="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/fakeredis/default.nix b/pkgs/development/python-modules/fakeredis/default.nix index f7b9345b4edfe..4ad025d29c9f2 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.26.2"; + version = "2.29.0"; pyproject = true; disabled = pythonOlder "3.9"; @@ -27,7 +27,7 @@ buildPythonPackage rec { owner = "dsoftwareinc"; repo = "fakeredis-py"; tag = "v${version}"; - hash = "sha256-jD0e04ltH1MjExfrPsR6LUn4X0/qoJZWzX9i2A58HHI="; + hash = "sha256-wBUsoPmTIE3VFvmMnW4B9Unw/V63dIvsBTYCloElamA="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/fastavro/default.nix b/pkgs/development/python-modules/fastavro/default.nix index 0493f6890fa20..c85a97a480b18 100644 --- a/pkgs/development/python-modules/fastavro/default.nix +++ b/pkgs/development/python-modules/fastavro/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "fastavro"; - version = "1.10.0"; + version = "1.11.1"; pyproject = true; disabled = pythonOlder "3.6"; @@ -27,7 +27,7 @@ buildPythonPackage rec { owner = pname; repo = pname; tag = version; - hash = "sha256-/YZFrEs7abm+oPn9yyLMV1X/G5VZ/s+ThpvzoQtYQu0="; + hash = "sha256-I8Te1Ae20UrE5qI2nwktU0Ubip7Jx4/NWteSKsSz7tg="; }; preBuild = '' diff --git a/pkgs/development/python-modules/fido2/default.nix b/pkgs/development/python-modules/fido2/default.nix index e72a8ae55fd84..9b08a708cfb11 100644 --- a/pkgs/development/python-modules/fido2/default.nix +++ b/pkgs/development/python-modules/fido2/default.nix @@ -23,6 +23,8 @@ buildPythonPackage rec { build-system = [ poetry-core ]; + pythonRelaxDeps = [ "cryptography" ]; + dependencies = [ cryptography ]; optional-dependencies = { diff --git a/pkgs/development/python-modules/flask-cors/default.nix b/pkgs/development/python-modules/flask-cors/default.nix index 658cc01ed9c96..e34dfee61402e 100644 --- a/pkgs/development/python-modules/flask-cors/default.nix +++ b/pkgs/development/python-modules/flask-cors/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "flask-cors"; - version = "5.0.1"; + version = "6.0.0"; pyproject = true; src = fetchFromGitHub { owner = "corydolphin"; repo = "flask-cors"; tag = version; - hash = "sha256-UVMZGdUpEKx5w85sSe8wSzjNYjsKPdbyBX7/QHJ3cyQ="; + hash = "sha256-J9OTWVS0GXxfSedfHeifaJ0LR8xFKksf0RGsKSc581E="; }; build-system = [ diff --git a/pkgs/development/python-modules/flask/default.nix b/pkgs/development/python-modules/flask/default.nix index ac0653a56c9be..e5b7372f09746 100644 --- a/pkgs/development/python-modules/flask/default.nix +++ b/pkgs/development/python-modules/flask/default.nix @@ -32,12 +32,12 @@ buildPythonPackage rec { pname = "flask"; - version = "3.1.0"; + version = "3.1.1"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-X4c8UYTIl8jZ0bBd8ePQGxSRDOaWB6EXvTJ3CYpYNqw="; + hash = "sha256-KEx7jy9Yy3N/DPHDD9fq8Mz83hlgmdJOzt4/wgBapZ4="; }; build-system = [ flit-core ]; diff --git a/pkgs/development/python-modules/frozenlist/default.nix b/pkgs/development/python-modules/frozenlist/default.nix index 870056dc96b0d..967df73bac5d3 100644 --- a/pkgs/development/python-modules/frozenlist/default.nix +++ b/pkgs/development/python-modules/frozenlist/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "frozenlist"; - version = "1.5.0"; + version = "1.6.0"; pyproject = true; disabled = pythonOlder "3.7"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "aio-libs"; repo = "frozenlist"; tag = "v${version}"; - hash = "sha256-yhoJc9DR3vL2E9srN3F4VksIor324H9dUarzzmoc4/A="; + hash = "sha256-x2o4eiSDxA7nvrifzvV38kjIGmOY8gaQrPNDhCupovg="; }; postPatch = '' diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix index e536d84a9bccd..807832730090b 100644 --- a/pkgs/development/python-modules/fsspec/default.nix +++ b/pkgs/development/python-modules/fsspec/default.nix @@ -38,14 +38,14 @@ buildPythonPackage rec { pname = "fsspec"; - version = "2025.3.1"; + version = "2025.3.2"; pyproject = true; src = fetchFromGitHub { owner = "fsspec"; repo = "filesystem_spec"; tag = version; - hash = "sha256-85/IOxR77ozlVCVtZZ8hVmmIBFpSBn6v7zkv+vT445k="; + hash = "sha256-FsgDILnnr+WApoTv/y1zVFSeBNysvkizdKtMeRegbfI="; }; build-system = [ diff --git a/pkgs/development/python-modules/gcsfs/default.nix b/pkgs/development/python-modules/gcsfs/default.nix index 6599e5b9e02cb..681fb725d2739 100644 --- a/pkgs/development/python-modules/gcsfs/default.nix +++ b/pkgs/development/python-modules/gcsfs/default.nix @@ -20,7 +20,7 @@ buildPythonPackage rec { pname = "gcsfs"; - version = "2025.3.1"; + version = "2025.3.2"; pyproject = true; disabled = pythonOlder "3.9"; @@ -29,7 +29,7 @@ buildPythonPackage rec { owner = "fsspec"; repo = "gcsfs"; tag = version; - hash = "sha256-mlEo83Q4Y7i8Za7q+oE0OILWyH4vW49rkG8ijyLehAY="; + hash = "sha256-aXBlj9ej3Ya7h4x/akl/iX6dDS/SgkkEsOQ2E9KmCDU="; }; build-system = [ diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix index b9d9ad296f29e..5c0c72b16c3ce 100644 --- a/pkgs/development/python-modules/geopandas/default.nix +++ b/pkgs/development/python-modules/geopandas/default.nix @@ -3,6 +3,7 @@ stdenv, buildPythonPackage, fetchFromGitHub, + fetchpatch, pytestCheckHook, pythonOlder, setuptools, @@ -40,9 +41,18 @@ buildPythonPackage rec { hash = "sha256-SZizjwkx8dsnaobDYpeQm9jeXZ4PlzYyjIScnQrH63Q="; }; + patches = [ + (fetchpatch { + # Remove geom_almost_equals, because it broke with shapely 2.1.0 and is not being updated + url = "https://github.com/geopandas/geopandas/commit/0e1f871a02e9612206dcadd6817284131026f61c.patch"; + excludes = [ "CHANGELOG.md" ]; + hash = "sha256-n9AmmbjjNwV66lxDQV2hfkVVfxRgMfEGfHZT6bql684="; + }) + ]; + build-system = [ setuptools ]; - propagatedBuildInputs = [ + dependencies = [ packaging pandas pyogrio diff --git a/pkgs/development/python-modules/google-api-python-client/default.nix b/pkgs/development/python-modules/google-api-python-client/default.nix index a55ef23f27ec3..35a3b4b54d75d 100644 --- a/pkgs/development/python-modules/google-api-python-client/default.nix +++ b/pkgs/development/python-modules/google-api-python-client/default.nix @@ -1,27 +1,25 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, google-auth, google-auth-httplib2, google-api-core, httplib2, uritemplate, setuptools, - pythonOlder, }: buildPythonPackage rec { pname = "google-api-python-client"; - version = "2.166.0"; + version = "2.169.0"; pyproject = true; - disabled = pythonOlder "3.7"; - - src = fetchPypi { - pname = "google_api_python_client"; - inherit version; - hash = "sha256-uM+EO9nXNsE0rvds8dx6R8koOi7yQme5cge53UOzDvc="; + src = fetchFromGitHub { + owner = "googleapis"; + repo = "google-api-python-client"; + tag = "v${version}"; + hash = "sha256-XJwZ/gWL2pO9P+HuN6BtVbacNjwbZV2jW6FVLgNsj/0="; }; build-system = [ setuptools ]; @@ -34,12 +32,9 @@ buildPythonPackage rec { uritemplate ]; - # No tests included in archive - doCheck = false; - pythonImportsCheck = [ "googleapiclient" ]; - meta = with lib; { + meta = { description = "Official Python client library for Google's discovery based APIs"; longDescription = '' These client libraries are officially supported by Google. However, the @@ -49,7 +44,7 @@ buildPythonPackage rec { ''; homepage = "https://github.com/google/google-api-python-client"; changelog = "https://github.com/googleapis/google-api-python-client/releases/tag/v${version}"; - license = licenses.asl20; - maintainers = [ ]; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.sarahec ]; }; } diff --git a/pkgs/development/python-modules/google-auth-httplib2/default.nix b/pkgs/development/python-modules/google-auth-httplib2/default.nix index ef1ad2a2fa901..10df29e76d5cb 100644 --- a/pkgs/development/python-modules/google-auth-httplib2/default.nix +++ b/pkgs/development/python-modules/google-auth-httplib2/default.nix @@ -1,29 +1,31 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, + setuptools, flask, google-auth, httplib2, mock, pytest-localserver, pytestCheckHook, - pythonOlder, }: buildPythonPackage rec { pname = "google-auth-httplib2"; version = "0.2.0"; - format = "setuptools"; + pyproject = true; - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-OKp7rfSPl08euYYXlOnAyyoFEaTsBnmx+IbRCPVkDgU="; + src = fetchFromGitHub { + owner = "googleapis"; + repo = "google-auth-library-python-httplib2"; + tag = "v${version}"; + sha256 = "sha256-qY00u1srwAw68VXewZDOsWZrtHpi5UoRZfesSY7mTk8="; }; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ google-auth httplib2 ]; @@ -37,11 +39,11 @@ buildPythonPackage rec { pytest-localserver ]; - meta = with lib; { + meta = { description = "Google Authentication Library: httplib2 transport"; homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python-httplib2"; changelog = "https://github.com/googleapis/google-auth-library-python-httplib2/blob/v${version}/CHANGELOG.md"; - license = licenses.asl20; - maintainers = [ ]; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.sarahec ]; }; } diff --git a/pkgs/development/python-modules/google-auth-oauthlib/default.nix b/pkgs/development/python-modules/google-auth-oauthlib/default.nix index e70ffa46a06d7..9149f83e14cbf 100644 --- a/pkgs/development/python-modules/google-auth-oauthlib/default.nix +++ b/pkgs/development/python-modules/google-auth-oauthlib/default.nix @@ -2,7 +2,7 @@ lib, stdenv, buildPythonPackage, - fetchPypi, + fetchFromGitHub, setuptools, google-auth, requests-oauthlib, @@ -13,13 +13,14 @@ buildPythonPackage rec { pname = "google-auth-oauthlib"; - version = "1.2.1"; + version = "1.2.2"; pyproject = true; - src = fetchPypi { - pname = "google_auth_oauthlib"; - inherit version; - hash = "sha256-r9DK0JKi6qU82OgphVfW3hA0xstKdAUAtTV7ZIr5cmM="; + src = fetchFromGitHub { + owner = "googleapis"; + repo = "google-auth-library-python-oauthlib"; + rev = "v${version}"; + sha256 = "sha256-nkXS1vNsq7k30EmNHclRblsmGTMYuIAaHuaVDORqRmc="; }; build-system = [ setuptools ]; @@ -57,7 +58,10 @@ buildPythonPackage rec { homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"; changelog = "https://github.com/googleapis/google-auth-library-python-oauthlib/blob/v${version}/CHANGELOG.md"; license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ terlar ]; + maintainers = with lib.maintainers; [ + sarahec + terlar + ]; mainProgram = "google-oauthlib-tool"; }; } diff --git a/pkgs/development/python-modules/google-auth/default.nix b/pkgs/development/python-modules/google-auth/default.nix index 33b582c6cfd46..f2e481d827145 100644 --- a/pkgs/development/python-modules/google-auth/default.nix +++ b/pkgs/development/python-modules/google-auth/default.nix @@ -1,12 +1,11 @@ { lib, - stdenv, + fetchFromGitHub, aiohttp, aioresponses, buildPythonPackage, cachetools, cryptography, - fetchPypi, flask, freezegun, grpcio, @@ -17,7 +16,6 @@ pytest-asyncio, pytest-localserver, pytestCheckHook, - pythonOlder, pyu2f, requests, responses, @@ -27,15 +25,14 @@ buildPythonPackage rec { pname = "google-auth"; - version = "2.38.0"; + version = "2.40.2"; pyproject = true; - disabled = pythonOlder "3.7"; - - src = fetchPypi { - pname = "google_auth"; - inherit version; - hash = "sha256-goURNgfTuAo/FUO3WWJEe6ign+hXg0MqeE/e72rAlMQ="; + src = fetchFromGitHub { + owner = "googleapis"; + repo = "google-auth-library-python"; + tag = "v${version}"; + hash = "sha256-jO6brNdTH8BitLKKP/nwrlUo5hfQnThT/bPbzefvRbM="; }; build-system = [ setuptools ]; @@ -79,6 +76,13 @@ buildPythonPackage rec { responses ] ++ lib.flatten (lib.attrValues optional-dependencies); + disabledTestPaths = [ + "samples/" + "system_tests/" + # Requires a running aiohttp event loop + "tests_async/" + ]; + pythonImportsCheck = [ "google.auth" "google.oauth2" @@ -91,7 +95,7 @@ buildPythonPackage rec { __darwinAllowLocalNetworking = true; - meta = with lib; { + meta = { description = "Google Auth Python Library"; longDescription = '' This library simplifies using Google's various server-to-server @@ -99,7 +103,7 @@ buildPythonPackage rec { ''; homepage = "https://github.com/googleapis/google-auth-library-python"; changelog = "https://github.com/googleapis/google-auth-library-python/blob/v${version}/CHANGELOG.md"; - license = licenses.asl20; - maintainers = [ ]; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.sarahec ]; }; } diff --git a/pkgs/development/python-modules/google-cloud-asset/default.nix b/pkgs/development/python-modules/google-cloud-asset/default.nix index b2f695a758545..da6ee031ae122 100644 --- a/pkgs/development/python-modules/google-cloud-asset/default.nix +++ b/pkgs/development/python-modules/google-cloud-asset/default.nix @@ -1,7 +1,7 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, google-api-core, google-cloud-access-context-manager, google-cloud-org-policy, @@ -14,8 +14,8 @@ protobuf, pytest-asyncio, pytestCheckHook, - pythonOlder, setuptools, + nix-update-script, }: buildPythonPackage rec { @@ -23,14 +23,15 @@ buildPythonPackage rec { version = "3.30.1"; pyproject = true; - disabled = pythonOlder "3.7"; - - src = fetchPypi { - pname = "google_cloud_asset"; - inherit version; - hash = "sha256-oPAkm/y8RO9/iYC2IUJN58/ilYjS2skMtYzMyBDQU8w="; + src = fetchFromGitHub { + owner = "googleapis"; + repo = "google-cloud-python"; + tag = "google-cloud-asset-v${version}"; + sha256 = "sha256-4Ifg9igzsVR8pWH/lcrGwCnByqYQjPKChNPJGmmQbKI="; }; + sourceRoot = "${src.name}/packages/google-cloud-asset"; + build-system = [ setuptools ]; dependencies = [ @@ -64,11 +65,18 @@ buildPythonPackage rec { "google.cloud.asset_v1p5beta1" ]; - meta = with lib; { + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "google-cloud-asset-v([0-9.]+)" + ]; + }; + + meta = { description = "Python Client for Google Cloud Asset API"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-asset"; changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-asset-v${version}/packages/google-cloud-asset/CHANGELOG.md"; - license = licenses.asl20; - maintainers = [ ]; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.sarahec ]; }; } diff --git a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix index c1a0856f772e5..c38fb7cbff7ff 100644 --- a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix +++ b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix @@ -1,32 +1,33 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, google-api-core, grpc-google-iam-v1, libcst, mock, + nix-update-script, proto-plus, protobuf, pytest-asyncio, pytestCheckHook, - pythonOlder, setuptools, }: buildPythonPackage rec { pname = "google-cloud-datacatalog"; - version = "3.26.1"; + version = "3.27.1"; pyproject = true; - disabled = pythonOlder "3.7"; - - src = fetchPypi { - pname = "google_cloud_datacatalog"; - inherit version; - hash = "sha256-qKCBos0KyFEZBHSNLmsU3CR3nmXiFht1zH4QdINlokg="; + src = fetchFromGitHub { + owner = "googleapis"; + repo = "google-cloud-python"; + tag = "google-cloud-datacatalog-v${version}"; + hash = "sha256-4Ifg9igzsVR8pWH/lcrGwCnByqYQjPKChNPJGmmQbKI="; }; + sourceRoot = "${src.name}/packages/google-cloud-datacatalog"; + build-system = [ setuptools ]; dependencies = [ @@ -45,11 +46,18 @@ buildPythonPackage rec { pythonImportsCheck = [ "google.cloud.datacatalog" ]; - meta = with lib; { + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "google-cloud-datacatalog-v([0-9.]+)" + ]; + }; + + meta = { description = "Google Cloud Data Catalog API API client library"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-datacatalog"; changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-datacatalog-v${version}/packages/google-cloud-datacatalog/CHANGELOG.md"; - license = licenses.asl20; - maintainers = [ ]; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.sarahec ]; }; } diff --git a/pkgs/development/python-modules/googleapis-common-protos/default.nix b/pkgs/development/python-modules/googleapis-common-protos/default.nix index b65055466eec3..5195d3472c5f3 100644 --- a/pkgs/development/python-modules/googleapis-common-protos/default.nix +++ b/pkgs/development/python-modules/googleapis-common-protos/default.nix @@ -1,26 +1,27 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, grpc, protobuf, - pythonOlder, setuptools, + nix-update-script, }: buildPythonPackage rec { pname = "googleapis-common-protos"; - version = "1.69.2"; + version = "1.70.0"; pyproject = true; - disabled = pythonOlder "3.7"; - - src = fetchPypi { - pname = "googleapis_common_protos"; - inherit version; - hash = "sha256-PhuQSiejPIIbS3Sf0x0zTAycMOYRMCPUleSJeaPcnF8="; + src = fetchFromGitHub { + owner = "googleapis"; + repo = "google-cloud-python"; + rev = "googleapis-common-protos-v${version}"; + hash = "sha256-E1LISOLQcXqUMTTPLR+lwkR6gF1fuGGB44j38cIK/Z4="; }; + sourceRoot = "${src.name}/packages/googleapis-common-protos"; + build-system = [ setuptools ]; dependencies = [ @@ -28,6 +29,13 @@ buildPythonPackage rec { protobuf ]; + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "googleapis-common-protos-v([0-9.]+)" + ]; + }; + # does not contain tests doCheck = false; @@ -39,11 +47,11 @@ buildPythonPackage rec { "google.type" ]; - meta = with lib; { + meta = { description = "Common protobufs used in Google APIs"; homepage = "https://github.com/googleapis/python-api-common-protos"; changelog = "https://github.com/googleapis/python-api-common-protos/releases/tag/v${version}"; - license = licenses.asl20; - maintainers = [ ]; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.sarahec ]; }; } diff --git a/pkgs/development/python-modules/grandalf/default.nix b/pkgs/development/python-modules/grandalf/default.nix index c447d061e4a25..154fec79d2e52 100644 --- a/pkgs/development/python-modules/grandalf/default.nix +++ b/pkgs/development/python-modules/grandalf/default.nix @@ -3,7 +3,6 @@ buildPythonPackage, fetchFromGitHub, pyparsing, - future, pytestCheckHook, pythonOlder, }: @@ -24,7 +23,6 @@ buildPythonPackage rec { propagatedBuildInputs = [ pyparsing - future ]; nativeCheckInputs = [ pytestCheckHook ]; diff --git a/pkgs/development/python-modules/granian/default.nix b/pkgs/development/python-modules/granian/default.nix index 58e6159705d9b..739d4cbab3f2f 100644 --- a/pkgs/development/python-modules/granian/default.nix +++ b/pkgs/development/python-modules/granian/default.nix @@ -19,19 +19,19 @@ buildPythonPackage rec { pname = "granian"; - version = "2.2.5"; + version = "2.3.1"; pyproject = true; src = fetchFromGitHub { owner = "emmett-framework"; repo = "granian"; tag = "v${version}"; - hash = "sha256-fToH8sKh0M75D9YuyqkMEqY+cQio1NUmYdk/TEGy3fk="; + hash = "sha256-LDO5lyEk9ZJOfccVNYU6mIGJV952Z7NgMweQWclxQ9o="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit pname version src; - hash = "sha256-ThH4sk3yLvR9bklosUhCbklkcbpLW/5I1ukBNxUyqr8="; + hash = "sha256-NYOORW3OQXSqmDMsFWjNl6UmN1RO/hAz+nuLfm/y6Uk="; }; nativeBuildInputs = with rustPlatform; [ diff --git a/pkgs/development/python-modules/greenlet/default.nix b/pkgs/development/python-modules/greenlet/default.nix index fafa97082a23e..aecb962449914 100644 --- a/pkgs/development/python-modules/greenlet/default.nix +++ b/pkgs/development/python-modules/greenlet/default.nix @@ -16,12 +16,12 @@ let greenlet = buildPythonPackage rec { pname = "greenlet"; - version = "3.2.1"; + version = "3.2.2"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-n03UtJRrFLs78Dj4Hh0uU1t9lPGypZ/boSk82cGgpNc="; + hash = "sha256-rQU9NEIaLeu6Rao8w5rPRUrLzQJbP8Gp+KDe4jer1IU="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/httpie/default.nix b/pkgs/development/python-modules/httpie/default.nix index c91cf8d08ce99..d06260549d98f 100644 --- a/pkgs/development/python-modules/httpie/default.nix +++ b/pkgs/development/python-modules/httpie/default.nix @@ -99,10 +99,13 @@ buildPythonPackage rec { # Test is flaky "test_stdin_read_warning" # httpbin compatibility issues - "test_compress_form" "test_binary_suppresses_when_terminal" "test_binary_suppresses_when_not_terminal_but_pretty" "test_binary_included_and_correct_when_suitable" + # charset-normalizer compat issue + # https://github.com/httpie/cli/issues/1628 + "test_terminal_output_response_charset_detection" + "test_terminal_output_request_charset_detection" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # Test is flaky diff --git a/pkgs/development/python-modules/humanize/default.nix b/pkgs/development/python-modules/humanize/default.nix index d9e166c9b2f92..f5d98902e2e39 100644 --- a/pkgs/development/python-modules/humanize/default.nix +++ b/pkgs/development/python-modules/humanize/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "humanize"; - version = "4.12.2"; + version = "4.12.3"; format = "pyproject"; disabled = pythonOlder "3.9"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "python-humanize"; repo = "humanize"; tag = version; - hash = "sha256-MGWjh7C9JXTwH+eLyrjU0pjcZ2+oH925eiqHgBS8198="; + hash = "sha256-VsB59tS2KRZ0JKd1FzA+RTEzpkUyj9RhhSopseHg+m8="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix index 6c97e9b54b549..efaa9f6165376 100644 --- a/pkgs/development/python-modules/hypothesis/default.nix +++ b/pkgs/development/python-modules/hypothesis/default.nix @@ -24,7 +24,7 @@ buildPythonPackage rec { pname = "hypothesis"; - version = "6.130.12"; + version = "6.131.17"; pyproject = true; disabled = pythonOlder "3.9"; @@ -33,7 +33,7 @@ buildPythonPackage rec { owner = "HypothesisWorks"; repo = "hypothesis"; rev = "hypothesis-python-${version}"; - hash = "sha256-6p7OCjeZKZJ+3MDfdi+9XffET95pXGC6nzhTiMiEVQA="; + hash = "sha256-bNaDC2n0VaI7L4/FdD8eQ4cqn5ewquy89wV/pQn9uo0="; }; # I tried to package sphinx-selective-exclude, but it throws diff --git a/pkgs/development/python-modules/ijson/default.nix b/pkgs/development/python-modules/ijson/default.nix index c23fc8ad870f1..b218535ed4332 100644 --- a/pkgs/development/python-modules/ijson/default.nix +++ b/pkgs/development/python-modules/ijson/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "ijson"; - version = "3.3.0"; + version = "3.4.0"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-fxcua6G+4NTI+OvWOVd7/kKd7g8/lndaBnuLrkSS2KA="; + hash = "sha256-X3TcutnVksQo08o5V/cRWkJonufulBRYhgkAI2rpuxM="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix index 3e1cc903fd565..2a783ab995e71 100644 --- a/pkgs/development/python-modules/importlib-metadata/default.nix +++ b/pkgs/development/python-modules/importlib-metadata/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "importlib-metadata"; - version = "8.6.1"; + version = "8.7.0"; pyproject = true; disabled = pythonOlder "3.7"; @@ -23,7 +23,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "importlib_metadata"; inherit version; - hash = "sha256-MQtB11VEXXRWn5k8z8IoOCldn+AFQlCU+tlT1/FchYA="; + hash = "sha256-0TuBrSI7iQqhbFRx8qwwVs92xfEPgtb5KS8LQV84kAA="; }; build-system = [ diff --git a/pkgs/development/python-modules/jaraco-path/default.nix b/pkgs/development/python-modules/jaraco-path/default.nix index 1caac746f998a..1fdc2213128aa 100644 --- a/pkgs/development/python-modules/jaraco-path/default.nix +++ b/pkgs/development/python-modules/jaraco-path/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "jaraco-path"; - version = "3.7.1"; + version = "3.7.2"; pyproject = true; src = fetchFromGitHub { owner = "jaraco"; repo = "jaraco.path"; tag = "v${version}"; - hash = "sha256-i6FPM4aPfpwLdde1COXZNoKel3sRK8PXnkzy50XvVdw="; + hash = "sha256-uLkNMhB7aeDJ3fF0Ynjd8MD6+CTKKH8vsB5cH9RPcok="; }; build-system = [ setuptools-scm ]; @@ -26,7 +26,7 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook ]; meta = { - changelog = "https://github.com/jaraco/jaraco.path/blob/${src.rev}/NEWS.rst"; + changelog = "https://github.com/jaraco/jaraco.path/blob/${src.tag}/NEWS.rst"; description = "Miscellaneous path functions"; homepage = "https://github.com/jaraco/jaraco.path"; license = lib.licenses.mit; diff --git a/pkgs/development/python-modules/jira/default.nix b/pkgs/development/python-modules/jira/default.nix index d7c1d60f66c1f..5b36ce15d2041 100644 --- a/pkgs/development/python-modules/jira/default.nix +++ b/pkgs/development/python-modules/jira/default.nix @@ -24,7 +24,7 @@ buildPythonPackage rec { pname = "jira"; - version = "3.9.4"; + version = "3.10.1"; pyproject = true; disabled = pythonOlder "3.8"; @@ -33,7 +33,7 @@ buildPythonPackage rec { owner = "pycontribs"; repo = "jira"; tag = version; - hash = "sha256-P3dbrBKpHvLNIA+JBeSXEQl4QVZ0FdKkNIU8oPHWw6k="; + hash = "sha256-y8b+hHx/5mtFbA2jWyA1AI2Ez+VnUtqLZALM4DVAgLM="; }; build-system = [ diff --git a/pkgs/development/python-modules/joblib/default.nix b/pkgs/development/python-modules/joblib/default.nix index 7b5154d905e94..92b08f1fdb4e0 100644 --- a/pkgs/development/python-modules/joblib/default.nix +++ b/pkgs/development/python-modules/joblib/default.nix @@ -21,14 +21,14 @@ buildPythonPackage rec { pname = "joblib"; - version = "1.4.2"; + version = "1.5.0"; format = "pyproject"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-I4LFgWsmNvvSCgng9Ona1HNnZf37fcpYKUO5wTZrPw4="; + hash = "sha256-2HV/lVOJo916IxUuQ7wpfC4MLTBgBW2tD+78iKBpObU="; }; nativeBuildInputs = [ setuptools ]; diff --git a/pkgs/development/python-modules/json5/default.nix b/pkgs/development/python-modules/json5/default.nix index 1f6944bcd88a8..aabdeb8239d92 100644 --- a/pkgs/development/python-modules/json5/default.nix +++ b/pkgs/development/python-modules/json5/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "json5"; - version = "0.10.0"; + version = "0.12.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "dpranke"; repo = "pyjson5"; tag = "v${version}"; - hash = "sha256-J5xZN6o9UwvCdrzEY6o3NxYaxbtiUhmTtCQJia4JmI4="; + hash = "sha256-xBErTbC/cw+1bAVPIyN0+0aPmWblNtnsbIKEZ+XIyUQ="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/jsonschema-specifications/default.nix b/pkgs/development/python-modules/jsonschema-specifications/default.nix index bd096a3608f89..3922e63dd8dc8 100644 --- a/pkgs/development/python-modules/jsonschema-specifications/default.nix +++ b/pkgs/development/python-modules/jsonschema-specifications/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "jsonschema-specifications"; - version = "2024.10.1"; + version = "2025.4.1"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -20,7 +20,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "jsonschema_specifications"; inherit version; - hash = "sha256-Dzi4NjmVjOEVLQKn8GKQLEHI/SDVWLDDQ0QpLUF64nI="; + hash = "sha256-YwFZyfTb6hYaaiIFwwEcxPGP84Gxif/0i7Obm/Jq5gg="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/kivy/default.nix b/pkgs/development/python-modules/kivy/default.nix index 9efd8606b3ff6..6383a0488f6a1 100644 --- a/pkgs/development/python-modules/kivy/default.nix +++ b/pkgs/development/python-modules/kivy/default.nix @@ -34,6 +34,19 @@ buildPythonPackage rec { hash = "sha256-q8BoF/pUTW2GMKBhNsqWDBto5+nASanWifS9AcNRc8Q="; }; + postPatch = + '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools~=69.2.0" "setuptools" \ + --replace-fail "wheel~=0.44.0" "wheel" \ + --replace-fail "cython>=0.29.1,<=3.0.11" "cython" \ + --replace-fail "packaging~=24.0" packaging + '' + + lib.optionalString stdenv.hostPlatform.isLinux '' + substituteInPlace kivy/lib/mtdev.py \ + --replace-fail "LoadLibrary('libmtdev.so.1')" "LoadLibrary('${mtdev}/lib/libmtdev.so.1')" + ''; + build-system = [ setuptools cython @@ -89,18 +102,6 @@ buildPythonPackage rec { ] ); - postPatch = - '' - substituteInPlace pyproject.toml \ - --replace-fail "setuptools~=69.2.0" "setuptools" \ - --replace-fail "wheel~=0.44.0" "wheel" \ - --replace-fail "cython>=0.29.1,<=3.0.11" "cython" - '' - + lib.optionalString stdenv.hostPlatform.isLinux '' - substituteInPlace kivy/lib/mtdev.py \ - --replace-fail "LoadLibrary('libmtdev.so.1')" "LoadLibrary('${mtdev}/lib/libmtdev.so.1')" - ''; - /* We cannot run tests as Kivy tries to import itself before being fully installed. @@ -109,8 +110,9 @@ buildPythonPackage rec { pythonImportsCheck = [ "kivy" ]; meta = with lib; { + changelog = "https://github.com/kivy/kivy/releases/tag/${src.tag}"; description = "Library for rapid development of hardware-accelerated multitouch applications"; - homepage = "https://pypi.python.org/pypi/kivy"; + homepage = "https://github.com/kivy/kivy"; license = licenses.mit; maintainers = with maintainers; [ risson ]; }; diff --git a/pkgs/development/python-modules/kombu/default.nix b/pkgs/development/python-modules/kombu/default.nix index fb359bca45955..31b5effc79deb 100644 --- a/pkgs/development/python-modules/kombu/default.nix +++ b/pkgs/development/python-modules/kombu/default.nix @@ -30,14 +30,14 @@ buildPythonPackage rec { pname = "kombu"; - version = "5.5.2"; + version = "5.5.3"; pyproject = true; disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; - hash = "sha256-LdJ+yE/YQ6Tgpxh0JDE/h1FLNEgSy5jCXa3a+7an/w4="; + hash = "sha256-AhoOEfz82bAmDvH7ZAiMDpK+uXbrWcHfyn3dStRWLqI="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix index 2ae93d91c052f..bd4bcc1339013 100644 --- a/pkgs/development/python-modules/langchain-core/default.nix +++ b/pkgs/development/python-modules/langchain-core/default.nix @@ -50,7 +50,10 @@ buildPythonPackage rec { build-system = [ pdm-backend ]; - pythonRelaxDeps = [ "tenacity" ]; + pythonRelaxDeps = [ + "packaging" + "tenacity" + ]; dependencies = [ jsonpatch diff --git a/pkgs/development/python-modules/libpass/default.nix b/pkgs/development/python-modules/libpass/default.nix index 552635219bd7d..3b3ad366d7c6a 100644 --- a/pkgs/development/python-modules/libpass/default.nix +++ b/pkgs/development/python-modules/libpass/default.nix @@ -14,22 +14,18 @@ buildPythonPackage rec { pname = "libpass"; - version = "1.9.0"; + version = "1.9.1"; pyproject = true; src = fetchFromGitHub { owner = "ThirVondukr"; repo = "passlib"; tag = version; - hash = "sha256-Q5OEQkty0/DugRvF5LA+PaDDlF/6ysx4Nel5K2kH5s4="; + hash = "sha256-G6Fu1RjVb+OPdxt2hWpgAzTefRA41S0zV4hSvvCEWEA="; }; build-system = [ hatchling ]; - dependencies = [ - typing-extensions - ]; - optional-dependencies = { argon2 = [ argon2-cffi ]; bcrypt = [ bcrypt ]; diff --git a/pkgs/development/python-modules/limits/default.nix b/pkgs/development/python-modules/limits/default.nix index 9f154d3dee0f0..d9aed3620d1d2 100644 --- a/pkgs/development/python-modules/limits/default.nix +++ b/pkgs/development/python-modules/limits/default.nix @@ -22,11 +22,12 @@ redis, setuptools, typing-extensions, + valkey, }: buildPythonPackage rec { pname = "limits"; - version = "4.0.1"; + version = "5.2.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -41,7 +42,7 @@ buildPythonPackage rec { postFetch = '' rm "$out/limits/_version.py" ''; - hash = "sha256-JXXjRVn3RQMqNYRYXF4LuV2DHzVF8PTeGepFkt4jDFM="; + hash = "sha256-0D44XaSZtebMnn9mqXbaE7FB7usdu/eZ/4UE3Ye0oyA="; }; patches = [ @@ -80,6 +81,7 @@ buildPythonPackage rec { # ]; async-mongodb = [ motor ]; async-etcd = [ aetcd ]; + valkey = [ valkey ]; }; env = { diff --git a/pkgs/development/python-modules/limits/only-test-in-memory.patch b/pkgs/development/python-modules/limits/only-test-in-memory.patch index 6c1d1db59603e..a3a0c5697d788 100644 --- a/pkgs/development/python-modules/limits/only-test-in-memory.patch +++ b/pkgs/development/python-modules/limits/only-test-in-memory.patch @@ -1,11 +1,11 @@ diff --git a/tests/aio/test_storage.py b/tests/aio/test_storage.py -index 9817d8d..1382c89 100644 +index 43fc5b1..9aa86ed 100644 --- a/tests/aio/test_storage.py +++ b/tests/aio/test_storage.py -@@ -96,102 +96,6 @@ class TestBaseStorage: - "uri, args, expected_instance, fixture", - [ - pytest.param("async+memory://", {}, MemoryStorage, None, id="in-memory"), +@@ -153,94 +153,6 @@ class TestBaseStorage: + marks=pytest.mark.memory, + id="in-memory", + ), - pytest.param( - "async+redis://localhost:7379", - {}, @@ -93,23 +93,15 @@ index 9817d8d..1382c89 100644 - lf("mongodb"), - marks=pytest.mark.mongodb, - id="mongodb", -- ), -- pytest.param( -- "async+etcd://localhost:2379", -- {}, -- EtcdStorage, -- lf("etcd"), -- marks=pytest.mark.etcd, -- id="etcd", - ), ], ) class TestConcreteStorages: diff --git a/tests/test_storage.py b/tests/test_storage.py -index c3961e7..4250dbf 100644 +index f9698c0..2062e3a 100644 --- a/tests/test_storage.py +++ b/tests/test_storage.py -@@ -101,110 +101,6 @@ class TestBaseStorage: +@@ -148,102 +148,6 @@ class TestBaseStorage: "uri, args, expected_instance, fixture", [ pytest.param("memory://", {}, MemoryStorage, None, id="in-memory"), @@ -208,280 +200,198 @@ index c3961e7..4250dbf 100644 - lf("mongodb"), - marks=pytest.mark.mongodb, - id="mongodb", -- ), -- pytest.param( -- "etcd://localhost:2379", -- {}, -- EtcdStorage, -- lf("etcd"), -- marks=pytest.mark.etcd, -- id="etcd", - ), ], ) class TestConcreteStorages: diff --git a/tests/utils.py b/tests/utils.py -index b8350b7..be9167b 100644 +index 3341bcf..6dc2bc3 100644 --- a/tests/utils.py +++ b/tests/utils.py -@@ -66,75 +66,6 @@ all_storage = pytest.mark.parametrize( - "uri, args, fixture", - [ - pytest.param("memory://", {}, None, marks=pytest.mark.memory, id="in-memory"), -- pytest.param( -- "redis://localhost:7379", -- {}, -- lf("redis_basic"), -- marks=pytest.mark.redis, -- id="redis_basic", -- ), -- pytest.param( -- "memcached://localhost:22122", -- {}, -- lf("memcached"), -- marks=[pytest.mark.memcached, pytest.mark.flaky], -- id="memcached", -- ), -- pytest.param( -- "memcached://localhost:22122,localhost:22123", -- {}, -- lf("memcached_cluster"), -- marks=[pytest.mark.memcached, pytest.mark.flaky], -- id="memcached-cluster", -- ), -- pytest.param( -- "redis+cluster://localhost:7001/", -- {}, -- lf("redis_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-cluster", -- ), -- pytest.param( -- "redis+cluster://:sekret@localhost:8400/", -- {}, -- lf("redis_auth_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-cluster-auth", -- ), -- pytest.param( -- "redis+cluster://localhost:8301", -- { -- "ssl": True, -- "ssl_cert_reqs": "required", -- "ssl_keyfile": "./tests/tls/client.key", -- "ssl_certfile": "./tests/tls/client.crt", -- "ssl_ca_certs": "./tests/tls/ca.crt", -- }, -- lf("redis_ssl_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-ssl-cluster", -- ), -- pytest.param( -- "redis+sentinel://localhost:26379/mymaster", -- {"use_replicas": False}, -- lf("redis_sentinel"), -- marks=pytest.mark.redis_sentinel, -- id="redis-sentinel", -- ), -- pytest.param( -- "mongodb://localhost:37017/", -- {}, -- lf("mongodb"), -- marks=pytest.mark.mongodb, -- id="mongodb", -- ), -- pytest.param( -- "etcd://localhost:2379", -- {}, -- lf("etcd"), -- marks=[pytest.mark.etcd, pytest.mark.flaky], -- id="etcd", -- ), - ], - ) - -@@ -142,54 +73,6 @@ moving_window_storage = pytest.mark.parametrize( - "uri, args, fixture", - [ - pytest.param("memory://", {}, None, marks=pytest.mark.memory, id="in-memory"), -- pytest.param( -- "redis://localhost:7379", -- {}, -- lf("redis_basic"), -- marks=pytest.mark.redis, -- id="redis", -- ), -- pytest.param( -- "redis+cluster://localhost:7001/", -- {}, -- lf("redis_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-cluster", -- ), -- pytest.param( -- "redis+cluster://:sekret@localhost:8400/", -- {}, -- lf("redis_auth_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-cluster-auth", -- ), -- pytest.param( -- "redis+cluster://localhost:8301", -- { -- "ssl": True, -- "ssl_cert_reqs": "required", -- "ssl_keyfile": "./tests/tls/client.key", -- "ssl_certfile": "./tests/tls/client.crt", -- "ssl_ca_certs": "./tests/tls/ca.crt", -- }, -- lf("redis_ssl_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-ssl-cluster", -- ), -- pytest.param( -- "redis+sentinel://localhost:26379/mymaster", -- {"use_replicas": False}, -- lf("redis_sentinel"), -- marks=pytest.mark.redis_sentinel, -- id="redis-sentinel", -- ), -- pytest.param( -- "mongodb://localhost:37017/", -- {}, -- lf("mongodb"), -- marks=pytest.mark.mongodb, -- id="mongodb", -- ), - ], - ) - -@@ -199,75 +82,6 @@ async_all_storage = pytest.mark.parametrize( - pytest.param( - "async+memory://", {}, None, marks=pytest.mark.memory, id="in-memory" - ), -- pytest.param( -- "async+redis://localhost:7379", -- {}, -- lf("redis_basic"), -- marks=pytest.mark.redis, -- id="redis", -- ), -- pytest.param( -- "async+memcached://localhost:22122", -- {}, -- lf("memcached"), -- marks=[pytest.mark.memcached, pytest.mark.flaky], -- id="memcached", -- ), -- pytest.param( -- "async+memcached://localhost:22122,localhost:22123", -- {}, -- lf("memcached_cluster"), -- marks=[pytest.mark.memcached, pytest.mark.flaky], -- id="memcached-cluster", -- ), -- pytest.param( -- "async+redis+cluster://localhost:7001/", -- {}, -- lf("redis_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-cluster", -- ), -- pytest.param( -- "async+redis+cluster://:sekret@localhost:8400/", -- {}, -- lf("redis_auth_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-cluster-auth", -- ), -- pytest.param( -- "async+redis+cluster://localhost:8301", -- { -- "ssl": True, -- "ssl_cert_reqs": "required", -- "ssl_keyfile": "./tests/tls/client.key", -- "ssl_certfile": "./tests/tls/client.crt", -- "ssl_ca_certs": "./tests/tls/ca.crt", -- }, -- lf("redis_ssl_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-ssl-cluster", -- ), -- pytest.param( -- "async+redis+sentinel://localhost:26379/mymaster", -- {"use_replicas": False}, -- lf("redis_sentinel"), -- marks=pytest.mark.redis_sentinel, -- id="redis-sentinel", -- ), -- pytest.param( -- "async+mongodb://localhost:37017/", -- {}, -- lf("mongodb"), -- marks=pytest.mark.mongodb, -- id="mongodb", -- ), -- pytest.param( -- "async+etcd://localhost:2379", -- {}, -- lf("etcd"), -- marks=[pytest.mark.etcd, pytest.mark.flaky], -- id="etcd", -- ), - ], - ) +@@ -90,186 +90,11 @@ ALL_STORAGES = { + "memory": pytest.param( + "memory://", {}, None, marks=pytest.mark.memory, id="in-memory" + ), +- "redis": pytest.param( +- "redis://localhost:7379", +- {}, +- lf("redis_basic"), +- marks=pytest.mark.redis, +- id="redis_basic", +- ), +- "memcached": pytest.param( +- "memcached://localhost:22122", +- {}, +- lf("memcached"), +- marks=[pytest.mark.memcached, pytest.mark.flaky], +- id="memcached", +- ), +- "memcached-cluster": pytest.param( +- "memcached://localhost:22122,localhost:22123", +- {}, +- lf("memcached_cluster"), +- marks=[pytest.mark.memcached, pytest.mark.flaky], +- id="memcached-cluster", +- ), +- "redis-cluster": pytest.param( +- "redis+cluster://localhost:7001/", +- {}, +- lf("redis_cluster"), +- marks=pytest.mark.redis_cluster, +- id="redis-cluster", +- ), +- "redis-cluster_auth": pytest.param( +- "redis+cluster://:sekret@localhost:8400/", +- {}, +- lf("redis_auth_cluster"), +- marks=pytest.mark.redis_cluster, +- id="redis-cluster-auth", +- ), +- "redis-ssl-cluster": pytest.param( +- "redis+cluster://localhost:8301", +- { +- "ssl": True, +- "ssl_cert_reqs": "required", +- "ssl_keyfile": "./tests/tls/client.key", +- "ssl_certfile": "./tests/tls/client.crt", +- "ssl_ca_certs": "./tests/tls/ca.crt", +- }, +- lf("redis_ssl_cluster"), +- marks=pytest.mark.redis_cluster, +- id="redis-ssl-cluster", +- ), +- "redis-sentinel": pytest.param( +- "redis+sentinel://localhost:26379/mymaster", +- {"use_replicas": False}, +- lf("redis_sentinel"), +- marks=pytest.mark.redis_sentinel, +- id="redis-sentinel", +- ), +- "mongodb": pytest.param( +- "mongodb://localhost:37017/", +- {}, +- lf("mongodb"), +- marks=pytest.mark.mongodb, +- id="mongodb", +- ), +- "valkey": pytest.param( +- "valkey://localhost:12379", +- {}, +- lf("valkey_basic"), +- marks=pytest.mark.valkey, +- id="valkey_basic", +- ), +- "valkey-cluster": pytest.param( +- "valkey+cluster://localhost:2001/", +- {}, +- lf("valkey_cluster"), +- marks=pytest.mark.valkey_cluster, +- id="valkey-cluster", +- ), + } + ALL_STORAGES_ASYNC = { + "memory": pytest.param( + "async+memory://", {}, None, marks=pytest.mark.memory, id="in-memory" + ), +- "redis": pytest.param( +- "async+redis://localhost:7379", +- { +- "implementation": ASYNC_REDIS_IMPLEMENTATION, +- }, +- lf("redis_basic"), +- marks=pytest.mark.redis, +- id="redis", +- ), +- "memcached": pytest.param( +- "async+memcached://localhost:22122", +- { +- "implementation": ASYNC_MEMCACHED_IMPLEMENTATION, +- }, +- lf("memcached"), +- marks=[pytest.mark.memcached, pytest.mark.flaky], +- id="memcached", +- ), +- "memcached-cluster": pytest.param( +- "async+memcached://localhost:22122,localhost:22123", +- { +- "implementation": ASYNC_MEMCACHED_IMPLEMENTATION, +- }, +- lf("memcached_cluster"), +- marks=[pytest.mark.memcached, pytest.mark.flaky], +- id="memcached-cluster", +- ), +- "memcached-sasl": pytest.param( +- "async+memcached://user:password@localhost:22124", +- { +- "implementation": ASYNC_MEMCACHED_IMPLEMENTATION, +- }, +- lf("memcached_sasl"), +- marks=[pytest.mark.memcached, pytest.mark.flaky], +- id="memcached-sasl", +- ), +- "redis-cluster": pytest.param( +- "async+redis+cluster://localhost:7001/", +- { +- "implementation": ASYNC_REDIS_IMPLEMENTATION, +- }, +- lf("redis_cluster"), +- marks=pytest.mark.redis_cluster, +- id="redis-cluster", +- ), +- "redis-cluster-auth": pytest.param( +- "async+redis+cluster://:sekret@localhost:8400/", +- { +- "implementation": ASYNC_REDIS_IMPLEMENTATION, +- }, +- lf("redis_auth_cluster"), +- marks=pytest.mark.redis_cluster, +- id="redis-cluster-auth", +- ), +- "redis-ssl-cluster": pytest.param( +- "async+redis+cluster://localhost:8301", +- { +- "ssl": True, +- "ssl_cert_reqs": "required", +- "ssl_keyfile": "./tests/tls/client.key", +- "ssl_certfile": "./tests/tls/client.crt", +- "ssl_ca_certs": "./tests/tls/ca.crt", +- "implementation": ASYNC_REDIS_IMPLEMENTATION, +- }, +- lf("redis_ssl_cluster"), +- marks=pytest.mark.redis_cluster, +- id="redis-ssl-cluster", +- ), +- "redis-sentinel": pytest.param( +- "async+redis+sentinel://localhost:26379/mymaster", +- { +- "use_replicas": False, +- "implementation": ASYNC_REDIS_IMPLEMENTATION, +- }, +- lf("redis_sentinel"), +- marks=pytest.mark.redis_sentinel, +- id="redis-sentinel", +- ), +- "mongodb": pytest.param( +- "async+mongodb://localhost:37017/", +- {}, +- lf("mongodb"), +- marks=pytest.mark.mongodb, +- id="mongodb", +- ), +- "valkey": pytest.param( +- "async+valkey://localhost:12379", +- {}, +- lf("valkey_basic"), +- marks=pytest.mark.valkey, +- id="valkey_basic", +- ), +- "valkey-cluster": pytest.param( +- "async+valkey+cluster://localhost:2001/", +- {}, +- lf("valkey_cluster"), +- marks=pytest.mark.valkey_cluster, +- id="valkey-cluster", +- ), + } -@@ -277,53 +91,5 @@ async_moving_window_storage = pytest.mark.parametrize( - pytest.param( - "async+memory://", {}, None, marks=pytest.mark.memory, id="in-memory" - ), -- pytest.param( -- "async+redis://localhost:7379", -- {}, -- lf("redis_basic"), -- marks=pytest.mark.redis, -- id="redis", -- ), -- pytest.param( -- "async+redis+cluster://localhost:7001/", -- {}, -- lf("redis_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-cluster", -- ), -- pytest.param( -- "async+redis+cluster://:sekret@localhost:8400/", -- {}, -- lf("redis_auth_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-cluster-auth", -- ), -- pytest.param( -- "async+redis+cluster://localhost:8301", -- { -- "ssl": True, -- "ssl_cert_reqs": "required", -- "ssl_keyfile": "./tests/tls/client.key", -- "ssl_certfile": "./tests/tls/client.crt", -- "ssl_ca_certs": "./tests/tls/ca.crt", -- }, -- lf("redis_ssl_cluster"), -- marks=pytest.mark.redis_cluster, -- id="redis-ssl-cluster", -- ), -- pytest.param( -- "async+redis+sentinel://localhost:26379/mymaster", -- {"use_replicas": False}, -- lf("redis_sentinel"), -- marks=pytest.mark.redis_sentinel, -- id="redis-sentinel", -- ), -- pytest.param( -- "async+mongodb://localhost:37017/", -- {}, -- lf("mongodb"), -- marks=pytest.mark.mongodb, -- id="mongodb", -- ), - ], - ) + all_storage = pytest.mark.parametrize("uri, args, fixture", ALL_STORAGES.values()) diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix index f3f520f6ffb86..cda7c1c2dc11e 100644 --- a/pkgs/development/python-modules/lxml/default.nix +++ b/pkgs/development/python-modules/lxml/default.nix @@ -3,6 +3,7 @@ lib, buildPythonPackage, fetchFromGitHub, + fetchpatch, # build-system cython, @@ -17,23 +18,27 @@ buildPythonPackage rec { pname = "lxml"; - version = "5.3.1"; + version = "5.4.0"; pyproject = true; src = fetchFromGitHub { owner = "lxml"; repo = "lxml"; tag = "lxml-${version}"; - hash = "sha256-TGv2ZZQ7GU+fAWRApESUL1bbxQobbmLai8wr09xYOUw="; + hash = "sha256-yp0Sb/0Em3HX1XpDNFpmkvW/aXwffB4D1sDYEakwKeY="; }; - # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs - nativeBuildInputs = [ - libxml2.dev - libxslt.dev + build-system = [ cython setuptools ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcodebuild ]; + + # required for build time dependency check + nativeBuildInputs = [ + libxml2.dev + libxslt.dev + ]; + buildInputs = [ libxml2 libxslt diff --git a/pkgs/development/python-modules/lz4/default.nix b/pkgs/development/python-modules/lz4/default.nix index 048cc8e163f71..a1f123b8ea2d4 100644 --- a/pkgs/development/python-modules/lz4/default.nix +++ b/pkgs/development/python-modules/lz4/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "lz4"; - version = "4.4.3"; + version = "4.4.4"; pyproject = true; disabled = pythonOlder "3.5"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "python-lz4"; repo = "python-lz4"; tag = "v${version}"; - hash = "sha256-Jnmi2eyTGbPuqw0llQ5xpUWlj+8QvRHMwkak/GsypU0="; + hash = "sha256-RoM2U47T5WLepJlbJhJAeqKRP8Zf3twndqmMSViI5Z8="; }; postPatch = '' diff --git a/pkgs/development/python-modules/makefun/default.nix b/pkgs/development/python-modules/makefun/default.nix index dfbf49de3da68..2a234b829c688 100644 --- a/pkgs/development/python-modules/makefun/default.nix +++ b/pkgs/development/python-modules/makefun/default.nix @@ -13,12 +13,12 @@ buildPythonPackage rec { pname = "makefun"; - version = "1.15.6"; + version = "1.16.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-JrxjRCphgvt17+2LUXQd0tHbLxdr7Ixk4gpYYla48Uk="; + hash = "sha256-4UYBgxVwv/H21+aIKLzTDS9YVvJLrV3gzLIpIc7ryUc="; }; postPatch = '' diff --git a/pkgs/development/python-modules/mako/default.nix b/pkgs/development/python-modules/mako/default.nix index f2d95cfff5d3f..0396086580a23 100644 --- a/pkgs/development/python-modules/mako/default.nix +++ b/pkgs/development/python-modules/mako/default.nix @@ -23,7 +23,7 @@ buildPythonPackage rec { pname = "mako"; - version = "1.3.9"; + version = "1.3.10"; pyproject = true; disabled = pythonOlder "3.7"; @@ -32,7 +32,7 @@ buildPythonPackage rec { owner = "sqlalchemy"; repo = "mako"; tag = "rel_${lib.replaceStrings [ "." ] [ "_" ] version}"; - hash = "sha256-BC1PSmMG9KzD+w8tDUW9WXJS25HNsELgwDpkTHYO9j0="; + hash = "sha256-lxGlYyKbrDpr2LHcsqTow+s2l8+g+63M5j8xJt++tGo="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/markdown/default.nix b/pkgs/development/python-modules/markdown/default.nix index cf1170242375c..87020cb9e10ff 100644 --- a/pkgs/development/python-modules/markdown/default.nix +++ b/pkgs/development/python-modules/markdown/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "markdown"; - version = "3.7"; + version = "3.8"; pyproject = true; disabled = pythonOlder "3.8"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "Python-Markdown"; repo = "markdown"; tag = version; - hash = "sha256-bIBen693MC56k4LZ+8vhbvP+E3myFXoaXpNHOlnIdG8="; + hash = "sha256-H1xvDM2ShiPbfcpW+XGrxCxtaRFVaquuMuGg1RhjeNA="; }; build-system = [ setuptools ]; @@ -35,7 +35,7 @@ buildPythonPackage rec { pythonImportsCheck = [ "markdown" ]; meta = with lib; { - changelog = "https://github.com/Python-Markdown/markdown/blob/${src.rev}/docs/changelog.md"; + changelog = "https://github.com/Python-Markdown/markdown/blob/${src.tag}/docs/changelog.md"; description = "Python implementation of John Gruber's Markdown"; mainProgram = "markdown_py"; homepage = "https://github.com/Python-Markdown/markdown"; diff --git a/pkgs/development/python-modules/markdownify/default.nix b/pkgs/development/python-modules/markdownify/default.nix index 51f81b9525f1c..2e736a3e80d7f 100644 --- a/pkgs/development/python-modules/markdownify/default.nix +++ b/pkgs/development/python-modules/markdownify/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "markdownify"; - version = "0.14.1"; + version = "1.1.0"; pyproject = true; disabled = pythonOlder "3.7"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "matthewwithanm"; repo = "python-markdownify"; tag = version; - hash = "sha256-YJdR1wV72f9/tWQhuhGwScuRcE243fCP+wnYAzBOoV8="; + hash = "sha256-eU0F3nc96q2U/3PGM/gnrRCmetIqutDugz6q+PIb8CU="; }; build-system = [ diff --git a/pkgs/development/python-modules/marshmallow-oneofschema/default.nix b/pkgs/development/python-modules/marshmallow-oneofschema/default.nix index e1f06b4747f8d..2bcd4c4037fc5 100644 --- a/pkgs/development/python-modules/marshmallow-oneofschema/default.nix +++ b/pkgs/development/python-modules/marshmallow-oneofschema/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "marshmallow-oneofschema"; - version = "3.1.1"; + version = "3.2.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "marshmallow-code"; repo = "marshmallow-oneofschema"; tag = version; - hash = "sha256-HXuyUxU8bT5arpUzmgv7m+X2fNT0qHY8S8Rz6klOGiA="; + hash = "sha256-Hk36wxZV1hVqIbqDOkEDlqABRKE6s/NyA/yBEXzj/yM="; }; nativeBuildInputs = [ flit-core ]; diff --git a/pkgs/development/python-modules/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix index 6ef74d0c3d3ac..a9cc605ee2b82 100644 --- a/pkgs/development/python-modules/matplotlib/default.nix +++ b/pkgs/development/python-modules/matplotlib/default.nix @@ -80,7 +80,7 @@ let in buildPythonPackage rec { - version = "3.10.1"; + version = "3.10.3"; pname = "matplotlib"; pyproject = true; @@ -88,7 +88,7 @@ buildPythonPackage rec { src = fetchPypi { inherit pname version; - hash = "sha256-6NLQ44gbEpJoWFv0dlrT7nOkWR13uaGMIUrH46efsro="; + hash = "sha256-L4LSxbt66TqqpM1CrKZdds5jdvgzBPo6YwtWmsonTfA="; }; env.XDG_RUNTIME_DIR = "/tmp"; diff --git a/pkgs/development/python-modules/meson-python/default.nix b/pkgs/development/python-modules/meson-python/default.nix index c4988343b3fd5..512a020bd231d 100644 --- a/pkgs/development/python-modules/meson-python/default.nix +++ b/pkgs/development/python-modules/meson-python/default.nix @@ -2,38 +2,87 @@ lib, buildPythonPackage, fetchPypi, + pythonOlder, + + # build-system, dependencies meson, ninja, pyproject-metadata, tomli, - typing-extensions, - pythonOlder, + + # tests + cython, + pytestCheckHook, + pytest-mock, }: buildPythonPackage rec { pname = "meson-python"; - version = "0.17.1"; - format = "pyproject"; + version = "0.18.0"; + pyproject = true; src = fetchPypi { inherit version; pname = "meson_python"; - hash = "sha256-77kfafLhnu97yaRx7SpOcwCIzGs56srz5J/E+TDrX4M="; + hash = "sha256-xWqZ7J32aaQGYv5GlgMhr25LFBBsFNsihwnBYo4jhI0="; }; - nativeBuildInputs = [ + build-system = [ meson ninja pyproject-metadata - tomli - ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; + ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; - propagatedBuildInputs = [ + dependencies = [ meson ninja pyproject-metadata - tomli - ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; + ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; + + nativeCheckInputs = [ + cython + pytestCheckHook + pytest-mock + ]; + + disabledTests = [ + # Tests require a Git checkout + "test_configure_data" + "test_contents" + "test_contents" + "test_contents_license_file" + "test_contents_subdirs" + "test_contents_unstaged" + "test_detect_wheel_tag_module" + "test_detect_wheel_tag_script" + "test_dynamic_version" + "test_editable_install" + "test_editable_verbose" + "test_editble_reentrant" + "test_entrypoints" + "test_executable_bit" + "test_executable_bit" + "test_generated_files" + "test_install_subdir" + "test_license_pep639" + "test_limited_api" + "test_link_library_in_subproject" + "test_local_lib" + "test_long_path" + "test_meson_build_metadata" + "test_pep621_metadata" + "test_pure" + "test_purelib_and_platlib" + "test_reproducible" + "test_rpath" + "test_scipy_like" + "test_sharedlib_in_package" + "test_symlinks" + "test_uneeded_rpath" + "test_user_args" + "test_vendored_meson" + ]; + setupHooks = [ ./add-build-flags.sh ]; meta = { @@ -42,5 +91,6 @@ buildPythonPackage rec { homepage = "https://github.com/mesonbuild/meson-python"; license = [ lib.licenses.mit ]; maintainers = with lib.maintainers; [ doronbehar ]; + teams = [ lib.teams.python ]; }; } diff --git a/pkgs/development/python-modules/mistune/default.nix b/pkgs/development/python-modules/mistune/default.nix index adbe92f6f151a..02a0c37d91484 100644 --- a/pkgs/development/python-modules/mistune/default.nix +++ b/pkgs/development/python-modules/mistune/default.nix @@ -10,16 +10,14 @@ buildPythonPackage rec { pname = "mistune"; - version = "3.1.2"; + version = "3.1.3"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "lepture"; repo = "mistune"; tag = "v${version}"; - hash = "sha256-XvDp+X/+s6TsUC889qjTGzrde6s/BYoXUw2AblaATnI="; + hash = "sha256-aD+c41nuSmLUoYzK8adP0eLYRU0FihHEqG4e0b0GZ9k="; }; dependencies = lib.optionals (pythonOlder "3.11") [ diff --git a/pkgs/development/python-modules/more-itertools/default.nix b/pkgs/development/python-modules/more-itertools/default.nix index a7ce7e96d09a3..45b4573620e8a 100644 --- a/pkgs/development/python-modules/more-itertools/default.nix +++ b/pkgs/development/python-modules/more-itertools/default.nix @@ -1,7 +1,7 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, flit-core, pytestCheckHook, six, @@ -10,15 +10,17 @@ buildPythonPackage rec { pname = "more-itertools"; - version = "10.6.0"; - format = "pyproject"; + version = "10.7.0"; + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-LNf60QCcMcyftqA1EIUJ5lR1R6enODdPEL1JoJ6z7js="; + src = fetchFromGitHub { + owner = "more-itertools"; + repo = "more-itertools"; + tag = "v${version}"; + hash = "sha256-4ZzuWVRrihhEoYRDAoYLZINR11iHs0sXF/bRm6gQoEA="; }; - nativeBuildInputs = [ flit-core ]; + build-system = [ flit-core ]; propagatedBuildInputs = [ six ]; @@ -32,6 +34,7 @@ buildPythonPackage rec { homepage = "https://more-itertools.readthedocs.org"; changelog = "https://more-itertools.readthedocs.io/en/stable/versions.html"; description = "Expansion of the itertools module"; + downloadPage = "https://github.com/more-itertools/more-itertools"; license = licenses.mit; maintainers = [ ]; }; diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix index ec8898371c8f7..fd87eaedd5c69 100644 --- a/pkgs/development/python-modules/moto/default.nix +++ b/pkgs/development/python-modules/moto/default.nix @@ -37,7 +37,7 @@ buildPythonPackage rec { pname = "moto"; - version = "5.1.1"; + version = "5.1.4"; pyproject = true; disabled = pythonOlder "3.8"; @@ -46,7 +46,7 @@ buildPythonPackage rec { owner = "getmoto"; repo = "moto"; tag = version; - hash = "sha256-KMIOLM7KQqF2JwYWHWAD9GVKRTd2adVBubwWrnlHGoQ="; + hash = "sha256-bDRd1FTBpv6t2j8cBzcYiK4B0F4sLcoW9K0Wnd0oo+4="; }; build-system = [ @@ -380,6 +380,9 @@ buildPythonPackage rec { # Infinite recursion with pycognito "tests/test_cognitoidp/test_cognitoidp.py" + + # botocore.exceptions.ParamValidationError: Parameter validation failed: Unknown parameter in input: "EnableWorkDocs", must be one of: [...] + "tests/test_workspaces/test_workspaces.py" ]; meta = { diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix index 5d3836410a90c..4efc225e785d3 100644 --- a/pkgs/development/python-modules/msal/default.nix +++ b/pkgs/development/python-modules/msal/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "msal"; - version = "1.32.0"; + version = "1.32.3"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-VEX+OvHaa+SEmRp6sy6qgkYdwjR94QW3avksYQwzNcI="; + hash = "sha256-XuoDhonHilpwyo7L4SRUWLVahXvQlu+2mJxpuhWYXTU="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/multidict/default.nix b/pkgs/development/python-modules/multidict/default.nix index 3a580edbad660..7f731d7bb8c7a 100644 --- a/pkgs/development/python-modules/multidict/default.nix +++ b/pkgs/development/python-modules/multidict/default.nix @@ -2,6 +2,7 @@ lib, fetchFromGitHub, buildPythonPackage, + objgraph, pytestCheckHook, pytest-codspeed, pytest-cov-stub, @@ -12,17 +13,14 @@ buildPythonPackage rec { pname = "multidict"; - version = "6.2.0"; - - disabled = pythonOlder "3.8"; - + version = "6.4.4"; pyproject = true; src = fetchFromGitHub { owner = "aio-libs"; repo = "multidict"; tag = "v${version}"; - hash = "sha256-eiTD6vMSLMLlDmVwht6ZdGTHlyC62W4ecdiuhfJNaMQ="; + hash = "sha256-crnWaThjymY0nbY4yvD+wX20vQcBkPrFAI+UkexNAbo="; }; postPatch = '' @@ -38,6 +36,7 @@ buildPythonPackage rec { ]; nativeCheckInputs = [ + objgraph pytestCheckHook pytest-codspeed pytest-cov-stub @@ -51,7 +50,7 @@ buildPythonPackage rec { pythonImportsCheck = [ "multidict" ]; meta = with lib; { - changelog = "https://github.com/aio-libs/multidict/blob/v${version}/CHANGES.rst"; + changelog = "https://github.com/aio-libs/multidict/blob/${src.tag}/CHANGES.rst"; description = "Multidict implementation"; homepage = "https://github.com/aio-libs/multidict/"; license = licenses.asl20; diff --git a/pkgs/development/python-modules/multiprocess/default.nix b/pkgs/development/python-modules/multiprocess/default.nix index 520f9d2846bf7..c410343dc30ba 100644 --- a/pkgs/development/python-modules/multiprocess/default.nix +++ b/pkgs/development/python-modules/multiprocess/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "multiprocess"; - version = "0.70.17"; + version = "0.70.18"; format = "setuptools"; src = fetchFromGitHub { owner = "uqfoundation"; repo = pname; tag = version; - hash = "sha256-TKD0iQv5Go4PrKWtVOF6FJG1tkvs3APxPlhDVEs7YXE="; + hash = "sha256-VDlbo+rXyOxY73JJz5SWEuq3lZLKWYKk9DKbHzpQesU="; }; propagatedBuildInputs = [ dill ]; diff --git a/pkgs/development/python-modules/napalm/default.nix b/pkgs/development/python-modules/napalm/default.nix index c942625fe8911..07da3c408cf62 100644 --- a/pkgs/development/python-modules/napalm/default.nix +++ b/pkgs/development/python-modules/napalm/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + fetchpatch, pythonOlder, # build-system @@ -46,6 +47,16 @@ buildPythonPackage rec { hash = "sha256-Abw3h69qTFwOOFeAfivqAIWLozErJ1yZZfx7CbMy1AI="; }; + patches = [ + (fetchpatch { + url = "https://github.com/napalm-automation/napalm/commit/7e509869f7cb56892380629d1cb5f99e3e2c6190.patch"; + hash = "sha256-vJDACa5SmSJ/rcmKEow4Prqju/jYcCrzGpTdEYsAPq0="; + includes = [ + "napalm/ios/ios.py" + ]; + }) + ]; + nativeBuildInputs = [ setuptools ]; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/ntc-templates/default.nix b/pkgs/development/python-modules/ntc-templates/default.nix index 5619fc76cbc9d..cae6faa9f594a 100644 --- a/pkgs/development/python-modules/ntc-templates/default.nix +++ b/pkgs/development/python-modules/ntc-templates/default.nix @@ -28,7 +28,9 @@ buildPythonPackage rec { build-system = [ poetry-core ]; - propagatedBuildInputs = [ textfsm ]; + pythonRelaxDeps = [ "textfsm" ]; + + dependencies = [ textfsm ]; nativeCheckInputs = [ invoke diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix index b8053c53c453c..322c00746e05a 100644 --- a/pkgs/development/python-modules/numba/default.nix +++ b/pkgs/development/python-modules/numba/default.nix @@ -32,7 +32,7 @@ let cudatoolkit = cudaPackages.cuda_nvcc; in buildPythonPackage rec { - version = "0.61.0"; + version = "0.61.2"; pname = "numba"; pyproject = true; @@ -50,7 +50,7 @@ buildPythonPackage rec { postFetch = '' sed -i 's/git_refnames = "[^"]*"/git_refnames = " (tag: ${src.tag})"/' $out/numba/_version.py ''; - hash = "sha256-d09armWFI55fqyYCzZNVOq6f5b8BTk0s8fjU0OGrNgo="; + hash = "sha256-Qa2B5pOWrLb/1V3PSyiwS1x9ueXwDKRhDMDecBCAN+8="; }; postPatch = '' @@ -58,15 +58,6 @@ buildPythonPackage rec { --replace-fail \ "dldir = [" \ "dldir = [ '${addDriverRunpath.driverLink}/lib', " - - substituteInPlace setup.py \ - --replace-fail \ - 'max_numpy_run_version = "2.2"' \ - 'max_numpy_run_version = "3"' - substituteInPlace numba/__init__.py \ - --replace-fail \ - 'numpy_version > (2, 1)' \ - 'numpy_version >= (3, 0)' ''; env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-I${lib.getInclude stdenv.cc.libcxx}/include/c++/v1"; diff --git a/pkgs/development/python-modules/nutils/default.nix b/pkgs/development/python-modules/nutils/default.nix index 77a13f70659a1..8c5c8a4c30769 100644 --- a/pkgs/development/python-modules/nutils/default.nix +++ b/pkgs/development/python-modules/nutils/default.nix @@ -4,19 +4,21 @@ fetchFromGitHub, flit-core, appdirs, - bottombar, + matplotlib, + meshio, numpy, nutils-poly, - psutil, + scipy, stringly, treelog, pytestCheckHook, pythonOlder, + pkgs, }: buildPythonPackage rec { pname = "nutils"; - version = "8.8"; + version = "9.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -25,32 +27,45 @@ buildPythonPackage rec { owner = "evalf"; repo = "nutils"; tag = "v${version}"; - hash = "sha256-E/y1YXW+0+LfntRQsdIU9rMOmN8mlFwXktD/sViJo3I="; + hash = "sha256-Ef830yTY+g6ZPZ9h0lSktkewIerHbWVfXwrdQ6rzz6I="; }; build-system = [ flit-core ]; dependencies = [ appdirs - bottombar numpy nutils-poly - psutil stringly treelog ]; - pythonRelaxDeps = [ "psutil" ]; + optional-dependencies = { + export-mpl = [ matplotlib ]; + # TODO: matrix-mkl = [ mkl ]; + matrix-scipy = [ scipy ]; + import-gmsh = [ meshio ]; + }; - nativeCheckInputs = [ pytestCheckHook ]; + pythonRelaxDeps = [ "psutil" ]; - pythonImportsCheck = [ "nutils" ]; + nativeCheckInputs = [ + pkgs.graphviz + pytestCheckHook + ] ++ lib.flatten (lib.attrValues optional-dependencies); - disabledTestPaths = [ - # AttributeError: type object 'setup' has no attribute '__code__' - "tests/test_cli.py" + disabledTests = [ + # Error: invalid value 'x' for farg: loading 'x' as float + "run.test_badvalue" + "choose.test_badvalue" + # ModuleNotFoundError: No module named 'stringly' + "picklability.test_basis" + "picklability.test_domain" + "picklability.test_geom" ]; + pythonImportsCheck = [ "nutils" ]; + meta = with lib; { description = "Numerical Utilities for Finite Element Analysis"; changelog = "https://github.com/evalf/nutils/releases/tag/v${version}"; diff --git a/pkgs/development/python-modules/onnx/default.nix b/pkgs/development/python-modules/onnx/default.nix index f0fa2543f0b8a..25e20e1aff16c 100644 --- a/pkgs/development/python-modules/onnx/default.nix +++ b/pkgs/development/python-modules/onnx/default.nix @@ -15,8 +15,11 @@ # dependencies numpy, + typing-extensions, + # tests google-re2, + ml-dtypes, nbval, parameterized, pillow, @@ -29,14 +32,14 @@ let in buildPythonPackage rec { pname = "onnx"; - version = "1.17.0"; + version = "1.18.0"; pyproject = true; src = fetchFromGitHub { owner = "onnx"; repo = "onnx"; tag = "v${version}"; - hash = "sha256-9oORW0YlQ6SphqfbjcYb0dTlHc+1gzy9quH/Lj6By8Q="; + hash = "sha256-UhtF+CWuyv5/Pq/5agLL4Y95YNP63W2BraprhRqJOag="; }; build-system = [ @@ -54,10 +57,12 @@ buildPythonPackage rec { dependencies = [ protobuf numpy + typing-extensions ]; nativeCheckInputs = [ google-re2 + ml-dtypes nbval parameterized pillow diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix index 6f8de04bb49be..67dfdffc79eff 100644 --- a/pkgs/development/python-modules/openai/default.nix +++ b/pkgs/development/python-modules/openai/default.nix @@ -46,7 +46,7 @@ buildPythonPackage rec { pname = "openai"; - version = "1.78.1"; + version = "1.79.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -55,7 +55,7 @@ buildPythonPackage rec { owner = "openai"; repo = "openai-python"; tag = "v${version}"; - hash = "sha256-rdK4usuFVhPpDL3jnSkapJfDfLOI5EH8zeS0a7xoy/g="; + hash = "sha256-exOE3Ha0SB4Q7OrWVUGOgELpfyHZVdtvgxyFyFncDm4="; }; postPatch = ''substituteInPlace pyproject.toml --replace-fail "hatchling==1.26.3" "hatchling"''; diff --git a/pkgs/development/python-modules/orjson/default.nix b/pkgs/development/python-modules/orjson/default.nix index 89dc39be73667..01065a936f107 100644 --- a/pkgs/development/python-modules/orjson/default.nix +++ b/pkgs/development/python-modules/orjson/default.nix @@ -30,7 +30,7 @@ buildPythonPackage rec { pname = "orjson"; - version = "3.10.16"; + version = "3.10.18"; pyproject = true; disabled = pythonOlder "3.8"; @@ -39,13 +39,13 @@ buildPythonPackage rec { owner = "ijl"; repo = "orjson"; tag = version; - hash = "sha256-hgyW3bff70yByxPFqw8pwPMPMAh9FxL1U+LQoJI6INo="; + hash = "sha256-gEShQJrqSFMwc9PreRhbup3yE0RySwJtlgXfhDomiIc="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit src; name = "${pname}-${version}"; - hash = "sha256-mOHOIKmcXjPwZ8uPth+yvreHG4IpiS6SFhWY+IZS69E="; + hash = "sha256-vMuqqUfaYFZ1wC3SZBVF7Wq2OUKd7UkdC8GB93QBq8Y="; }; nativeBuildInputs = diff --git a/pkgs/development/python-modules/packaging/default.nix b/pkgs/development/python-modules/packaging/default.nix index dc014fc6a77a9..368687b06fd0b 100644 --- a/pkgs/development/python-modules/packaging/default.nix +++ b/pkgs/development/python-modules/packaging/default.nix @@ -15,14 +15,14 @@ let packaging = buildPythonPackage rec { pname = "packaging"; - version = "24.2"; + version = "25.0"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-wiim3F6TLTRrxXOTeRCdSeiFPdgiNXHHxbVSYO3AuX8="; + hash = "sha256-1EOHLJjWd79g9qHy+MHLdI6P52LSv50xSLVZkpWw/E8="; }; nativeBuildInputs = [ flit-core ]; diff --git a/pkgs/development/python-modules/pandera/default.nix b/pkgs/development/python-modules/pandera/default.nix index 353fd5aa78325..a5c37022473d6 100644 --- a/pkgs/development/python-modules/pandera/default.nix +++ b/pkgs/development/python-modules/pandera/default.nix @@ -38,14 +38,14 @@ buildPythonPackage rec { pname = "pandera"; - version = "0.23.1"; + version = "0.24.0"; pyproject = true; src = fetchFromGitHub { owner = "unionai-oss"; repo = "pandera"; tag = "v${version}"; - hash = "sha256-aKyuOA/N5QPv6NoN6OFNSFMuN4+8XMpglVtoDFDJZBs="; + hash = "sha256-S5y717M3rGGO39TOh1X5yePvdcF6ct1Jk51/bbM6X6M="; }; build-system = [ @@ -116,9 +116,9 @@ buildPythonPackage rec { disabledTestPaths = [ "tests/fastapi/test_app.py" # tries to access network - "tests/core/test_docs_setting_column_widths.py" # tests doc generation, requires sphinx + "tests/pandas/test_docs_setting_column_widths.py" # tests doc generation, requires sphinx "tests/modin" # requires modin, not in nixpkgs - "tests/mypy/test_static_type_checking.py" # some typing failures + "tests/mypy/test_pandas_static_type_checking.py" # some typing failures "tests/pyspark" # requires spark ]; diff --git a/pkgs/development/python-modules/pendulum/default.nix b/pkgs/development/python-modules/pendulum/default.nix index b74866ffd0264..283e2264e942c 100644 --- a/pkgs/development/python-modules/pendulum/default.nix +++ b/pkgs/development/python-modules/pendulum/default.nix @@ -27,42 +27,24 @@ buildPythonPackage rec { pname = "pendulum"; - version = "3.0.0"; + version = "3.1.0"; pyproject = true; src = fetchFromGitHub { owner = "sdispater"; repo = "pendulum"; tag = version; - hash = "sha256-v0kp8dklvDeC7zdTDOpIbpuj13aGub+oCaYz2ytkEpI="; + hash = "sha256-ZjQaN5vT1+3UxwLNNsUmU4gSs6reUl90VSEumS0sEGY="; }; - postPatch = '' - substituteInPlace rust/Cargo.lock \ - --replace "3.0.0-beta-1" "3.0.0" - ''; - cargoRoot = "rust"; cargoDeps = rustPlatform.fetchCargoVendor { inherit src; sourceRoot = "${src.name}/rust"; name = "${pname}-${version}"; - hash = "sha256-6WgGIfz9I+xRJqXWhjfGDZM1umYwVlUEpLAiecZNZmI="; - postPatch = '' - substituteInPlace Cargo.lock \ - --replace "3.0.0-beta-1" "3.0.0" - ''; + hash = "sha256-F5bCuvI8DcyeUTS7UyYBixCjuGFKGOXPw8HLVlYKuxA="; }; - patches = [ - # fix build on 32bit - # https://github.com/sdispater/pendulum/pull/842 - (fetchpatch { - url = "https://github.com/sdispater/pendulum/commit/6f2fcb8b025146ae768a5889be4a437fbd3156d6.patch"; - hash = "sha256-47591JvpADxGQT2q7EYWHfStaiWyP7dt8DPTq0tiRvk="; - }) - ]; - nativeBuildInputs = [ poetry-core rustPlatform.maturinBuildHook diff --git a/pkgs/development/python-modules/pgvector/default.nix b/pkgs/development/python-modules/pgvector/default.nix index 3e7d1ab27804b..cc604bc879975 100644 --- a/pkgs/development/python-modules/pgvector/default.nix +++ b/pkgs/development/python-modules/pgvector/default.nix @@ -48,6 +48,7 @@ buildPythonPackage rec { peewee pg8000 psycopg + psycopg.pool psycopg2 psycopg-pool (postgresql.withPackages (p: with p; [ pgvector ])) @@ -63,6 +64,7 @@ buildPythonPackage rec { PGDATABASE = "pgvector_python_test"; postgresqlEnableTCP = 1; postgresqlTestUserOptions = "LOGIN SUPERUSER"; + USER = "test_user"; }; disabledTestPaths = [ diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix index 531f674bf011b..af4ea3723bedc 100644 --- a/pkgs/development/python-modules/phonenumbers/default.nix +++ b/pkgs/development/python-modules/phonenumbers/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "phonenumbers"; - version = "9.0.2"; + version = "9.0.5"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-9ZDuK3Kb3Zhzyi1SmJRmrdFMmVO0iAXArrQINI1NYiQ="; + hash = "sha256-cP3haKkt2cc/V4cjWVFRgdbN5ruOfsVmDpTEykVpLFA="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix index f05ed913e313e..d5022fca36fbd 100644 --- a/pkgs/development/python-modules/pikepdf/default.nix +++ b/pkgs/development/python-modules/pikepdf/default.nix @@ -25,7 +25,7 @@ buildPythonPackage rec { pname = "pikepdf"; - version = "9.5.2"; + version = "9.7.1"; pyproject = true; src = fetchFromGitHub { @@ -38,7 +38,7 @@ buildPythonPackage rec { postFetch = '' rm "$out/.git_archival.txt" ''; - hash = "sha256-VYbfElC4YJFoO5VV4DVQ2Cu91RcFlsnZmRqJaNH8qRw="; + hash = "sha256-QXuXHFc48KTlIwO0aJsQRmrupZIJYElfbwM9itzTYhc="; }; patches = [ diff --git a/pkgs/development/python-modules/platformdirs/default.nix b/pkgs/development/python-modules/platformdirs/default.nix index 8549b478fd568..80d1091542036 100644 --- a/pkgs/development/python-modules/platformdirs/default.nix +++ b/pkgs/development/python-modules/platformdirs/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "platformdirs"; - version = "4.3.7"; + version = "4.3.8"; pyproject = true; disabled = pythonOlder "3.7"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "platformdirs"; repo = "platformdirs"; tag = version; - hash = "sha256-E3qwAczUzJOYO4IDul9uO6K6wowOtYpQ7Q76TA+lIho="; + hash = "sha256-ePaEpsBkTomRX+RJsed8aJtefl5WCW/N9IT8ae4+ln4="; }; build-system = [ diff --git a/pkgs/development/python-modules/plotly/default.nix b/pkgs/development/python-modules/plotly/default.nix index 5652f9458b860..ec2118d4e1497 100644 --- a/pkgs/development/python-modules/plotly/default.nix +++ b/pkgs/development/python-modules/plotly/default.nix @@ -3,118 +3,112 @@ stdenv, buildPythonPackage, fetchFromGitHub, + + # build-system + jupyter-packaging, setuptools, + + # dependencies + narwhals, packaging, - tenacity, + + # optional-dependencies + numpy, kaleido, - pytestCheckHook, - pandas, - requests, + + # tests + anywidget, + ipython, + ipywidgets, matplotlib, - xarray, + nbformat, + pandas, + pdfrw, pillow, + polars, + pyarrow, + pytestCheckHook, + requests, + scikit-image, scipy, statsmodels, - ipython, - ipywidgets, which, - nbformat, - scikit-image, - orca, - psutil, + xarray, }: buildPythonPackage rec { pname = "plotly"; - version = "5.24.1"; + version = "6.1.0"; pyproject = true; src = fetchFromGitHub { owner = "plotly"; repo = "plotly.py"; tag = "v${version}"; - hash = "sha256-ONuX5/GlirPF8+7bZtib1Xsv5llcXcSelFfGyeTc5L8="; + hash = "sha256-B5wjZTnL/T+zRbPd3tVSekDbYnKBvIdIpXhc3sUvT3E="; }; - sourceRoot = "${src.name}/packages/python/plotly"; - - # tracking numpy 2 issue: https://github.com/plotly/plotly.py/pull/4622 postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail "\"jupyterlab~=3.0;python_version>='3.6'\"," "" - - substituteInPlace plotly/tests/test_optional/test_utils/test_utils.py \ - --replace-fail "np.NaN" "np.nan" \ - --replace-fail "np.NAN" "np.nan" \ - --replace-fail "np.Inf" "np.inf" - - substituteInPlace plotly/tests/test_optional/test_px/test_imshow.py \ - --replace-fail "- 255 * img.max()" "- np.int64(255) * img.max()" + --replace-fail '"hatch", ' "" \ + --replace-fail "jupyter_packaging~=0.10.0" jupyter_packaging ''; env.SKIP_NPM = true; - build-system = [ setuptools ]; + build-system = [ + setuptools + jupyter-packaging + ]; dependencies = [ + narwhals packaging - tenacity - kaleido ]; - # packages/python/plotly/optional-requirements.txt optional-dependencies = { - orca = [ - orca - requests - psutil - ]; + express = [ numpy ]; + kaleido = [ kaleido ]; }; nativeCheckInputs = [ - pytestCheckHook - pandas - requests + anywidget + ipython + ipywidgets matplotlib - xarray + nbformat + pandas + pdfrw pillow + polars + pyarrow + pytestCheckHook + requests + scikit-image scipy statsmodels - ipython - ipywidgets which - nbformat - scikit-image - ]; + xarray + ] ++ lib.flatten (lib.attrValues optional-dependencies); disabledTests = [ # failed pinning test, sensitive to dep versions "test_legend_dots" "test_linestyle" - # test bug, i assume sensitive to dep versions - "test_sanitize_json" - # requires vaex and polars, vaex is not packaged - "test_build_df_from_vaex_and_polars" - "test_build_df_with_hover_data_from_vaex_and_polars" # lazy loading error, could it be the sandbox PYTHONPATH? # AssertionError: assert "plotly" not in sys.modules "test_dependencies_not_imported" "test_lazy_imports" - # numpy2 related error, RecursionError - # https://github.com/plotly/plotly.py/pull/4622#issuecomment-2452886352 - "test_masked_constants_example" + # [0.0, 'rgb(252, 255, 164)'] != [0.0, '#fcffa4'] + "test_acceptance_named" + ]; + + disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ + # requires local networking + "plotly/tests/test_io/test_renderers.py" + # fails to launch kaleido subprocess + "plotly/tests/test_optional/test_kaleido" ]; - disabledTestPaths = - [ - # unable to locate orca binary, adding the package does not fix it - "plotly/tests/test_orca/" - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - # requires local networking - "plotly/tests/test_io/test_renderers.py" - # fails to launch kaleido subprocess - "plotly/tests/test_optional/test_kaleido" - ]; pythonImportsCheck = [ "plotly" ]; diff --git a/pkgs/development/python-modules/pluggy/default.nix b/pkgs/development/python-modules/pluggy/default.nix index 0db2939c705d5..b86243c009fb9 100644 --- a/pkgs/development/python-modules/pluggy/default.nix +++ b/pkgs/development/python-modules/pluggy/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "pluggy"; - version = "1.5.0"; + version = "1.6.0"; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "pytest-dev"; repo = "pluggy"; tag = version; - hash = "sha256-f0DxyZZk6RoYtOEXLACcsOn2B+Hot4U4g5Ogr/hKmOE="; + hash = "sha256-pkQjPJuSASWmzwzp9H/UTJBQDr2r2RiofxpF135lAgc="; }; build-system = [ setuptools-scm ]; diff --git a/pkgs/development/python-modules/poetry-core/default.nix b/pkgs/development/python-modules/poetry-core/default.nix index 1d7c6c7813ab7..e5a62637975ab 100644 --- a/pkgs/development/python-modules/poetry-core/default.nix +++ b/pkgs/development/python-modules/poetry-core/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "poetry-core"; - version = "2.1.2"; + version = "2.1.3"; pyproject = true; disabled = pythonOlder "3.9"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "python-poetry"; repo = "poetry-core"; tag = version; - hash = "sha256-fNj/LI4A4RjjPzYT+0ekwqmm3qzzZL3aACOe8BHviuk="; + hash = "sha256-CgaWlqjvBTN7GuerzmO5IiEdXxYH6pmTDj9IsNJlCBE="; }; nativeCheckInputs = [ @@ -59,11 +59,11 @@ buildPythonPackage rec { env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-int-conversion"; - meta = with lib; { + meta = { changelog = "https://github.com/python-poetry/poetry-core/blob/${src.tag}/CHANGELOG.md"; description = "Poetry PEP 517 Build Backend"; homepage = "https://github.com/python-poetry/poetry-core/"; - license = licenses.mit; - teams = [ teams.python ]; + license = lib.licenses.mit; + teams = [ lib.teams.python ]; }; } diff --git a/pkgs/development/python-modules/prometheus-client/default.nix b/pkgs/development/python-modules/prometheus-client/default.nix index 421413e71dd3a..1efd9a4d9a1ce 100644 --- a/pkgs/development/python-modules/prometheus-client/default.nix +++ b/pkgs/development/python-modules/prometheus-client/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "prometheus-client"; - version = "0.21.1"; + version = "0.22.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "prometheus"; repo = "client_python"; tag = "v${version}"; - hash = "sha256-mlgaSVJ4UHM8xw0QPnHSYiTH2v3V6BWi5Abz9aKt2qU="; + hash = "sha256-JLkDFciDsfjfrA7BiIq3js+UtLRA/lzcdFvqPhUJyB8="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/prompt-toolkit/default.nix b/pkgs/development/python-modules/prompt-toolkit/default.nix index a0c274dac9388..d468634e5be55 100644 --- a/pkgs/development/python-modules/prompt-toolkit/default.nix +++ b/pkgs/development/python-modules/prompt-toolkit/default.nix @@ -3,28 +3,24 @@ buildPythonPackage, fetchPypi, pytestCheckHook, - pythonOlder, - six, + setuptools, wcwidth, }: buildPythonPackage rec { pname = "prompt-toolkit"; - version = "3.0.50"; - format = "setuptools"; - - disabled = pythonOlder "3.6"; + version = "3.0.51"; + pyproject = true; src = fetchPypi { pname = "prompt_toolkit"; inherit version; - hash = "sha256-VEdI84YKJiPKXNbSeV56FPPQ4cPJcoNZAT95h3/Im6s="; + hash = "sha256-kxoWLjsn/JDIbxtIux+yxSjCdhR15XycBt4TMRx7VO0="; }; - propagatedBuildInputs = [ - six - wcwidth - ]; + build-system = [ setuptools ]; + + dependencies = [ wcwidth ]; nativeCheckInputs = [ pytestCheckHook ]; diff --git a/pkgs/development/python-modules/psycopg/default.nix b/pkgs/development/python-modules/psycopg/default.nix index 1377201fd4b81..011e650790838 100644 --- a/pkgs/development/python-modules/psycopg/default.nix +++ b/pkgs/development/python-modules/psycopg/default.nix @@ -35,13 +35,13 @@ let pname = "psycopg"; - version = "3.2.8"; + version = "3.2.9"; src = fetchFromGitHub { owner = "psycopg"; repo = "psycopg"; tag = version; - hash = "sha256-fSryNbWqIO5+oyU9uP7zO6TJzrtFPwrtaU0toxBysao="; + hash = "sha256-mMhfULdvqphwdEqynLNq+7XCNmqmf+zi1SGumC/6qAc="; }; patches = [ diff --git a/pkgs/development/python-modules/pycares/default.nix b/pkgs/development/python-modules/pycares/default.nix index 06ee28ba55fe1..a99339a444cd3 100644 --- a/pkgs/development/python-modules/pycares/default.nix +++ b/pkgs/development/python-modules/pycares/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "pycares"; - version = "4.5.0"; + version = "4.8.0"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-AltsL/6k6fuPmglzgcL+yySv8j+9aQbnDaIuybpg4Z0="; + hash = "sha256-L8Lr+rlg9lSz488IpzJIaVDamTk6ZX+LRGGK0+0tOcE="; }; buildInputs = [ c-ares ]; diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix index 025faf27da327..5930ba1b86939 100644 --- a/pkgs/development/python-modules/pycryptodome/default.nix +++ b/pkgs/development/python-modules/pycryptodome/default.nix @@ -4,6 +4,7 @@ callPackage, fetchFromGitHub, gmp, + setuptools, }: let @@ -11,21 +12,23 @@ let in buildPythonPackage rec { pname = "pycryptodome"; - version = "3.21.0"; - format = "setuptools"; + version = "3.23.0"; + pyproject = true; src = fetchFromGitHub { owner = "Legrandin"; repo = "pycryptodome"; tag = "v${version}"; - hash = "sha256-4GnjHDYJY1W3n6lUtGfk5KDMQfe5NoKbYn94TTXYCDY="; + hash = "sha256-x8QkRBwM/H/n7yHGjE8UfBhOzkGr0PBixe9g4EuZLUg="; }; postPatch = '' substituteInPlace lib/Crypto/Math/_IntegerGMP.py \ - --replace 'load_lib("gmp"' 'load_lib("${gmp}/lib/libgmp.so.10"' + --replace-fail 'load_lib("gmp"' 'load_lib("${gmp}/lib/libgmp.so.10"' ''; + build-system = [ setuptools ]; + nativeCheckInputs = [ test-vectors ]; pythonImportsCheck = [ "Crypto" ]; diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix index 40aa79a8a7e92..7b37d92618770 100644 --- a/pkgs/development/python-modules/pycurl/default.nix +++ b/pkgs/development/python-modules/pycurl/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "pycurl"; - version = "7.45.3-unstable-2024-10-17"; + version = "7.45.6"; pyproject = true; disabled = isPyPy; # https://github.com/pycurl/pycurl/issues/208 @@ -23,10 +23,8 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "pycurl"; repo = "pycurl"; - # Pinned to newer commit, since the release cadence is not keeping up with curl itself - #rev = "refs/tags/REL_${lib.replaceStrings [ "." ] [ "_" ] version}"; - rev = "885d08b4d3cbc59547b8b80fbd13ab5fc6f27238"; - hash = "sha256-WnrQhv6xiA+/Uz0hUmQxmEUasxtvlIV2EjlO+ZOUgI8="; + tag = "REL_${lib.replaceStrings [ "." ] [ "_" ] version}"; + hash = "sha256-M4rO0CaI2SmjdJVS7hWnJZrL72WvayB4aKn707KoNiQ="; }; preConfigure = '' diff --git a/pkgs/development/python-modules/pydantic-core/default.nix b/pkgs/development/python-modules/pydantic-core/default.nix index 0463c263c4ad8..081b12075ec36 100644 --- a/pkgs/development/python-modules/pydantic-core/default.nix +++ b/pkgs/development/python-modules/pydantic-core/default.nix @@ -19,20 +19,20 @@ let pydantic-core = buildPythonPackage rec { pname = "pydantic-core"; - version = "2.33.0"; + version = "2.33.2"; pyproject = true; src = fetchFromGitHub { owner = "pydantic"; repo = "pydantic-core"; tag = "v${version}"; - hash = "sha256-F+ie8cJ1xl8i3kQSH6H24Vi5KSkRGjX/bXIfzY+ZayM="; + hash = "sha256-2jUkd/Y92Iuq/A31cevqjZK4bCOp+AEC/MAnHSt2HLY="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit src; name = "${pname}-${version}"; - hash = "sha256-bGhS36Fc7LUdpTHsIM1zn1vX2T/OX+fPewLxLGSZRrk="; + hash = "sha256-MY6Gxoz5Q7nCptR+zvdABh2agfbpqOtfTtor4pmkb9c="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/pydantic-settings/default.nix b/pkgs/development/python-modules/pydantic-settings/default.nix index 69b1b43cdf922..624daaa04a9b0 100644 --- a/pkgs/development/python-modules/pydantic-settings/default.nix +++ b/pkgs/development/python-modules/pydantic-settings/default.nix @@ -14,7 +14,7 @@ let self = buildPythonPackage rec { pname = "pydantic-settings"; - version = "2.8.1"; + version = "2.9.1"; pyproject = true; disabled = pythonOlder "3.8"; @@ -23,7 +23,7 @@ let owner = "pydantic"; repo = "pydantic-settings"; tag = "v${version}"; - hash = "sha256-Bvdq4ATOhLjowkyR39y0Jxi+wuPbpVW30qtbsXa9+HA="; + hash = "sha256-KcpDOdp8qDAgTI/+r6rb21UrjkeOFfCFnON1kMSKKSE="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix index 5f1723538f0f9..890759f08a84d 100644 --- a/pkgs/development/python-modules/pydantic/default.nix +++ b/pkgs/development/python-modules/pydantic/default.nix @@ -29,7 +29,7 @@ buildPythonPackage rec { pname = "pydantic"; - version = "2.11.1"; + version = "2.11.4"; pyproject = true; disabled = pythonOlder "3.8"; @@ -38,7 +38,7 @@ buildPythonPackage rec { owner = "pydantic"; repo = "pydantic"; tag = "v${version}"; - hash = "sha256-82knT2Dzm/p0dz56bH0sZ4WffgFnN5cukbipPBO65fQ="; + hash = "sha256-/LMemrO01KnhDrqKbH1qBVyO/uAiqTh5+FHnrxE8BUo="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pydot/default.nix b/pkgs/development/python-modules/pydot/default.nix index bdbabe92c7159..aa9c01b76da0f 100644 --- a/pkgs/development/python-modules/pydot/default.nix +++ b/pkgs/development/python-modules/pydot/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "pydot"; - version = "3.0.4"; + version = "4.0.0"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-POiLJVjzgIsDdvIr+mwmOQnhw5geKntim2W0Ue7kol0="; + hash = "sha256-EvFkkzN8reL3YxuHyMzSmbouJR8+5dBzKgWN8oh6/pc="; }; build-system = [ diff --git a/pkgs/development/python-modules/pyhcl/default.nix b/pkgs/development/python-modules/pyhcl/default.nix index d4abb9fabaae3..02ee4aac5283c 100644 --- a/pkgs/development/python-modules/pyhcl/default.nix +++ b/pkgs/development/python-modules/pyhcl/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "pyhcl"; - version = "0.4.4"; + version = "0.4.5"; format = "setuptools"; disabled = !isPy3k; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "virtuald"; repo = pname; rev = version; - sha256 = "0rcpx4vvj2c6wxp31vay7a2xa5p62kabi91vps9plj6710yz29nc"; + sha256 = "sha256-vF40xEahs98G0lIC6XIl3eJHIuai2xTAeshUjiKN/BY="; }; # https://github.com/virtuald/pyhcl/blob/51a7524b68fe21e175e157b8af931016d7a357ad/setup.py#L64 diff --git a/pkgs/development/python-modules/pyicu/default.nix b/pkgs/development/python-modules/pyicu/default.nix index 053b10edca5d8..ad34dce4dfe25 100644 --- a/pkgs/development/python-modules/pyicu/default.nix +++ b/pkgs/development/python-modules/pyicu/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "pyicu"; - version = "2.15"; + version = "2.15.2"; pyproject = true; src = fetchFromGitLab { @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "main"; repo = "pyicu"; tag = "v${version}"; - hash = "sha256-F3qW0yZBjJ8pmLEW4dWKBFvnyiw5F732DKAI+eLcL+g="; + hash = "sha256-Div3c4Lk9VTV1HrmvYKDn1a7moDNjG4OHA9Kv3+niKs="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix index 233d6ce19e2fa..ae6d50b36d9cb 100644 --- a/pkgs/development/python-modules/pylint/default.nix +++ b/pkgs/development/python-modules/pylint/default.nix @@ -23,7 +23,7 @@ buildPythonPackage rec { pname = "pylint"; - version = "3.3.6"; + version = "3.3.7"; pyproject = true; disabled = pythonOlder "3.8"; @@ -32,7 +32,7 @@ buildPythonPackage rec { owner = "pylint-dev"; repo = "pylint"; tag = "v${version}"; - hash = "sha256-c1Nh5g2ykvE+EmnSgpN3J7qMHPz93LZ0/snyIaYmPq4="; + hash = "sha256-EMLnwFurIhTdUJqy9/DLTuucDhlmA5fCPZZ6TA87nEU="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pymdown-extensions/default.nix b/pkgs/development/python-modules/pymdown-extensions/default.nix index ceaaba4697621..64b0ae3de1b5c 100644 --- a/pkgs/development/python-modules/pymdown-extensions/default.nix +++ b/pkgs/development/python-modules/pymdown-extensions/default.nix @@ -45,14 +45,14 @@ let in buildPythonPackage rec { pname = "pymdown-extensions"; - version = "10.14.3"; + version = "10.15"; pyproject = true; src = fetchFromGitHub { owner = "facelessuser"; repo = "pymdown-extensions"; tag = version; - hash = "sha256-i0i9hyq60RbfJ6YjFsAPXVYwbV8VrFaTIfDCkl8BvhQ="; + hash = "sha256-ADl1l1cgJC3T8EN+cGNq14VfShGLG51ElXFRx+tdnCg="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/pymongo/default.nix b/pkgs/development/python-modules/pymongo/default.nix index 22bf5f8ad4680..ce570a8572655 100644 --- a/pkgs/development/python-modules/pymongo/default.nix +++ b/pkgs/development/python-modules/pymongo/default.nix @@ -19,7 +19,7 @@ buildPythonPackage rec { pname = "pymongo"; - version = "4.11.3"; + version = "4.13.0"; pyproject = true; disabled = pythonOlder "3.7"; @@ -27,7 +27,7 @@ buildPythonPackage rec { src = fetchPypi { inherit version; pname = "pymongo"; - hash = "sha256-tvJK7HwM/PDqn4npK31Auhih4YwTSBV1jxEeywEi5hw="; + hash = "sha256-kqBuNwnjx+UIINNS09TmABVAa8ummAiTfawqbSIib94="; }; build-system = [ diff --git a/pkgs/development/python-modules/pynamodb/default.nix b/pkgs/development/python-modules/pynamodb/default.nix index dfccf2bad32e9..aeabc70b86881 100644 --- a/pkgs/development/python-modules/pynamodb/default.nix +++ b/pkgs/development/python-modules/pynamodb/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "pynamodb"; - version = "6.0.1"; + version = "6.0.2"; pyproject = true; disabled = pythonOlder "3.7"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "pynamodb"; repo = "PynamoDB"; tag = version; - hash = "sha256-OcrES+1F95KjhRXpEukzbuDfTXU4hyJqxGjD1xMcdKE="; + hash = "sha256-i4cO1fzERKHJW2Ym0ogc2YID3IXVpBVDE33UumxvvHE="; }; build-system = [ setuptools ]; @@ -57,6 +57,8 @@ buildPythonPackage rec { # require a local dynamodb instance "test_create_table" "test_create_table__incompatible_indexes" + # https://github.com/pynamodb/PynamoDB/issues/1265 + "test_connection_make_api_call__binary_attributes" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/pypdf/default.nix b/pkgs/development/python-modules/pypdf/default.nix index 6bfa4c2d17583..df070615d6bc8 100644 --- a/pkgs/development/python-modules/pypdf/default.nix +++ b/pkgs/development/python-modules/pypdf/default.nix @@ -27,7 +27,7 @@ buildPythonPackage rec { pname = "pypdf"; - version = "5.4.0"; + version = "5.5.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -38,7 +38,7 @@ buildPythonPackage rec { tag = version; # fetch sample files used in tests fetchSubmodules = true; - hash = "sha256-Do697G3CH3itIF+LFFr7h+mohIuzx2JZpGPnbVQ3sOw="; + hash = "sha256-L/dj8yJIkGLsDdsZ1xFK46yyAVJ14F3RSh7HLhEcVhI="; }; outputs = [ diff --git a/pkgs/development/python-modules/pyproject-api/default.nix b/pkgs/development/python-modules/pyproject-api/default.nix index 043db0acb7c8a..21232a08ca6e5 100644 --- a/pkgs/development/python-modules/pyproject-api/default.nix +++ b/pkgs/development/python-modules/pyproject-api/default.nix @@ -27,7 +27,7 @@ buildPythonPackage rec { pname = "pyproject-api"; - version = "1.9.0"; + version = "1.9.1"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -36,7 +36,7 @@ buildPythonPackage rec { owner = "tox-dev"; repo = "pyproject-api"; tag = version; - hash = "sha256-4oX/h3EiLZIfHhU6zBD9ZQYnHGrid93LkJzaC6swBdI="; + hash = "sha256-Bf/FG5BNKbV3lfebEHFJ3cy80L1mWTYLXJfqPUzeNXc="; }; outputs = [ diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix index f81db36e95d92..9b1fd1924ec42 100644 --- a/pkgs/development/python-modules/pyroute2/default.nix +++ b/pkgs/development/python-modules/pyroute2/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "pyroute2"; - version = "0.8.1"; + version = "0.9.2"; pyproject = true; disabled = pythonOlder "3.9"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "svinota"; repo = "pyroute2"; tag = version; - hash = "sha256-eItzD9ub8COaOkNLEKLtf8uJil4W4rqjzVa95LJahHw="; + hash = "sha256-46QpFW9Yo1fHH9m8hxpdPRMBdiE6ptWAWRcaizKjBOw="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pytest-cov/default.nix b/pkgs/development/python-modules/pytest-cov/default.nix index c214e758ad4ab..a7dbf32414b1c 100644 --- a/pkgs/development/python-modules/pytest-cov/default.nix +++ b/pkgs/development/python-modules/pytest-cov/default.nix @@ -11,13 +11,13 @@ buildPythonPackage rec { pname = "pytest-cov"; - version = "6.1.0"; + version = "6.1.1"; pyproject = true; src = fetchPypi { pname = "pytest_cov"; inherit version; - hash = "sha256-7FXoKMZnVeW3SiG9fMA8MDqfkoOJwFY+ULpFSm2+cds="; + hash = "sha256-RpNfeq77p2DnFsLr++HCFiQLlZKWbn2pnqgpLU0+Kgo="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pytest-django/default.nix b/pkgs/development/python-modules/pytest-django/default.nix index c35057d20b6a8..f407216368d51 100644 --- a/pkgs/development/python-modules/pytest-django/default.nix +++ b/pkgs/development/python-modules/pytest-django/default.nix @@ -12,13 +12,13 @@ buildPythonPackage rec { pname = "pytest-django"; - version = "4.10.0"; + version = "4.11.1"; pyproject = true; src = fetchPypi { pname = "pytest_django"; inherit version; - hash = "sha256-EJGyDqFJH9BKMQ/Jqv9MAbToRQ47FXaHYl4WprXzo2Y="; + hash = "sha256-qUkUGh7hA8sOeiDxRR01X4P15KXQe91Nz90f0P8ieZE="; }; build-system = [ diff --git a/pkgs/development/python-modules/pytest-rerunfailures/default.nix b/pkgs/development/python-modules/pytest-rerunfailures/default.nix index dbd2d5b20171f..a219cb3752f41 100644 --- a/pkgs/development/python-modules/pytest-rerunfailures/default.nix +++ b/pkgs/development/python-modules/pytest-rerunfailures/default.nix @@ -2,7 +2,7 @@ lib, buildPythonPackage, pythonOlder, - fetchPypi, + fetchFromGitHub, setuptools, packaging, pytest, @@ -11,14 +11,16 @@ buildPythonPackage rec { pname = "pytest-rerunfailures"; - version = "15.0"; - format = "pyproject"; + version = "15.1"; + pyproject = true; disabled = pythonOlder "3.9"; - src = fetchPypi { - inherit pname version; - hash = "sha256-LZrHuvWfTBOscwtH9vqA51XRugWB2kXOMLcvs1QrRHQ="; + src = fetchFromGitHub { + owner = "pytest-dev"; + repo = "pytest-rerunfailures"; + tag = version; + hash = "sha256-ab3n61zCf9ok2PWvKTwmaeoeGuMxl0sYE25djk/NDLk="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pytest-timeout/default.nix b/pkgs/development/python-modules/pytest-timeout/default.nix index d916162e5a5ca..751a1286a8932 100644 --- a/pkgs/development/python-modules/pytest-timeout/default.nix +++ b/pkgs/development/python-modules/pytest-timeout/default.nix @@ -1,7 +1,8 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, + setuptools, pytest, pytestCheckHook, pexpect, @@ -9,14 +10,18 @@ buildPythonPackage rec { pname = "pytest-timeout"; - version = "2.3.1"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-Ejl3KRJcbsvaygEDW55SOdTblzUjIK8VWz9d4bpRZdk="; + version = "2.4.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pytest-dev"; + repo = "pytest-timeout"; + tag = version; + hash = "sha256-NGTy3Hua6yEMWXQDJQO2Z5DD3clXTZXEH6DNQBMSGtQ="; }; + build-system = [ setuptools ]; + buildInputs = [ pytest ]; nativeCheckInputs = [ @@ -24,20 +29,12 @@ buildPythonPackage rec { pexpect ]; - disabledTests = [ - "test_suppresses_timeout_when_pdb_is_entered" - # Remove until https://github.com/pytest-dev/pytest/pull/7207 or similar - "test_suppresses_timeout_when_debugger_is_entered" - ]; - - pytestFlagsArray = [ "-ra" ]; - pythonImportsCheck = [ "pytest_timeout" ]; meta = with lib; { description = "Pytest plugin to abort hanging tests"; homepage = "https://github.com/pytest-dev/pytest-timeout/"; - changelog = "https://github.com/pytest-dev/pytest-timeout/#changelog"; + changelog = "https://github.com/pytest-dev/pytest-timeout/tree/${src.tag}#changelog"; license = licenses.mit; maintainers = with maintainers; [ makefu ]; }; diff --git a/pkgs/development/python-modules/python-jose/cryptography-45.0.patch b/pkgs/development/python-modules/python-jose/cryptography-45.0.patch new file mode 100644 index 0000000000000..af69e729c9414 --- /dev/null +++ b/pkgs/development/python-modules/python-jose/cryptography-45.0.patch @@ -0,0 +1,55 @@ +diff --git a/jose/backends/__init__.py b/jose/backends/__init__.py +index e7bba69..9918969 100644 +--- a/jose/backends/__init__.py ++++ b/jose/backends/__init__.py +@@ -1,10 +1,4 @@ +-try: +- from jose.backends.cryptography_backend import get_random_bytes # noqa: F401 +-except ImportError: +- try: +- from jose.backends.pycrypto_backend import get_random_bytes # noqa: F401 +- except ImportError: +- from jose.backends.native import get_random_bytes # noqa: F401 ++from jose.backends.native import get_random_bytes # noqa: F401 + + try: + from jose.backends.cryptography_backend import CryptographyRSAKey as RSAKey # noqa: F401 +diff --git a/jose/backends/cryptography_backend.py b/jose/backends/cryptography_backend.py +index 1525cf2..3dce986 100644 +--- a/jose/backends/cryptography_backend.py ++++ b/jose/backends/cryptography_backend.py +@@ -26,33 +26,11 @@ from ..utils import ( + long_to_base64, + ) + from .base import Key ++from . import get_random_bytes + + _binding = None + + +-def get_random_bytes(num_bytes): +- """ +- Get random bytes +- +- Currently, Cryptography returns OS random bytes. If you want OpenSSL +- generated random bytes, you'll have to switch the RAND engine after +- initializing the OpenSSL backend +- Args: +- num_bytes (int): Number of random bytes to generate and return +- Returns: +- bytes: Random bytes +- """ +- global _binding +- +- if _binding is None: +- _binding = Binding() +- +- buf = _binding.ffi.new("char[]", num_bytes) +- _binding.lib.RAND_bytes(buf, num_bytes) +- rand_bytes = _binding.ffi.buffer(buf, num_bytes)[:] +- return rand_bytes +- +- + class CryptographyECKey(Key): + SHA256 = hashes.SHA256 + SHA384 = hashes.SHA384 diff --git a/pkgs/development/python-modules/python-jose/default.nix b/pkgs/development/python-modules/python-jose/default.nix index 1c1302f803c3f..35c35dbea616c 100644 --- a/pkgs/development/python-modules/python-jose/default.nix +++ b/pkgs/development/python-modules/python-jose/default.nix @@ -24,6 +24,11 @@ buildPythonPackage rec { hash = "sha256-rPtOZ25aKIN+g3cyv8n6cNejoj3yKk4zpjdLDyEG1e4="; }; + patches = [ + # https://github.com/mpdavis/python-jose/pull/381 + ./cryptography-45.0.patch + ]; + pythonRelaxDeps = [ # https://github.com/mpdavis/python-jose/pull/376 "pyasn1" diff --git a/pkgs/development/python-modules/python-telegram-bot/default.nix b/pkgs/development/python-modules/python-telegram-bot/default.nix index efd3f5c4bb422..fdcffd2da4794 100644 --- a/pkgs/development/python-modules/python-telegram-bot/default.nix +++ b/pkgs/development/python-modules/python-telegram-bot/default.nix @@ -24,7 +24,7 @@ buildPythonPackage rec { pname = "python-telegram-bot"; - version = "22.0"; + version = "22.1"; pyproject = true; disabled = pythonOlder "3.8"; @@ -33,7 +33,7 @@ buildPythonPackage rec { owner = "python-telegram-bot"; repo = "python-telegram-bot"; tag = "v${version}"; - hash = "sha256-/8sWlq2f71B3Y2fAsdluGqW5I07KNfFmqtXtk+7crE4="; + hash = "sha256-zysqE1WZCHdoJUr9+yE7L5xY5pInNUKC4qw4v3zPSRg="; }; build-system = [ diff --git a/pkgs/development/python-modules/pyzmq/default.nix b/pkgs/development/python-modules/pyzmq/default.nix index 2be93e0b00a28..591b0df0ca2e0 100644 --- a/pkgs/development/python-modules/pyzmq/default.nix +++ b/pkgs/development/python-modules/pyzmq/default.nix @@ -24,14 +24,14 @@ buildPythonPackage rec { pname = "pyzmq"; - version = "26.3.0"; + version = "26.4.0"; pyproject = true; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - hash = "sha256-8c1ouCNvqreBOKj8cD98oK1DGxej/KxpY1hgDU5iQ7M="; + hash = "sha256-S9E/hfgJYvkaZRpzVv4EcnkaX3qS8ieCK1rPRHlcYm0="; }; build-system = [ diff --git a/pkgs/development/python-modules/redis/default.nix b/pkgs/development/python-modules/redis/default.nix index 835b6f1a38147..64ec9fa2f62ac 100644 --- a/pkgs/development/python-modules/redis/default.nix +++ b/pkgs/development/python-modules/redis/default.nix @@ -4,10 +4,12 @@ buildPythonPackage, pythonOlder, - # propagates + # build-system + hatchling, + + # dependencies async-timeout, deprecated, - importlib-metadata, packaging, typing-extensions, @@ -22,22 +24,24 @@ buildPythonPackage rec { pname = "redis"; - version = "5.2.1"; - format = "setuptools"; + version = "6.1.0"; + pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-FvLiLf8h1RJehIFRXjhnEaNMvsUPDkRBPdfZwGClTg8="; + hash = "sha256-ySjiZ61p0waa8oqYI6B3Ju33LH43dk9D3AEj83kowHU="; }; - propagatedBuildInputs = [ + build-system = [ hatchling ]; + + dependencies = [ async-timeout deprecated packaging typing-extensions - ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ]; + ]; optional-dependencies = { hiredis = [ hiredis ]; diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix index 52a1bde5552cb..04d6fada9d2d7 100644 --- a/pkgs/development/python-modules/reportlab/default.nix +++ b/pkgs/development/python-modules/reportlab/default.nix @@ -17,7 +17,7 @@ let in buildPythonPackage rec { pname = "reportlab"; - version = "4.4.0"; + version = "4.4.1"; pyproject = true; # See https://bitbucket.org/pypy/compatibility/wiki/reportlab%20toolkit @@ -25,7 +25,7 @@ buildPythonPackage rec { src = fetchPypi { inherit pname version; - hash = "sha256-pk2FUTkQ4kbCHcl8zDyQVKHUQ3C/j8H6uAr5N4FDVNU="; + hash = "sha256-X5ufwLekjokSwlzPadJrgpgKsNpxjk9YP6cg6Pj1Bz8="; }; postPatch = '' diff --git a/pkgs/development/python-modules/rich-toolkit/default.nix b/pkgs/development/python-modules/rich-toolkit/default.nix index 1fe3715687a51..12a34cb96ccf9 100644 --- a/pkgs/development/python-modules/rich-toolkit/default.nix +++ b/pkgs/development/python-modules/rich-toolkit/default.nix @@ -18,14 +18,14 @@ buildPythonPackage rec { pname = "rich-toolkit"; - version = "0.14.1"; + version = "0.14.6"; pyproject = true; src = fetchFromGitHub { owner = "patrick91"; repo = "rich-toolkit"; tag = "v${version}"; - hash = "sha256-RoK84ejiJRgcs4bEJTBAGULDPDJh6rtrxrovwKWZ/Oc="; + hash = "sha256-SHQZ0idEx/zDEtP0xQoJg7eUT8+SqLdWljxfTgXzjkk="; }; build-system = [ diff --git a/pkgs/development/python-modules/rpds-py/default.nix b/pkgs/development/python-modules/rpds-py/default.nix index d5d21f3cf6f20..1b676fb9b96bc 100644 --- a/pkgs/development/python-modules/rpds-py/default.nix +++ b/pkgs/development/python-modules/rpds-py/default.nix @@ -12,19 +12,19 @@ buildPythonPackage rec { pname = "rpds-py"; - version = "0.24.0"; + version = "0.25.0"; pyproject = true; src = fetchPypi { pname = "rpds_py"; inherit version; - hash = "sha256-dyzBss2WPn4X5sxV/gNx+5xwTWPkTKzse5t/Ujt4kZ4="; + hash = "sha256-TZdmG/WEjdnl633tSA3sz50yzizVALiKJqy/e9KGSYU="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit src; name = "${pname}-${version}"; - hash = "sha256-AHmnDTHuoB9wHH4CH20C+hFi9WaQBoUNMIvTIZlajVw="; + hash = "sha256-0wMmhiUjXY5DaA43l7kBKE7IX1UoEFZBJ8xnafVlU60="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix index 80dffc4a3696f..e763c70e25bac 100644 --- a/pkgs/development/python-modules/rq/default.nix +++ b/pkgs/development/python-modules/rq/default.nix @@ -16,7 +16,6 @@ psutil, pytestCheckHook, redisTestHook, - sentry-sdk, versionCheckHook, }: @@ -44,18 +43,22 @@ buildPythonPackage rec { psutil pytestCheckHook redisTestHook - sentry-sdk versionCheckHook ]; versionCheckProgramArg = "--version"; __darwinAllowLocalNetworking = true; - disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [ - # PermissionError: [Errno 13] Permission denied: '/tmp/rq-tests.txt' - "test_deleted_jobs_arent_executed" - "test_suspend_worker_execution" - ]; + disabledTests = + [ + # https://github.com/rq/rq/issues/2248 + "test_work_and_quit" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # PermissionError: [Errno 13] Permission denied: '/tmp/rq-tests.txt' + "test_deleted_jobs_arent_executed" + "test_suspend_worker_execution" + ]; pythonImportsCheck = [ "rq" ]; diff --git a/pkgs/development/python-modules/s3transfer/default.nix b/pkgs/development/python-modules/s3transfer/default.nix index dcf80fc53d4e4..358fee1ad8679 100644 --- a/pkgs/development/python-modules/s3transfer/default.nix +++ b/pkgs/development/python-modules/s3transfer/default.nix @@ -5,22 +5,19 @@ buildPythonPackage, fetchFromGitHub, pytestCheckHook, - pythonOlder, setuptools, }: buildPythonPackage rec { pname = "s3transfer"; - version = "0.11.2"; + version = "0.12.0"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "boto"; repo = "s3transfer"; tag = version; - hash = "sha256-59uyCgormgRX1JnOUtZv6wRXQiy5CvM/2sSzSC3h1Rc="; + hash = "sha256-CCsZUQHP/DsRozynbDeVOuAXjRAy+klaPGVJY3h/FAs="; }; build-system = [ diff --git a/pkgs/development/python-modules/scikit-build-core/default.nix b/pkgs/development/python-modules/scikit-build-core/default.nix index 20d0aee542290..77ac79ec10dc0 100644 --- a/pkgs/development/python-modules/scikit-build-core/default.nix +++ b/pkgs/development/python-modules/scikit-build-core/default.nix @@ -30,14 +30,14 @@ buildPythonPackage rec { pname = "scikit-build-core"; - version = "0.11.1"; + version = "0.11.3"; pyproject = true; src = fetchFromGitHub { owner = "scikit-build"; repo = "scikit-build-core"; rev = "refs/tags/v${version}"; - hash = "sha256-Tn4IyVbDNImSMOwL17D3W9I+mWS1aaTHr0LRR+in+IY="; + hash = "sha256-RtRk0g0ZREFPjm2i2uTqV3UfKZ/aDHUGyju3SI8vs0Y="; }; postPatch = lib.optionalString (pythonOlder "3.11") '' diff --git a/pkgs/development/python-modules/setproctitle/default.nix b/pkgs/development/python-modules/setproctitle/default.nix index 05452c56951a1..e9aeda152d3ec 100644 --- a/pkgs/development/python-modules/setproctitle/default.nix +++ b/pkgs/development/python-modules/setproctitle/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "setproctitle"; - version = "1.3.5"; + version = "1.3.6"; pyproject = true; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - hash = "sha256-Hm6ur4pzTUKKldjBBGQ7Oa99JH1gT0CnvrzzlgqFPF4="; + hash = "sha256-yfMrlscAuzhPM/fPB5VLtgnTXdgnUs71f7LuCWhAkWk="; }; nativeBuildInputs = [ setuptools ]; diff --git a/pkgs/development/python-modules/setuptools-rust/default.nix b/pkgs/development/python-modules/setuptools-rust/default.nix index 9b3ac12d5661e..802c8a8ed901b 100644 --- a/pkgs/development/python-modules/setuptools-rust/default.nix +++ b/pkgs/development/python-modules/setuptools-rust/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "setuptools-rust"; - version = "1.11.0"; + version = "1.11.1"; format = "pyproject"; disabled = pythonOlder "3.6"; @@ -25,7 +25,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "setuptools_rust"; inherit version; - hash = "sha256-92XWbz3vb9yF4ebYicaoEq6hQwyNrc8ce2d5tF+HT7I="; + hash = "sha256-favEOSJSztMUuAUNYyduBf3F0yOY/H08zh9qasNbdsA="; }; build-system = [ diff --git a/pkgs/development/python-modules/setuptools-scm/default.nix b/pkgs/development/python-modules/setuptools-scm/default.nix index a33e93f001be7..3cd9f69060238 100644 --- a/pkgs/development/python-modules/setuptools-scm/default.nix +++ b/pkgs/development/python-modules/setuptools-scm/default.nix @@ -19,13 +19,13 @@ buildPythonPackage rec { pname = "setuptools-scm"; - version = "8.2.0"; + version = "8.3.1"; pyproject = true; src = fetchPypi { pname = "setuptools_scm"; inherit version; - hash = "sha256-oYOWobwCGcl00adGErEfnc4NW9ix3FXGX2rH/WCejCg="; + hash = "sha256-PVVekrddrNA30yuv35T5evUeoprox7I0z5S3pb0kKmM="; }; postPatch = diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix index 99d3c13fea109..6590a4d126d73 100644 --- a/pkgs/development/python-modules/setuptools/default.nix +++ b/pkgs/development/python-modules/setuptools/default.nix @@ -9,20 +9,25 @@ buildPythonPackage rec { pname = "setuptools"; - version = "78.1.0"; + version = "80.7.1"; pyproject = true; src = fetchFromGitHub { owner = "pypa"; repo = "setuptools"; tag = "v${version}"; - hash = "sha256-6vJ7nzpbm34cpso21Pnh9Ej9AhJa+4/K22XrwuF0R3k="; + hash = "sha256-lOGvJoVwFxASI7e5fJkeS7iGOIPklGRYmmMfclqn0H4="; }; patches = [ ./tag-date.patch ]; + # Drop dependency on coherent.license, which in turn requires coherent.build + postPatch = '' + sed -i "/coherent.licensed/d" pyproject.toml + ''; + preBuild = lib.optionalString (!stdenv.hostPlatform.isWindows) '' export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0 ''; diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix index 91add277496e5..3e204277afbe2 100644 --- a/pkgs/development/python-modules/shapely/default.nix +++ b/pkgs/development/python-modules/shapely/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "shapely"; - version = "2.0.7"; + version = "2.1.0"; pyproject = true; disabled = pythonOlder "3.7"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "shapely"; repo = "shapely"; tag = version; - hash = "sha256-oq08nDeCdS6ARISai/hKM74v+ezSxO2PpSzas/ZFVaw="; + hash = "sha256-Co3acjWsGWjwzMoklRx2CqBDOlEpaj3wWenLWxopvKY="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/shlib/default.nix b/pkgs/development/python-modules/shlib/default.nix index 26e252233054f..cc856a3fd437e 100644 --- a/pkgs/development/python-modules/shlib/default.nix +++ b/pkgs/development/python-modules/shlib/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "shlib"; - version = "1.6"; + version = "1.7"; pyproject = true; src = fetchFromGitHub { owner = "KenKundert"; repo = "shlib"; tag = "v${version}"; - hash = "sha256-f2jJgpjybutCpYnIT+RihtoA1YlXdhTs+MvV8bViSMQ="; + hash = "sha256-clhiTuU5vvZSzdGPA3CISiBTnAahvv1SOKAfMpb6lYU="; }; postPatch = '' diff --git a/pkgs/development/python-modules/snowballstemmer/default.nix b/pkgs/development/python-modules/snowballstemmer/default.nix index 37a2a51390d86..e1c49af9e2209 100644 --- a/pkgs/development/python-modules/snowballstemmer/default.nix +++ b/pkgs/development/python-modules/snowballstemmer/default.nix @@ -7,12 +7,12 @@ buildPythonPackage rec { pname = "snowballstemmer"; - version = "2.2.0"; + version = "3.0.1"; format = "setuptools"; src = fetchPypi { inherit pname version; - sha256 = "09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"; + sha256 = "sha256-bV7u7I6fhNTVa4R2krrPebwsjpDH+AykRE/4tvLlKJU="; }; # No tests included diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix index bb904c170db2d..2bcb2cc5f9693 100644 --- a/pkgs/development/python-modules/snowflake-connector-python/default.nix +++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix @@ -2,6 +2,8 @@ lib, asn1crypto, buildPythonPackage, + boto3, + botocore, certifi, cffi, charset-normalizer, @@ -30,7 +32,7 @@ buildPythonPackage rec { pname = "snowflake-connector-python"; - version = "3.14.0"; + version = "3.15.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -39,7 +41,7 @@ buildPythonPackage rec { owner = "snowflakedb"; repo = "snowflake-connector-python"; tag = "v${version}"; - hash = "sha256-r3g+eVVyK9t5qpAGvimapuWilAh3eHJEFUw8VBwtKw8="; + hash = "sha256-Dz5jxmbBfWThmd7H0MIO5+DfnjpDw9ADHg5Sc7P+DYs="; }; build-system = [ @@ -49,6 +51,8 @@ buildPythonPackage rec { dependencies = [ asn1crypto + boto3 + botocore certifi cffi charset-normalizer @@ -100,6 +104,9 @@ buildPythonPackage rec { "test/unit/test_ocsp.py" "test/unit/test_retry_network.py" "test/unit/test_s3_util.py" + # AssertionError: /build/source/.wiremock/wiremock-standalone.jar does not exist + "test/unit/test_programmatic_access_token.py" + "test/unit/test_oauth_token.py" ]; disabledTests = [ diff --git a/pkgs/development/python-modules/soupsieve/default.nix b/pkgs/development/python-modules/soupsieve/default.nix index ae4e101f5f648..784e2423d8cf8 100644 --- a/pkgs/development/python-modules/soupsieve/default.nix +++ b/pkgs/development/python-modules/soupsieve/default.nix @@ -7,12 +7,12 @@ buildPythonPackage rec { pname = "soupsieve"; - version = "2.6"; + version = "2.7"; format = "pyproject"; src = fetchPypi { inherit pname version; - hash = "sha256-4uaEF3d681nsZdqsEFdASjyKVFW7irw28amGarGlGrs="; + hash = "sha256-rSgvm2kmKG0urUdQVSyKYUK8THg/1msCk1R8j+auEmo="; }; nativeBuildInputs = [ hatchling ]; diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix index 8e82679242683..f48abe0214bed 100644 --- a/pkgs/development/python-modules/sqlalchemy/default.nix +++ b/pkgs/development/python-modules/sqlalchemy/default.nix @@ -43,7 +43,7 @@ buildPythonPackage rec { pname = "sqlalchemy"; - version = "2.0.40"; + version = "2.0.41"; pyproject = true; disabled = pythonOlder "3.7"; @@ -52,7 +52,7 @@ buildPythonPackage rec { owner = "sqlalchemy"; repo = "sqlalchemy"; tag = "rel_${lib.replaceStrings [ "." ] [ "_" ] version}"; - hash = "sha256-RMfK6XrO7WjDw0T31IY4Hi2C68CsBCwAih/Z5SNS/iY="; + hash = "sha256-DixgBUI+HJLTCsunN5Y+ogcAHnRnQ3CKSFc6HrxzsPM="; }; postPatch = '' diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix index d1fea7a447503..1033df5d72208 100644 --- a/pkgs/development/python-modules/starlette/default.nix +++ b/pkgs/development/python-modules/starlette/default.nix @@ -28,7 +28,7 @@ buildPythonPackage rec { pname = "starlette"; - version = "0.46.1"; + version = "0.46.2"; pyproject = true; disabled = pythonOlder "3.8"; @@ -37,7 +37,7 @@ buildPythonPackage rec { owner = "encode"; repo = "starlette"; tag = version; - hash = "sha256-X/lMo9HY/3NI/dxCS3enpSjHwbEdwQk6sQiAFIUi1JQ="; + hash = "sha256-K/0Y6plw+zbRKpzSLbEG6xb30e/Ou//4jddpUYdfs/k="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix index eb983031909bb..80a8fe7e51fb6 100644 --- a/pkgs/development/python-modules/streamlit/default.nix +++ b/pkgs/development/python-modules/streamlit/default.nix @@ -42,6 +42,8 @@ buildPythonPackage rec { setuptools ]; + pythonRelaxDeps = [ "packaging" ]; + dependencies = [ altair blinker diff --git a/pkgs/development/python-modules/stringly/default.nix b/pkgs/development/python-modules/stringly/default.nix index c7637bb082c7c..342e2f559c135 100644 --- a/pkgs/development/python-modules/stringly/default.nix +++ b/pkgs/development/python-modules/stringly/default.nix @@ -1,23 +1,30 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, + flit-core, typing-extensions, }: buildPythonPackage rec { pname = "stringly"; - version = "1.0b2"; - format = "setuptools"; + version = "1.0b3"; + pyproject = true; - src = fetchPypi { - inherit pname version; - sha256 = "09fi9dgf27v4qi0mwwms7hpwim9qpyalckd66p7nlmfp6c8bzppq"; + src = fetchFromGitHub { + owner = "evalf"; + repo = "stringly"; + tag = "v${version}"; + hash = "sha256-OAATONkok9M2pVoChtwWMPPU/bhAxGf+BFawy9g3iZI="; }; + build-system = [ flit-core ]; + + dependencies = [ typing-extensions ]; + pythonImportsCheck = [ "stringly" ]; - propagatedBuildInputs = [ typing-extensions ]; + doCheck = false; # no tests meta = with lib; { description = "Stringly: Human Readable Object Serialization"; diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix index 42b7fac621ec1..60e199561ab8d 100644 --- a/pkgs/development/python-modules/stripe/default.nix +++ b/pkgs/development/python-modules/stripe/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "stripe"; - version = "11.6.0"; + version = "12.1.0"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-DO18ziOmyxo5PIah9/lDXJ2Drny9VWNihoyvYstEqSw="; + hash = "sha256-SkuFFpUs9QlemCJX8NR8RcHSu/d0PiyxLWaF9V2ouNQ="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix index a4360a586c913..02a2bb5725894 100644 --- a/pkgs/development/python-modules/sympy/default.nix +++ b/pkgs/development/python-modules/sympy/default.nix @@ -11,12 +11,12 @@ buildPythonPackage rec { pname = "sympy"; - version = "1.13.3"; + version = "1.14.0"; format = "setuptools"; src = fetchPypi { inherit pname version; - hash = "sha256-sn/SxlMOCrOeJ1/JtoOJU2flHV2pG6qNPWTbJWX+xNk="; + hash = "sha256-09P+jfHloLQvDnvfUFQWl9vn0jdG6JSZDAMOKwXnJRc="; }; nativeCheckInputs = [ glibcLocales ]; diff --git a/pkgs/development/python-modules/tenacity/default.nix b/pkgs/development/python-modules/tenacity/default.nix index 0def5a0322435..39d0ab9086f2a 100644 --- a/pkgs/development/python-modules/tenacity/default.nix +++ b/pkgs/development/python-modules/tenacity/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "tenacity"; - version = "9.0.0"; + version = "9.1.2"; pyproject = true; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - hash = "sha256-gH83ypfWKqNhJk1Jew4x6SuAJwRJQr+nVhYNkIMg1zs="; + hash = "sha256-EWnTdsKX5944jRi0SBdg1Hiw6Zp3fK06nIblVvS2l8s="; }; build-system = [ setuptools-scm ]; diff --git a/pkgs/development/python-modules/termcolor/default.nix b/pkgs/development/python-modules/termcolor/default.nix index 7dd4e5fc12e39..eae96afd7b584 100644 --- a/pkgs/development/python-modules/termcolor/default.nix +++ b/pkgs/development/python-modules/termcolor/default.nix @@ -9,12 +9,12 @@ buildPythonPackage rec { pname = "termcolor"; - version = "3.0.0"; + version = "3.1.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-DNhVyHFjg/FSrQK7s5hB1uRpRTj/XUJAiOVsi4H95SU="; + hash = "sha256-am3X++5YGQnu7Gp1bP8df3w3YGOxTkopjcSYAwnlWXA="; }; build-system = [ diff --git a/pkgs/development/python-modules/textfsm/default.nix b/pkgs/development/python-modules/textfsm/default.nix index 89ba02bf4f258..397b1cb2ce272 100644 --- a/pkgs/development/python-modules/textfsm/default.nix +++ b/pkgs/development/python-modules/textfsm/default.nix @@ -2,33 +2,23 @@ lib, buildPythonPackage, fetchFromGitHub, - six, - future, + setuptools, pytestCheckHook, }: buildPythonPackage rec { pname = "textfsm"; - version = "1.1.3"; - format = "setuptools"; + version = "2.1.0"; + pyproject = true; src = fetchFromGitHub { owner = "google"; repo = pname; - rev = "v${version}"; - hash = "sha256-IHgKG8v0X+LSK6purWBdwDnI/BCs5XA12ZJixuqqXWg="; + tag = "v${version}"; + hash = "sha256-ygVcDdT85mRN+qYfTZqraRVyp2JlLwwujBW1e/pPJNc="; }; - # upstream forgot to update the release version - postPatch = '' - substituteInPlace textfsm/__init__.py \ - --replace "1.1.2" "1.1.3" - ''; - - propagatedBuildInputs = [ - six - future - ]; + build-system = [ setuptools ]; nativeCheckInputs = [ pytestCheckHook ]; diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix index 5573a94ddbcd0..7630498748413 100644 --- a/pkgs/development/python-modules/tifffile/default.nix +++ b/pkgs/development/python-modules/tifffile/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "tifffile"; - version = "2025.3.30"; + version = "2025.5.10"; pyproject = true; disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; - hash = "sha256-PN7kf+Bs11NnwWvD/zRSNxMVba5s1Jjjo5Lls5pRt4k="; + hash = "sha256-AYM100KDqj/YwmO65cPCtmHrxFVI/eMVBAFvyue/EQM="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/tox/default.nix b/pkgs/development/python-modules/tox/default.nix index 3e8ba4b612778..5da04bdd9168c 100644 --- a/pkgs/development/python-modules/tox/default.nix +++ b/pkgs/development/python-modules/tox/default.nix @@ -24,14 +24,14 @@ buildPythonPackage rec { pname = "tox"; - version = "4.23.2"; + version = "4.26.0"; format = "pyproject"; src = fetchFromGitHub { owner = "tox-dev"; repo = "tox"; tag = version; - hash = "sha256-rjz+CSGuGlQy9oneISJJo8doQf7abE9gNVpAnhD8Os8="; + hash = "sha256-VySdeZDC71vi2mOtjdFJ4iCSpWbFEW3nzrVucPUz/oc="; }; postPatch = '' diff --git a/pkgs/development/python-modules/trio/default.nix b/pkgs/development/python-modules/trio/default.nix index bc5b4ee8b4401..288e7db4add03 100644 --- a/pkgs/development/python-modules/trio/default.nix +++ b/pkgs/development/python-modules/trio/default.nix @@ -35,7 +35,7 @@ let in buildPythonPackage rec { pname = "trio"; - version = "0.29.0"; + version = "0.30.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -44,7 +44,7 @@ buildPythonPackage rec { owner = "python-trio"; repo = "trio"; tag = "v${version}"; - hash = "sha256-f77HXhXkPu2GMKCFqahfiP0EgpjyRqWaxzduqM2oXtA="; + hash = "sha256-spYHwVq3iNhnZQf2z7aTyDuSCiSl3X5PD6siXqLC4EA="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/trove-classifiers/default.nix b/pkgs/development/python-modules/trove-classifiers/default.nix index 15faedfdf893c..fd81fb7153236 100644 --- a/pkgs/development/python-modules/trove-classifiers/default.nix +++ b/pkgs/development/python-modules/trove-classifiers/default.nix @@ -11,7 +11,7 @@ let self = buildPythonPackage rec { pname = "trove-classifiers"; - version = "2025.3.19.19"; + version = "2025.5.9.12"; pyproject = true; disabled = pythonOlder "3.7"; @@ -19,7 +19,7 @@ let src = fetchPypi { pname = "trove_classifiers"; inherit version; - hash = "sha256-mOnTlv6QjV9Dt0VPpMQ9F80P2t8Eb0X7OKXjr42Vns0="; + hash = "sha256-fKfIp6duLNMURoxnfGnRLMI1dxH8q0pg+HmUwVieXLU="; }; build-system = [ diff --git a/pkgs/development/python-modules/typer/default.nix b/pkgs/development/python-modules/typer/default.nix index 70e8a2eccb57b..2f6da0bfae78b 100644 --- a/pkgs/development/python-modules/typer/default.nix +++ b/pkgs/development/python-modules/typer/default.nix @@ -25,14 +25,14 @@ buildPythonPackage rec { pname = "typer"; - version = "0.15.2"; + version = "0.15.4"; pyproject = true; src = fetchFromGitHub { owner = "fastapi"; repo = "typer"; tag = version; - hash = "sha256-9YukmX16fn5u7N9K9fUqZsAzKjio4bl70gHNmsYuQxo"; + hash = "sha256-lZJKE8bxYxmDxAmnL7L/fL89gMe44voyHT20DUazd9E="; }; build-system = [ pdm-backend ]; diff --git a/pkgs/development/python-modules/typing-inspection/default.nix b/pkgs/development/python-modules/typing-inspection/default.nix index 461d1d1b4add1..9c09a8fdcfec4 100644 --- a/pkgs/development/python-modules/typing-inspection/default.nix +++ b/pkgs/development/python-modules/typing-inspection/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "typing-inspection"; - version = "0.4.0"; + version = "0.4.1"; pyproject = true; src = fetchFromGitHub { owner = "pydantic"; repo = "typing-inspection"; tag = "v${version}"; - hash = "sha256-sWWO+TRqNf791s+q5YeEcl9ZMHCBuxQLGXHmEk1AU0Y="; + hash = "sha256-MzOXl1i+rmr08TSH3Nxc0fFkcjATY6i9dFRLsYp+5m0="; }; build-system = [ hatchling ]; @@ -32,7 +32,7 @@ buildPythonPackage rec { ]; meta = { - changelog = "https://github.com/pydantic/typing-inspection/releases/tag/${src.tag}"; + changelog = "https://github.com/pydantic/typing-inspection/blob/${src.tag}/HISTORY.md"; description = "Runtime typing introspection tools"; homepage = "https://github.com/pydantic/typing-inspection"; license = lib.licenses.mit; diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix index 4ccd320b6bb14..8f2e69850e270 100644 --- a/pkgs/development/python-modules/urllib3/default.nix +++ b/pkgs/development/python-modules/urllib3/default.nix @@ -23,12 +23,12 @@ let self = buildPythonPackage rec { pname = "urllib3"; - version = "2.3.0"; + version = "2.4.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-+MVEmzzwhhZ5zn4FA8e0S17Jgb7A0dN5WgfxupbwIE0="; + hash = "sha256-QUvGU1t4f+vXVngEzAFf7jnaq4rYYmjxMQqSUGl95GY="; }; build-system = [ diff --git a/pkgs/development/python-modules/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix index 3719fd5f674ad..f9a95d3fe3d1b 100644 --- a/pkgs/development/python-modules/uvicorn/default.nix +++ b/pkgs/development/python-modules/uvicorn/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "uvicorn"; - version = "0.34.0"; + version = "0.34.2"; disabled = pythonOlder "3.8"; pyproject = true; @@ -27,7 +27,7 @@ buildPythonPackage rec { owner = "encode"; repo = "uvicorn"; tag = version; - hash = "sha256-bOHHDwkTa742yRUhXh8NjbC95VabtRnQjBPk+q/tkxY="; + hash = "sha256-r5G3Z2sMFCs5HlUpVQ05Vip+3MjlSy+3Dkv6FO52uh4="; }; outputs = [ diff --git a/pkgs/development/python-modules/validators/default.nix b/pkgs/development/python-modules/validators/default.nix index 3ba415dbd3177..079ff89d40496 100644 --- a/pkgs/development/python-modules/validators/default.nix +++ b/pkgs/development/python-modules/validators/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "validators"; - version = "0.34.0"; + version = "0.35.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "python-validators"; repo = "validators"; tag = version; - hash = "sha256-1QKo6nidaHeKCbti/xALbgylHYbtBUJlWrjhNtdx8kU="; + hash = "sha256-b3kjKbqmfny6YnU0rlrralTgvYT06sUpckI4EDKDleA="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/valkey/default.nix b/pkgs/development/python-modules/valkey/default.nix new file mode 100644 index 0000000000000..3f56124ed71d3 --- /dev/null +++ b/pkgs/development/python-modules/valkey/default.nix @@ -0,0 +1,96 @@ +{ + lib, + fetchFromGitHub, + buildPythonPackage, + pythonOlder, + + # build-system + setuptools, + + # dependencies + async-timeout, + + # optional-dependencies + cryptography, + pyopenssl, + requests, + + # tests + cachetools, + mock, + packaging, + pytestCheckHook, + pytest-asyncio, + pytest-timeout, + redisTestHook, + ujson, + uvloop, +}: + +buildPythonPackage rec { + pname = "valkey"; + version = "6.1.0"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "valkey-io"; + repo = "valkey-py"; + tag = "v${version}"; + hash = "sha256-TaAkifgasirA72OSO+up0+1EUhCENKba7vPIJxhTkh8="; + }; + + build-system = [ setuptools ]; + + dependencies = lib.optionals (pythonOlder "3.11") [ async-timeout ]; + + optional-dependencies = { + # TODO: libvalkey = [ libvalkey ]; + ocsp = [ + cryptography + pyopenssl + requests + ]; + }; + + pythonImportsCheck = [ + "valkey" + "valkey.client" + "valkey.cluster" + "valkey.connection" + "valkey.exceptions" + "valkey.sentinel" + "valkey.utils" + ]; + + nativeCheckInputs = [ + cachetools + mock + packaging + pytestCheckHook + pytest-asyncio + pytest-timeout + redisTestHook + ujson + uvloop + ] ++ lib.flatten (lib.attrValues optional-dependencies); + + pytestFlagsArray = [ "-m 'not onlycluster and not ssl'" ]; + + disabledTests = [ + # valkey.sentinel.MasterNotFoundError: No master found for 'valkey-py-test' + "test_get_from_cache" + "test_cache_decode_response" + # Expects another valkey instance on port 6380 *shrug* + "test_psync" + ]; + + meta = with lib; { + description = "Python client for Redis key-value store"; + homepage = "https://github.com/valkey-io/valkey-py"; + changelog = "https://github.com/valkey-io/valkey-py/releases/tag/${src.tag}"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix index 9485a56249e01..8258b6e0d1762 100644 --- a/pkgs/development/python-modules/virtualenv/default.nix +++ b/pkgs/development/python-modules/virtualenv/default.nix @@ -21,14 +21,14 @@ buildPythonPackage rec { pname = "virtualenv"; - version = "20.30.0"; + version = "20.31.2"; format = "pyproject"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-gAhjFivKpUUKbk1yEElzDn8trgdyDgkCsOQEC9b5rag="; + hash = "sha256-4QwKnQKDXlklIb5IszK2yu5oh/MywRGqeaCbnnnvwq8="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch b/pkgs/development/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch deleted file mode 100644 index 8e70f0069d654..0000000000000 --- a/pkgs/development/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5879a4bbc34d1eb25e160b15b2f5a4f10eac6bd2 Mon Sep 17 00:00:00 2001 -From: toonn -Date: Mon, 13 Sep 2021 18:07:26 +0200 -Subject: [PATCH] =?UTF-8?q?tests:=20Rename=20a=CC=8Aa=CC=88o=CC=88=5F?= - =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E.py=20=3D>=20=C3=A6=C9=90=C3=B8=5F?= - =?UTF-8?q?=E6=97=A5=E6=9C=AC=E5=83=B9.py?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -`åäö_日本語.py` normalizes differently in NFC and NFD normal forms. This -means a hash generated for the source directory can differ depending on -whether or not the filesystem is normalizing and which normal form it -uses. - -By renaming the file to `æɐø_日本價.py` we avoid this issue by using a -name that has the same encoding in each normal form. ---- - tests/test_bdist_wheel.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/test_bdist_wheel.py b/tests/test_bdist_wheel.py -index 5a6db16..42cf121 100644 ---- a/tests/test_bdist_wheel.py -+++ b/tests/test_bdist_wheel.py -@@ -69,7 +69,7 @@ def test_unicode_record(wheel_paths): - with ZipFile(path) as zf: - record = zf.read("unicode.dist-0.1.dist-info/RECORD") - -- assert "åäö_日本語.py".encode() in record -+ assert "æɐø_日本價.py".encode() in record - - - UTF8_PKG_INFO = """\ diff --git a/pkgs/development/python-modules/wheel/default.nix b/pkgs/development/python-modules/wheel/default.nix index 1b46410e6eb8c..ffed1c4a18e02 100644 --- a/pkgs/development/python-modules/wheel/default.nix +++ b/pkgs/development/python-modules/wheel/default.nix @@ -7,7 +7,7 @@ buildPythonPackage rec { pname = "wheel"; - version = "0.45.1"; + version = "0.46.1"; pyproject = true; src = fetchFromGitHub { @@ -15,12 +15,6 @@ buildPythonPackage rec { repo = "wheel"; tag = version; hash = "sha256-tgueGEWByS5owdA5rhXGn3qh1Vtf0HGYC6+BHfrnGAs="; - postFetch = '' - cd $out - mv tests/testdata/unicode.dist/unicodedist/åäö_日本語.py \ - tests/testdata/unicode.dist/unicodedist/æɐø_日本價.py - patch -p1 < ${./0001-tests-Rename-a-a-o-_-.py-_-.py.patch} - ''; }; nativeBuildInputs = [ flit-core ]; diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix index b14920e347caf..b089e18cb966c 100644 --- a/pkgs/development/python-modules/xarray/default.nix +++ b/pkgs/development/python-modules/xarray/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "xarray"; - version = "2025.01.2"; + version = "2025.04.0"; pyproject = true; disabled = pythonOlder "3.10"; @@ -22,9 +22,14 @@ buildPythonPackage rec { owner = "pydata"; repo = "xarray"; tag = "v${version}"; - hash = "sha256-Ub3XHMhMnJ9i746o701PYSai8ulTdjLx4OWal2KUTLM="; + hash = "sha256-HEad3+JvLeBl4/vUFzTTdHz3Y4QjwvnycVkb9gV/8Qk="; }; + postPatch = '' + # don't depend on pytest-mypy-plugins + sed -i "/--mypy-/d" pyproject.toml + ''; + build-system = [ setuptools setuptools-scm diff --git a/pkgs/development/python-modules/yarl/default.nix b/pkgs/development/python-modules/yarl/default.nix index 9bc858c846366..0061b635ce6b7 100644 --- a/pkgs/development/python-modules/yarl/default.nix +++ b/pkgs/development/python-modules/yarl/default.nix @@ -17,14 +17,14 @@ buildPythonPackage rec { pname = "yarl"; - version = "1.18.3"; + version = "1.20.0"; pyproject = true; src = fetchFromGitHub { owner = "aio-libs"; repo = "yarl"; tag = "v${version}"; - hash = "sha256-j2z6YAFbQe26YUQGLBwLr9ztUoxMDJJGS9qYeVqSob0="; + hash = "sha256-O1ImUy+F+Ekj+Sij4XKC1cguTbbOPQbD2V5DpwDSxto="; }; build-system = [ diff --git a/pkgs/development/tools/hotdoc/default.nix b/pkgs/development/tools/hotdoc/default.nix index a8c1b30f53f8a..b641e3fe126c1 100644 --- a/pkgs/development/tools/hotdoc/default.nix +++ b/pkgs/development/tools/hotdoc/default.nix @@ -2,16 +2,17 @@ lib, stdenv, buildPythonApplication, - fetchpatch, fetchPypi, pytestCheckHook, pkg-config, cmake, + clang, flex, glib, json-glib, libxml2, appdirs, + backports-entry-points-selectable, dbus-deviation, faust-cchardet, feedgen, @@ -29,21 +30,15 @@ buildPythonApplication rec { pname = "hotdoc"; - version = "0.15"; - format = "setuptools"; + version = "0.17.4"; + pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-sfQ/iBd1Z+YqnaOg8j32rC2iucdiiK3Tff9NfYFnQyc="; + hash = "sha256-xNXf9kfwOqh6HS0GA10oGe3QmbkWNeOy7jkIKTV66fw="; }; - patches = [ - (fetchpatch { - name = "fix-test-hotdoc.patch"; - url = "https://github.com/hotdoc/hotdoc/commit/d2415a520e960a7b540742a0695b699be9189540.patch"; - hash = "sha256-9ORZ91c+/oRqEp2EKXjKkz7u8mLnWCq3uPsc3G4NB9E="; - }) - ]; + build-system = [ setuptools ]; nativeBuildInputs = [ pkg-config @@ -57,8 +52,9 @@ buildPythonApplication rec { libxml2.dev ]; - propagatedBuildInputs = [ + dependencies = [ appdirs + backports-entry-points-selectable dbus-deviation faust-cchardet feedgen @@ -73,6 +69,7 @@ buildPythonApplication rec { ]; nativeCheckInputs = [ + clang pytestCheckHook ]; @@ -86,8 +83,13 @@ buildPythonApplication rec { "hotdoc.extensions.gst.gst_extension" ]; - # Run the tests by package instead of current dir pytestFlagsArray = [ + # Executing hotdoc exits with code 1 + "--deselect tests/test_hotdoc.py::TestHotdoc::test_basic" + "--deselect tests/test_hotdoc.py::TestHotdoc::test_explicit_conf_file" + "--deselect tests/test_hotdoc.py::TestHotdoc::test_implicit_conf_file" + "--deselect tests/test_hotdoc.py::TestHotdoc::test_private_folder" + # Run the tests by package instead of current dir "--pyargs" "hotdoc" ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a7f8ab0af6dce..3ecb0a27f6b2d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6531,11 +6531,11 @@ with pkgs; # available as `pythonPackages.tkinter` and can be used as any other Python package. # When switching these sets, please update docs at ../../doc/languages-frameworks/python.md python2 = python27; - python3 = python312; + python3 = python313; # pythonPackages further below, but assigned here because they need to be in sync python2Packages = dontRecurseIntoAttrs python27Packages; - python3Packages = dontRecurseIntoAttrs python312Packages; + python3Packages = dontRecurseIntoAttrs python313Packages; pypy = pypy2; pypy2 = pypy27; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 7bdfd480f5c8a..5b122767add35 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -166,6 +166,7 @@ mapAliases ({ cryptacular = throw "cryptacular was removed, because it was disabled on all python version since 3.6 and last updated in 2021"; # Added 2024-05-13 cryptography_vectors = "cryptography_vectors is no longer exposed in python*Packages because it is used for testing cryptography only."; # Added 2022-03-23 cufflinks = throw "cufflinks has removed, since it is abandoned and broken"; # added 2025-02-16 + curve25519-donna = throw "unused leaf package with dead upstream repository and no release in 10 years"; # added 2025-05-21 cx_Freeze = cx-freeze; # added 2023-08-02 cx_oracle = cx-oracle; # added 2024-01-03 d2to1 = throw "d2to1 is archived and no longer works with setuptools v68"; # added 2023-07-30 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 764bab2093a5a..9fe1af33c0d81 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3060,8 +3060,6 @@ self: super: with self; { curtsies = callPackage ../development/python-modules/curtsies { }; - curve25519-donna = callPackage ../development/python-modules/curve25519-donna { }; - curvefitgui = callPackage ../development/python-modules/curvefitgui { }; customtkinter = callPackage ../development/python-modules/customtkinter { }; @@ -8280,7 +8278,7 @@ self: super: with self; { llvmlite = callPackage ../development/python-modules/llvmlite { # llvmlite always requires a specific version of llvm. - llvm = pkgs.llvm_15; + llvm = pkgs.llvm_16; }; lm-eval = callPackage ../development/python-modules/lm-eval { }; @@ -18671,6 +18669,8 @@ self: super: with self; { validobj = callPackage ../development/python-modules/validobj { }; + valkey = callPackage ../development/python-modules/valkey { }; + vallox-websocket-api = callPackage ../development/python-modules/vallox-websocket-api { }; vapoursynth = callPackage ../development/python-modules/vapoursynth { inherit (pkgs) vapoursynth; };