81 this source. |
81 this source. |
82 """ |
82 """ |
83 |
83 |
84 def __init__(self, cnx, source=None): |
84 def __init__(self, cnx, source=None): |
85 self.cnx = cnx |
85 self.cnx = cnx |
86 self._rql_template = 'Any S,O WHERE S {} O' |
86 self._rql_template = 'Any S,O WHERE S %s O' |
87 self._kwargs = {} |
87 self._kwargs = {} |
88 if source is not None: |
88 if source is not None: |
89 self._rql_template += ', S cw_source SO, O cw_source SO, SO eid %(s)s' |
89 self._rql_template += ', S cw_source SO, O cw_source SO, SO eid %%(s)s' |
90 self._kwargs['s'] = source.eid |
90 self._kwargs['s'] = source.eid |
91 |
91 |
92 def __getitem__(self, rtype): |
92 def __getitem__(self, rtype): |
93 """Return a set of (subject, object) eids already related by `rtype`""" |
93 """Return a set of (subject, object) eids already related by `rtype`""" |
94 rql = self._rql_template.format(rtype) |
94 rql = self._rql_template % rtype |
95 return set(tuple(x) for x in self.cnx.execute(rql, self._kwargs)) |
95 return set(tuple(x) for x in self.cnx.execute(rql, self._kwargs)) |
96 |
96 |
97 |
97 |
98 class ExtEntity(object): |
98 class ExtEntity(object): |
99 """Transitional representation of an entity for use in data importer. |
99 """Transitional representation of an entity for use in data importer. |