Name: python-echo Version: 0.15.0 Release: 1%{?dist} Summary: Callback properties in Python License: MIT URL: https://github.com/glue-viz/echo Source0: %{pypi_source echo} BuildArch: noarch BuildRequires: python3-devel BuildRequires: pyproject-rpm-macros %global _description %{expand: echo implements "callback properties": class attributes that notify registered listeners whenever their value changes, plus callback-aware list, dict and selection containers. It was split out of the glue visualization project and is the state/event layer the whole glue stack is built on. Optional helpers connect callback properties to Qt widgets (echo.qt, needs qtpy) or to ipywidgets/ipyvuetify traitlets (echo.vue, needs traitlets).} %description %{_description} %package -n python3-echo Summary: %{summary} %description -n python3-echo %{_description} %prep %autosetup -n echo-%{version} %generate_buildrequires # Tarball has no .git; setuptools_scm cannot derive the version -> pin it. export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} # -x test brings pytest/pytest-cov/ipywidgets, -x vue brings traitlets, which # together let the whole non-Qt suite run in %%check. The qt extra is # deliberately not requested: it pins pyqt5, and conftest.py would then build a # QApplication with no display in mock. %pyproject_buildrequires -x test,vue %build export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %pyproject_wheel %install export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %pyproject_install %pyproject_save_files echo %check # echo.qt is import-guarded upstream but qtpy is absent from the buildroot. %pyproject_check_import -e 'echo.qt*' # echo/qt/tests import qtpy at module scope, so they fail collection rather # than skipping; everything else runs (208 tests). %pytest echo --ignore=echo/qt %files -n python3-echo -f %{pyproject_files} %license LICENSE %doc README.rst %changelog * Tue Aug 25 2026 Morgan Hough - 0.15.0-1 - Initial package: echo 0.15.0 (callback properties, MIT). - Tier-0 leaf of the glue packaging chain (sole runtime dep numpy, already in Fedora). Required by glue-core, glue-qt, glue-jupyter and glue-vispy-viewers; glue-core's bundled glue/external/echo is only a shim re-exporting this.