Source code for anyblok_io.bloks.io_xml.exporter
# This file is a part of the AnyBlok project
#
# Copyright (C) 2015 Jean-Sebastien SUZANNE <jssuzanne@anybox.fr>
#
# This Source Code Form is subject to the terms of the Mozilla Public License,
# v. 2.0. If a copy of the MPL was not distributed with this file,You can
# obtain one at http://mozilla.org/MPL/2.0/.
from anyblok import Declarations
register = Declarations.register
IO = Declarations.Model.IO
[docs]@register(IO)
class Exporter:
@classmethod
def get_mode_choices(cls):
res = super(Exporter, cls).get_mode_choices()
res.update({"Model.IO.Exporter.XML": "XML"})
return res
[docs]@register(IO.Exporter)
class XML:
def __init__(self, exporter):
self.exporter = exporter
@classmethod
def insert(cls, delimiter=None, quotechar=None, fields=None, **kwargs):
kwargs["mode"] = cls.__registry_name__
if "model" in kwargs:
if not isinstance(kwargs["model"], str):
kwargs["model"] = kwargs["model"].__registry_name__
return cls.anyblok.IO.Exporter.insert(**kwargs)
def run(self, entries):
raise NotImplementedError