From cb55e580f0d8f15b2280ab3d9ffa9af7f515de5d Mon Sep 17 00:00:00 2001 From: p0lyw0lf Date: Sat, 24 May 2025 10:05:14 -0400 Subject: [PATCH] python3Packages.sanic-ext: init at 24.12.0 --- .../python-modules/sanic-ext/default.nix | 75 +++++++++++++++++++ .../python-modules/sanic/default.nix | 5 +- pkgs/top-level/python-packages.nix | 2 + 3 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/python-modules/sanic-ext/default.nix diff --git a/pkgs/development/python-modules/sanic-ext/default.nix b/pkgs/development/python-modules/sanic-ext/default.nix new file mode 100644 index 000000000000..581b44962816 --- /dev/null +++ b/pkgs/development/python-modules/sanic-ext/default.nix @@ -0,0 +1,75 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # Build system + setuptools, + + # Dependencies + pyyaml, + + # Test dependencies + pytestCheckHook, + + sanic-testing, + attrs, + coverage, + msgspec, + pydantic, + pytest, + pytest-cov, + pytest-asyncio, + tox, + jinja2, +}: + +buildPythonPackage rec { + pname = "sanic-ext"; + version = "24.12.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "sanic-org"; + repo = "sanic-ext"; + tag = "v${version}"; + hash = "sha256-H1tqiPQ4SwlNGj7GtB2h7noZpU+gbGXIbmRK1TSSqVA="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + pyyaml + ]; + + nativeCheckInputs = [ + pytestCheckHook + + sanic-testing + attrs + coverage + msgspec + pydantic + pytest + pytest-cov + pytest-asyncio + tox + jinja2 + ]; + + disabledTests = [ + "test_models[FooPydanticDataclass]" # KeyError: 'paths' + "test_pydantic_base_model[AlertResponsePydanticBaseModel-True]" # AssertionError: assert 'AlertPydanticBaseModel' in {'AlertResponsePydanticBaseModel': ... } + "test_pydantic_base_model[AlertResponsePydanticDataclass-True]" # AssertionError: assert 'AlertPydanticDataclass' in {'AlertResponsePydanticDataclass': ... } + ]; + + pythonImportsCheck = [ "sanic_ext" ]; + + meta = { + description = "Common, officially supported extension plugins for the Sanic web server framework"; + homepage = "https://github.com/sanic-org/sanic-ext/"; + changelog = "https://github.com/sanic-org/sanic-ext/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ p0lyw0lf ]; + }; +} diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix index 01b697d154be..e83b467fa52a 100644 --- a/pkgs/development/python-modules/sanic/default.nix +++ b/pkgs/development/python-modules/sanic/default.nix @@ -13,6 +13,7 @@ pytest-asyncio, pytestCheckHook, pythonOlder, + sanic-ext, sanic-routing, sanic-testing, setuptools, @@ -54,9 +55,7 @@ buildPythonPackage rec { ]; optional-dependencies = { - ext = [ - # TODO: sanic-ext - ]; + ext = [ sanic-ext ]; http3 = [ aioquic ]; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index fbd80431a5b1..dfcfa75cb13f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15515,6 +15515,8 @@ self: super: with self; { sanic-auth = callPackage ../development/python-modules/sanic-auth { }; + sanic-ext = callPackage ../development/python-modules/sanic-ext { }; + sanic-routing = callPackage ../development/python-modules/sanic-routing { }; sanic-testing = callPackage ../development/python-modules/sanic-testing { };