diff --git a/pkgs/development/python-modules/quart-cors/default.nix b/pkgs/development/python-modules/quart-cors/default.nix new file mode 100644 index 00000000000..8ffe47b4eda --- /dev/null +++ b/pkgs/development/python-modules/quart-cors/default.nix @@ -0,0 +1,59 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder + +# build-system +, poetry-core + +# propagates +, quart +, typing-extensions + +# tests +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "quart-cors"; + version = "0.6.0"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "pgjones"; + repo = "quart-cors"; + rev = "refs/tags/${version}"; + hash = "sha256-SbnYrpeyEn47JgP9p3Us0zfkjC1sJ7jPPUIHYHAiSgc="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace "--no-cov-on-fail " "" + ''; + + propagatedBuildInputs = [ + quart + ] ++ lib.optionals (pythonOlder "3.10") [ + typing-extensions + ]; + + pythonImportsCheck = [ + "quart_cors" + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "Quart-CORS is an extension for Quart to enable and control Cross Origin Resource Sharing, CORS"; + homepage = "https://github.com/pgjones/quart-cors/"; + changelog = "https://github.com/pgjones/quart-cors/blob/${src.rev}/CHANGELOG.rst"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/quart/default.nix b/pkgs/development/python-modules/quart/default.nix new file mode 100644 index 00000000000..a3212e3efc2 --- /dev/null +++ b/pkgs/development/python-modules/quart/default.nix @@ -0,0 +1,85 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub + +# build-system +, poetry-core + +# propagates +, aiofiles +, blinker +, click +, hypercorn +, importlib-metadata +, itsdangerous +, jinja2 +, markupsafe +, pydata-sphinx-theme +, python-dotenv +, typing-extensions +, werkzeug + +# tests +, hypothesis +, mock +, py +, pytest-asyncio +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "quart"; + version = "0.18.3"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "pallets"; + repo = "quart"; + rev = "refs/tags/${version}"; + hash = "sha256-aQM8kEhienBG+/zQQ8C/DKiDIMF3l9rq8HSAvg7wvLM="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace "--no-cov-on-fail " "" + ''; + + propagatedBuildInputs = [ + aiofiles + blinker + click + hypercorn + importlib-metadata + itsdangerous + jinja2 + markupsafe + pydata-sphinx-theme + python-dotenv + typing-extensions + werkzeug + ]; + + pythonImportsCheck = [ + "quart" + ]; + + nativeCheckInputs = [ + hypothesis + mock + py + pytest-asyncio + pytestCheckHook + ]; + + meta = with lib; { + description = "An async Python micro framework for building web applications"; + homepage = "https://github.com/pallets/quart/"; + changelog = "https://github.com/pallets/quart/blob/${src.rev}/CHANGES.rst"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1085080f0cb..7b04f6296d3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9963,6 +9963,10 @@ self: super: with self; { quantum-gateway = callPackage ../development/python-modules/quantum-gateway { }; + quart = callPackage ../development/python-modules/quart { }; + + quart-cors = callPackage ../development/python-modules/quart-cors { }; + querystring_parser = callPackage ../development/python-modules/querystring-parser { }; questionary = callPackage ../development/python-modules/questionary { };