kopia lustrzana https://gitlab.com/zeograd/rnsutils
Prevent accidental overwrite of destination xrni
rodzic
334d8e5241
commit
47bb4ccad7
|
@ -1,9 +1,11 @@
|
||||||
|
import logging
|
||||||
import math
|
import math
|
||||||
import pkgutil
|
import pkgutil
|
||||||
import pprint
|
import pprint
|
||||||
from zipfile import ZipFile, ZIP_DEFLATED
|
from zipfile import ZipFile, ZIP_DEFLATED
|
||||||
|
|
||||||
import io
|
import io
|
||||||
|
import os
|
||||||
from lxml import etree, objectify
|
from lxml import etree, objectify
|
||||||
from lxml.objectify import ObjectifiedElement
|
from lxml.objectify import ObjectifiedElement
|
||||||
|
|
||||||
|
@ -139,11 +141,15 @@ class RenoiseInstrument(object):
|
||||||
self.sample_data = [z.read(sample_filename) for sample_filename in sorted(z.namelist()) if
|
self.sample_data = [z.read(sample_filename) for sample_filename in sorted(z.namelist()) if
|
||||||
sample_filename.startswith('SampleData')]
|
sample_filename.startswith('SampleData')]
|
||||||
|
|
||||||
def save(self, filename, cleanup=True):
|
def save(self, filename, overwrite=False, cleanup=True):
|
||||||
|
|
||||||
if cleanup:
|
if cleanup:
|
||||||
self.cleanup()
|
self.cleanup()
|
||||||
|
|
||||||
|
if os.path.isfile(filename) and not overwrite:
|
||||||
|
logging.error("Destination file %s exists and overwrite was not forced", filename)
|
||||||
|
return
|
||||||
|
|
||||||
with ZipFile(filename, 'w', compression=ZIP_DEFLATED) as z:
|
with ZipFile(filename, 'w', compression=ZIP_DEFLATED) as z:
|
||||||
objectify.deannotate(self.root, cleanup_namespaces=True, xsi_nil=True)
|
objectify.deannotate(self.root, cleanup_namespaces=True, xsi_nil=True)
|
||||||
z.writestr("Instrument.xml", etree.tostring(self.root, pretty_print=True))
|
z.writestr("Instrument.xml", etree.tostring(self.root, pretty_print=True))
|
||||||
|
|
Ładowanie…
Reference in New Issue