@@ -66,10 +66,10 @@ def generate_pdb_stubs(output_dirpath):
66
66
67
67
pypdb_class_node = _get_pypdb_class_node (root_node )
68
68
69
- for proc_name , proc in sorted (_get_gimp_pdb_procedures (). items ()):
70
- _insert_gimp_pdb_procedure_node (pypdb_class_node , proc_name , proc )
69
+ for proc_name in sorted (pypdb . pdb . list_all_gimp_pdb_procedures ()):
70
+ _insert_gimp_pdb_procedure_node (pypdb_class_node , proc_name )
71
71
72
- for proc_name in sorted (_get_gegl_procedures ()):
72
+ for proc_name in sorted (pypdb . pdb . list_all_gegl_operations ()):
73
73
_insert_gegl_procedure_node (pypdb_class_node , proc_name )
74
74
75
75
write_stub_file (output_dirpath , root_node )
@@ -149,17 +149,19 @@ def _get_pypdb_class_node(root_node):
149
149
return pypdb_class_node
150
150
151
151
152
- def _insert_gimp_pdb_procedure_node (pypdb_class_node , procedure_name , procedure ):
152
+ def _insert_gimp_pdb_procedure_node (pypdb_class_node , procedure_name ):
153
153
procedure_node = _create_pdb_procedure_node (procedure_name )
154
154
155
+ procedure = pypdb .GimpPDBProcedure (pypdb .pdb , procedure_name )
156
+
155
157
_insert_gimp_pdb_procedure_arguments (procedure_node , procedure )
156
158
_insert_gimp_pdb_procedure_docstring (procedure_node , procedure )
157
159
158
160
pypdb_class_node .body .append (procedure_node )
159
161
160
162
161
163
def _create_pdb_procedure_node (procedure_name ):
162
- func_name = _pythonize (procedure_name )
164
+ func_name = pypdb . pdb . canonical_name_to_python_name (procedure_name )
163
165
164
166
# Constructing a `FunctionDef` node this way is more readable and less error-prone.
165
167
func_base_arguments_str = 'self'
@@ -173,11 +175,11 @@ def _create_pdb_procedure_node(procedure_name):
173
175
174
176
175
177
def _insert_gimp_pdb_procedure_arguments (procedure_node , procedure ):
176
- proc_args = procedure .get_arguments ()
178
+ proc_args = procedure .arguments
177
179
178
180
for proc_arg in reversed (proc_args ):
179
181
arg_node = ast .arg (
180
- arg = _pythonize (proc_arg .name ),
182
+ arg = pypdb . pdb . canonical_name_to_python_name (proc_arg .name ),
181
183
annotation = _get_proc_argument_type_hint (proc_arg ),
182
184
col_offset = None ,
183
185
end_col_offset = None ,
@@ -204,7 +206,7 @@ def _insert_gimp_pdb_procedure_arguments(procedure_node, procedure):
204
206
205
207
procedure_node .args .defaults .insert (0 , arg_default_value )
206
208
207
- procedure_node .returns = _get_pdb_return_values_type_hint (procedure .get_return_values () )
209
+ procedure_node .returns = _get_pdb_return_values_type_hint (procedure .return_values )
208
210
209
211
210
212
def _get_pdb_return_values_type_hint (proc_return_values ):
@@ -241,15 +243,15 @@ def _get_full_type_name(type_):
241
243
def _insert_gimp_pdb_procedure_docstring (procedure_node , procedure ):
242
244
proc_docstring = ''
243
245
244
- proc_docstring = _add_proc_blurb_to_docstring (procedure .get_blurb () , proc_docstring )
246
+ proc_docstring = _add_proc_blurb_to_docstring (procedure .blurb , proc_docstring )
245
247
246
248
add_extra_newline = True
247
249
proc_docstring , is_specified = _add_field_to_docstring (
248
- procedure .get_image_types (), proc_docstring , 'Image types' , True )
250
+ procedure .proc . get_image_types (), proc_docstring , 'Image types' , True )
249
251
250
252
add_extra_newline = add_extra_newline and not is_specified
251
253
proc_docstring , is_specified = _add_field_to_docstring (
252
- procedure .get_menu_label () , proc_docstring , 'Menu label' , add_extra_newline )
254
+ procedure .menu_label , proc_docstring , 'Menu label' , add_extra_newline )
253
255
254
256
add_extra_newline = add_extra_newline and not is_specified
255
257
proc_docstring = _add_menu_paths_to_docstring (procedure , proc_docstring , add_extra_newline )
@@ -292,7 +294,7 @@ def _add_field_to_docstring(field, proc_docstring, prefix, add_extra_newline):
292
294
293
295
294
296
def _add_menu_paths_to_docstring (procedure , proc_docstring , add_extra_newline ):
295
- proc_menu_paths = procedure .get_menu_paths ()
297
+ proc_menu_paths = procedure .menu_paths
296
298
if proc_menu_paths :
297
299
if proc_docstring :
298
300
proc_docstring += f'\n { _BODY_INDENT } ' * (2 if add_extra_newline else 1 )
@@ -306,7 +308,7 @@ def _add_menu_paths_to_docstring(procedure, proc_docstring, add_extra_newline):
306
308
307
309
308
310
def _add_proc_help_to_docstring (procedure , proc_docstring ):
309
- proc_help = procedure .get_help ()
311
+ proc_help = procedure .help
310
312
if proc_help :
311
313
proc_help = proc_help .strip ()
312
314
if not proc_help .endswith ('.' ):
@@ -354,7 +356,7 @@ def _add_proc_params_to_docstring(procedure, proc_docstring):
354
356
procedure ,
355
357
proc_docstring ,
356
358
'parameter' ,
357
- lambda proc : proc .get_arguments () ,
359
+ lambda proc : proc .arguments ,
358
360
'Parameters:' ,
359
361
)
360
362
@@ -364,7 +366,7 @@ def _add_proc_return_values_to_docstring(procedure, proc_docstring):
364
366
procedure ,
365
367
proc_docstring ,
366
368
'return_value' ,
367
- lambda proc : proc .get_return_values () ,
369
+ lambda proc : proc .return_values ,
368
370
'Returns:' ,
369
371
)
370
372
@@ -380,7 +382,7 @@ def _add_proc_params_or_retvals_to_docstring(
380
382
param_prefix = '* '
381
383
382
384
for param in params :
383
- name = _pythonize (param .name )
385
+ name = pypdb . pdb . canonical_name_to_python_name (param .name )
384
386
385
387
description = param .blurb
386
388
if description :
@@ -683,7 +685,7 @@ def _insert_gegl_procedure_arguments(procedure, procedure_node):
683
685
684
686
for proc_arg in reversed (proc_args ):
685
687
arg_node = ast .arg (
686
- arg = _pythonize (proc_arg .name ),
688
+ arg = pypdb . pdb . canonical_name_to_python_name (proc_arg .name ),
687
689
annotation = _get_proc_argument_type_hint (proc_arg ),
688
690
col_offset = None ,
689
691
end_col_offset = None ,
@@ -733,10 +735,6 @@ def _insert_gegl_procedure_docstring(procedure, procedure_node):
733
735
procedure_node .body [0 ].value .value = proc_docstring
734
736
735
737
736
- def _pythonize (str_ ):
737
- return str_ .replace ('-' , '_' ).replace (':' , '__' )
738
-
739
-
740
738
def _get_proc_argument_type_hint (proc_arg ):
741
739
arg_type_name = _get_type_hint_name (proc_arg , default_type = 'GObject.Value' )
742
740
@@ -797,27 +795,6 @@ def _get_type_hint_name_from_gtype(value_type, default_type):
797
795
return default_type
798
796
799
797
800
- def _get_gimp_pdb_procedures ():
801
- """Retrieves a list of GIMP PDB procedures."""
802
- query_procedure = Gimp .get_pdb ().lookup_procedure ('gimp-pdb-query' )
803
- config = query_procedure .create_config ()
804
- for prop in config .list_properties ():
805
- if prop .value_type == Gimp .Procedure .__gtype__ :
806
- continue
807
-
808
- config .set_property (prop .name , '' )
809
-
810
- return {
811
- proc_name : Gimp .get_pdb ().lookup_procedure (proc_name )
812
- for proc_name in query_procedure .run (config ).index (1 )
813
- }
814
-
815
-
816
- def _get_gegl_procedures ():
817
- """Retrieves a list of GEGL operations."""
818
- return Gegl .list_operations ()
819
-
820
-
821
798
def write_stub_file (dirpath , root_node ):
822
799
os .makedirs (dirpath , exist_ok = True )
823
800
0 commit comments