## START: Set by rpmautospec ## (rpmautospec version 0.8.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global extras mkdocs,trio,toml,yaml Name: python-cyclopts Version: 4.6.0 Release: %autorelease Summary: Intuitive, easy CLIs based on type hints License: Apache-2.0 URL: https://github.com/BrianPugh/cyclopts # We are using the github tarball due to the lack of tests being present in the # pypi sources. Source: %{url}/archive/v%{version}/cyclopts-%{version}.tar.gz # For intersphinx Source1: https://docs.pydantic.dev/latest/objects.inv#/objects-pydantic.inv Source2: https://docs.python.org/3/objects.inv#/objects-python.inv Source3: https://rich.readthedocs.io/en/stable/objects.inv#/objects-rich.inv Source4: https://typing-extensions.readthedocs.io/en/latest/objects.inv#/objects-typing-extensions.inv Source5: https://docs.pytest.org/en/latest/objects.inv#/objects-pytest.inv Patch: patch-docs-conf-for-downstream-build.diff Patch1: exclude-init-members-from-exception-class.diff BuildArch: noarch BuildRequires: python3-devel # Docs dependencies BuildRequires: make BuildRequires: python3-sphinx BuildRequires: python3-myst-parser BuildRequires: python3-sphinx_rtd_theme BuildRequires: python3-sphinx-autodoc-typehints BuildRequires: python3-sphinx-copybutton BuildRequires: python3-linkify-it-py # Test dependencies BuildRequires: python3-pytest BuildRequires: python3-sphinx BuildRequires: python3-syrupy BuildRequires: python3-pydantic BuildRequires: python3-pytest-mock # Fill in the actual package description to submit package to Fedora %global _description %{expand: Cyclopts is a modern, easy-to-use command-line interface (CLI) framework that aims to provide an intuitive & efficient developer experience.} %description %_description %package -n python3-cyclopts Summary: %{summary} %description -n python3-cyclopts %_description %pyproject_extras_subpkg -n python3-cyclopts %{extras} %prep %autosetup -p1 -n cyclopts-%{version} # Use local objects.inv for intersphinx sed -E -i \ -e 's|("https://docs\.pydantic\.dev/latest/",[[:space:]]*)None|\1"%{SOURCE1}"|' \ -e 's|("https://docs\.python\.org/3",[[:space:]]*)None|\1"%{SOURCE2}"|' \ -e 's|("https://rich\.readthedocs\.io/en/stable/",[[:space:]]*)None|\1"%{SOURCE3}"|' \ -e 's|("https://typing-extensions\.readthedocs\.io/en/latest/",[[:space:]]*)None|\1"%{SOURCE4}"|' \ -e 's|("https://docs\.pytest\.org/en/latest",[[:space:]]*)None|\1"%{SOURCE5}"|' \ docs/source/conf.py # We don't want any binary blobs to be present in the sources. rm -rf assets %generate_buildrequires # Let hatch-vcs/setuptools_scm determine version outside of SCM export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %pyproject_buildrequires -x %{extras} %build # Let hatch-vcs/setuptools_scm determine version outside of SCM export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %pyproject_wheel # Override the SPHINXBUILD variable in the Makefile so we use bare sphinx-build # instead of calling `uv run sphinx-build` export SPHINXBUILD=sphinx-build pushd docs make man popd %install %pyproject_install %pyproject_save_files -l cyclopts install -D -m 644 docs/build/man/cyclopts.1 %{buildroot}%{_mandir}/man1/cyclopts.1 %check %pyproject_check_import %pytest --snapshot-update %files -n python3-cyclopts -f %{pyproject_files} %{_mandir}/man1/cyclopts.1* %{_bindir}/cyclopts %doc README.md %changelog ## START: Generated by rpmautospec * Mon Mar 02 2026 John Doe - 4.6.0-1 - Uncommitted changes ## END: Generated by rpmautospec