Skip to content

Commit 5adb353

Browse files
Merge pull request #129 from BrendanParmer/IndentationOption
Indentation option
2 parents 29b8a8c + 147467c commit 5adb353

File tree

5 files changed

+144
-114
lines changed

5 files changed

+144
-114
lines changed

NodeToPython/compositor/operator.py

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -31,45 +31,44 @@ def __init__(self):
3131
self._used_vars[name] = 0
3232

3333

34-
def _create_scene(self, indent: str):
34+
def _create_scene(self, indent_level: int):
3535
#TODO: wrap in more general unique name util function
36-
self._write(f"# Generate unique scene name", indent)
36+
self._write(f"# Generate unique scene name", indent_level)
3737
self._write(f"{BASE_NAME} = {str_to_py_str(self.compositor_name)}",
38-
indent)
39-
self._write(f"{END_NAME} = {BASE_NAME}", indent)
40-
self._write(f"if bpy.data.scenes.get({END_NAME}) != None:", indent)
38+
indent_level)
39+
self._write(f"{END_NAME} = {BASE_NAME}", indent_level)
40+
self._write(f"if bpy.data.scenes.get({END_NAME}) != None:", indent_level)
4141

42-
indent2 = f"{indent}\t"
43-
self._write(f"{INDEX} = 1", indent2)
42+
self._write(f"{INDEX} = 1", indent_level + 1)
4443
self._write(f"{END_NAME} = {BASE_NAME} + f\".{{i:03d}}\"",
45-
indent2)
44+
indent_level + 1)
4645
self._write(f"while bpy.data.scenes.get({END_NAME}) != None:",
47-
indent2)
46+
indent_level + 1)
4847

49-
indent3 = f"{indent}\t\t"
50-
self._write(f"{END_NAME} = {BASE_NAME} + f\".{{{INDEX}:03d}}\"", indent3)
51-
self._write(f"{INDEX} += 1\n", indent3)
48+
self._write(f"{END_NAME} = {BASE_NAME} + f\".{{{INDEX}:03d}}\"",
49+
indent_level + 2)
50+
self._write(f"{INDEX} += 1\n", indent_level + 2)
5251

53-
self._write(f"{SCENE} = bpy.context.window.scene.copy()\n", indent)
54-
self._write(f"{SCENE}.name = {END_NAME}", indent)
55-
self._write(f"{SCENE}.use_fake_user = True", indent)
56-
self._write(f"bpy.context.window.scene = {SCENE}", indent)
52+
self._write(f"{SCENE} = bpy.context.window.scene.copy()\n", indent_level)
53+
self._write(f"{SCENE}.name = {END_NAME}", indent_level)
54+
self._write(f"{SCENE}.use_fake_user = True", indent_level)
55+
self._write(f"bpy.context.window.scene = {SCENE}", indent_level)
5756

5857
def _initialize_compositor_node_tree(self, ntp_nt, nt_name):
5958
#initialize node group
60-
self._write(f"#initialize {nt_name} node group", self._outer)
61-
self._write(f"def {ntp_nt.var}_node_group():", self._outer)
59+
self._write(f"#initialize {nt_name} node group", self._outer_indent_level)
60+
self._write(f"def {ntp_nt.var}_node_group():", self._outer_indent_level)
6261

6362
if ntp_nt.node_tree == self._base_node_tree:
6463
self._write(f"{ntp_nt.var} = {SCENE}.node_tree")
6564
self._write(f"#start with a clean node tree")
6665
self._write(f"for {NODE} in {ntp_nt.var}.nodes:")
67-
self._write(f"\t{ntp_nt.var}.nodes.remove({NODE})")
66+
self._write(f"{ntp_nt.var}.nodes.remove({NODE})", self._inner_indent_level + 1)
6867
else:
6968
self._write((f"{ntp_nt.var} = bpy.data.node_groups.new("
7069
f"type = \'CompositorNodeTree\', "
7170
f"name = {str_to_py_str(nt_name)})"))
72-
self._write("")
71+
self._write("", 0)
7372

