biscuit: AttributeError: 'TclError' object has no attribute 'message'

Bug

Describe the bug

I do python biscuit and it shows me that:

Traceback (most recent call last):
  File "C:\Program Files\Python311\Lib\site-packages\tkextrafont\__init__.py", line 118, in load
    window.tk.eval("package require extrafont")
_tkinter.TclError: extra characters after close-brace

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\Administrator\Downloads\Biscuit-main\Biscuit-main\biscuit\__main__.py", line 15, in <module>
    app = App(dir=dir)
          ^^^^^^^^^^^^
  File "C:\Users\Administrator\Downloads\Biscuit-main\Biscuit-main\biscuit\app.py", line 36, in __init__
    self.setup()
  File "C:\Users\Administrator\Downloads\Biscuit-main\Biscuit-main\biscuit\app.py", line 48, in setup
    self.setup_configs()
  File "C:\Users\Administrator\Downloads\Biscuit-main\Biscuit-main\biscuit\app.py", line 93, in setup_configs
    self.settings = Settings(self)
                    ^^^^^^^^^^^^^^
  File "C:\Users\Administrator\Downloads\Biscuit-main\Biscuit-main\biscuit\core\settings\__init__.py", line 31, in __init__
    self.setup_properties()
  File "C:\Users\Administrator\Downloads\Biscuit-main\Biscuit-main\biscuit\core\settings\__init__.py", line 64, in setup_properties
    self.setup_font()
  File "C:\Users\Administrator\Downloads\Biscuit-main\Biscuit-main\biscuit\core\settings\__init__.py", line 76, in setup_font
    self.firacodefont = extra.Font(file=os.path.join(self.base.resdir, "fonts/firacode/firacode.ttf"), family="firacode")
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\site-packages\tkextrafont\__init__.py", line 90, in __init__
    load(root)
  File "C:\Program Files\Python311\Lib\site-packages\tkextrafont\__init__.py", line 120, in load
    if "libfontconfig" in e.message:
                          ^^^^^^^^^
AttributeError: 'TclError' object has no attribute 'message'

System Information

  • OS: Windows
  • Python Version: 3.11.4

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 19 (11 by maintainers)

Most upvoted comments

Actually CustomTkinterTitlebar only works for windows(I can’t test on any other platform)

Does setting -topmost flag stop this always-on-top behavior of windows after .wm_overrideredirect()?

It doesn’t. I think it’s because when you call .wm_overrideredirect(True) it tells the window manager, to disregard that window, and therefore the window will have no idea about the stacking order.

have you tried .wm_overrideredirect() on any projects before, if so how did they behave and have you found any fixes for them?

No, but judging from my conclusion above, it is probably not possible 😦(

@littlewhitecloud seems the issue has been fixed, receiving some info from @rdbende, I can say that this is more of an issue with the font, some are not supported. I have removed the unnecessary fonts, let me know if you test again!

Resizing doesn’t work, and any of the menus either.

No idea what happened, resizing works now, and the menus doesn’t close immediately. However, they now can’t be dismissed at all, and the items can’t be activated.

@littlewhitecloud thanks for testing out! the current titlebar works notso fine and i had to reconfigure all window manager features manually when i did it, would check CustomTkinterTitlebar at a point and see if it can manage this better!

about the border, the only reason it was added was for the resizing feature of window, which was lost after overrideredict flag. Maybe can add a toggle option for the color in settings later!

also comments on the CustomTkinterTitlebar, I cant say much about the padding issue there since I have not worked with win32 API. Seems the solution is pretty windows specific, it should be cross-platform at a point, so focus on that too 😃

@rdbende oh yess my bad! it was

    self.firacodefont = extra.Font(file=os.path.join(self.base.resdir, "fonts/firacode/firacode.ttf"), family="firacode")
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cid0rz/.pyenv/versions/test311/lib/python3.11/site-packages/tkextrafont/__init__.py", line 92, in __init__
    root.tk.call("extrafont::load", file)
_tkinter.TclError: key "fontFamily" not known in dictionary

but if this one was caused by the specific font, it shall be fixed by now i hope

@littlewhitecloud no changes were made to the libs used, they are used as they are. this one specific lib that is throwing an error here is tkextrafont. I will let you know of any updates!

@littlewhitecloud Thank you for reporting this error! ❤ While I thought this was caused due to Python version 3.11.4 (maybe due to tcl updates, I was running 3.11.3), I tried to update Python and check again, but I was unable to reproduce the error. I will look into it, and test it in a few more machines!