From 66e3e1786dafdf3f635611b2e5a32e5ad651a16f Mon Sep 17 00:00:00 2001 From: Jeremy Fleischman Date: Fri, 1 Aug 2025 13:23:25 -0700 Subject: [PATCH] pympress: unbreak `pympress` currently crashes: ```console $ pympress Traceback (most recent call last): ... File "/usr/lib/python3.13/site-packages/pympress/builder.py", line 79, in __translate_widget_strings for str_prop in (prop.name for prop in a_widget.props if prop.value_type == GObject.TYPE_STRING): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.13/site-packages/pympress/builder.py", line 79, in for str_prop in (prop.name for prop in a_widget.props if prop.value_type == GObject.TYPE_STRING): ^^^^^^^^^^^^^^ TypeError: 'gi._gi.GPropsIter' object is not iterable ``` This isn't really a pympress bug, it's an unfortunate interaction between Python 3 and pygobject. See for details. --- .../issue-330-gprops-iter-actually-iterable.patch | 11 +++++++++++ pkgs/by-name/py/pympress/package.nix | 7 +++++++ 2 files changed, 18 insertions(+) create mode 100644 pkgs/by-name/py/pympress/issue-330-gprops-iter-actually-iterable.patch diff --git a/pkgs/by-name/py/pympress/issue-330-gprops-iter-actually-iterable.patch b/pkgs/by-name/py/pympress/issue-330-gprops-iter-actually-iterable.patch new file mode 100644 index 000000000000..4449daeda189 --- /dev/null +++ b/pkgs/by-name/py/pympress/issue-330-gprops-iter-actually-iterable.patch @@ -0,0 +1,11 @@ +--- i/pympress/builder.py ++++ w/pympress/builder.py +@@ -76,7 +76,7 @@ class Builder(Gtk.Builder): + Args: + a_widget (:class:`~GObject.Object`): an object built by the builder, usually a widget + """ +- for str_prop in (prop.name for prop in a_widget.props if prop.value_type == GObject.TYPE_STRING): ++ for str_prop in (prop.name for prop in list(a_widget.props) if prop.value_type == GObject.TYPE_STRING): + try: + str_val = getattr(a_widget.props, str_prop) + if str_val: diff --git a/pkgs/by-name/py/pympress/package.nix b/pkgs/by-name/py/pympress/package.nix index e93c371b2808..00516db13471 100644 --- a/pkgs/by-name/py/pympress/package.nix +++ b/pkgs/by-name/py/pympress/package.nix @@ -30,6 +30,13 @@ python3Packages.buildPythonApplication rec { babel ]; + patches = [ + # Workaround for a bug on Python >= 3.13+ and pygobject < 3.51. + # This can go away once nixpkgs is using pygobject >= 3.51. + # See for details. + ./issue-330-gprops-iter-actually-iterable.patch + ]; + dependencies = with python3Packages; [