web/views/sparql.py
changeset 10609 e2d8e81bfe68
parent 8696 0bb18407c053
child 10663 54b8a1f249fb
equal deleted inserted replaced
10608:7fc548d9dd8e 10609:e2d8e81bfe68
    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)),