Skip to content

"Clean up path" traceback due to missing subpath_iterator

Summary:

Using the Inkex bundled with Inkscape 1.4.2, the "Clean up path" extension fails with a traceback when attempting to preview its results.

Steps to reproduce:

  • open Inkscape
  • Create or import any SVG drawing
  • Activate the Node tool
  • Select some path-based drawing element
  • Go to the menu and navigate to Extensions > Modify path > Clean up path...
  • Check "Live preview" in the extension dialog

What happened?

An error dialog pops up with the following:

Traceback (most recent call last):
  File "/usr/share/inkscape/extensions/clean_up_path.py", line 484, in <module>
    CleanUpPath().run()
    ~~~~~~~~~~~~~~~~~^^
  File "/usr/share/inkscape/extensions/inkex/base.py", line 255, in run
    self.save_raw(self.effect())
                  ~~~~~~~~~~~^^
  File "/usr/share/inkscape/extensions/clean_up_path.py", line 133, in effect
    "subpaths": [sub for sub in self.path_d.subpath_iterator()]
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Path' object has no attribute 'subpath_iterator'

What should have happened?

The extension should've previewed its changes with no traceback.

Additional info

I strongly suspect this is related to extensions#606 (though it doesn't seem to be the same issue), and may also be addressed by extensions!689.

It's strange, though, because when extensions!499 (merged) was originally merged, subpath_iterator() was added to inkex/paths/path.py. Somehow it disappeared from 1.4.2, but clean_up_path.py didn't.

Version info

Inkscape 1.4.2 (ebf0e940d0, 2025-05-08)

                      Compile  (Run)
    GLib version:     2.84.1
    GTK version:      3.24.49 (3.24.49)
    glibmm version:   2.66.8
    gtkmm version:    3.24.10
    libxml2 version:  2.12.10
    libxslt version:  1.1.43
    Cairo version:    1.18.2 (1.18.2)
    Pango version:    1.56.3 (1.56.4)
    HarfBuzz version: 10.4.0 (10.4.0)

    OS version:       Fedora Linux 42 (Adams)
Edited by FeRD (Frank Dana)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information