%bcond_with docs
%bcond_with tests
 
%global _empty_manifest_terminate_build 0
%global pypi_name libcst
 
%global common_description %{expand:
LibCST parses Python source code as a CST tree that keeps all formatting
details (comments, whitespaces, parentheses, etc). It's useful for building
automated refactoring (codemod) applications and linters.
 
LibCST creates a compromise between an Abstract Syntax Tree (AST) and a
traditional Concrete Syntax Tree (CST). By carefully reorganizing and naming
node types and fields, it creates a lossless CST that looks and feels like an
AST.}
 
Name:           python-%{pypi_name}
Version:        0.4.10
Release:        1
Summary:        A concrete syntax tree with AST-like properties for Python 3
License:        MIT and (MIT and Python) and ASL 2.0
URL:            https://github.com/Instagram/LibCST
Source0:        %{pypi_source %{pypi_name}}
Source1:        cargo-vendor-cache
Patch1:         0001-set-cargo-vendor-cache-for-local-build.patch
 
BuildRequires:  rust-packaging

BuildRequires:  python3-devel
BuildRequires:  python3dist(setuptools)
BuildRequires:  python3dist(setuptools-scm)
BuildRequires:  python3dist(setuptools-rust)
%if %{with tests}
BuildRequires:  python3dist(pytest)
BuildRequires:  python3dist(pyyaml) >= 5.2
BuildRequires:  python3dist(hypothesis)
BuildRequires:  python3dist(hypothesmith)
%endif
BuildRequires:  python3dist(typing-inspect) >= 0.4
%if %{with docs}
BuildRequires:  graphviz
BuildRequires:  sed
BuildRequires:  python3-docs
BuildRequires:  python3-metakernel-python
BuildRequires:  python3dist(sphinx)
BuildRequires:  python3dist(nbsphinx) >= 0.4.2
BuildRequires:  python3dist(sphinx-rtd-theme) >= 0.4.3
%endif
 
%description
%{common_description}
 
%package -n     python3-%{pypi_name}
Summary:        %{summary}
 
%description -n python3-%{pypi_name}
%{common_description}
 
%if %{with docs}
%package        doc
Summary:        %{name} documentation
Requires:       python3-docs
 
%description    doc
Documentation for %{name}
%endif
 
%prep
%autosetup -p1 -n %{pypi_name}-%{version}
tar xzvf %{SOURCE1} -C ./native/

%if %{with docs}
sed -r \
    -e 's|https://docs.python.org/3|%{_docdir}/python3-docs/html|' \
    -i docs/source/conf.py
%endif
 
%build
%py3_build
%if %{with docs}
PYTHONPATH=${PWD} sphinx-build-3 docs/source html
rm -rf html/.{doctrees,buildinfo}
%endif
 
%install
%py3_install
 
%files -n python3-%{pypi_name}
%license LICENSE
%doc README.rst
%{python3_sitearch}/%{pypi_name}
%{python3_sitearch}/%{pypi_name}-%{version}-py%{python3_version}.egg-info
 
%if %{with docs}
%files doc
%doc html
%license LICENSE
%endif
 
%changelog
* Fri Jun 30 2023 Dongxing Wang <dxwangk@isoftstone.com> - 0.4.10-1
- Upgrade package to version 0.4.10

* Tue Jun 6 2023 chaozhangm <chaozhangm@isoftstone.com> - 0.3.21-1
- Initial package.
