equal
deleted
inserted
replaced
29 # |
29 # |
30 # The fact that you are presently reading this means that you have had |
30 # The fact that you are presently reading this means that you have had |
31 # knowledge of the CeCILL-B license and that you accept its terms. |
31 # knowledge of the CeCILL-B license and that you accept its terms. |
32 # |
32 # |
33 |
33 |
|
34 from collections import OrderedDict |
34 import logging |
35 import logging |
35 |
36 |
36 from rdflib.namespace import RDF |
37 from rdflib.namespace import RDF |
37 from rdflib.term import URIRef, Literal, BNode |
38 from rdflib.term import URIRef, Literal, BNode, Identifier |
38 from collections import OrderedDict |
|
39 |
39 |
40 |
40 |
41 logger = logging.getLogger(__name__) |
41 logger = logging.getLogger(__name__) |
42 |
42 |
43 class BaseSerializer(object): |
43 class BaseSerializer(object): |
78 |
78 |
79 def get_rdf_object(self, obj, fieldname): |
79 def get_rdf_object(self, obj, fieldname): |
80 res = self.convert(getattr(obj, self.source or fieldname)) |
80 res = self.convert(getattr(obj, self.source or fieldname)) |
81 if res is None: |
81 if res is None: |
82 return |
82 return |
83 if not isinstance(res, Literal): |
83 if not isinstance(res, Identifier): |
84 res = Literal(unicode(res)) |
84 res = Literal(unicode(res)) |
|
85 |
85 lang = getattr(obj, self.lang_field, None) if self.lang_field else None |
86 lang = getattr(obj, self.lang_field, None) if self.lang_field else None |
86 |
87 |
87 return Literal(res.value, lang) if lang else res |
88 return Literal(res.value, lang) if lang else res |
88 |
89 |
89 class BooleanFieldSerializer(SimpleFieldSerializer): |
90 class BooleanFieldSerializer(SimpleFieldSerializer): |
97 |
98 |
98 |
99 |
99 class RelatedFieldSerializer(SimpleFieldSerializer): |
100 class RelatedFieldSerializer(SimpleFieldSerializer): |
100 |
101 |
101 def __init__(self, value_field, predicate=None, convert=None, source=None, many=False, lang_field=None): |
102 def __init__(self, value_field, predicate=None, convert=None, source=None, many=False, lang_field=None): |
102 super(RelatedFieldSerializer, self).__init__(predicate, convert, source, lang_field=lang_field) |
103 super(RelatedFieldSerializer, self).__init__(predicate=predicate, convert=convert, source=source, lang_field=lang_field) |
103 self.many = many |
104 self.many = many |
104 self.value_field = value_field |
105 self.value_field = value_field |
105 |
106 |
106 def to_graph(self, subject, obj, fieldname, graph): |
107 def to_graph(self, subject, obj, fieldname, graph): |
107 value = getattr(obj, fieldname, None) |
108 value = getattr(obj, fieldname, None) |