7473
# Compositor node tree settings
7574
#TODO: might be good to make this optional
@@ -120,8 +119,6 @@ def _set_color_balance_settings(self, node: CompositorNodeColorBalance
120119

121120
color_balance_info = self._node_infos['CompositorNodeColorBalance']
122121
self._node_infos['CompositorNodeColorBalance'] = color_balance_info._replace(attributes_ = lst)
123-
for setting in self._node_infos['CompositorNodeColorBalance'].attributes_:
124-
print(setting.name_)
125122

126123
def _process_node(self, node: Node, ntp_nt: NTP_NodeTree):
127124
"""
@@ -191,7 +188,7 @@ def _process_node_tree(self, node_tree: CompositorNodeTree):
191188
self._write(f"return {nt_var}\n")
192189

193190
#create node group
194-
self._write(f"{nt_var} = {nt_var}_node_group()\n", self._outer)
191+
self._write(f"{nt_var} = {nt_var}_node_group()\n", self._outer_indent_level)
195192

196193
def execute(self, context):
197194
if not self._setup_options(context.scene.ntp_options):
@@ -214,8 +211,8 @@ def execute(self, context):
214211
comp_var = clean_string(self.compositor_name)
215212

216213
if self._mode == 'ADDON':
217-
self._outer = "\t\t"
218-
self._inner = "\t\t\t"
214+
self._outer_indent_level = 2
215+
self._inner_indent_level = 3
219216

220217
if not self._setup_addon_directories(context, comp_var):
221218
return {'CANCELLED'}
@@ -226,25 +223,25 @@ def execute(self, context):
226223
self._class_name = clean_string(self.compositor_name, lower=False)
227224
self._init_operator(comp_var, self.compositor_name)
228225

229-
self._write("def execute(self, context):", "\t")
226+
self._write("def execute(self, context):", 1)
230227
else:
231228
self._file = StringIO("")
232229
if self._include_imports:
233230
self._file.write("import bpy, mathutils\n\n")
234231

235232
if self.is_scene:
236233
if self._mode == 'ADDON':
237-
self._create_scene("\t\t")
234+
self._create_scene(2)
238235
elif self._mode == 'SCRIPT':
239-
self._create_scene("")
236+
self._create_scene(0)
240237

241238
node_trees_to_process = self._topological_sort(self._base_node_tree)
242239

243240
for node_tree in node_trees_to_process:
244241
self._process_node_tree(node_tree)
245242

246243
if self._mode == 'ADDON':
247-
self._write("return {'FINISHED'}\n", self._outer)
244+
self._write("return {'FINISHED'}\n", self._outer_indent_level)
248245

249246
self._create_menu_func()
250247
self._create_register_func()

NodeToPython/geometry/operator.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def _process_zones(self, zone_inputs: list[GeometryNode]) -> None:
8181
#must set defaults after paired with output
8282
self._set_socket_defaults(zone_input)
8383
self._set_socket_defaults(zone_output)
84-
self._write("")
84+
self._write("", 0)
8585

8686
if bpy.app.version >= (4, 0, 0):
8787
def _set_geo_tree_properties(self, node_tree: GeometryNodeTree) -> None:
@@ -105,7 +105,7 @@ def _set_geo_tree_properties(self, node_tree: GeometryNodeTree) -> None:
105105
for flag in tool_flags:
106106
if hasattr(node_tree, flag) is True:
107107
self._write(f"{nt_var}.{flag} = {getattr(node_tree, flag)}")
108-
self._write("")
108+
self._write("", 0)
109109

110110
def _process_node_tree(self, node_tree: GeometryNodeTree) -> None:
111111
"""
@@ -119,8 +119,8 @@ def _process_node_tree(self, node_tree: GeometryNodeTree) -> None:
119119
self._node_tree_vars[node_tree] = nt_var
120120

121121
#initialize node group
122-
self._write(f"#initialize {nt_var} node group", self._outer)
123-
self._write(f"def {nt_var}_node_group():", self._outer)
122+
self._write(f"#initialize {nt_var} node group", self._outer_indent_level)
123+
self._write(f"def {nt_var}_node_group():", self._outer_indent_level)
124124
self._write(f"{nt_var} = bpy.data.node_groups.new("
125125
f"type = \'GeometryNodeTree\', "
126126
f"name = {str_to_py_str(node_tree.name)})\n")
@@ -155,19 +155,19 @@ def _process_node_tree(self, node_tree: GeometryNodeTree) -> None:
155155
self._write(f"return {nt_var}\n")
156156

157157
#create node group
158-
self._write(f"{nt_var} = {nt_var}_node_group()\n", self._outer)
158+
self._write(f"{nt_var} = {nt_var}_node_group()\n", self._outer_indent_level)
159159

160160

161161
def _apply_modifier(self, nt: GeometryNodeTree, nt_var: str):
162162
#get object
163-
self._write(f"{OBJECT_NAME} = bpy.context.object.name", self._outer)
164-
self._write(f"{OBJECT} = bpy.data.objects[{OBJECT_NAME}]", self._outer)
163+
self._write(f"{OBJECT_NAME} = bpy.context.object.name", self._outer_indent_level)
164+
self._write(f"{OBJECT} = bpy.data.objects[{OBJECT_NAME}]", self._outer_indent_level)
165165

166166
#set modifier to the one we just created
167167
mod_name = str_to_py_str(nt.name)
168168
self._write(f"{MODIFIER} = obj.modifiers.new(name = {mod_name}, "
169-
f"type = 'NODES')", self._outer)
170-
self._write(f"{MODIFIER}.node_group = {nt_var}", self._outer)
169+
f"type = 'NODES')", self._outer_indent_level)
170+
self._write(f"{MODIFIER}.node_group = {nt_var}", self._outer_indent_level)
171171

172172

173173
def execute(self, context):
@@ -181,8 +181,8 @@ def execute(self, context):
181181
nt_var = clean_string(nt.name)
182182

183183
if self._mode == 'ADDON':
184-
self._outer = "\t\t"
185-
self._inner = "\t\t\t"
184+
self._outer_indent_level = 2
185+
self._inner_indent_level = 3
186186

187187
if not self._setup_addon_directories(context, nt_var):
188188
return {'CANCELLED'}
@@ -192,7 +192,7 @@ def execute(self, context):
192192
self._create_header(nt.name)
193193
self._class_name = clean_string(nt.name, lower = False)
194194
self._init_operator(nt_var, nt.name)
195-
self._write("def execute(self, context):", "\t")
195+
self._write("def execute(self, context):", 1)
196196
else:
197197
self._file = StringIO("")
198198
if self._include_imports:
@@ -206,7 +206,7 @@ def execute(self, context):
206206

207207
if self._mode == 'ADDON':
208208
self._apply_modifier(nt, nt_var)
209-
self._write("return {'FINISHED'}\n", self._outer)
209+
self._write("return {'FINISHED'}\n", self._outer_indent_level)
210210
self._create_menu_func()
211211
self._create_register_func()
212212
self._create_unregister_func()

0 commit comments

Comments
 (0)