equal
deleted
inserted
replaced
17 # with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
17 # with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
18 """SPARQL integration""" |
18 """SPARQL integration""" |
19 |
19 |
20 __docformat__ = "restructuredtext en" |
20 __docformat__ = "restructuredtext en" |
21 _ = unicode |
21 _ = unicode |
|
22 |
|
23 from six.moves import range |
22 |
24 |
23 from yams import xy |
25 from yams import xy |
24 from rql import TypeResolverException |
26 from rql import TypeResolverException |
25 |
27 |
26 from lxml import etree |
28 from lxml import etree |
109 def call(self): |
111 def call(self): |
110 # XXX handle UNION |
112 # XXX handle UNION |
111 rqlst = self.cw_rset.syntax_tree().children[0] |
113 rqlst = self.cw_rset.syntax_tree().children[0] |
112 varnames = [var.name for var in rqlst.selection] |
114 varnames = [var.name for var in rqlst.selection] |
113 results = E.results() |
115 results = E.results() |
114 for rowidx in xrange(len(self.cw_rset)): |
116 for rowidx in range(len(self.cw_rset)): |
115 result = E.result() |
117 result = E.result() |
116 for colidx, varname in enumerate(varnames): |
118 for colidx, varname in enumerate(varnames): |
117 result.append(self.cell_binding(rowidx, colidx, varname)) |
119 result.append(self.cell_binding(rowidx, colidx, varname)) |
118 results.append(result) |
120 results.append(result) |
119 sparql = E.sparql(E.head(*(E.variable(name=name) for name in varnames)), |
121 sparql = E.sparql(E.head(*(E.variable(name=name) for name in varnames)), |