1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6
7 # build-system
8 setuptools,
9 setuptools-scm,
10
11 # dependencies
12 fsspec,
13 xrootd,
14
15 # tests
16 pkgs,
17 pytestCheckHook,
18}:
19
20buildPythonPackage rec {
21 pname = "fsspec-xrootd";
22 version = "0.5.1";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "CoffeaTeam";
27 repo = "fsspec-xrootd";
28 tag = "v${version}";
29 hash = "sha256-Vpe/Gcm6rmehG05h2H7BDZcBQDyie0Ww9X8LgoTgAkE=";
30 };
31
32 build-system = [
33 setuptools
34 setuptools-scm
35 ];
36
37 dependencies = [
38 fsspec
39 xrootd
40 ];
41
42 pythonImportsCheck = [ "fsspec_xrootd" ];
43
44 nativeCheckInputs = [
45 pkgs.xrootd
46 pytestCheckHook
47 ];
48
49 disabledTests = [
50 # Fails (on aarch64-linux) as it runs sleep, touch, stat and makes assumptions about the
51 # scheduler and the filesystem.
52 "test_touch_modified"
53 ];
54
55 # Timeout related tests hang indifinetely
56 disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ "tests/test_basicio.py" ];
57
58 meta = {
59 description = "XRootD implementation for fsspec";
60 homepage = "https://github.com/CoffeaTeam/fsspec-xrootd";
61 changelog = "https://github.com/CoffeaTeam/fsspec-xrootd/releases/tag/v${version}";
62 license = lib.licenses.bsd3;
63 maintainers = with lib.maintainers; [ GaetanLepage ];
64 };
65}