Attempt to workaround problem reported about empty plc.xml after unrelated crash. Now, if etree model is corrupted in a way tostring() would generate an empty string, exception prevents saving.
--- a/plcopen/plcopen.py Thu Sep 03 11:16:08 2020 +0200
+++ b/plcopen/plcopen.py Mon Aug 31 13:54:08 2020 +0200
@@ -331,12 +331,16 @@
def SaveProject(project, filepath):
- project_file = open(filepath, 'w')
- project_file.write(etree.tostring(
+ content = etree.tostring(
project,
pretty_print=True,
xml_declaration=True,
- encoding='utf-8'))
+ encoding='utf-8')
+
+ assert len(content) != 0
+
+ project_file = open(filepath, 'w')
+ project_file.write(content)
project_file.close()