106 lines
3.7 KiB
RPMSpec
106 lines
3.7 KiB
RPMSpec
# SPDX-FileCopyrightText: (C) 2025 Institute of Software, Chinese Academy of Sciences (ISCAS)
|
|
# SPDX-FileCopyrightText: (C) 2025 openRuyi Project Contributors
|
|
# SPDX-FileContributor: CHEN Xuan <chenxuan@iscas.ac.cn>
|
|
#
|
|
# SPDX-License-Identifier: MulanPSL-2.0
|
|
|
|
# Avoid dependency loops:
|
|
# fsspec -> distributed -> dask -> fsspec
|
|
# fsspec -> gcsfs -> fsspec
|
|
# fsspec -> zarr -> fsspec
|
|
%bcond bootstrap 1
|
|
|
|
%global srcname fsspec
|
|
|
|
Name: python-%{srcname}
|
|
Version: 2026.1.0
|
|
Release: %autorelease
|
|
Summary: Specification for Pythonic file system interfaces
|
|
License: BSD-3-Clause
|
|
URL: https://github.com/fsspec/filesystem_spec
|
|
#!RemoteAsset
|
|
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
|
BuildArch: noarch
|
|
BuildSystem: pyproject
|
|
|
|
BuildOption(install): %{srcname} -l
|
|
|
|
BuildRequires: python3-devel
|
|
BuildRequires: python3dist(pytest)
|
|
BuildRequires: python3dist(pytest-asyncio)
|
|
BuildRequires: python3dist(pytest-mock)
|
|
BuildRequires: python3dist(pytest-rerunfailures)
|
|
BuildRequires: python3dist(cloudpickle)
|
|
%if %{without bootstrap}
|
|
BuildRequires: python3dist(zarr)
|
|
BuildRequires: python3dist(notebook)
|
|
%endif
|
|
BuildRequires: python3dist(jinja2)
|
|
BuildRequires: python3dist(lz4)
|
|
BuildRequires: python3dist(numpy)
|
|
BuildRequires: python3dist(python-snappy)
|
|
BuildRequires: python3dist(zstandard)
|
|
BuildRequires: fuse
|
|
BuildRequires: git-core
|
|
|
|
%description
|
|
Filesystem Spec is a project to unify various projects and classes to work with
|
|
remote filesystems and file-system-like abstractions using a standard pythonic
|
|
interface.
|
|
|
|
Provides: python3-%{srcname}
|
|
%python_provide python3-%{srcname}
|
|
|
|
%pyproject_extras_subpkg -n python3-%{srcname} arrow
|
|
%pyproject_extras_subpkg -n python3-%{srcname} dask
|
|
%pyproject_extras_subpkg -n python3-%{srcname} entrypoints
|
|
%pyproject_extras_subpkg -n python3-%{srcname} fuse
|
|
%if %{without bootstrap}
|
|
%pyproject_extras_subpkg -n python3-%{srcname} gcs
|
|
%endif
|
|
%pyproject_extras_subpkg -n python3-%{srcname} git
|
|
%pyproject_extras_subpkg -n python3-%{srcname} github
|
|
%if %{without bootstrap}
|
|
%pyproject_extras_subpkg -n python3-%{srcname} gs
|
|
%endif
|
|
%pyproject_extras_subpkg -n python3-%{srcname} hdfs
|
|
%pyproject_extras_subpkg -n python3-%{srcname} http
|
|
%pyproject_extras_subpkg -n python3-%{srcname} libarchive
|
|
%pyproject_extras_subpkg -n python3-%{srcname} sftp
|
|
%pyproject_extras_subpkg -n python3-%{srcname} smb
|
|
%pyproject_extras_subpkg -n python3-%{srcname} ssh
|
|
%pyproject_extras_subpkg -n python3-%{srcname} tqdm
|
|
|
|
%generate_buildrequires
|
|
# Skipped extras:
|
|
# - (when bootstrapping) gcs and gs: Don't have gcsfs
|
|
# - abfs and adl: Don't have adlfs
|
|
# - dropbox: Don't have dropboxdrivefs
|
|
# - gui: Don't have panel
|
|
# - oci: Don't have ocifs
|
|
# - s3: Don't have s3fs
|
|
export SETUPTOOLS_SCM_PRETEND_VERSION=%{version}
|
|
%pyproject_buildrequires -x arrow,%{?!with_bootstrap:dask,gcs,gs,}entrypoints,fuse,git,github,hdfs,http,libarchive,sftp,smb,ssh,tqdm
|
|
|
|
%build
|
|
export SETUPTOOLS_SCM_PRETEND_VERSION=%{version}
|
|
%pyproject_wheel
|
|
|
|
%check
|
|
# fuse tests fail on koji builders due to missing kernel modules
|
|
# test_async_cat_file_ranges uses the network; https://github.com/fsspec/filesystem_spec/pull/1734/files#r1893434370
|
|
# test_gist.py and test_github.py tests require network
|
|
%{pytest} -vra \
|
|
--deselect=fsspec/tests/test_fuse.py::test_basic \
|
|
--deselect=fsspec/tests/test_fuse.py::test_chmod \
|
|
--deselect=fsspec/tests/test_fuse.py::test_seek_rw \
|
|
--deselect=fsspec/implementations/tests/test_reference.py::test_async_cat_file_ranges \
|
|
--ignore=fsspec/implementations/tests/test_gist.py \
|
|
--ignore=fsspec/implementations/tests/test_github.py
|
|
|
|
%files -f %{pyproject_files}
|
|
%doc README.md
|
|
|
|
%changelog
|
|
%{?autochangelog}
|