From 23c20c44cf3ddbb552111c80ac2576b42bf6e5b0 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Fri, 9 Aug 2024 03:29:07 +0200 Subject: [PATCH] python312Packages.starlette-admin: init at 0.14.1 --- .../starlette-admin/default.nix | 127 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 129 insertions(+) create mode 100644 pkgs/development/python-modules/starlette-admin/default.nix diff --git a/pkgs/development/python-modules/starlette-admin/default.nix b/pkgs/development/python-modules/starlette-admin/default.nix new file mode 100644 index 000000000000..41f3a1001345 --- /dev/null +++ b/pkgs/development/python-modules/starlette-admin/default.nix @@ -0,0 +1,127 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + hatchling, + aiosqlite, + arrow, + babel, + cacert, + colour, + fasteners, + httpx, + jinja2, + mongoengine, + motor, + passlib, + phonenumbers, + pillow, + psycopg2, + pydantic, + pytest-asyncio, + pytestCheckHook, + python-multipart, + requests, + sqlalchemy, + sqlalchemy-file, + sqlalchemy-utils, + sqlmodel, + starlette, +}: + +buildPythonPackage rec { + pname = "starlette-admin"; + version = "0.14.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jowilf"; + repo = "starlette-admin"; + rev = version; + hash = "sha256-DoYD8Hc5pd68+BhASw3mwwCdhu0vYHiELjVmVwU8FHs="; + }; + + build-system = [ hatchling ]; + + dependencies = [ + jinja2 + python-multipart + starlette + ]; + + optional-dependencies = { + i18n = [ babel ]; + }; + + nativeCheckInputs = [ + aiosqlite + arrow + babel + cacert + colour + fasteners + httpx + mongoengine + motor + passlib + phonenumbers + pillow + psycopg2 + pydantic + pytest-asyncio + pytestCheckHook + requests + sqlalchemy + sqlalchemy-file + sqlalchemy-utils + sqlmodel + ]; + + preCheck = '' + # used in get_test_container in tests/sqla/utils.py + # fixes FileNotFoundError: [Errno 2] No such file or directory: '/tmp/storage/...' + mkdir .storage + export LOCAL_PATH="$PWD/.storage" + ''; + + disabledTests = lib.optionals stdenv.isDarwin [ + # flaky, depends on test order + "test_ensuring_pk" + # flaky, of-by-one + "test_api" + ]; + + disabledTestPaths = + [ + # odmantic is not packaged + "tests/odmantic" + # needs mongodb running on port 27017 + "tests/mongoengine" + ] + ++ lib.optionals stdenv.isDarwin [ + # very flaky, sandbox issues? + # libcloud.storage.types.ContainerDoesNotExistError + # sqlite3.OperationalError: attempt to write a readonly database + "tests/sqla/test_sync_engine.py" + "tests/sqla/test_async_engine.py" + ]; + + pythonImportsCheck = [ + "starlette_admin" + "starlette_admin.actions" + "starlette_admin.base" + "starlette_admin.fields" + "starlette_admin.i18n" + "starlette_admin.tools" + "starlette_admin.views" + ]; + + meta = with lib; { + description = "Fast, beautiful and extensible administrative interface framework for Starlette & FastApi applications"; + homepage = "https://github.com/jowilf/starlette-admin"; + changelog = "https://github.com/jowilf/starlette-admin/blob/${src.rev}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ pbsds ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 594df1ed974d..22a87016bbde 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -14956,6 +14956,8 @@ self: super: with self; { starlette = callPackage ../development/python-modules/starlette { }; + starlette-admin = callPackage ../development/python-modules/starlette-admin { }; + starlette-context = callPackage ../development/python-modules/starlette-context { }; starlette-wtf = callPackage ../development/python-modules/starlette-wtf { };