Blob Blame History Raw
%global srcname xd
%global pypi_name xdfile
%global date 20240101
%global commit 3349ddcf5f4503b243ab9629d8cdbed756cbff56
%global shortcommit %(c=%{commit}; echo ${c:0:7})

Name:           python-%{pypi_name}
Version:        1.9.0~%{date}git%{shortcommit}
Release:        %autorelease
Summary:        Python parser for .xd crossword format

License:        MIT
URL:            https://github.com/century-arcade/xd
Source:         %{url}/archive/%{commit}/%{srcname}-%{commit}.tar.gz

BuildArch:      noarch
BuildRequires:  python3-devel
BuildRequires:  python3-pytest
BuildRequires:  sed

%global _description %{expand:
This package provides a simple parser for .xd -- a corpus-oriented format,
modeled after the simplicity and intuitiveness of the markdown format. It
supports 99.99% of published crosswords, and is intended to be convenient for
bulk analysis of crosswords by both humans and machines, from the present and
into the future.}

%description %_description

%package -n     python3-%{pypi_name}
Summary:        %{summary}

%description -n python3-%{pypi_name} %_description

%prep
%autosetup -p1 -n %{srcname}-%{commit}

# remove bundled library
rm -r crossword

# remove unnecessary shebangs
sed -i 's:^#!/usr/bin/env python.*$::' xdfile/*.py

%generate_buildrequires
%pyproject_buildrequires

%build
%pyproject_wheel

%install
%pyproject_install
%pyproject_save_files %{pypi_name}

# remove sample script
rm %{buildroot}%{_bindir}/sample

%check
# remove broken test
# https://github.com/century-arcade/xd/issues/72
rm xdfile/tests/test_xdfile.py
%pytest

%files -n python3-%{pypi_name} -f %{pyproject_files}
%doc README.md doc/xd-format.md

%changelog
%autochangelog