[REF] Splitted YAML custom tags definition in itw own file (needed by module recorder).
bzr revid: jth@openerp.com-20100330152031-xvq4ve15ju51u7cy
This commit is contained in:
parent
3a983fc2fb
commit
425b2fef61
|
@ -7,6 +7,7 @@ import pooler
|
||||||
import netsvc
|
import netsvc
|
||||||
import misc
|
import misc
|
||||||
from config import config
|
from config import config
|
||||||
|
import yaml_tag
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
@ -18,161 +19,6 @@ class YamlImportException(Exception):
|
||||||
class YamlImportAbortion(Exception):
|
class YamlImportAbortion(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class YamlTag(object):
|
|
||||||
"""
|
|
||||||
Superclass for constructors of custom tags defined in yaml file.
|
|
||||||
"""
|
|
||||||
def __init__(self, **kwargs):
|
|
||||||
self.__dict__.update(kwargs)
|
|
||||||
def __getitem__(self, key):
|
|
||||||
return getattr(self, key)
|
|
||||||
def __getattr__(self, attr):
|
|
||||||
return None
|
|
||||||
def __repr__(self):
|
|
||||||
return "<%s %s>" % (self.__class__.__name__, sorted(self.__dict__.items()))
|
|
||||||
|
|
||||||
class Assert(YamlTag):
|
|
||||||
def __init__(self, model, id, severity=logging.ERROR, string="NONAME", **kwargs):
|
|
||||||
self.model = model
|
|
||||||
self.id = id
|
|
||||||
self.severity = severity
|
|
||||||
self.string = string
|
|
||||||
super(Assert, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Record(YamlTag):
|
|
||||||
def __init__(self, model, id, **kwargs):
|
|
||||||
self.model = model
|
|
||||||
self.id = id
|
|
||||||
super(Record, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Python(YamlTag):
|
|
||||||
def __init__(self, model, severity=logging.ERROR, name="", **kwargs):
|
|
||||||
self.model= model
|
|
||||||
self.severity = severity
|
|
||||||
self.name = name
|
|
||||||
super(Python, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Menuitem(YamlTag):
|
|
||||||
def __init__(self, id, name, **kwargs):
|
|
||||||
self.id = id
|
|
||||||
self.name = name
|
|
||||||
super(Menuitem, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Workflow(YamlTag):
|
|
||||||
def __init__(self, model, action, **kwargs):
|
|
||||||
self.model = model
|
|
||||||
self.action = action
|
|
||||||
super(Workflow, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class ActWindow(YamlTag):
|
|
||||||
def __init__(self, model, action, **kwargs):
|
|
||||||
self.model = model
|
|
||||||
self.action = action
|
|
||||||
super(ActWindow, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Function(YamlTag):
|
|
||||||
def __init__(self, model, name, **kwargs):
|
|
||||||
self.model = model
|
|
||||||
self.name = name
|
|
||||||
super(Function, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Report(YamlTag):
|
|
||||||
def __init__(self, model, name, string, **kwargs):
|
|
||||||
self.model = model
|
|
||||||
self.name = name
|
|
||||||
self.string = string
|
|
||||||
super(Report, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Delete(YamlTag):
|
|
||||||
def __init__(self, model, id, search, **kwargs):
|
|
||||||
self.model = model
|
|
||||||
self.id = id
|
|
||||||
self.search = search
|
|
||||||
super(Delete, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Context(YamlTag):
|
|
||||||
def __init__(self, **kwargs):
|
|
||||||
super(Context, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Url(YamlTag):
|
|
||||||
def __init__(self, **kwargs):
|
|
||||||
super(Url, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
class Eval(YamlTag):
|
|
||||||
def __init__(self, expression):
|
|
||||||
self.expression = expression
|
|
||||||
super(Eval, self).__init__()
|
|
||||||
|
|
||||||
class IrSet(YamlTag):
|
|
||||||
def __init__(self):
|
|
||||||
super(IrSet, self).__init__()
|
|
||||||
|
|
||||||
def assert_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Assert(**kwargs)
|
|
||||||
|
|
||||||
def record_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Record(**kwargs)
|
|
||||||
|
|
||||||
def python_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Python(**kwargs)
|
|
||||||
|
|
||||||
def menuitem_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Menuitem(**kwargs)
|
|
||||||
|
|
||||||
def workflow_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Workflow(**kwargs)
|
|
||||||
|
|
||||||
def act_window_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return ActWindow(**kwargs)
|
|
||||||
|
|
||||||
def function_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Function(**kwargs)
|
|
||||||
|
|
||||||
def report_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Report(**kwargs)
|
|
||||||
|
|
||||||
def delete_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Delete(**kwargs)
|
|
||||||
|
|
||||||
def context_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Context(**kwargs)
|
|
||||||
|
|
||||||
def url_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return Url(**kwargs)
|
|
||||||
|
|
||||||
def eval_constructor(loader, node):
|
|
||||||
expression = loader.construct_scalar(node)
|
|
||||||
return Eval(expression)
|
|
||||||
|
|
||||||
def ir_set_constructor(loader, node):
|
|
||||||
kwargs = loader.construct_mapping(node)
|
|
||||||
return IrSet(**kwargs)
|
|
||||||
|
|
||||||
yaml.add_constructor(u"!assert", assert_constructor)
|
|
||||||
yaml.add_constructor(u"!record", record_constructor)
|
|
||||||
yaml.add_constructor(u"!python", python_constructor)
|
|
||||||
yaml.add_constructor(u"!menuitem", menuitem_constructor)
|
|
||||||
yaml.add_constructor(u"!workflow", workflow_constructor)
|
|
||||||
yaml.add_constructor(u"!act_window", act_window_constructor)
|
|
||||||
yaml.add_constructor(u"!function", function_constructor)
|
|
||||||
yaml.add_constructor(u"!report", report_constructor)
|
|
||||||
yaml.add_constructor(u"!context", context_constructor)
|
|
||||||
yaml.add_constructor(u"!delete", delete_constructor)
|
|
||||||
yaml.add_constructor(u"!url", url_constructor)
|
|
||||||
yaml.add_constructor(u"!eval", eval_constructor)
|
|
||||||
yaml.add_constructor(u"!ir_set", ir_set_constructor)
|
|
||||||
|
|
||||||
def _is_yaml_mapping(node, tag_constructor):
|
def _is_yaml_mapping(node, tag_constructor):
|
||||||
value = isinstance(node, types.DictionaryType) \
|
value = isinstance(node, types.DictionaryType) \
|
||||||
and len(node.keys()) == 1 \
|
and len(node.keys()) == 1 \
|
||||||
|
@ -183,45 +29,45 @@ def is_comment(node):
|
||||||
return isinstance(node, types.StringTypes)
|
return isinstance(node, types.StringTypes)
|
||||||
|
|
||||||
def is_assert(node):
|
def is_assert(node):
|
||||||
return _is_yaml_mapping(node, Assert)
|
return _is_yaml_mapping(node, yaml_tag.Assert)
|
||||||
|
|
||||||
def is_record(node):
|
def is_record(node):
|
||||||
return _is_yaml_mapping(node, Record)
|
return _is_yaml_mapping(node, yaml_tag.Record)
|
||||||
|
|
||||||
def is_python(node):
|
def is_python(node):
|
||||||
return _is_yaml_mapping(node, Python)
|
return _is_yaml_mapping(node, yaml_tag.Python)
|
||||||
|
|
||||||
def is_menuitem(node):
|
def is_menuitem(node):
|
||||||
return isinstance(node, Menuitem) \
|
return isinstance(node, yaml_tag.Menuitem) \
|
||||||
or _is_yaml_mapping(node, Menuitem)
|
or _is_yaml_mapping(node, yaml_tag.Menuitem)
|
||||||
|
|
||||||
def is_function(node):
|
def is_function(node):
|
||||||
return isinstance(node, Function) \
|
return isinstance(node, yaml_tag.Function) \
|
||||||
or _is_yaml_mapping(node, Function)
|
or _is_yaml_mapping(node, yaml_tag.Function)
|
||||||
|
|
||||||
def is_report(node):
|
def is_report(node):
|
||||||
return isinstance(node, Report)
|
return isinstance(node, yaml_tag.Report)
|
||||||
|
|
||||||
def is_workflow(node):
|
def is_workflow(node):
|
||||||
return isinstance(node, Workflow)
|
return isinstance(node, yaml_tag.Workflow)
|
||||||
|
|
||||||
def is_act_window(node):
|
def is_act_window(node):
|
||||||
return isinstance(node, ActWindow)
|
return isinstance(node, yaml_tag.ActWindow)
|
||||||
|
|
||||||
def is_delete(node):
|
def is_delete(node):
|
||||||
return isinstance(node, Delete)
|
return isinstance(node, yaml_tag.Delete)
|
||||||
|
|
||||||
def is_context(node):
|
def is_context(node):
|
||||||
return isinstance(node, Context)
|
return isinstance(node, yaml_tag.Context)
|
||||||
|
|
||||||
def is_url(node):
|
def is_url(node):
|
||||||
return isinstance(node, Url)
|
return isinstance(node, yaml_tag.Url)
|
||||||
|
|
||||||
def is_eval(node):
|
def is_eval(node):
|
||||||
return isinstance(node, Eval)
|
return isinstance(node, yaml_tag.Eval)
|
||||||
|
|
||||||
def is_ir_set(node):
|
def is_ir_set(node):
|
||||||
return _is_yaml_mapping(node, IrSet)
|
return _is_yaml_mapping(node, yaml_tag.IrSet)
|
||||||
|
|
||||||
|
|
||||||
class TestReport(object):
|
class TestReport(object):
|
||||||
|
@ -410,7 +256,7 @@ class YamlInterpreter(object):
|
||||||
ids = [self.get_id(xml_id) for xml_id in expression]
|
ids = [self.get_id(xml_id) for xml_id in expression]
|
||||||
value= [(6, 0, ids)]
|
value= [(6, 0, ids)]
|
||||||
else: # scalar field
|
else: # scalar field
|
||||||
if isinstance(expression, Eval):
|
if isinstance(expression, yaml_tag.Eval):
|
||||||
value = eval(expression.expression)
|
value = eval(expression.expression)
|
||||||
else:
|
else:
|
||||||
value = expression
|
value = expression
|
||||||
|
|
|
@ -0,0 +1,157 @@
|
||||||
|
import yaml
|
||||||
|
import logging
|
||||||
|
|
||||||
|
class YamlTag(object):
|
||||||
|
"""
|
||||||
|
Superclass for constructors of custom tags defined in yaml file.
|
||||||
|
"""
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
self.__dict__.update(kwargs)
|
||||||
|
def __getitem__(self, key):
|
||||||
|
return getattr(self, key)
|
||||||
|
def __getattr__(self, attr):
|
||||||
|
return None
|
||||||
|
def __repr__(self):
|
||||||
|
return "<%s %s>" % (self.__class__.__name__, sorted(self.__dict__.items()))
|
||||||
|
|
||||||
|
class Assert(YamlTag):
|
||||||
|
def __init__(self, model, id, severity=logging.ERROR, string="NONAME", **kwargs):
|
||||||
|
self.model = model
|
||||||
|
self.id = id
|
||||||
|
self.severity = severity
|
||||||
|
self.string = string
|
||||||
|
super(Assert, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Record(YamlTag):
|
||||||
|
def __init__(self, model, id, **kwargs):
|
||||||
|
self.model = model
|
||||||
|
self.id = id
|
||||||
|
super(Record, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Python(YamlTag):
|
||||||
|
def __init__(self, model, severity=logging.ERROR, name="", **kwargs):
|
||||||
|
self.model= model
|
||||||
|
self.severity = severity
|
||||||
|
self.name = name
|
||||||
|
super(Python, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Menuitem(YamlTag):
|
||||||
|
def __init__(self, id, name, **kwargs):
|
||||||
|
self.id = id
|
||||||
|
self.name = name
|
||||||
|
super(Menuitem, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Workflow(YamlTag):
|
||||||
|
def __init__(self, model, action, **kwargs):
|
||||||
|
self.model = model
|
||||||
|
self.action = action
|
||||||
|
super(Workflow, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class ActWindow(YamlTag):
|
||||||
|
def __init__(self, model, action, **kwargs):
|
||||||
|
self.model = model
|
||||||
|
self.action = action
|
||||||
|
super(ActWindow, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Function(YamlTag):
|
||||||
|
def __init__(self, model, name, **kwargs):
|
||||||
|
self.model = model
|
||||||
|
self.name = name
|
||||||
|
super(Function, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Report(YamlTag):
|
||||||
|
def __init__(self, model, name, string, **kwargs):
|
||||||
|
self.model = model
|
||||||
|
self.name = name
|
||||||
|
self.string = string
|
||||||
|
super(Report, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Delete(YamlTag):
|
||||||
|
def __init__(self, model, id, search, **kwargs):
|
||||||
|
self.model = model
|
||||||
|
self.id = id
|
||||||
|
self.search = search
|
||||||
|
super(Delete, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Context(YamlTag):
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
super(Context, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Url(YamlTag):
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
super(Url, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
class Eval(YamlTag):
|
||||||
|
def __init__(self, expression):
|
||||||
|
self.expression = expression
|
||||||
|
super(Eval, self).__init__()
|
||||||
|
|
||||||
|
class IrSet(YamlTag):
|
||||||
|
def __init__(self):
|
||||||
|
super(IrSet, self).__init__()
|
||||||
|
|
||||||
|
def assert_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Assert(**kwargs)
|
||||||
|
|
||||||
|
def record_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Record(**kwargs)
|
||||||
|
|
||||||
|
def python_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Python(**kwargs)
|
||||||
|
|
||||||
|
def menuitem_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Menuitem(**kwargs)
|
||||||
|
|
||||||
|
def workflow_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Workflow(**kwargs)
|
||||||
|
|
||||||
|
def act_window_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return ActWindow(**kwargs)
|
||||||
|
|
||||||
|
def function_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Function(**kwargs)
|
||||||
|
|
||||||
|
def report_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Report(**kwargs)
|
||||||
|
|
||||||
|
def delete_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Delete(**kwargs)
|
||||||
|
|
||||||
|
def context_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Context(**kwargs)
|
||||||
|
|
||||||
|
def url_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return Url(**kwargs)
|
||||||
|
|
||||||
|
def eval_constructor(loader, node):
|
||||||
|
expression = loader.construct_scalar(node)
|
||||||
|
return Eval(expression)
|
||||||
|
|
||||||
|
def ir_set_constructor(loader, node):
|
||||||
|
kwargs = loader.construct_mapping(node)
|
||||||
|
return IrSet(**kwargs)
|
||||||
|
|
||||||
|
yaml.add_constructor(u"!assert", assert_constructor)
|
||||||
|
yaml.add_constructor(u"!record", record_constructor)
|
||||||
|
yaml.add_constructor(u"!python", python_constructor)
|
||||||
|
yaml.add_constructor(u"!menuitem", menuitem_constructor)
|
||||||
|
yaml.add_constructor(u"!workflow", workflow_constructor)
|
||||||
|
yaml.add_constructor(u"!act_window", act_window_constructor)
|
||||||
|
yaml.add_constructor(u"!function", function_constructor)
|
||||||
|
yaml.add_constructor(u"!report", report_constructor)
|
||||||
|
yaml.add_constructor(u"!context", context_constructor)
|
||||||
|
yaml.add_constructor(u"!delete", delete_constructor)
|
||||||
|
yaml.add_constructor(u"!url", url_constructor)
|
||||||
|
yaml.add_constructor(u"!eval", eval_constructor)
|
||||||
|
yaml.add_constructor(u"!ir_set", ir_set_constructor)
|
Loading…
Reference in New Issue