handling rdflib version 4

19 views
Skip to first unread message

Tim Lebo

unread,
Jun 11, 2013, 10:24:50 AM6/11/13
to sur...@googlegroups.com
surfers,

It seems that the latest version of rdflib causes a problem with surf.

e.g. SuRF-1.1.4_r352-py2.6.egg/surf/rdf.py has some conditional imports which do not handle the "4.x" cases.

Would it be possible to update this logic?
Or, could it ensure that the older version of rdflib is used in its easy_install?

Thanks,
Tim Lebo


{{{{{{   # SuRF-1.1.4_r352-py2.6.egg/surf/rdf.py
import rdflib

print 'rdflib version: ' + rdflib.__version__

# 2.4 style imports
if rdflib.__version__.startswith("2.4"):
    from rdflib.BNode import BNode
    from rdflib.Graph import Graph, ConjunctiveGraph
    from rdflib.Literal import Literal
    from rdflib.Namespace import Namespace
    from rdflib.Namespace import Namespace as ClosedNamespace
    from rdflib.URIRef import URIRef

    from rdflib.RDF import RDFNS as RDF
    from rdflib.RDFS import RDFSNS as RDFS

# 3.0 style imports
if rdflib.__version__.startswith("2.5") or rdflib.__version__.startswith("3."):
    from rdflib.term import BNode
    from rdflib.graph import Graph, ConjunctiveGraph
    from rdflib.term import Literal
    from rdflib.namespace import ClosedNamespace, Namespace
    from rdflib.namespace import RDF, RDFS
    from rdflib.term import URIRef

__exports__ = [BNode, ClosedNamespace, ConjunctiveGraph, Graph, Literal,
               Namespace, RDF, RDFS, URIRef]
}}}}}}}}


The code above prints the following:

{{{{{{
rdflib version: 4.0.1

Traceback (most recent call last):
...
  File "/usr/local/lib/python2.6/dist-packages/SuRF-1.1.4_r352-py2.6.egg/surf/__init__.py", line 51, in <module>
    from surf.query import Query, select, ask, describe, construct, OptionalGroup, Group, NamedGroup, Filter
  File "/usr/local/lib/python2.6/dist-packages/SuRF-1.1.4_r352-py2.6.egg/surf/query/__init__.py", line 41, in <module>
    from surf.rdf import BNode, Graph, ConjunctiveGraph, Literal, Namespace
  File "/usr/local/lib/python2.6/dist-packages/SuRF-1.1.4_r352-py2.6.egg/surf/rdf.py", line 65, in <module>
    __exports__ = [BNode, ClosedNamespace, ConjunctiveGraph, Graph, Literal,
NameError: name 'BNode' is not defined
}}}}}}}
Reply all
Reply to author
Forward
0 new messages