diff --git a/pkgs/by-name/se/search-vulns/package.nix b/pkgs/by-name/se/search-vulns/package.nix index ec0f84ff5f8f..e419934a7a78 100644 --- a/pkgs/by-name/se/search-vulns/package.nix +++ b/pkgs/by-name/se/search-vulns/package.nix @@ -4,16 +4,16 @@ fetchFromGitHub, }: -python3.pkgs.buildPythonApplication rec { +python3.pkgs.buildPythonApplication (finalAttrs: { pname = "search-vulns"; - version = "0.8.4"; + version = "1.0.2"; pyproject = true; src = fetchFromGitHub { owner = "ra1nb0rn"; repo = "search_vulns"; - tag = "v${version}"; - hash = "sha256-lvFx+ozbw7cYAJvaEFkeFxG+CfvbvDO0VRuNJ/Ub+bA="; + tag = "v${finalAttrs.version}"; + hash = "sha256-xdZq4Er+0CT59Iv0mEcmkZcUM+xbBi/x+TtBNCiyhbY="; fetchSubmodules = true; }; @@ -26,9 +26,11 @@ python3.pkgs.buildPythonApplication rec { aiolimiter cpe-search cvss + pydantic requests tqdm ujson + univers ]; optional-dependencies = with python3.pkgs; { @@ -42,9 +44,11 @@ python3.pkgs.buildPythonApplication rec { gunicorn mariadb markdown + pydantic requests tqdm ujson + univers ]; mariadb = [ mariadb ]; web = [ @@ -63,9 +67,9 @@ python3.pkgs.buildPythonApplication rec { meta = { description = "Search for known vulnerabilities in software using software titles or a CPE 2.3 string"; homepage = "https://github.com/ra1nb0rn/search_vulns"; - changelog = "https://github.com/ra1nb0rn/search_vulns/blob/${src.tag}/CHANGELOG.md"; + changelog = "https://github.com/ra1nb0rn/search_vulns/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; mainProgram = "search_vulns"; }; -} +}) diff --git a/pkgs/development/python-modules/apiflask/default.nix b/pkgs/development/python-modules/apiflask/default.nix new file mode 100644 index 000000000000..d602fffc52b1 --- /dev/null +++ b/pkgs/development/python-modules/apiflask/default.nix @@ -0,0 +1,72 @@ +{ + lib, + apispec, + asgiref, + buildPythonPackage, + fetchFromGitHub, + flask-httpauth, + flask-marshmallow, + flask-sqlalchemy, + flask, + marshmallow, + marshmallow-dataclass, + openapi-spec-validator, + pydantic, + pytest-cov-stub, + pytestCheckHook, + python-dotenv, + pyyaml, + setuptools, + webargs, +}: + +buildPythonPackage (finalAttrs: { + pname = "apiflask"; + version = "3.0.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "apiflask"; + repo = "apiflask"; + tag = finalAttrs.version; + hash = "sha256-1nWA2PDgTG++AA0pJeGDiSQyRqLRGfDuzRwfDl8RKl0="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + apispec + flask + flask-httpauth + flask-marshmallow + flask-sqlalchemy + marshmallow + marshmallow-dataclass + pydantic + webargs + ] + ++ pydantic.optional-dependencies.email; + + optional-dependencies = { + async = [ asgiref ]; + dotenv = [ python-dotenv ]; + yaml = [ pyyaml ]; + }; + + nativeCheckInputs = [ + openapi-spec-validator + pytest-cov-stub + pytestCheckHook + ] + ++ lib.flatten (builtins.attrValues finalAttrs.passthru.optional-dependencies); + + pythonImportsCheck = [ "apiflask" ]; + + meta = { + description = "Lightweight Python web API framework"; + homepage = "https://github.com/apiflask/apiflask"; + changelog = "https://github.com/apiflask/apiflask/blob/${finalAttrs.src.tag}/CHANGES.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/development/python-modules/marshmallow-dataclass/default.nix b/pkgs/development/python-modules/marshmallow-dataclass/default.nix index 1638fb33e17a..c229ae66d40c 100644 --- a/pkgs/development/python-modules/marshmallow-dataclass/default.nix +++ b/pkgs/development/python-modules/marshmallow-dataclass/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + fetchpatch, marshmallow, pytestCheckHook, setuptools, @@ -9,7 +10,7 @@ typing-inspect, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "marshmallow-dataclass"; version = "8.7.1"; pyproject = true; @@ -17,10 +18,19 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "lovasoa"; repo = "marshmallow_dataclass"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-0OXP78oyNe/UcI05NHskPyXAuX3dwAW4Uz4dI4b8KV0="; }; + patches = [ + # Fix test_set_only_work_in_hashable_types on Python 3.14, https://github.com/lovasoa/marshmallow_dataclass/pull/286 + (fetchpatch { + name = "fix-test.patch"; + url = "https://github.com/lovasoa/marshmallow_dataclass/commit/9a2ea19924a3cd5fadeb41663bfca64b9c0f75e4.patch"; + hash = "sha256-T2UbZdCj4+HRglMp8w3kU20sUcN6WoSyKiLNr1kSius="; + }) + ]; + build-system = [ setuptools ]; dependencies = [ @@ -48,8 +58,8 @@ buildPythonPackage rec { meta = { description = "Automatic generation of marshmallow schemas from dataclasses"; homepage = "https://github.com/lovasoa/marshmallow_dataclass"; - changelog = "https://github.com/lovasoa/marshmallow_dataclass/blob/v${version}/CHANGELOG.md"; + changelog = "https://github.com/lovasoa/marshmallow_dataclass/blob/v${finalAttrs.version}/CHANGELOG.md"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index abd85a81e1d8..c95665f430a5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -814,6 +814,8 @@ self: super: with self; { apeye-core = callPackage ../development/python-modules/apeye-core { }; + apiflask = callPackage ../development/python-modules/apiflask { }; + apipkg = callPackage ../development/python-modules/apipkg { }; apischema = callPackage ../development/python-modules/apischema { };