1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 poetry-core,
6 snakemake,
7 snakemake-interface-storage-plugins,
8 snakemake-interface-common,
9 xrootd,
10}:
11
12buildPythonPackage rec {
13 pname = "snakemake-storage-plugin-xrootd";
14 version = "unstable-2023-12-16";
15 format = "pyproject";
16
17 src = fetchFromGitHub {
18 owner = "snakemake";
19 repo = pname;
20 rev = "408f1e956b5427c34b49eeca340492a438e8eccb";
21 hash = "sha256-CcSG//D9kz0Q4LtaSngJpCtY0dbNFFuKMVmBxR1fcMo=";
22 };
23
24 # xrootd<6.0.0,>=5.6.4 not satisfied by version 5.7rc20240303
25 postPatch = ''
26 substituteInPlace pyproject.toml \
27 --replace 'xrootd = "^5.6.4"' ""
28 '';
29
30 nativeBuildInputs = [ poetry-core ];
31
32 propagatedBuildInputs = [
33 snakemake-interface-storage-plugins
34 snakemake-interface-common
35 xrootd
36 ];
37
38 nativeCheckInputs = [ snakemake ];
39
40 pythonImportsCheck = [ "snakemake_storage_plugin_xrootd" ];
41
42 meta = with lib; {
43 description = "A Snakemake storage plugin for handling input and output via XRootD";
44 homepage = "https://github.com/snakemake/snakemake-storage-plugin-xrootd";
45 license = licenses.mit;
46 maintainers = with maintainers; [ veprbl ];
47 };
48}