d2e373
%global srcname filelock
d2e373
d2e373
%if 0%{?fedora}
d2e373
%bcond_without docs
d2e373
%bcond_without tests
d2e373
%else
d2e373
%bcond_with docs
d2e373
%bcond_with tests
d2e373
%endif
d2e373
d2e373
Name:           python-%{srcname}
d2e373
Version:        3.15.4
d2e373
Release:        %autorelease
d2e373
Summary:        A platform independent file lock
d2e373
d2e373
License:        Unlicense
d2e373
URL:            https://github.com/tox-dev/filelock
d2e373
Source0:        https://github.com/tox-dev/filelock/archive/%{version}/%{srcname}-%{version}.tar.gz
d2e373
d2e373
BuildArch:      noarch
d2e373
d2e373
BuildRequires:  python3-devel
d2e373
BuildRequires:  pyproject-rpm-macros
d2e373
%if %{with tests}
d2e373
# We cannot install extra dependencies because there are some
d2e373
# we do not have in Fedora like covdefaults in testing.
d2e373
# Test dependencies
d2e373
BuildRequires:  python3-pytest
d2e373
BuildRequires:  python3-pytest-asyncio
d2e373
BuildRequires:  python3-pytest-mock
d2e373
BuildRequires:  python3-pytest-timeout
d2e373
BuildRequires:  python3-virtualenv
d2e373
%endif
d2e373
%if %{with docs}
d2e373
# Doc dependencies
d2e373
BuildRequires:  python3-furo
d2e373
BuildRequires:  python3-sphinx
d2e373
BuildRequires:  python3-sphinx-autodoc-typehints
d2e373
%endif
d2e373
d2e373
%description
d2e373
This package contains a single module, which implements a platform independent
d2e373
file locking mechanism for Python.
d2e373
d2e373
The lock includes a lock counter and is thread safe. This means, when locking
d2e373
the same lock object twice, it will not block.
d2e373
d2e373
%package -n python%{python3_pkgversion}-%{srcname}
d2e373
Summary:        %{summary}
d2e373
d2e373
%if 0%{?fedora}
d2e373
Suggests:       %{name}-doc
d2e373
%endif
d2e373
d2e373
%description -n python%{python3_pkgversion}-%{srcname}
d2e373
This package contains a single module, which implements a platform independent
d2e373
file locking mechanism for Python.
d2e373
d2e373
The lock includes a lock counter and is thread safe. This means, when locking
d2e373
the same lock object twice, it will not block.
d2e373
d2e373
%if %{with docs}
d2e373
%package doc
d2e373
Summary:        Documentation for %{srcname}, %{summary}
d2e373
d2e373
%description doc
d2e373
%{summary}
d2e373
%endif
d2e373
d2e373
%prep
d2e373
%autosetup -p1 -n %{srcname}-%{version}
d2e373
d2e373
%generate_buildrequires
d2e373
SETUPTOOLS_SCM_PRETEND_VERSION=%{version}; export SETUPTOOLS_SCM_PRETEND_VERSION
d2e373
%pyproject_buildrequires -r
d2e373
d2e373
%build
d2e373
SETUPTOOLS_SCM_PRETEND_VERSION=%{version}; export SETUPTOOLS_SCM_PRETEND_VERSION
d2e373
%pyproject_wheel
d2e373
d2e373
%if %{with docs}
d2e373
pushd docs
d2e373
PYTHONPATH=../src sphinx-build ./ html --color -b html -d doctrees
d2e373
rm html/.buildinfo
d2e373
popd
d2e373
%endif
d2e373
d2e373
%install
d2e373
%pyproject_install
d2e373
%pyproject_save_files -l %{srcname}
d2e373
d2e373
%check
d2e373
%if %{with tests}
d2e373
%pytest
d2e373
%else
d2e373
%pyproject_check_import
d2e373
%endif
d2e373
d2e373
%if %{with docs}
d2e373
%files doc
d2e373
%license LICENSE
d2e373
%doc docs/html
d2e373
%endif
d2e373
d2e373
%files -n python%{python3_pkgversion}-%{srcname} -f %{pyproject_files}
d2e373
%doc README.md
d2e373
d2e373
d2e373
%changelog
d2e373
%autochangelog