diff --git a/pkgs/by-name/gr/granian/package.nix b/pkgs/by-name/gr/granian/package.nix index 4ed069e3a31c..b7ae540a4696 100644 --- a/pkgs/by-name/gr/granian/package.nix +++ b/pkgs/by-name/gr/granian/package.nix @@ -1,49 +1,4 @@ { - lib, - fetchFromGitHub, - rustPlatform, python3Packages, - libiconv, }: - -python3Packages.buildPythonApplication rec { - pname = "granian"; - version = "1.7.0"; - pyproject = true; - - src = fetchFromGitHub { - owner = "emmett-framework"; - repo = "granian"; - rev = "v${version}"; - hash = "sha256-OjyDwfp0d779oFQ7wUdR1eRPP35kcJa3wIdcYGrGGME="; - }; - - cargoDeps = rustPlatform.fetchCargoVendor { - inherit src; - name = "${pname}-${version}"; - hash = "sha256-jAjHvVyFhGGE/OwfusUE/GdrNrEgvh48lmC5tla4lhI="; - }; - - nativeBuildInputs = with rustPlatform; [ - cargoSetupHook - maturinBuildHook - ]; - - buildInputs = [ - libiconv - ]; - - dependencies = [ - python3Packages.uvloop - python3Packages.click - ]; - - meta = { - description = "Rust HTTP server for Python ASGI/WSGI/RSGI applications"; - homepage = "https://github.com/emmett-framework/granian"; - license = lib.licenses.bsd3; - mainProgram = "granian"; - maintainers = with lib.maintainers; [ lucastso10 ]; - platforms = lib.platforms.unix; - }; -} +python3Packages.toPythonApplication python3Packages.granian diff --git a/pkgs/development/python-modules/granian/default.nix b/pkgs/development/python-modules/granian/default.nix new file mode 100644 index 000000000000..5a2953607dde --- /dev/null +++ b/pkgs/development/python-modules/granian/default.nix @@ -0,0 +1,91 @@ +{ + lib, + fetchFromGitHub, + rustPlatform, + cacert, + buildPythonPackage, + uvloop, + click, + setproctitle, + watchfiles, + versionCheckHook, + pytestCheckHook, + pytest-asyncio, + websockets, + httpx, + sniffio, + nix-update-script, +}: + +buildPythonPackage rec { + pname = "granian"; + version = "2.2.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "emmett-framework"; + repo = "granian"; + tag = "v${version}"; + hash = "sha256-YQ9+PcKXtSc+wdvhgDfSAfcv/y53oqcrPCEI9dDKFa0="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit pname version src; + hash = "sha256-XJ61+u5aGQis6YkfASD+WJHEKDBL+2ImqCAuQmm3A/g="; + }; + + nativeBuildInputs = with rustPlatform; [ + cargoSetupHook + maturinBuildHook + ]; + + dependencies = [ + click + ]; + + optional-dependencies = { + pname = [ setproctitle ]; + reload = [ watchfiles ]; + # rloop = [ rloop ]; # not packaged + uvloop = [ uvloop ]; + }; + + nativeCheckInputs = [ + versionCheckHook + pytestCheckHook + pytest-asyncio + websockets + httpx + sniffio + ]; + + preCheck = '' + # collides with the one installed in $out + rm -rf granian/ + ''; + + # needed for checks + env.SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + + __darwinAllowLocalNetworking = true; + + pytestFlagsArray = [ "tests/" ]; + + pythonImportCheck = [ "granian" ]; + + versionCheckProgramArg = "--version"; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Rust HTTP server for Python ASGI/WSGI/RSGI applications"; + homepage = "https://github.com/emmett-framework/granian"; + license = lib.licenses.bsd3; + mainProgram = "granian"; + maintainers = with lib.maintainers; [ + lucastso10 + pbsds + ]; + platforms = lib.platforms.unix; + }; +} diff --git a/pkgs/development/python-modules/reflex-chakra/default.nix b/pkgs/development/python-modules/reflex-chakra/default.nix index e197395d1d2a..b51b86d660c8 100644 --- a/pkgs/development/python-modules/reflex-chakra/default.nix +++ b/pkgs/development/python-modules/reflex-chakra/default.nix @@ -4,6 +4,8 @@ fetchFromGitHub, poetry-core, pythonOlder, + reflex, + pytestCheckHook, }: buildPythonPackage rec { @@ -20,22 +22,25 @@ buildPythonPackage rec { hash = "sha256-foIXPLWcxNf33y39BgiRpvwRnZOTcfAjhCvC4TD8ZMs="; }; - pythonRemoveDeps = [ - # Circular dependency - "reflex" - ]; - build-system = [ poetry-core ]; - # pythonImportsCheck = [ "reflex_chakra" ]; + dependencies = [ + reflex + ]; + pythonImportsCheck = [ "reflex_chakra" ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + # there are no "test_*.py" files, and the + # other files with `test_*` functions are not maintained it seems doCheck = false; - meta = with lib; { + meta = { description = "Chakra Implementation in Reflex"; homepage = "https://github.com/reflex-dev/reflex-chakra"; changelog = "https://github.com/reflex-dev/reflex-chakra/releases/tag/${src.tag}"; - license = licenses.asl20; - maintainers = with maintainers; [ fab ]; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ fab ]; }; } diff --git a/pkgs/development/python-modules/reflex/default.nix b/pkgs/development/python-modules/reflex/default.nix index be714a1d1df0..07ed325d19ec 100644 --- a/pkgs/development/python-modules/reflex/default.nix +++ b/pkgs/development/python-modules/reflex/default.nix @@ -9,6 +9,7 @@ dill, distro, fastapi, + granian, gunicorn, hatchling, httpx, @@ -25,6 +26,7 @@ pydantic, pytest-asyncio, pytest-mock, + python-dotenv, pytestCheckHook, python-engineio, python-multipart, @@ -48,14 +50,14 @@ buildPythonPackage rec { pname = "reflex"; - version = "0.7.4a0"; + version = "0.7.5"; pyproject = true; src = fetchFromGitHub { owner = "reflex-dev"; repo = "reflex"; tag = "v${version}"; - hash = "sha256-KFNcdPoZc+Zps8OV3aLIkk9rlbfy6rx0I9JrYFt2b5E="; + hash = "sha256-uHlLItjONHGnuE4t2UOcVRYxcDDbRldUwHd8mPn7JfY="; }; pythonRelaxDeps = [ @@ -77,6 +79,8 @@ buildPythonPackage rec { dill distro fastapi + granian + granian.optional-dependencies.reload gunicorn httpx jinja2 @@ -106,6 +110,7 @@ buildPythonPackage rec { pytestCheckHook pytest-asyncio pytest-mock + python-dotenv playwright attrs numpy diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d1f393385126..d2645a5e619d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5873,6 +5873,8 @@ self: super: with self; { grandalf = callPackage ../development/python-modules/grandalf { }; + granian = callPackage ../development/python-modules/granian { }; + graph-tool = callPackage ../development/python-modules/graph-tool { inherit (pkgs) cgal; }; grapheme = callPackage ../development/python-modules/grapheme { };