Skip to content

Commit 9b4a2c9

Browse files
Merge pull request #167 from PiOverFour/improve_format
Improve format
2 parents d8971aa + c10aecf commit 9b4a2c9

File tree

4 files changed

+56
-48
lines changed

4 files changed

+56
-48
lines changed

NodeToPython/compositor/operator.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ def _create_scene(self, indent_level: int):
3939
self._write(f"{BASE_NAME} = {str_to_py_str(self.compositor_name)}",
4040
indent_level)
4141
self._write(f"{END_NAME} = {BASE_NAME}", indent_level)
42-
self._write(f"if bpy.data.scenes.get({END_NAME}) != None:", indent_level)
42+
self._write(f"if bpy.data.scenes.get({END_NAME}) is not None:", indent_level)
4343

4444
self._write(f"{INDEX} = 1", indent_level + 1)
4545
self._write(f"{END_NAME} = {BASE_NAME} + f\".{{i:03d}}\"",
4646
indent_level + 1)
47-
self._write(f"while bpy.data.scenes.get({END_NAME}) != None:",
47+
self._write(f"while bpy.data.scenes.get({END_NAME}) is not None:",
4848
indent_level + 1)
4949

5050
self._write(f"{END_NAME} = {BASE_NAME} + f\".{{{INDEX}:03d}}\"",
@@ -55,15 +55,17 @@ def _create_scene(self, indent_level: int):
5555
self._write(f"{SCENE}.name = {END_NAME}", indent_level)
5656
self._write(f"{SCENE}.use_fake_user = True", indent_level)
5757
self._write(f"bpy.context.window.scene = {SCENE}", indent_level)
58+
self._write("", 0)
5859

5960
def _initialize_compositor_node_tree(self, ntp_nt, nt_name):
6061
#initialize node group
61-
self._write(f"#initialize {nt_name} node group", self._outer_indent_level)
6262
self._write(f"def {ntp_nt.var}_node_group():", self._outer_indent_level)
63+
self._write(f'"""Initialize {nt_name} node group"""')
6364

6465
if ntp_nt.node_tree == self._base_node_tree and self.is_scene:
6566
self._write(f"{ntp_nt.var} = {SCENE}.node_tree")
66-
self._write(f"#start with a clean node tree")
67+
self._write("", 0)
68+
self._write(f"# Start with a clean node tree")
6769
self._write(f"for {NODE} in {ntp_nt.var}.nodes:")
6870
self._write(f"{ntp_nt.var}.nodes.remove({NODE})", self._inner_indent_level + 1)
6971
else:
@@ -187,7 +189,7 @@ def _process_node_tree(self, node_tree: CompositorNodeTree):
187189
self._tree_interface_settings(ntp_nt)
188190

189191
#initialize nodes
190-
self._write(f"#initialize {nt_var} nodes")
192+
self._write(f"# Initialize {nt_var} nodes\n")
191193

192194
for node in node_tree.nodes:
193195
self._process_node(node, ntp_nt)
@@ -201,6 +203,8 @@ def _process_node_tree(self, node_tree: CompositorNodeTree):
201203
self._init_links(node_tree)
202204

203205
self._write(f"return {nt_var}\n")
206+
if self._mode == 'SCRIPT':
207+
self._write("", 0)
204208

205209
#create node group
206210
self._write(f"{nt_var} = {nt_var}_node_group()\n", self._outer_indent_level)
@@ -242,13 +246,14 @@ def execute(self, context):
242246
else:
243247
self._file = StringIO("")
244248
if self._include_imports:
245-
self._file.write("import bpy, mathutils\n\n")
249+
self._file.write("import bpy\nimport mathutils\n\n\n")
246250

247251
if self.is_scene:
248252
if self._mode == 'ADDON':
249253
self._create_scene(2)
250254
elif self._mode == 'SCRIPT':
251255
self._create_scene(0)
256+
self._write("", 0)
252257

253258
node_trees_to_process = self._topological_sort(self._base_node_tree)
254259

NodeToPython/geometry/operator.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,16 @@ def _process_zones(self, zone_inputs: list[GeometryNode]) -> None:
7171
zone_input_var = self._node_vars[zone_input]
7272
zone_output_var = self._node_vars[zone_output]
7373

74-
self._write(f"#Process zone input {zone_input.name}")
74+
self._write(f"# Process zone input {zone_input.name}")
7575
self._write(f"{zone_input_var}.pair_with_output"
7676
f"({zone_output_var})")
7777

7878
#must set defaults after paired with output
7979
self._set_socket_defaults(zone_input)
8080
self._set_socket_defaults(zone_output)
81-
self._write("", 0)
81+
82+
if zone_inputs:
83+
self._write("", 0)
8284

8385
if bpy.app.version >= (4, 0, 0):
8486
def _set_geo_tree_properties(self, node_tree: GeometryNodeTree) -> None:
@@ -116,11 +118,11 @@ def _process_node_tree(self, node_tree: GeometryNodeTree) -> None:
116118
self._node_tree_vars[node_tree] = nt_var
117119

118120
#initialize node group
119-
self._write(f"#initialize {nt_var} node group", self._outer_indent_level)
120121
self._write(f"def {nt_var}_node_group():", self._outer_indent_level)
122+
self._write(f'"""Initialize {nt_var} node group"""')
121123
self._write(f"{nt_var} = bpy.data.node_groups.new("
122-
f"type = \'GeometryNodeTree\', "
123-
f"name = {str_to_py_str(node_tree.name)})\n")
124+
f"type=\'GeometryNodeTree\', "
125+
f"name={str_to_py_str(node_tree.name)})\n")
124126

125127
self._set_node_tree_properties(node_tree)
126128
if bpy.app.version >= (4, 0, 0):
@@ -132,7 +134,7 @@ def _process_node_tree(self, node_tree: GeometryNodeTree) -> None:
132134
self._tree_interface_settings(ntp_nt)
133135

134136
#initialize nodes
135-
self._write(f"#initialize {nt_var} nodes")
137+
self._write(f"# Initialize {nt_var} nodes\n")
136138
for node in node_tree.nodes:
137139
self._process_node(node, ntp_nt)
138140

@@ -147,7 +149,7 @@ def _process_node_tree(self, node_tree: GeometryNodeTree) -> None:
147149
#create connections
148150
self._init_links(node_tree)
149151

150-
self._write(f"return {nt_var}\n")
152+
self._write(f"return {nt_var}\n\n")
151153

152154
#create node group
153155
self._write(f"{nt_var} = {nt_var}_node_group()\n", self._outer_indent_level)
@@ -191,7 +193,7 @@ def execute(self, context):
191193
else:
192194
self._file = StringIO("")
193195
if self._include_imports:
194-
self._file.write("import bpy, mathutils\n\n")
196+
self._file.write("import bpy\nimport mathutils\n\n\n")
195197

196198

197199
node_trees_to_process = self._topological_sort(nt)

NodeToPython/ntp_operator.py

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ def _create_node(self, node: Node, node_tree_var: str) -> str:
323323
node_var (str): variable name for the node
324324
"""
325325

326-
self._write(f"#node {node.name}")
326+
self._write(f"# Node {node.name}")
327327

328328
node_var = self._create_var(node.name)
329329
self._node_vars[node] = node_var
@@ -530,11 +530,11 @@ def _group_io_settings(self, node: Node,
530530
io_sockets = node.inputs
531531
io_socket_interfaces = node_tree.outputs
532532

533-
self._write(f"#{node_tree_var} {io}s")
533+
self._write(f"# {node_tree_var} {io}s")
534534
for i, inout in enumerate(io_sockets):
535535
if inout.bl_idname == 'NodeSocketVirtual':
536536
continue
537-
self._write(f"#{io} {inout.name}")
537+
self._write(f"# {io.capitalize()} {inout.name}")
538538
idname = enum_to_py_str(inout.bl_idname)
539539
name = str_to_py_str(inout.name)
540540
self._write(f"{node_tree_var}.{io}s.new({idname}, {name})")
@@ -642,7 +642,7 @@ def _create_socket(self, socket: NodeTreeInterfaceSocket,
642642
ntp_nt (NTP_NodeTree): owner of the socket
643643
"""
644644

645-
self._write(f"#Socket {socket.name}")
645+
self._write(f"# Socket {socket.name}")
646646
# initialization
647647
socket_var = self._create_var(socket.name + "_socket")
648648
name = str_to_py_str(socket.name)
@@ -669,8 +669,8 @@ def _create_socket(self, socket: NodeTreeInterfaceSocket,
669669

670670
self._write(f"{socket_var} = "
671671
f"{ntp_nt.var}.interface.new_socket("
672-
f"name = {name}, in_out={in_out_enum}, "
673-
f"socket_type = {socket_type}"
672+
f"name={name}, in_out={in_out_enum}, "
673+
f"socket_type={socket_type}"
674674
f"{optional_parent_str})")
675675

676676
# vector dimensions
@@ -763,7 +763,7 @@ def _create_panel(self, panel: NodeTreeInterfacePanel,
763763
ntp_nt (NTP_NodeTree): owner of the socket
764764
"""
765765

766-
self._write(f"#Panel {panel.name}")
766+
self._write(f"# Panel {panel.name}")
767767

768768
panel_var = self._create_var(panel.name + "_panel")
769769
panel_dict[panel] = panel_var
@@ -848,14 +848,12 @@ def _tree_interface_settings(self, ntp_nt: NTP_NodeTree) -> None:
848848
ntp_nt (NTP_NodeTree): the node tree to set the interface for
849849
"""
850850

851-
self._write(f"#{ntp_nt.var} interface")
851+
self._write(f"# {ntp_nt.var} interface\n")
852852
panel_dict: dict[NodeTreeInterfacePanel, str] = {}
853853
items_processed: set[NodeTreeInterfaceItem] = set()
854854

855855
self._process_items(None, panel_dict, items_processed, ntp_nt)
856856

857-
self._write("", 0)
858-
859857
def _set_input_defaults(self, node: Node) -> None:
860858
"""
861859
Sets defaults for input sockets
@@ -938,7 +936,7 @@ def _set_input_defaults(self, node: Node) -> None:
938936
else:
939937
default_val = input.default_value
940938
if default_val is not None:
941-
self._write(f"#{input.identifier}")
939+
self._write(f"# {input.identifier}")
942940
self._write(f"{socket_var}.default_value = {default_val}")
943941
self._write("", 0)
944942

@@ -1036,7 +1034,7 @@ def _color_ramp_settings(self, node: Node, color_ramp_name: str) -> None:
10361034
self._write("", 0)
10371035

10381036
# key points
1039-
self._write(f"#initialize color ramp elements")
1037+
self._write(f"# Initialize color ramp elements")
10401038
self._write((f"{ramp_str}.elements.remove"
10411039
f"({ramp_str}.elements[0])"))
10421040
for i, element in enumerate(color_ramp.elements):
@@ -1070,7 +1068,7 @@ def _curve_mapping_settings(self, node: Node,
10701068
node_var = self._node_vars[node]
10711069

10721070
# mapping settings
1073-
self._write(f"#mapping settings")
1071+
self._write(f"# Mapping settings")
10741072
mapping_var = f"{node_var}.{curve_mapping_name}"
10751073

10761074
# extend
@@ -1106,7 +1104,7 @@ def _curve_mapping_settings(self, node: Node,
11061104
self._create_curve_map(node, i, curve, curve_mapping_name)
11071105

11081106
# update curve
1109-
self._write(f"#update curve after changes")
1107+
self._write(f"# Update curve after changes")
11101108
self._write(f"{mapping_var}.update()")
11111109

11121110
def _create_curve_map(self, node: Node, i: int, curve: bpy.types.CurveMap,
@@ -1122,7 +1120,7 @@ def _create_curve_map(self, node: Node, i: int, curve: bpy.types.CurveMap,
11221120
"""
11231121
node_var = self._node_vars[node]
11241122

1125-
self._write(f"#curve {i}")
1123+
self._write(f"# Curve {i}")
11261124
curve_i_var = self._create_var(f"{node_var}_curve_{i}")
11271125
self._write(f"{curve_i_var} = "
11281126
f"{node_var}.{curve_mapping_name}.curves[{i}]")
@@ -1225,7 +1223,7 @@ def _load_image(self, img: bpy.types.Image, img_var: str) -> None:
12251223
img_str = img_to_py_str(img)
12261224

12271225
# TODO: convert to special variables
1228-
self._write(f"#load image {img_str}")
1226+
self._write(f"# Load image {img_str}")
12291227
self._write(f"{BASE_DIR} = "
12301228
f"os.path.dirname(os.path.abspath(__file__))")
12311229
self._write(f"{IMAGE_PATH} = "
@@ -1235,7 +1233,7 @@ def _load_image(self, img: bpy.types.Image, img_var: str) -> None:
12351233
f"({IMAGE_PATH}, check_existing = True)")
12361234

12371235
# copy image settings
1238-
self._write(f"#set image settings")
1236+
self._write(f"# Set image settings")
12391237

12401238
# source
12411239
source = enum_to_py_str(img.source)
@@ -1423,12 +1421,13 @@ def _set_parents(self, node_tree: NodeTree) -> None:
14231421
for node in node_tree.nodes:
14241422
if node is not None and node.parent is not None:
14251423
if not parent_comment:
1426-
self._write(f"#Set parents")
1424+
self._write(f"# Set parents")
14271425
parent_comment = True
14281426
node_var = self._node_vars[node]
14291427
parent_var = self._node_vars[node.parent]
14301428
self._write(f"{node_var}.parent = {parent_var}")
1431-
self._write("", 0)
1429+
if parent_comment:
1430+
self._write("", 0)
14321431

14331432
def _set_locations(self, node_tree: NodeTree) -> None:
14341433
"""
@@ -1438,12 +1437,13 @@ def _set_locations(self, node_tree: NodeTree) -> None:
14381437
node_tree (NodeTree): node tree we're obtaining nodes from
14391438
"""
14401439

1441-
self._write(f"#Set locations")
1440+
self._write(f"# Set locations")
14421441
for node in node_tree.nodes:
14431442
node_var = self._node_vars[node]
14441443
self._write(f"{node_var}.location "
14451444
f"= ({node.location.x}, {node.location.y})")
1446-
self._write("", 0)
1445+
if node_tree.nodes:
1446+
self._write("", 0)
14471447

14481448
def _set_dimensions(self, node_tree: NodeTree) -> None:
14491449
"""
@@ -1455,12 +1455,13 @@ def _set_dimensions(self, node_tree: NodeTree) -> None:
14551455
if not self._should_set_dimensions:
14561456
return
14571457

1458-
self._write(f"#Set dimensions")
1458+
self._write(f"# Set dimensions")
14591459
for node in node_tree.nodes:
14601460
node_var = self._node_vars[node]
14611461
self._write(f"{node_var}.width, {node_var}.height "
14621462
f"= {node.width}, {node.height}")
1463-
self._write("", 0)
1463+
if node_tree.nodes:
1464+
self._write("", 0)
14641465

14651466
def _init_links(self, node_tree: NodeTree) -> None:
14661467
"""
@@ -1474,7 +1475,7 @@ def _init_links(self, node_tree: NodeTree) -> None:
14741475

14751476
links = node_tree.links
14761477
if links:
1477-
self._write(f"#initialize {nt_var} links")
1478+
self._write(f"# Initialize {nt_var} links\n")
14781479
if hasattr(links[0], "multi_input_sort_id"):
14791480
# generate links in the correct order for multi input sockets
14801481
links = sorted(links, key=lambda link: link.multi_input_sort_id)
@@ -1503,7 +1504,7 @@ def _init_links(self, node_tree: NodeTree) -> None:
15031504
output_idx = i
15041505
break
15051506

1506-
self._write(f"#{in_node_var}.{input_socket.name} "
1507+
self._write(f"# {in_node_var}.{input_socket.name} "
15071508
f"-> {out_node_var}.{output_socket.name}")
15081509
self._write(f"{nt_var}.links.new({in_node_var}"
15091510
f".outputs[{input_idx}], "
@@ -1512,6 +1513,7 @@ def _init_links(self, node_tree: NodeTree) -> None:
15121513
for _func in self._write_after_links:
15131514
_func()
15141515
self._write_after_links = []
1516+
self._write("", 0)
15151517

15161518

15171519
def _set_node_tree_properties(self, node_tree: NodeTree) -> None:
@@ -1525,7 +1527,6 @@ def _set_node_tree_properties(self, node_tree: NodeTree) -> None:
15251527
if bpy.app.version >= (4, 3, 0):
15261528
default_width = node_tree.default_group_node_width
15271529
self._write(f"{nt_var}.default_group_node_width = {default_width}")
1528-
self._write("\n")
15291530

15301531
def _hide_hidden_sockets(self, node: Node) -> None:
15311532
"""

NodeToPython/shader/operator.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def __init__(self, *args, **kwargs):
3030
def _create_material(self, indent_level: int):
3131
self._write(f"{MAT_VAR} = bpy.data.materials.new("
3232
f"name = {str_to_py_str(self.material_name)})", indent_level)
33-
self._write(f"{MAT_VAR}.use_nodes = True", indent_level)
33+
self._write(f"{MAT_VAR}.use_nodes = True\n\n", indent_level)
3434

3535
def _initialize_shader_node_tree(self, ntp_node_tree: NTP_NodeTree,
3636
nt_name: str) -> None:
@@ -42,12 +42,12 @@ def _initialize_shader_node_tree(self, ntp_node_tree: NTP_NodeTree,
4242
variable to use
4343
nt_name (str): name to use for the node tree
4444
"""
45-
self._write(f"#initialize {nt_name} node group", self._outer_indent_level)
46-
self._write(f"def {ntp_node_tree.var}_node_group():\n", self._outer_indent_level)
45+
self._write(f"def {ntp_node_tree.var}_node_group():", self._outer_indent_level)
46+
self._write(f'"""Initialize {nt_name} node group"""')
4747

4848
if ntp_node_tree.node_tree == self._base_node_tree:
49-
self._write(f"{ntp_node_tree.var} = {MAT_VAR}.node_tree")
50-
self._write(f"#start with a clean node tree")
49+
self._write(f"{ntp_node_tree.var} = {MAT_VAR}.node_tree\n")
50+
self._write(f"# Start with a clean node tree")
5151
self._write(f"for {NODE} in {ntp_node_tree.var}.nodes:")
5252
self._write(f"{ntp_node_tree.var}.nodes.remove({NODE})", self._inner_indent_level + 1)
5353
else:
@@ -108,7 +108,7 @@ def _process_node_tree(self, node_tree: ShaderNodeTree) -> None:
108108
self._tree_interface_settings(ntp_nt)
109109

110110
#initialize nodes
111-
self._write(f"#initialize {nt_var} nodes")
111+
self._write(f"# Initialize {nt_var} nodes\n")
112112

113113
for node in node_tree.nodes:
114114
self._process_node(node, ntp_nt)
@@ -121,7 +121,7 @@ def _process_node_tree(self, node_tree: ShaderNodeTree) -> None:
121121
#create connections
122122
self._init_links(node_tree)
123123

124-
self._write(f"return {nt_var}\n")
124+
self._write(f"return {nt_var}\n\n")
125125

126126
#create node group
127127
self._write(f"{nt_var} = {nt_var}_node_group()\n", self._outer_indent_level)
@@ -158,7 +158,7 @@ def execute(self, context):
158158
else:
159159
self._file = StringIO("")
160160
if self._include_imports:
161-
self._file.write("import bpy, mathutils\n\n")
161+
self._file.write("import bpy\nimport mathutils\n\n\n")
162162

163163
if self._mode == 'ADDON':
164164
self._create_material(2)

0 commit comments

Comments
 (0)