nixpkgs/pkgs/development/python-modules/fsspec/default.nix

172 lines
2.9 KiB
Nix
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ lib
, stdenv
, aiohttp
, buildPythonPackage
, fetchFromGitHub
, numpy
, paramiko
, pytest-asyncio
, pytest-mock
, pytest-vcr
, pytestCheckHook
, pythonOlder
, requests
, smbprotocol
, tqdm
, adlfs
, dask
, distributed
, dropbox
, fusepy
, gcsfs
, libarchive-c
, ocifs
, panel
, pyarrow
, pygit2
, s3fs
}:
buildPythonPackage rec {
pname = "fsspec";
version = "2024.3.0";
format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "fsspec";
repo = "filesystem_spec";
rev = "refs/tags/${version}";
hash = "sha256-C+47BcIELZTEARXW8fAMHMjyKUWxU1tNKWGoPPtt/fQ=";
};
propagatedBuildInputs = [
aiohttp
paramiko
requests
smbprotocol
tqdm
];
passthru.optional-dependencies = {
entrypoints = [
];
abfs = [
adlfs
];
adl = [
adlfs
];
dask = [
dask
distributed
];
dropbox = [
# missing dropboxdrivefs
requests
dropbox
];
gcs = [
gcsfs
];
git = [
pygit2
];
github = [
requests
];
gs = [
gcsfs
];
hdfs = [
pyarrow
];
arrow = [
pyarrow
];
http = [
aiohttp
requests
];
sftp = [
paramiko
];
s3 = [
s3fs
];
oci = [
ocifs
];
smb = [
smbprotocol
];
ssh = [
paramiko
];
fuse = [
fusepy
];
libarchive = [
libarchive-c
];
gui = [
panel
];
tqdm = [
tqdm
];
};
nativeCheckInputs = [
numpy
pytest-asyncio
pytest-mock
pytest-vcr
pytestCheckHook
];
preCheck = ''
export HOME=$(mktemp -d)
'';
__darwinAllowLocalNetworking = true;
disabledTests = [
# Test assumes user name is part of $HOME
# AssertionError: assert 'nixbld' in '/homeless-shelter/foo/bar'
"test_strip_protocol_expanduser"
# test accesses this remote ftp server:
# https://ftp.fau.de/debian-cd/current/amd64/log/success
"test_find"
# Tests want to access S3
"test_urlpath_inference_errors"
"test_mismatch"
] ++ lib.optionals (stdenv.isDarwin) [
# works locally on APFS, fails on hydra with AssertionError comparing timestamps
# darwin hydra builder uses HFS+ and has only one second timestamp resolution
# this two tests however, assume nanosecond resolution
"test_modified"
"test_touch"
# tries to access /home, ignores $HOME
"test_directories"
];
disabledTestPaths = [
# JSON decoding issues
"fsspec/implementations/tests/test_dbfs.py"
];
pythonImportsCheck = [
"fsspec"
];
meta = with lib; {
description = "A specification that Python filesystems should adhere to";
homepage = "https://github.com/fsspec/filesystem_spec";
changelog = "https://github.com/fsspec/filesystem_spec/raw/${version}/docs/source/changelog.rst";
license = licenses.bsd3;
maintainers = with maintainers; [ ];
};
}