From e0fd0de587aa7a19d007694d0f2f753f05ac5c81 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 8 Aug 2025 19:39:53 +0200 Subject: [PATCH 1/2] python313Packages.uvicorn-worker: init at 0.3.0 Uvicorn worker for Gunicorn https://github.com/Kludex/uvicorn-worker --- .../python-modules/uvicorn-worker/default.nix | 52 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 54 insertions(+) create mode 100644 pkgs/development/python-modules/uvicorn-worker/default.nix diff --git a/pkgs/development/python-modules/uvicorn-worker/default.nix b/pkgs/development/python-modules/uvicorn-worker/default.nix new file mode 100644 index 000000000000..320dee57a853 --- /dev/null +++ b/pkgs/development/python-modules/uvicorn-worker/default.nix @@ -0,0 +1,52 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + gunicorn, + hatchling, + httpx, + pytestCheckHook, + trustme, + uvicorn, +}: + +buildPythonPackage rec { + pname = "uvicorn-worker"; + version = "0.3.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Kludex"; + repo = "uvicorn-worker"; + tag = version; + hash = "sha256-a5L4H1Bym5Dx9/pGL/Vz6ZO699t/1Wmc1ExIb0t/ISc="; + }; + + build-system = [ hatchling ]; + + dependencies = [ + gunicorn + uvicorn + ]; + + nativeCheckInputs = [ + gunicorn + httpx + pytestCheckHook + trustme + ]; + + preCheck = '' + export PATH="$PATH:$out/bin"; + ''; + + pythonImportsCheck = [ "uvicorn_worker" ]; + + meta = { + description = "Uvicorn worker for Gunicorn"; + homepage = "https://github.com/Kludex/uvicorn-worker"; + changelog = "https://github.com/Kludex/uvicorn-worker/releases/tag/${src.tag}"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 157c0c161964..6d259618a0ea 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -19260,6 +19260,8 @@ self: super: with self; { uvicorn = callPackage ../development/python-modules/uvicorn { }; + uvicorn-worker = callPackage ../development/python-modules/uvicorn-worker { }; + uvloop = callPackage ../development/python-modules/uvloop { }; uwsgi-chunked = callPackage ../development/python-modules/uwsgi-chunked { }; From b98ad28008b8602f12a261742e3b124a55294cfd Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 8 Aug 2025 19:41:42 +0200 Subject: [PATCH 2/2] python313Packages.functions-framework: 3.8.3 -> 3.9.2 Changelog: https://github.com/GoogleCloudPlatform/functions-framework-python/blob/v3.9.2/CHANGELOG.md --- .../functions-framework/default.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/functions-framework/default.nix b/pkgs/development/python-modules/functions-framework/default.nix index c519ba0a70fb..cd0e2177eba6 100644 --- a/pkgs/development/python-modules/functions-framework/default.nix +++ b/pkgs/development/python-modules/functions-framework/default.nix @@ -8,25 +8,29 @@ fetchFromGitHub, flask, gunicorn, + httpx, pretend, pytest-asyncio, pytestCheckHook, requests, setuptools, + starlette, + uvicorn, + uvicorn-worker, watchdog, werkzeug, }: buildPythonPackage rec { pname = "functions-framework"; - version = "3.8.3"; + version = "3.9.2"; pyproject = true; src = fetchFromGitHub { owner = "GoogleCloudPlatform"; repo = "functions-framework-python"; rev = "v${version}"; - hash = "sha256-kfoSGe08vCOXunzFH5FA7/NesOwAklfChKeoIfBXBlQ="; + hash = "sha256-TvC+URJtsquBX/5F5Z2Nw/4sD3hsvF2c/jlv87lGjfM="; }; build-system = [ setuptools ]; @@ -37,25 +41,29 @@ buildPythonPackage rec { deprecation flask gunicorn + starlette + uvicorn + uvicorn-worker watchdog werkzeug ]; nativeCheckInputs = [ docker + httpx pretend pytest-asyncio pytestCheckHook requests ]; + pythonImportsCheck = [ "functions_framework" ]; + disabledTests = [ # Test requires a running Docker instance "test_cloud_run_http" ]; - pythonImportsCheck = [ "functions_framework" ]; - meta = { description = "FaaS (Function as a service) framework for writing portable Python functions"; homepage = "https://github.com/GoogleCloudPlatform/functions-framework-python";