diff --git a/pkgs/development/python-modules/dockerflow/default.nix b/pkgs/development/python-modules/dockerflow/default.nix new file mode 100644 index 000000000000..bad4dede4eb7 --- /dev/null +++ b/pkgs/development/python-modules/dockerflow/default.nix @@ -0,0 +1,104 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + setuptools-scm, + + # optional dependencies + asgiref, + blinker, + django, + fastapi, + flask, + sanic, + + # tests + django-redis, + pytest-django, + httpx, + fakeredis, + jsonschema, + pytestCheckHook, + pytest-cov-stub, + pytest-mock, + redis, + redisTestHook, +}: + +buildPythonPackage rec { + pname = "dockerflow"; + version = "2024.04.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "mozilla-services"; + repo = "python-dockerflow"; + tag = version; + hash = "sha256-5Ov605FyhX+n6vFks2sdtviGqkrgDIMXpcvgqR85jmQ="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + optional-dependencies = { + django = [ django ]; + flask = [ + blinker + flask + ]; + sanic = [ sanic ]; + fastapi = [ + asgiref + fastapi + ]; + }; + + nativeCheckInputs = [ + fakeredis + jsonschema + pytestCheckHook + pytest-cov-stub + pytest-mock + redis + redisTestHook + + # django + django-redis + pytest-django + + # fastapi + httpx + ] ++ lib.flatten (lib.attrValues optional-dependencies); + + disabledTests = [ + # AssertionError: assert 'c7a05e2b-8a21-4255-a3ed-92cea1e74a62' is None + "test_mozlog_without_correlation_id_middleware" + ]; + + disabledTestPaths = [ + # missing flask-redis dependency + "tests/flask/test_flask.py" + # missing sanic-redis dependency + "tests/sanic/test_sanic.py" + ]; + + preCheck = '' + export DJANGO_SETTINGS_MODULE=tests.django.settings + ''; + + pythonImportsCheck = [ + "dockerflow" + ]; + + meta = { + changelog = "https://github.com/mozilla-services/python-dockerflow/releases/tag/${src.tag}"; + description = "A Python package to implement tools and helpers for Mozilla Dockerflow"; + homepage = "https://github.com/mozilla-services/python-dockerflow"; + license = lib.licenses.mpl20; + }; +} diff --git a/pkgs/development/python-modules/nested-multipart-parser/default.nix b/pkgs/development/python-modules/nested-multipart-parser/default.nix new file mode 100644 index 000000000000..d83060194d01 --- /dev/null +++ b/pkgs/development/python-modules/nested-multipart-parser/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # tests + django, + djangorestframework, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "nested-multipart-parser"; + version = "1.5.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "remigermain"; + repo = "nested-multipart-parser"; + tag = version; + hash = "sha256-9IGfYb6mVGkoE/6iDg0ap8c+0vrBDKK1DxzLRyfeWOk="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ + django + djangorestframework + pytestCheckHook + ]; + + pythonImportsCheck = [ + "nested_multipart_parser" + ]; + + meta = { + changelog = "https://github.com/remigermain/nested-multipart-parser/releases/tag/${src.tag}"; + description = "Parser for nested data for 'multipart/form'"; + homepage = "https://github.com/remigermain/nested-multipart-parser"; + license = lib.licenses.mit; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ebcbb4eefda6..1ee20dd64f96 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4028,6 +4028,8 @@ self: super: with self; { dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse { }; + dockerflow = callPackage ../development/python-modules/dockerflow { }; + dockerpty = callPackage ../development/python-modules/dockerpty { }; dockerspawner = callPackage ../development/python-modules/dockerspawner { }; @@ -9745,6 +9747,8 @@ self: super: with self; { nested-lookup = callPackage ../development/python-modules/nested-lookup { }; + nested-multipart-parser = callPackage ../development/python-modules/nested-multipart-parser { }; + nestedtext = callPackage ../development/python-modules/nestedtext { }; netaddr = callPackage ../development/python-modules/netaddr { };