36 lines
999 B
Python
36 lines
999 B
Python
# coding=utf-8
|
|
import os
|
|
import uuid
|
|
import time
|
|
from xml.etree.cElementTree import ElementTree, Element, SubElement, dump
|
|
|
|
|
|
class ImportFile(object):
|
|
|
|
def __init__(self):
|
|
self.operations = []
|
|
|
|
def add_operation(self, operation, model):
|
|
assert operation in ["create", "update", "delete"]
|
|
self.operations.append((operation, model))
|
|
|
|
@property
|
|
def etree(self):
|
|
root = Element("operations")
|
|
for name, model in self.operations:
|
|
operation = SubElement(root, name)
|
|
operation.append(model.etree)
|
|
return root
|
|
|
|
def dump_xml(self):
|
|
return dump(self.etree)
|
|
|
|
def write(self, directory, filename=None):
|
|
if not os.path.exists(directory):
|
|
os.makedirs(directory)
|
|
if not filename:
|
|
filename = "{}.xml".format(time.time())
|
|
xml = ElementTree(self.etree)
|
|
xml.write("{}/{}".format(directory, filename),
|
|
encoding="UTF-8", xml_declaration=True)
|