python3Packages.snakemake: 9.16.3 -> 9.21.0 (#522808)

This commit is contained in:
Gaétan Lepage
2026-05-23 07:49:36 +00:00
committed by GitHub
15 changed files with 513 additions and 107 deletions
+28 -18
View File
@@ -6,18 +6,20 @@
stress,
versionCheckHook,
writableTmpDirAsHomeHook,
snakemake,
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "snakemake";
version = "9.16.3";
version = "9.21.0";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake";
tag = "v${finalAttrs.version}";
hash = "sha256-+eEzpRY6ZEKB3v1/AkHDg4bOcM2Y6pt4UMrdKF6soac=";
hash = "sha256-+EO+BTMkui0mJvEf0TOaCRBH8MzLsit8xK+71gujHt0=";
};
postPatch = ''
@@ -33,6 +35,10 @@ python3Packages.buildPythonApplication (finalAttrs: {
build-system = with python3Packages; [ setuptools-scm ];
pythonRelaxDeps = [
"packaging"
"sqlmodel"
];
dependencies = with python3Packages; [
appdirs
conda-inject
@@ -53,20 +59,24 @@ python3Packages.buildPythonApplication (finalAttrs: {
requests
reretry
smart-open
snakemake-interface-executor-plugins
snakemake-interface-common
snakemake-interface-executor-plugins
snakemake-interface-logger-plugins
snakemake-interface-storage-plugins
snakemake-interface-report-plugins
snakemake-interface-scheduler-plugins
snakemake-interface-storage-plugins
sqlmodel
stopit
tabulate
tenacity
throttler
toposort
wrapt
yte
];
pythonImportsCheck = [ "snakemake" ];
# See
# https://github.com/snakemake/snakemake/blob/main/.github/workflows/main.yml#L99
# for the current basic test suite. Slurm, Tibanna and Tes require extra
@@ -81,11 +91,15 @@ python3Packages.buildPythonApplication (finalAttrs: {
requests-mock
snakemake-executor-plugin-cluster-generic
snakemake-storage-plugin-fs
snakemake-storage-plugin-http
snakemake-storage-plugin-s3
stress
versionCheckHook
polars
])
++ [ writableTmpDirAsHomeHook ];
++ [
versionCheckHook
writableTmpDirAsHomeHook
];
enabledTestPaths = [
"tests/tests.py"
@@ -97,6 +111,9 @@ python3Packages.buildPythonApplication (finalAttrs: {
];
disabledTests = [
# AssertionError: expected file "onerror_module2.log" not produced
"test_module_onerror"
# FAILED tests/tests.py::test_env_modules - AssertionError: expected successful execution
"test_ancient"
"test_conda_create_envs_only"
@@ -119,13 +136,6 @@ python3Packages.buildPythonApplication (finalAttrs: {
"test_issue1256"
"test_issue2574"
# Require `snakemake-storage-plugin-fs` (circular dependency)
"test_default_storage"
"test_default_storage_local_job"
"test_deploy_sources"
"test_output_file_cache_storage"
"test_storage"
# Tries to access internet
"test_report_after_run"
@@ -136,10 +146,6 @@ python3Packages.buildPythonApplication (finalAttrs: {
# Needs unshare
"test_nodelocal"
# Requires snakemake-storage-plugin-http
"test_keep_local"
"test_retrieve"
# Requires conda
"test_jupyter_notebook"
"test_jupyter_notebook_nbconvert"
@@ -179,7 +185,11 @@ python3Packages.buildPythonApplication (finalAttrs: {
"test_issue1331"
];
pythonImportsCheck = [ "snakemake" ];
# Circular dependencies
doCheck = false;
passthru.tests.pytest = snakemake.overridePythonAttrs {
doCheck = true;
};
meta = {
homepage = "https://snakemake.github.io";
+1
View File
@@ -158,5 +158,6 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.lgpl3Plus;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ ShamrockLee ];
mainProgram = "xrootd";
};
})
@@ -2,36 +2,69 @@
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
snakemake-interface-executor-plugins,
# dependencies
snakemake-interface-common,
snakemake-interface-executor-plugins,
# tests
pytestCheckHook,
snakemake,
writableTmpDirAsHomeHook,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "snakemake-executor-plugin-cluster-generic";
version = "1.0.9";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-executor-plugin-cluster-generic";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-RHMefoJOZb6TjRsFCORLFdHtI5ZpTsV6CHrjHKMat9o=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [
poetry-core
];
propagatedBuildInputs = [
snakemake-interface-executor-plugins
dependencies = [
snakemake-interface-common
snakemake-interface-executor-plugins
];
pythonImportsCheck = [ "snakemake_executor_plugin_cluster_generic" ];
nativeCheckInputs = [
pytestCheckHook
snakemake
writableTmpDirAsHomeHook
];
enabledTestPaths = [ "tests/tests.py" ];
disabledTestPaths = [
# Failed to setup log file: [Errno 13] Permission denied: '/build/pytest-of-nixbld/pytest-0/test_group_workflow5/groups/.snakemake'
"tests/tests.py::TestWorkflowsCancelCmd::test_group_workflow"
"tests/tests.py::TestWorkflowsCancelCmd::test_simple_workflow"
"tests/tests.py::TestWorkflowsSidecar::test_group_workflow"
"tests/tests.py::TestWorkflowsSidecar::test_simple_workflow"
"tests/tests.py::TestWorkflowsStatusCmd::test_group_workflow"
"tests/tests.py::TestWorkflowsStatusCmd::test_simple_workflow"
"tests/tests.py::TestWorkflowsSubmitCmdOnly::test_group_workflow"
"tests/tests.py::TestWorkflowsSubmitCmdOnly::test_simple_workflow"
];
meta = {
description = "Generic cluster executor for Snakemake";
homepage = "https://github.com/snakemake/snakemake-executor-plugin-cluster-generic";
changelog = "https://github.com/snakemake/snakemake-executor-plugin-cluster-generic/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}
})
@@ -1,22 +1,34 @@
{
lib,
argparse-dataclass,
buildPythonPackage,
configargparse,
fetchFromGitHub,
fetchpatch,
# build-system
setuptools,
# dependencies
argparse-dataclass,
configargparse,
# tests
pytestCheckHook,
snakemake,
# passthru
snakemake-interface-common,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "snakemake-interface-common";
version = "1.23.0";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-interface-common";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-D3vktJmn1CifdiEg5UPGpBuuigEIb+ja4yklHZA6ytQ=";
};
@@ -29,7 +41,9 @@ buildPythonPackage rec {
})
];
build-system = [ setuptools ];
build-system = [
setuptools
];
dependencies = [
argparse-dataclass
@@ -38,16 +52,24 @@ buildPythonPackage rec {
pythonImportsCheck = [ "snakemake_interface_common" ];
# test_snakemake_version: No module named 'snakemake'
# nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
snakemake
];
# enabledTestPaths = [ "tests/tests.py" ];
enabledTestPaths = [ "tests/tests.py" ];
# Circular dependency with snakemake
doCheck = false;
passthru.tests.pytest = snakemake-interface-common.overridePythonAttrs {
doCheck = true;
};
meta = {
description = "Common functions and classes for Snakemake and its plugins";
homepage = "https://github.com/snakemake/snakemake-interface-common";
changelog = "https://github.com/snakemake/snakemake-interface-common/releases/tag/v${version}";
changelog = "https://github.com/snakemake/snakemake-interface-common/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}
})
@@ -2,39 +2,66 @@
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
# dependencies
argparse-dataclass,
throttler,
snakemake-interface-common,
throttler,
# tests
pytestCheckHook,
snakemake-executor-plugin-cluster-generic,
# passthru
snakemake-interface-executor-plugins,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "snakemake-interface-executor-plugins";
version = "9.4.0";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-interface-executor-plugins";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-ePbdHMYB2LfCOglz87ZnsUkJH7B97hhSmNBGzwtl5OM=";
};
build-system = [ poetry-core ];
build-system = [
poetry-core
];
dependencies = [
argparse-dataclass
throttler
snakemake-interface-common
throttler
];
pythonImportsCheck = [ "snakemake_interface_executor_plugins" ];
nativeCheckInputs = [
pytestCheckHook
snakemake-executor-plugin-cluster-generic
];
enabledTestPaths = [ "tests/tests.py" ];
# Circular dependency with snakemake
doCheck = false;
passthru.tests.pytest = snakemake-interface-executor-plugins.overridePythonAttrs {
doCheck = true;
};
meta = {
description = "This package provides a stable interface for interactions between Snakemake and its executor plugins";
description = "Stable interface for interactions between Snakemake and its executor plugins";
homepage = "https://github.com/snakemake/snakemake-interface-executor-plugins";
changelog = "https://github.com/snakemake/snakemake-interface-executor-plugins/blob/${src.tag}/CHANGELOG.md";
changelog = "https://github.com/snakemake/snakemake-interface-executor-plugins/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}
})
@@ -2,34 +2,62 @@
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatchling,
# dependencies
snakemake-interface-common,
# tests
pytestCheckHook,
snakemake-logger-plugin-rich,
# passthru
snakemake-interface-logger-plugins,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "snakemake-interface-logger-plugins";
version = "2.0.1";
version = "2.1.0";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-interface-logger-plugins";
tag = "v${version}";
hash = "sha256-yvEjd4xBjjCocGK/HD1j5jcuy+syyXcEJGdsEFA0H40=";
tag = "v${finalAttrs.version}";
hash = "sha256-UBdzJtKukR4Y9KPpu8qJv4HmN9ghncvEqGsTQnHk36k=";
};
nativeBuildInputs = [ hatchling ];
build-system = [
hatchling
];
propagatedBuildInputs = [
dependencies = [
snakemake-interface-common
];
pythonImportsCheck = [ "snakemake_interface_logger_plugins" ];
nativeCheckInputs = [
pytestCheckHook
snakemake-logger-plugin-rich
];
enabledTestPaths = [ "tests/tests.py" ];
# Circular dependency with snakemake
doCheck = false;
passthru.tests.pytest = snakemake-interface-logger-plugins.overridePythonAttrs {
doCheck = true;
};
meta = {
description = "Stable interface for interactions between Snakemake and its logger plugins";
homepage = "https://github.com/snakemake/snakemake-interface-logger-plugins";
changelog = "https://github.com/snakemake/snakemake-interface-logger-plugins/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}
})
@@ -2,32 +2,62 @@
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
# dependencies
snakemake-interface-common,
# tests
pytestCheckHook,
snakemake,
# passthru
snakemake-interface-report-plugins,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "snakemake-interface-report-plugins";
version = "1.3.0";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-interface-report-plugins";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-3ugEmdO1dcusKXXBZBRszlZXX5fhJyYSSF5Uj5CKJkQ=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [
poetry-core
];
propagatedBuildInputs = [ snakemake-interface-common ];
dependencies = [
snakemake-interface-common
];
pythonImportsCheck = [ "snakemake_interface_report_plugins" ];
nativeCheckInputs = [
pytestCheckHook
snakemake
];
enabledTestPaths = [ "tests/tests.py" ];
# Circular dependency with snakemake
doCheck = false;
passthru.tests.pytest = snakemake-interface-report-plugins.overridePythonAttrs {
doCheck = true;
};
meta = {
description = "Interface for Snakemake report plugins";
homepage = "https://github.com/snakemake/snakemake-interface-report-plugins";
changelog = "https://github.com/snakemake/snakemake-interface-report-plugins/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}
})
@@ -2,41 +2,62 @@
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatchling,
# dependencies
snakemake-interface-common,
# tests
pytestCheckHook,
snakemake,
# passthru
snakemake-interface-scheduler-plugins,
}:
let
buildPythonPackage (finalAttrs: {
pname = "snakemake-interface-scheduler-plugins";
version = "2.0.2";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-interface-scheduler-plugins";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-BowMwZllFR9IKYUMhISAbf606awTxfmS/nQxkGgb4y8=";
};
in
buildPythonPackage {
pname = "snakemake-interface-scheduler-plugins";
inherit version src;
pyproject = true;
build-system = [ hatchling ];
build-system = [
hatchling
];
dependencies = [ snakemake-interface-common ];
dependencies = [
snakemake-interface-common
];
pythonImportsCheck = [ "snakemake_interface_scheduler_plugins" ];
# test_scheduler: No module named 'snakemake'
# nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
snakemake
];
# enabledTestPaths = [ "tests/tests.py" ];
enabledTestPaths = [ "tests/tests.py" ];
# Circular dependency with snakemake
doCheck = false;
passthru.tests.pytest = snakemake-interface-scheduler-plugins.overridePythonAttrs {
doCheck = true;
};
meta = {
description = "Provides a stable interface for interactions between Snakemake and its scheduler plugins";
homepage = "https://github.com/snakemake/snakemake-interface-scheduler-plugins";
changelog = "https://github.com/snakemake/snakemake-interface-scheduler-plugins/blob/${src.rev}/CHANGELOG.md";
changelog = "https://github.com/snakemake/snakemake-interface-scheduler-plugins/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kyehn ];
};
}
})
@@ -2,42 +2,77 @@
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
# dependencies
humanfriendly,
reretry,
snakemake-interface-common,
tenacity,
throttler,
wrapt,
# tests
pytestCheckHook,
snakemake,
snakemake-storage-plugin-http,
# passthru
snakemake-interface-storage-plugins,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "snakemake-interface-storage-plugins";
version = "4.3.2";
version = "4.4.1";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-interface-storage-plugins";
tag = "v${version}";
hash = "sha256-W2cUwc+9jng4IvBuN+m4WqpehA8qElTRb43w3QOIeN0=";
tag = "v${finalAttrs.version}";
hash = "sha256-tqSIJnU1+DPx/GI5/wzMkoxpLyM/k/SO8FtejRv9Zls=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
humanfriendly
reretry
snakemake-interface-common
tenacity
throttler
wrapt
];
pythonImportsCheck = [ "snakemake_interface_storage_plugins" ];
nativeCheckInputs = [
pytestCheckHook
snakemake
snakemake-storage-plugin-http
];
enabledTestPaths = [ "tests/tests.py" ];
disabledTests = [
# Requires internet access
"test_storage"
];
# Circular dependency with snakemake
doCheck = false;
passthru.tests.pytest = snakemake-interface-storage-plugins.overridePythonAttrs {
doCheck = true;
};
meta = {
description = "This package provides a stable interface for interactions between Snakemake and its storage plugins";
description = "Stable interface for interactions between Snakemake and its storage plugins";
changelog = "https://github.com/snakemake/snakemake-interface-storage-plugins/releases/tag/${finalAttrs.src.tag}";
homepage = "https://github.com/snakemake/snakemake-interface-storage-plugins";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}
})
@@ -0,0 +1,60 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatchling,
# dependencies
pydantic,
rich,
snakemake-interface-executor-plugins,
snakemake-interface-logger-plugins,
# tests
pytestCheckHook,
snakemake,
writableTmpDirAsHomeHook,
}:
buildPythonPackage (finalAttrs: {
pname = "snakemake-logger-plugin-rich";
version = "0.4.1";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "cademirch";
repo = "snakemake-logger-plugin-rich";
tag = "v${finalAttrs.version}";
hash = "sha256-kMjzagM95Td529JU+qIxGStgJGctS08glrFo3CF+Ih8=";
};
build-system = [
hatchling
];
dependencies = [
pydantic
rich
snakemake-interface-executor-plugins
snakemake-interface-logger-plugins
];
pythonImportsCheck = [ "snakemake_logger_plugin_rich" ];
nativeCheckInputs = [
pytestCheckHook
snakemake
writableTmpDirAsHomeHook
];
meta = {
description = "Snakemake logger plugin using Rich";
homepage = "https://github.com/cademirch/snakemake-logger-plugin-rich";
changelog = "https://github.com/cademirch/snakemake-logger-plugin-rich/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
})
@@ -2,42 +2,59 @@
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
snakemake-interface-storage-plugins,
# dependencies
snakemake-interface-common,
snakemake-interface-storage-plugins,
sysrsync,
# tests
pytestCheckHook,
snakemake,
writableTmpDirAsHomeHook,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "snakemake-storage-plugin-fs";
version = "1.1.3";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-storage-plugin-fs";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-UdK0yhl7ljLh57CXAvH/OYiVyw+BjhPwGjSBXX8sbZk=";
};
build-system = [ poetry-core ];
build-system = [
poetry-core
];
dependencies = [
snakemake-interface-storage-plugins
snakemake-interface-common
snakemake-interface-storage-plugins
sysrsync
];
# The current tests are not worth dealing with cyclic dependency on snakemake
doCheck = false;
pythonImportsCheck = [ "snakemake_storage_plugin_fs" ];
# Use nothing due to a cyclic dependency on snakemake
pythonImportsCheck = [ ];
nativeCheckInputs = [
pytestCheckHook
snakemake
writableTmpDirAsHomeHook
];
enabledTestPaths = [ "tests/tests.py" ];
meta = {
description = "Snakemake storage plugin that reads and writes from a locally mounted filesystem using rsync";
homepage = "https://github.com/snakemake/snakemake-storage-plugin-fs";
changelog = "https://github.com/snakemake/snakemake-storage-plugin-fs/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}
})
@@ -0,0 +1,68 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
# dependencies
requests,
requests-oauthlib,
snakemake-interface-common,
snakemake-interface-storage-plugins,
# tests
pytestCheckHook,
snakemake,
}:
buildPythonPackage (finalAttrs: {
pname = "snakemake-storage-plugin-http";
version = "0.3.1";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-storage-plugin-http";
tag = "v${finalAttrs.version}";
hash = "sha256-ad4IOjU761CaZ+o0//I8/xW+e+4UJG0+VAbQ9KcNjFY=";
};
build-system = [
poetry-core
];
pythonRelaxDeps = [
"requests-oauthlib"
];
dependencies = [
requests
requests-oauthlib
snakemake-interface-common
snakemake-interface-storage-plugins
];
pythonImportsCheck = [ "snakemake_storage_plugin_http" ];
nativeCheckInputs = [
pytestCheckHook
snakemake
];
enabledTestPaths = [ "tests/tests.py" ];
disabledTests = [
# Requires internet access
"test_storage"
];
meta = {
description = "Snakemake storage plugin for donwloading input files from HTTP(s)";
homepage = "https://github.com/snakemake/snakemake-storage-plugin-http";
changelog = "https://github.com/snakemake/snakemake-storage-plugin-http/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
})
@@ -2,24 +2,33 @@
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
# dependencies
boto3,
botocore,
poetry-core,
snakemake,
snakemake-interface-storage-plugins,
snakemake-interface-common,
snakemake-interface-storage-plugins,
urllib3,
# tests
pytestCheckHook,
snakemake,
writableTmpDirAsHomeHook,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "snakemake-storage-plugin-s3";
version = "0.3.6";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-storage-plugin-s3";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-hvyQ6V6POUBWTCWt9moQlH0RgSM4J36kjbXK4TtO8Bo=";
};
@@ -33,15 +42,31 @@ buildPythonPackage rec {
urllib3
];
nativeCheckInputs = [ snakemake ];
pythonImportsCheck = [ "snakemake_storage_plugin_s3" ];
nativeCheckInputs = [
pytestCheckHook
snakemake
writableTmpDirAsHomeHook
];
enabledTestPaths = [ "tests/tests.py" ];
disabledTests = [
# Requires internet access
"test_storage"
# snakemake_interface_common.exceptions.WorkflowError: Failed to create local storage prefix .snakemake/storage/s3
# PermissionError: [Errno 13] Permission denied: '.snakemake'
"test_group_workflow"
"test_simple_workflow"
];
meta = {
description = "Snakemake storage plugin for S3 API storage (AWS S3, MinIO, etc.)";
homepage = "https://github.com/snakemake/snakemake-storage-plugin-s3";
changelog = "https://github.com/snakemake/snakemake-storage-plugin-s3/releases/tag/${src.tag}";
changelog = "https://github.com/snakemake/snakemake-storage-plugin-s3/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}
})
@@ -1,29 +1,43 @@
{
lib,
pkgs,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatch-vcs,
hatchling,
snakemake,
snakemake-interface-storage-plugins,
# dependencies
reretry,
snakemake-interface-common,
snakemake-interface-storage-plugins,
xrootd,
# tests
pytestCheckHook,
snakemake,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "snakemake-storage-plugin-xrootd";
version = "1.0.0";
version = "1.1.0";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake-storage-plugin-xrootd";
tag = "v${version}";
hash = "sha256-QYG/BE7y3h/Mz1PrVVxmfBBLBLoirrEx9unSEaflUds=";
tag = "v${finalAttrs.version}";
hash = "sha256-vL9JD9h0ywsKpUPoXhgg6b+vwi7kxK8CF3L6HnAEidE=";
};
# xrootd<6.0.0,>=5.6.4 not satisfied by version 5.7rc20240303
pythonRelaxDeps = [ "xrootd" ];
postPatch = ''
substituteInPlace tests/tests.py \
--replace-fail \
'subprocess.Popen(["xrootd",' \
'subprocess.Popen(["${lib.getExe pkgs.xrootd}",'
'';
build-system = [
hatch-vcs
@@ -33,17 +47,24 @@ buildPythonPackage rec {
dependencies = [
snakemake-interface-storage-plugins
snakemake-interface-common
reretry
xrootd
];
nativeCheckInputs = [ snakemake ];
pythonImportsCheck = [ "snakemake_storage_plugin_xrootd" ];
nativeCheckInputs = [
pytestCheckHook
snakemake
];
enabledTestPaths = [ "tests/tests.py" ];
meta = {
description = "Snakemake storage plugin for handling input and output via XRootD";
homepage = "https://github.com/snakemake/snakemake-storage-plugin-xrootd";
changelog = "https://github.com/snakemake/snakemake-storage-plugin-xrootd/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}
})
+8
View File
@@ -18194,10 +18194,18 @@ self: super: with self; {
callPackage ../development/python-modules/snakemake-interface-storage-plugins
{ };
snakemake-logger-plugin-rich =
callPackage ../development/python-modules/snakemake-logger-plugin-rich
{ };
snakemake-storage-plugin-fs =
callPackage ../development/python-modules/snakemake-storage-plugin-fs
{ };
snakemake-storage-plugin-http =
callPackage ../development/python-modules/snakemake-storage-plugin-http
{ };
snakemake-storage-plugin-s3 =
callPackage ../development/python-modules/snakemake-storage-plugin-s3
{ };