Skip to content

Some Live shapes don't have CenterX / CenterY, exception raised

e.g. 9. dalekohlad.ai. Occurs 31 times in the donated files

Traceback:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/jonathan/source/extension-ai/inkai/__main__.py", line 40, in <module>
    main()
  File "/home/jonathan/source/extension-ai/inkai/cmd.py", line 82, in main
    AIInput().run(output=stdout)
  File "/home/jonathan/.cache/pypoetry/virtualenvs/inkai-7U14oSAt-py3.12/lib/python3.12/site-packages/inkex/base.py", line 251, in run
    self.load_raw()
  File "/home/jonathan/.cache/pypoetry/virtualenvs/inkai-7U14oSAt-py3.12/lib/python3.12/site-packages/inkex/base.py", line 265, in load_raw
    document = self.load(self.file_io)
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jonathan/source/extension-ai/inkai/cmd.py", line 58, in load
    return self.parse_ai_data(parsed)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jonathan/source/extension-ai/inkai/cmd.py", line 62, in parse_ai_data
    svg: inkex.SvgDocumentElement = ai2svg(parsed)
                                    ^^^^^^^^^^^^^^
  File "/home/jonathan/source/extension-ai/inkai/svg/convert.py", line 20, in ai2svg
    cm.interpret(section)
  File "/home/jonathan/source/extension-ai/inkai/svg/icontextmanager.py", line 55, in interpret
    self.execute(o)
  File "/home/jonathan/source/extension-ai/inkai/svg/icontextmanager.py", line 63, in execute
    self.func_mapping[dec(op.start)](op)
  File "/home/jonathan/source/extension-ai/inkai/svg/contextmanager.py", line 115, in start_layer
    self.interpret(child)
  File "/home/jonathan/source/extension-ai/inkai/svg/icontextmanager.py", line 55, in interpret
    self.execute(o)
  File "/home/jonathan/source/extension-ai/inkai/svg/icontextmanager.py", line 59, in execute
    self.func_mapping[type(op)](op)
  File "/home/jonathan/source/extension-ai/inkai/svg/contextmanager.py", line 279, in entry_art_dictionary
    success = self.lscm.convert_live_shape(ls)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jonathan/source/extension-ai/inkai/svg/live_shape/lscontext.py", line 60, in convert_live_shape
    result = func(type(params))
             ^^^^^^^^^^^^^^^^^^
  File "/home/jonathan/source/extension-ai/inkai/svg/live_shape/lscontext.py", line 79, in create_rectangle
    return self.create_regular_rectangle(rect)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jonathan/source/extension-ai/inkai/svg/live_shape/lscontext.py", line 105, in create_regular_rectangle
    self._set_rect_attributes(result, rect)
  File "/home/jonathan/source/extension-ai/inkai/svg/live_shape/lscontext.py", line 90, in _set_rect_attributes
    rect.center.x - rect.width / 2, rect.center.y - rect.height / 2
    ^^^^^^^^^^^
  File "/home/jonathan/source/extension-ai/inkai/svg/live_shape/types.py", line 121, in center
    self.params[f"{self.prefix}::CenterX"],
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyError: 'ai::Rectangle::CenterX'