3c963be
# Avoid dependency loops:
3c963be
#     fsspec -> distributed -> dask -> fsspec
3c963be
#     fsspec -> gcsfs -> fsspec
cd3c62e
#     fsspec -> zarr -> fsspec
634579f
%bcond_without bootstrap
634579f
634579f
%global srcname fsspec
634579f
634579f
Name:           python-%{srcname}
45bfb40
Version:        2022.7.1
45bfb40
%global tag     2022.7.1
9165dcf
Release:        %autorelease
ed8863a
Summary:        Specification for Pythonic file system interfaces
634579f
634579f
License:        BSD
1781f0c
URL:            https://github.com/fsspec/filesystem_spec
71459a7
Source0:        %{url}/archive/%{tag}/%{srcname}-%{tag}.tar.gz
634579f
634579f
BuildArch:      noarch
634579f
634579f
BuildRequires:  python3-devel
634579f
BuildRequires:  python3dist(pytest)
9427226
BuildRequires:  python3dist(pytest-asyncio)
9427226
BuildRequires:  python3dist(pytest-mock)
9df0080
BuildRequires:  python3dist(pytest-vcr)
1e031c7
BuildRequires:  python3dist(cloudpickle)
634579f
%if %{without bootstrap}
634579f
BuildRequires:  python3dist(distributed)
cd3c62e
BuildRequires:  python3dist(zarr)
634579f
%endif
22ced52
BuildRequires:  python3dist(jinja2)
1e031c7
BuildRequires:  python3dist(lz4)
22ced52
BuildRequires:  python3dist(notebook)
3d0e281
BuildRequires:  python3dist(numpy)
22ced52
BuildRequires:  python3dist(python-snappy)
1e031c7
BuildRequires:  python3dist(zstandard)
3d0e281
BuildRequires:  git-core
634579f
ed8863a
%global _description %{expand:
634579f
Filesystem Spec is a project to unify various projects and classes to work with
634579f
remote filesystems and file-system-like abstractions using a standard pythonic
ed8863a
interface.}
ed8863a
ed8863a
%description %{_description}
634579f
634579f
634579f
%package -n     python3-%{srcname}
634579f
Summary:        %{summary}
634579f
ed8863a
%description -n python3-%{srcname} %{_description}
634579f
634579f
634579f
%prep
71459a7
%autosetup -n filesystem_spec-%{tag} -p1
634579f
3d0e281
%generate_buildrequires
3d0e281
# Skipped extras:
3c963be
# - (when bootstrapping) gcs and gs: Don't have gcsfs
3d0e281
# - abfs and adl: Don't have adlfs
3d0e281
# - arrow and hdfs: Don't have pyarrow
3d0e281
# - dask: Don't have distributed
3d0e281
# - dropbox: Don't have dropboxdrivefs
3d0e281
# - fuse: Won't work in a build since it requires the kernel module to be loaded.
3d0e281
# - gui: Don't have panel
3d0e281
# - oci: Don't have ocifs
3d0e281
# - s3: Don't have s3fs
3d0e281
# - sftp and ssh: Requires a running SSH server in a container
3d0e281
# - smb: Requires a running SMB server in a container.
3c963be
%pyproject_buildrequires -x %{?!with_bootstrap:gcs,gs,}git,github,http,libarchive,tqdm
634579f
634579f
%build
71459a7
%pyproject_wheel
71459a7
634579f
%install
71459a7
%pyproject_install
71459a7
%pyproject_save_files %{srcname}
634579f
634579f
%check
9df0080
%{pytest} -vra -k 'not test_find'  # Doesn't have a vcr cassette.
634579f
71459a7
%files -n python3-%{srcname} -f %{pyproject_files}
634579f
%doc README.md
634579f
%license LICENSE
634579f
634579f
%changelog
9165dcf
%autochangelog