@@ -15,9 +15,12 @@ class HttpCache(object):
15
15
def __init__ (self ):
16
16
self .cache = {}
17
17
18
+ def is_http_uri (self , item ):
19
+ return item .startswith ('http://' ) or item .startswith ('https://' )
20
+
18
21
def __getitem__ (self , item ):
19
22
20
- if not item . startswith ( 'http://' ) or item . startswith ( 'https://' ):
23
+ if not self . is_http_uri ( item ):
21
24
raise ValueError ('{} is not a HTTP URI.' .format (item ))
22
25
if item not in self .cache :
23
26
headers = {'Accept' : 'text/turtle' }
@@ -33,7 +36,7 @@ def check_uri(self, uri):
33
36
34
37
35
38
class Subject (object ):
36
- def __init__ (self , attrs = None , prefixes = None ):
39
+ def __init__ (self , attrs = None , prefixes = None , aliases = None ):
37
40
"""
38
41
A subject of metadata statements.
39
42
@@ -43,7 +46,10 @@ def __init__(self, attrs=None, prefixes=None):
43
46
attrs = {}
44
47
if prefixes is None :
45
48
prefixes = {}
49
+ if aliases is None :
50
+ aliases = {}
46
51
self .attrs = attrs
52
+ self .aliases = aliases
47
53
self ._prefixes = prefixes
48
54
self ._prefix_suffix = re .compile ('(^(?:(?!__).)*)__((?!.*__).*$)' )
49
55
_http_p = 'http[s]?://.*'
@@ -69,6 +75,8 @@ def unpack_uri(self, astring):
69
75
if self ._http_uri .match (self .prefixes ()[prefix ]):
70
76
result = astring .replace ('{}__' .format (prefix ),
71
77
self .prefixes ()[prefix ])
78
+ elif astring in self .aliases :
79
+ result = self .aliases [astring ]
72
80
return result
73
81
74
82
@@ -147,7 +155,11 @@ def validate_hdf5(afilepath):
147
155
prefixes = {}
148
156
if prefix_group :
149
157
prefixes = fhandle [prefix_group ].attrs
150
- root_container = Subject (fhandle .attrs , prefixes = prefixes )
158
+ alias_group = fhandle .attrs .get ('bald__isAliasedBy' )
159
+ aliases = {}
160
+ if alias_group :
161
+ aliases = dict (fhandle [alias_group ].attrs .iteritems ())
162
+ root_container = Subject (fhandle .attrs , prefixes = prefixes , aliases = aliases )
151
163
root_val = bv .ContainerValidation (subject = root_container ,
152
164
fhandle = fhandle )
153
165
sval .stored_exceptions += root_val .exceptions ()
@@ -159,7 +171,7 @@ def validate_hdf5(afilepath):
159
171
# #
160
172
sattrs = dict (fhandle .attrs ).copy ()
161
173
sattrs .update (dataset .attrs )
162
- dset = Subject (sattrs , prefixes )
174
+ dset = Subject (sattrs , prefixes , aliases )
163
175
dset_val = bv .ArrayValidation (name , dataset , fhandle = fhandle ,
164
176
subject = dset )
165
177
sval .stored_exceptions += dset_val .exceptions ()
0 commit comments