Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlovetox <philipp@hoerist.com>2021-12-19 10:06:14 +0300
committerlovetox <philipp@hoerist.com>2021-12-19 10:22:21 +0300
commitb0f69b3bd7f0de3b5f9d6a038ce1939619838220 (patch)
treea84fdcc90606b65b411cd7a6156288d48302580b /scripts
parent6b58d0d0c977a88f10bf35e4e24e60573278624a (diff)
Builder: Simplify stub file
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/dev/generate_ui_types.py30
1 files changed, 14 insertions, 16 deletions
diff --git a/scripts/dev/generate_ui_types.py b/scripts/dev/generate_ui_types.py
index 7c0d817dd..b41ffaecd 100755
--- a/scripts/dev/generate_ui_types.py
+++ b/scripts/dev/generate_ui_types.py
@@ -31,23 +31,13 @@ from typing import overload
from gi.repository import Atk
from gi.repository import Gtk
from gi.repository import GtkSource
-from gi.repository import GObject
class Builder: ...
'''
-CLASS_DEF = '''
-class %s(Builder):
-'''
-
-OVERLOAD = '''
- @overload
- def get(self, name: Literal['%s']) -> %s: ...'''
-
-METHOD = '''
- def get(self, name: str) -> GObject.Object: ...'''
-
+CLASS_DEF = '\nclass %s(Builder):'
+ATTR = '\n %s: %s'
GET_BUILDER_OVERLOAD = '''
@overload
@@ -66,8 +56,7 @@ def make_class_name(path):
def parse(path, file):
print('read', path)
- klass_name = make_class_name(path)
- file.write(CLASS_DEF % klass_name)
+ lines = []
tree = ET.parse(path)
for node in tree.iter(tag='object'):
id_ = node.attrib.get('id')
@@ -80,8 +69,17 @@ def parse(path, file):
klass = f'Atk.{klass.removeprefix("Atk")}'
else:
klass = f'Gtk.{klass.removeprefix("Gtk")}'
- file.write(OVERLOAD % (id_, klass))
- file.write(METHOD)
+
+ lines.append(ATTR % (id_.replace('-', '_'), klass))
+
+ klass_name = make_class_name(path)
+ file.write(CLASS_DEF % klass_name)
+
+ if not lines:
+ file.write('\n pass')
+ else:
+ for line in lines:
+ file.write(line)
file.write('\n\n')
return klass_name