File python-i3ipc.spec of Package python-i3ipc

# spec file for package python-i3ipc
# Copyright (c) 2022 SUSE LLC
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via

%define skip_python2 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name:           python-i3ipc
# Before upgrading, verify compatibility with bumblebee-status module title
Version:        2.2.1
Release:        0
Summary:        Python library for i3 WM extensions
License:        BSD-3-Clause
Group:          Development/Languages/Python
BuildRequires:  %{python_module pytest}
BuildRequires:  %{python_module setuptools}
BuildRequires:  fdupes
# for tests we need i3 at build time
BuildRequires:  %{python_module python-xlib}
BuildRequires:  %{python_module asyncio}
BuildRequires:  i3
BuildRequires:  python-rpm-macros
BuildRequires:  xvfb-run
Requires:       python-python-xlib
BuildArch:      noarch

python-i3ipc is a Python library for controlling the i3 window manager which
aims to be used by scripts and applications which interact with the window
manager like status line generators, notification daemons and pagers.

This library uses i3’s interprocess communication, which is the interface
that i3 WM uses to receive commands from client applications such as i3-msg. It
also features a publish/subscribe mechanism for notifying interested parties of
window manager events.

%setup -q -n i3ipc-python-%{version}
sed -i "s/'enum-compat'//"

# Remove shebang which is not needed (that script cannot be executed
# standalone).
sed -i '/^#!\/usr\/bin\/env.*/d' examples/*.py examples/i3-focus/*.py

# Examples shouldn't be executable
find examples/ -name \*.py -exec chmod -x '{}' \;


%python_expand %fdupes %{buildroot}%{$python_sitelib}

# test_shutdown_event_reconnect always fails
# test_restart fails on openSUSE/SLE 15
# test_window_event is intermittent
# test_detailed_window_event stucks in obs, not with the local build (
%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib}
xvfb-run --server-args "-screen 0 1920x1080x24" \
  $python -m pytest -k 'not (test_shutdown_event_reconnect or test_restart or test_window_event or test_detailed_window_event)'

%files %{python_files}
%license LICENSE
%doc README.rst docs/*.rst
%doc examples/

openSUSE Build Service is sponsored by