%global srcname dask # Requires distributed, which is a loop. # Also, some tests require packages that require dask itself. # Force bootstrap for package review. %bcond_without bootstrap Name: python-%{srcname} Version: 2021.8.0 Release: %autorelease Summary: Parallel PyData with Task Scheduling License: BSD URL: https://github.com/dask/dask/ Source0: %pypi_source # https://github.com/dask/dask/issues/6725 Patch0001: 0001-Skip-test_encoding_gh601-on-big-endian-machines.patch # https://github.com/dask/dask/pull/7661 Patch0002: 0002-fix-index_col-duplication-if-index_col-is-type-str.patch BuildArch: noarch %description Dask is a flexible parallel computing library for analytics. %package -n python3-%{srcname} Summary: %{summary} %{?python_provide:%python_provide python3-%{srcname}} BuildRequires: python3-devel %global cloudpickle_version 0.2.2 BuildRequires: python3dist(cloudpickle) >= %{cloudpickle_version} %global fsspec_version 0.6 BuildRequires: python3dist(fsspec) >= %{fsspec_version} BuildRequires: python3dist(graphviz) BuildRequires: python3dist(ipython) %global numpy_version 1.18 BuildRequires: python3dist(numpy) >= %{numpy_version} BuildRequires: python3dist(packaging) >= 20 %global pandas_version 1 BuildRequires: python3dist(pandas) >= %{pandas_version} %global partd_version 0.3.10 BuildRequires: python3dist(partd) >= %{partd_version} BuildRequires: python3dist(pytest) BuildRequires: python3dist(pytest-rerunfailures) BuildRequires: python3dist(pytest-xdist) BuildRequires: python3dist(pyyaml) BuildRequires: python3dist(setuptools) %global toolz_version 0.8.2 BuildRequires: python3dist(toolz) >= %{toolz_version} %if %{without bootstrap} %global distributed_version 2021.8 BuildRequires: python3dist(distributed) >= %{distributed_version} BuildRequires: python3dist(scikit-image) BuildRequires: python3dist(xarray) %endif # Optional test requirements. BuildRequires: python3dist(fastavro) BuildRequires: python3dist(h5py) BuildRequires: python3dist(psutil) BuildRequires: python3dist(requests) BuildRequires: python3dist(sqlalchemy) BuildRequires: python3dist(zarr) Recommends: python3-%{srcname}+array = %{version}-%{release} Recommends: python3-%{srcname}+bag = %{version}-%{release} Recommends: python3-%{srcname}+dataframe = %{version}-%{release} Recommends: python3-%{srcname}+delayed = %{version}-%{release} %if %{without bootstrap} Recommends: python3-%{srcname}+distributed = %{version}-%{release} %endif %description -n python3-%{srcname} Dask is a flexible parallel computing library for analytics. %package -n python3-%{srcname}+array Summary: Meta-package for python3-%{srcname} with array feature BuildArch: noarch %{?python_provide:%python_provide python3-%{srcname}+array} Requires: python3-%{srcname} = %{version}-%{release} Requires: python3dist(numpy) >= %{numpy_version} Requires: python3dist(toolz) >= %{toolz_version} %description -n python3-%{srcname}+array This package installs dask with dependencies required for its array feature. Dask is a flexible parallel computing library for analytics. %package -n python3-%{srcname}+bag Summary: Meta-package for python3-%{srcname} with bag feature BuildArch: noarch %{?python_provide:%python_provide python3-%{srcname}+bag} Requires: python3-%{srcname} = %{version}-%{release} Requires: python3dist(cloudpickle) >= %{cloudpickle_version} Requires: python3dist(fsspec) >= %{fsspec_version} Requires: python3dist(partd) >= %{partd_version} Requires: python3dist(toolz) >= %{toolz_version} %description -n python3-%{srcname}+bag This package installs dask with dependencies required for its bag feature. Dask is a flexible parallel computing library for analytics. %package -n python3-%{srcname}+dataframe Summary: Meta-package for python3-%{srcname} with dataframe feature BuildArch: noarch %{?python_provide:%python_provide python3-%{srcname}+dataframe} Requires: python3-%{srcname} = %{version}-%{release} Requires: python3dist(fsspec) >= %{fsspec_version} Requires: python3dist(numpy) >= %{numpy_version} Requires: python3dist(pandas) >= %{pandas_version} Requires: python3dist(partd) >= %{partd_version} Requires: python3dist(toolz) >= %{toolz_version} %description -n python3-%{srcname}+dataframe This package installs dask with dependencies required for its dataframe feature. Dask is a flexible parallel computing library for analytics. %package -n python3-%{srcname}+delayed Summary: Meta-package for python3-%{srcname} with delayed feature BuildArch: noarch %{?python_provide:%python_provide python3-%{srcname}+delayed} Requires: python3-%{srcname} = %{version}-%{release} Requires: python3dist(cloudpickle) >= %{cloudpickle_version} Requires: python3dist(toolz) >= %{toolz_version} %description -n python3-%{srcname}+delayed This package installs dask with dependencies required for its delayed feature. Dask is a flexible parallel computing library for analytics. %if %{without bootstrap} %package -n python3-%{srcname}+distributed Summary: Meta-package for python3-%{srcname} with distributed feature BuildArch: noarch %{?python_provide:%python_provide python3-%{srcname}+distributed} Requires: python3-%{srcname} = %{version}-%{release} Requires: python3dist(distributed) >= %{distributed_version} %description -n python3-%{srcname}+distributed This package installs dask with dependencies required for its distributed feature. Dask is a flexible parallel computing library for analytics. %endif %if %{without bootstrap} %package -n python-%{srcname}-doc Summary: dask documentation BuildRequires: python3dist(dask_sphinx_theme) >= 1.3.5 BuildRequires: python3dist(numpydoc) BuildRequires: python3dist(sphinx) %description -n python-%{srcname}-doc Documentation for dask. %endif %prep %autosetup -n %{srcname}-%{version} -p1 # Remove bundled egg-info rm -rf %{srcname}.egg-info %build %py3_build %if %{without bootstrap} # generate html docs PYTHONPATH=${PWD} sphinx-build-3 docs/source html # remove the sphinx-build leftovers rm -rf html/.{doctrees,buildinfo} %endif %install %py3_install %check %ifarch arm # Is there a way to do this in one line? %global have_arm 1 %endif pytest_args=( -m 'not network' # https://bugzilla.redhat.com/show_bug.cgi?id=1968947#c4 --deselect=dask/dataframe/io/tests/test_sql.py::test_select_from_select -n %[0%{?have_arm}?"2":"auto"] ) %{pytest} "${pytest_args[@]}" %files -n python3-%{srcname} %doc README.rst %license LICENSE.txt %{python3_sitelib}/%{srcname}/ %{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info/ %files -n python3-%{srcname}+array %{?python_extras_subpkg:%ghost %{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info} %files -n python3-%{srcname}+bag %{?python_extras_subpkg:%ghost %{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info} %files -n python3-%{srcname}+dataframe %{?python_extras_subpkg:%ghost %{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info} %files -n python3-%{srcname}+delayed %{?python_extras_subpkg:%ghost %{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info} %if %{without bootstrap} %files -n python3-%{srcname}+distributed %{?python_extras_subpkg:%ghost %{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info} %endif %if %{without bootstrap} %files -n python-%{srcname}-doc %doc html %license LICENSE.txt %endif %changelog %autochangelog