Exemple #1
0
    def __init__(self, parent, name, data):
        self.parent = parent
        self.data = value = copy.deepcopy(data)

        parts = parse_name(name)
        self.name, self.inverted, self._op = parts

        self.many = is_list(value)
        if self.many:
            value = None if not len(value) else value[0]

        self.optional, self.sort, self.assume = None, None, []
        if isinstance(value, dict):
            self.sort = value.pop("sort", None)
            self.optional = value.pop("optional", None)
            self.assume = value.pop("assume", [])
            self.limit = value.pop("limit", 15)
            if not self.many:
                self.limit = 1
            self.offset = value.pop("offset", 0)

        if value is not None and not isinstance(value, (dict, list, tuple, set)):
            value = unicode(value)

        self.value = value
Exemple #2
0
 def set(self, attribute, value, context):
     if not isinstance(attribute, Attribute):
         attribute = self.type.attributes.get(attribute)
     if attribute is None:
         return
     values = value if is_list(value) else [value]
     for value in values:
         if not self.exists(attribute.qname, value, context):
             stmt = Statement(self.id, attribute.qname, value, context,
                              assume_contexts=self.assume_contexts)
             db.session.add(stmt)
             self.statements.append(stmt)