Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/rdflib/__init__.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author | shellac |
---|---|
date | Sat, 02 May 2020 07:14:21 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:26e78fe6e8c4 |
---|---|
1 """A pure Python package providing the core RDF constructs. | |
2 | |
3 The packages is intended to provide the core RDF types and interfaces | |
4 for working with RDF. The package defines a plugin interface for | |
5 parsers, stores, and serializers that other packages can use to | |
6 implement parsers, stores, and serializers that will plug into the | |
7 rdflib package. | |
8 | |
9 The primary interface `rdflib` exposes to work with RDF is | |
10 `rdflib.graph.Graph`. | |
11 | |
12 A tiny example: | |
13 | |
14 >>> from rdflib import Graph, URIRef, Literal | |
15 | |
16 >>> g = Graph() | |
17 >>> result = g.parse("http://www.w3.org/2000/10/swap/test/meet/blue.rdf") | |
18 | |
19 >>> print("graph has %s statements." % len(g)) | |
20 graph has 4 statements. | |
21 >>> | |
22 >>> for s, p, o in g: | |
23 ... if (s, p, o) not in g: | |
24 ... raise Exception("It better be!") | |
25 | |
26 >>> s = g.serialize(format='nt') | |
27 >>> | |
28 >>> sorted(g) == [ | |
29 ... (URIRef(u'http://meetings.example.com/cal#m1'), | |
30 ... URIRef(u'http://www.example.org/meeting_organization#homePage'), | |
31 ... URIRef(u'http://meetings.example.com/m1/hp')), | |
32 ... (URIRef(u'http://www.example.org/people#fred'), | |
33 ... URIRef(u'http://www.example.org/meeting_organization#attending'), | |
34 ... URIRef(u'http://meetings.example.com/cal#m1')), | |
35 ... (URIRef(u'http://www.example.org/people#fred'), | |
36 ... URIRef(u'http://www.example.org/personal_details#GivenName'), | |
37 ... Literal(u'Fred')), | |
38 ... (URIRef(u'http://www.example.org/people#fred'), | |
39 ... URIRef(u'http://www.example.org/personal_details#hasEmail'), | |
40 ... URIRef(u'mailto:fred@example.com')) | |
41 ... ] | |
42 True | |
43 | |
44 """ | |
45 __docformat__ = "restructuredtext en" | |
46 | |
47 # The format of the __version__ line is matched by a regex in setup.py | |
48 __version__ = "4.2.2" | |
49 __date__ = "2017/01/29" | |
50 | |
51 __all__ = [ | |
52 'URIRef', | |
53 'BNode', | |
54 'Literal', | |
55 'Variable', | |
56 | |
57 'Namespace', | |
58 | |
59 'Dataset', | |
60 'Graph', | |
61 'ConjunctiveGraph', | |
62 | |
63 'RDF', | |
64 'RDFS', | |
65 'OWL', | |
66 'XSD', | |
67 | |
68 'util', | |
69 ] | |
70 | |
71 import sys | |
72 assert sys.version_info >= (2, 5, 0), "rdflib requires Python 2.5 or higher" | |
73 | |
74 import logging | |
75 _interactive_mode = False | |
76 try: | |
77 import __main__ | |
78 if not hasattr(__main__, '__file__') and sys.stdout.isatty(): | |
79 # show log messages in interactive mode | |
80 _interactive_mode = True | |
81 logging.basicConfig(level=logging.INFO) | |
82 del __main__ | |
83 except ImportError: | |
84 #Main already imported from elsewhere | |
85 import warnings | |
86 warnings.warn('__main__ already imported', ImportWarning) | |
87 del warnings | |
88 | |
89 logger = logging.getLogger(__name__) | |
90 if _interactive_mode: | |
91 logger.info("RDFLib Version: %s" % __version__) | |
92 else: | |
93 logger.debug("RDFLib Version: %s" % __version__) | |
94 del _interactive_mode | |
95 del sys | |
96 | |
97 | |
98 try: | |
99 chr(0x10FFFF) | |
100 except ValueError: | |
101 import warnings | |
102 warnings.warn( | |
103 'You are using a narrow Python build!\n' | |
104 'This means that your Python does not properly support chars > 16bit.\n' | |
105 'On your system chars like c=u"\\U0010FFFF" will have a len(c)==2.\n' | |
106 'As this can cause hard to debug problems with string processing\n' | |
107 '(slicing, regexp, ...) later on, we strongly advise to use a wide\n' | |
108 'Python build in production systems.', | |
109 ImportWarning) | |
110 del warnings | |
111 | |
112 | |
113 NORMALIZE_LITERALS = True | |
114 """ | |
115 If True - Literals lexical forms are normalized when created. | |
116 I.e. the lexical forms is parsed according to data-type, then the | |
117 stored lexical form is the re-serialized value that was parsed. | |
118 | |
119 Illegal values for a datatype are simply kept. The normalized keyword | |
120 for Literal.__new__ can override this. | |
121 | |
122 For example: | |
123 | |
124 >>> from rdflib import Literal,XSD | |
125 >>> Literal("01", datatype=XSD.int) | |
126 rdflib.term.Literal(u'1', datatype=rdflib.term.URIRef(u'http://www.w3.org/2001/XMLSchema#integer')) | |
127 | |
128 This flag may be changed at any time, but will only affect literals | |
129 created after that time, previously created literals will remain | |
130 (un)normalized. | |
131 | |
132 """ | |
133 | |
134 | |
135 DAWG_LITERAL_COLLATION = False | |
136 """ | |
137 DAWG_LITERAL_COLLATION determines how literals are ordered or compared | |
138 to each other. | |
139 | |
140 In SPARQL, applying the >,<,>=,<= operators to literals of | |
141 incompatible data-types is an error, i.e: | |
142 | |
143 Literal(2)>Literal('cake') is neither true nor false, but an error. | |
144 | |
145 This is a problem in PY3, where lists of Literals of incompatible | |
146 types can no longer be sorted. | |
147 | |
148 Setting this flag to True gives you strict DAWG/SPARQL compliance, | |
149 setting it to False will order Literals with incompatible datatypes by | |
150 datatype URI | |
151 | |
152 In particular, this determines how the rich comparison operators for | |
153 Literal work, eq, __neq__, __lt__, etc. | |
154 """ | |
155 | |
156 from rdflib.term import ( | |
157 URIRef, BNode, Literal, Variable) | |
158 | |
159 from rdflib.namespace import Namespace | |
160 | |
161 from rdflib.graph import Dataset, Graph, ConjunctiveGraph | |
162 | |
163 from rdflib.namespace import RDF, RDFS, OWL, XSD | |
164 | |
165 from rdflib import plugin | |
166 from rdflib import query | |
167 # tedious sop to flake8 | |
168 assert plugin | |
169 assert query | |
170 | |
171 from rdflib import util |