36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
|
from operator import itemgetter
|
||
|
|
||
|
|
||
|
class ConvOutput:
|
||
|
def __init__(self):
|
||
|
self.main_source = ""
|
||
|
self.data_files = dict()
|
||
|
|
||
|
def set_main_source(self, src):
|
||
|
self.main_source = src
|
||
|
|
||
|
def add_data_file(self, filename_base, content):
|
||
|
filename = filename_base
|
||
|
i = 1
|
||
|
while filename in self.data_files:
|
||
|
parts = filename_base.split(".", maxsplit=1)
|
||
|
parts[0] += "_" + str(i)
|
||
|
filename = ".".join(parts)
|
||
|
i += 1
|
||
|
self.data_files[filename] = content
|
||
|
return filename
|
||
|
|
||
|
def __str__(self):
|
||
|
r = self.main_source + "\n"
|
||
|
for filename, content in sorted(self.data_files.items(),
|
||
|
key=itemgetter(0)):
|
||
|
r += filename + ":\n" + content
|
||
|
return r
|
||
|
|
||
|
def write(self, main_filename):
|
||
|
with open(main_filename, "w") as f:
|
||
|
f.write(self.main_source)
|
||
|
for filename, content in self.data_files.items():
|
||
|
with open(filename, "w") as f:
|
||
|
f.write(content)
|