From c3754bd0c632314ebbbed0138043d203d6e8ad64 Mon Sep 17 00:00:00 2001 From: Vishal Date: Thu, 25 Jul 2024 20:45:55 +0530 Subject: [PATCH 1/5] Fixing a bug related to plugin file names. Fixed a bug where plugins don't run due to them being named same as inbuilt module from standard library of python. --- src/assets/ba_data/python/babase/_general.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/assets/ba_data/python/babase/_general.py b/src/assets/ba_data/python/babase/_general.py index 8c6b0d16..20bb3b73 100644 --- a/src/assets/ba_data/python/babase/_general.py +++ b/src/assets/ba_data/python/babase/_general.py @@ -3,6 +3,7 @@ """Utility snippets applying to generic Python code.""" from __future__ import annotations +import sys import types import weakref import random @@ -79,6 +80,8 @@ def getclass(name: str, subclassof: type[T]) -> type[T]: splits = name.split('.') modulename = '.'.join(splits[:-1]) classname = splits[-1] + if modulename in sys.stdlib_module_names: + raise Exception(f'{modulename} is an inbuilt module.') module = importlib.import_module(modulename) cls: type = getattr(module, classname) From 6002525af1585832866750f948a96f9b0ef243cc Mon Sep 17 00:00:00 2001 From: Vishal Date: Thu, 25 Jul 2024 23:48:44 +0530 Subject: [PATCH 2/5] Adding check to be used only for plugins --- src/assets/ba_data/python/babase/_general.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/assets/ba_data/python/babase/_general.py b/src/assets/ba_data/python/babase/_general.py index 20bb3b73..20ecff8d 100644 --- a/src/assets/ba_data/python/babase/_general.py +++ b/src/assets/ba_data/python/babase/_general.py @@ -67,7 +67,10 @@ def existing(obj: ExistableT | None) -> ExistableT | None: return obj if obj is not None and obj.exists() else None -def getclass(name: str, subclassof: type[T]) -> type[T]: +def getclass(name: str, + subclassof: type[T], + check_sdlib_modulename_clash: bool = False + ) -> type[T]: """Given a full class name such as foo.bar.MyClass, return the class. Category: **General Utility Functions** @@ -80,7 +83,7 @@ def getclass(name: str, subclassof: type[T]) -> type[T]: splits = name.split('.') modulename = '.'.join(splits[:-1]) classname = splits[-1] - if modulename in sys.stdlib_module_names: + if modulename in sys.stdlib_module_names and check_sdlib_modulename_clash: raise Exception(f'{modulename} is an inbuilt module.') module = importlib.import_module(modulename) cls: type = getattr(module, classname) From 691dfa8ab14b312c08463a6275d83f200950c0e2 Mon Sep 17 00:00:00 2001 From: Vishal Date: Thu, 25 Jul 2024 23:49:13 +0530 Subject: [PATCH 3/5] Update _plugin.py --- src/assets/ba_data/python/babase/_plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/ba_data/python/babase/_plugin.py b/src/assets/ba_data/python/babase/_plugin.py index 2ddab074..5e5f675a 100644 --- a/src/assets/ba_data/python/babase/_plugin.py +++ b/src/assets/ba_data/python/babase/_plugin.py @@ -278,7 +278,7 @@ class PluginSpec: if not self.loadable: return None try: - cls = getclass(self.class_path, Plugin) + cls = getclass(self.class_path, Plugin, True) except Exception as exc: _babase.getsimplesound('error').play() _babase.screenmessage( From abf1bb9b6261b13fc679a105ad6b316d29e3da51 Mon Sep 17 00:00:00 2001 From: Vishal Date: Fri, 26 Jul 2024 00:38:45 +0530 Subject: [PATCH 4/5] maxwidth fix --- .../ba_data/python/bauiv1lib/playlist/customizebrowser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/ba_data/python/bauiv1lib/playlist/customizebrowser.py b/src/assets/ba_data/python/bauiv1lib/playlist/customizebrowser.py index 10b147ba..789e53fd 100644 --- a/src/assets/ba_data/python/bauiv1lib/playlist/customizebrowser.py +++ b/src/assets/ba_data/python/bauiv1lib/playlist/customizebrowser.py @@ -400,7 +400,7 @@ class PlaylistCustomizeBrowserWindow(bui.Window): txtw = bui.textwidget( parent=self._columnwidget, size=(self._width - 40, 30), - maxwidth=self._width - 110, + maxwidth=440, text=self._get_playlist_display_name(pname), h_align='left', v_align='center', From 62a246de4a2f05360745ce2490fa3532d315e4f2 Mon Sep 17 00:00:00 2001 From: Vishal Date: Fri, 26 Jul 2024 00:42:33 +0530 Subject: [PATCH 5/5] another maxwidth fix --- src/assets/ba_data/python/bauiv1lib/playlist/edit.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/assets/ba_data/python/bauiv1lib/playlist/edit.py b/src/assets/ba_data/python/bauiv1lib/playlist/edit.py index a671606b..3a3fccab 100644 --- a/src/assets/ba_data/python/bauiv1lib/playlist/edit.py +++ b/src/assets/ba_data/python/bauiv1lib/playlist/edit.py @@ -122,6 +122,7 @@ class PlaylistEditWindow(bui.Window): h_align='left', v_align='center', max_chars=40, + maxwidth=380, autoselect=True, color=(0.9, 0.9, 0.9, 1.0), description=bui.Lstr(resource=f'{self._r}.listNameText'),