86bac5c9b6
Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
161 lines
3.4 KiB
Nix
161 lines
3.4 KiB
Nix
{
|
|
buildPythonPackage,
|
|
fetchFromGitHub,
|
|
flit-core,
|
|
lib,
|
|
pythonOlder,
|
|
# dependencies
|
|
flask,
|
|
jinja2,
|
|
markupsafe,
|
|
werkzeug,
|
|
wtforms,
|
|
typing-extensions,
|
|
# optional dependencies
|
|
# sqlalchemy
|
|
flask-sqlalchemy,
|
|
sqlalchemy,
|
|
# sqlalchemy-with-utils
|
|
arrow,
|
|
colour,
|
|
email-validator,
|
|
sqlalchemy-citext,
|
|
sqlalchemy-utils,
|
|
# geoalchemy
|
|
geoalchemy2,
|
|
shapely,
|
|
# pymongo
|
|
pymongo,
|
|
# mongoengine
|
|
mongoengine,
|
|
# peewee
|
|
peewee,
|
|
wtf-peewee,
|
|
# s3
|
|
boto3,
|
|
# azure-blob-storage
|
|
azure-storage-blob,
|
|
# images
|
|
pillow,
|
|
# export
|
|
tablib,
|
|
# rediscli
|
|
redis,
|
|
# translation
|
|
flask-babel,
|
|
# checks
|
|
beautifulsoup4,
|
|
moto,
|
|
psycopg2,
|
|
pytestCheckHook,
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "flask-admin";
|
|
version = "2.0.2";
|
|
pyproject = true;
|
|
|
|
disabled = pythonOlder "3.10";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "flask-admin";
|
|
repo = "flask-admin";
|
|
tag = "v${version}";
|
|
hash = "sha256-HjK+ddMtT8QJ/KSFj9v28jflf2f6M+Gx1rJjCdWUUFM=";
|
|
};
|
|
|
|
build-system = [ flit-core ];
|
|
|
|
dependencies = [
|
|
flask
|
|
jinja2
|
|
markupsafe
|
|
werkzeug
|
|
wtforms
|
|
]
|
|
++ lib.optionals (pythonOlder "3.11") [
|
|
typing-extensions
|
|
];
|
|
|
|
optional-dependencies = {
|
|
sqlalchemy = [
|
|
flask-sqlalchemy
|
|
sqlalchemy
|
|
];
|
|
sqlalchemy-with-utils = optional-dependencies.sqlalchemy ++ [
|
|
arrow
|
|
colour
|
|
email-validator
|
|
sqlalchemy-citext
|
|
sqlalchemy-utils
|
|
];
|
|
geoalchemy = optional-dependencies.sqlalchemy ++ [
|
|
geoalchemy2
|
|
shapely
|
|
];
|
|
pymongo = [ pymongo ];
|
|
mongoengine = [ mongoengine ];
|
|
peewee = [
|
|
peewee
|
|
wtf-peewee
|
|
];
|
|
s3 = [ boto3 ];
|
|
azure-blob-storage = [ azure-storage-blob ];
|
|
images = [ pillow ];
|
|
export = [ tablib ];
|
|
rediscli = [ redis ];
|
|
translation = [ flask-babel ];
|
|
all = lib.flatten [
|
|
optional-dependencies.sqlalchemy
|
|
optional-dependencies.sqlalchemy-with-utils
|
|
optional-dependencies.geoalchemy
|
|
optional-dependencies.pymongo
|
|
optional-dependencies.mongoengine
|
|
optional-dependencies.peewee
|
|
optional-dependencies.s3
|
|
optional-dependencies.azure-blob-storage
|
|
optional-dependencies.images
|
|
optional-dependencies.export
|
|
optional-dependencies.rediscli
|
|
optional-dependencies.translation
|
|
];
|
|
};
|
|
|
|
nativeCheckInputs = [
|
|
beautifulsoup4
|
|
moto
|
|
psycopg2
|
|
pytestCheckHook
|
|
]
|
|
++ lib.flatten [
|
|
optional-dependencies.sqlalchemy-with-utils
|
|
optional-dependencies.mongoengine
|
|
optional-dependencies.peewee
|
|
optional-dependencies.images
|
|
optional-dependencies.export
|
|
optional-dependencies.translation
|
|
flask.optional-dependencies.async
|
|
];
|
|
|
|
disabledTestPaths = [
|
|
# requires database
|
|
"flask_admin/tests/geoa/test_basic.py"
|
|
"flask_admin/tests/pymongo/test_basic.py"
|
|
"flask_admin/tests/mongoengine/test_basic.py"
|
|
"flask_admin/tests/peeweemodel/test_basic.py"
|
|
"flask_admin/tests/sqla/test_postgres.py"
|
|
# requires internet
|
|
"flask_admin/tests/fileadmin/test_fileadmin_azure.py"
|
|
];
|
|
|
|
pythonImportsCheck = [ "flask_admin" ];
|
|
|
|
meta = {
|
|
description = "Admin interface framework for Flask";
|
|
homepage = "https://github.com/flask-admin/flask-admin/";
|
|
changelog = "https://github.com/flask-admin/flask-admin/releases/tag/v${version}";
|
|
license = lib.licenses.bsd3;
|
|
maintainers = with lib.maintainers; [ nickcao ];
|
|
};
|
|
}
|