56
56
57
57
__all__ = ['Session' ]
58
58
59
- DEFAULT_RESOURCE_EXPIRE_TIME = 60 * 60
60
- DEFAULT_STORE_KEY = 'default'
59
+ DEFAULT_RESOURCE_EXPIRE_TIME = 60 * 60
60
+ DEFAULT_STORE_KEY = 'default'
61
61
62
62
class Session (object ):
63
63
""" The `Session` will manage the rest of the components in **SuRF**,
@@ -87,8 +87,8 @@ def __init__(self, default_store=None, mapping=None, auto_persist=False, auto_lo
87
87
self ._auto_load = auto_load
88
88
self ._stores = {}
89
89
90
- if default_store :
91
- if type (default_store ) is not Store :
90
+ if default_store is not None :
91
+ if not isinstance (default_store , Store ) :
92
92
raise Exception ('the arguments is not a valid Store instance' )
93
93
self .default_store = default_store
94
94
@@ -106,7 +106,7 @@ def __setitem__(self, key, value):
106
106
""" Set the `store` for the specified key, if value not a `Store`
107
107
instance ignored. """
108
108
109
- if type (value ) is Store :
109
+ if type (value ) is Store :
110
110
self ._stores [key ] = value
111
111
112
112
def __delitem__ (self , key ):
@@ -160,7 +160,7 @@ def auto_load(self, val):
160
160
161
161
@property
162
162
def log_level (self ):
163
- return { sid : store .log_level for sid , store in self ._stores .iteritems ()}
163
+ return dict (( sid , store .log_level ) for sid , store in self ._stores .iteritems ())
164
164
165
165
@log_level .setter
166
166
def log_level (self , level ):
@@ -181,55 +181,37 @@ def set_cache_expire(self,val):
181
181
fset = set_cache_expire)
182
182
'''
183
183
184
- def get_default_store_key (self ):
185
- """ Getter function for the `default_store_key` property.
186
-
187
- Do not use this, use the `default_store_key` property instead.
188
-
184
+ @property
185
+ def default_store_key (self ):
189
186
"""
187
+ The `default store key` of the session.
190
188
189
+ If it is set explicitly on `session` creation it is returned, else the first `store key` is returned.
190
+ If no `stores` are in the session None is returned.
191
+ """
191
192
if DEFAULT_STORE_KEY in self ._stores :
192
193
return DEFAULT_STORE_KEY
193
194
elif len (self ._stores ) > 0 :
194
195
return self ._stores .keys ()[0 ]
195
196
return None
196
197
197
- default_store_key = property (fget = get_default_store_key )
198
- """ The `default store key` of the session.
199
-
200
- If it is set explicitly on `session` creation it is returned,
201
- else the first `store key` is returned. If no `stores` are in the session
202
- None is returned. """
203
-
204
-
205
- def set_default_store (self , store ):
206
- """ Setter function for the `default_store` property.
207
-
208
- Do not use this, use the `default_store` property instead.
209
-
198
+ @property
199
+ def default_store (self ):
210
200
"""
201
+ The `default store` of the session.
211
202
212
- self .__setitem__ (DEFAULT_STORE_KEY , store )
213
-
214
- def get_default_store (self ):
215
- """ Getter function for the `default_store` property.
216
-
217
- Do not use this, use the `default_store` property instead.
218
-
203
+ See `default_store_key` to see how the `default store` is selected.
219
204
"""
220
-
221
205
ds_key = self .default_store_key
222
206
if ds_key :
223
207
return self ._stores [ds_key ]
224
208
return None
225
209
226
- default_store = property (fget = get_default_store ,
227
- fset = set_default_store )
228
- """ The `default store` of the session.
229
-
230
- See `default_store_key` to see how the `default store` is selected. """
210
+ @default_store .setter
211
+ def default_store (self , store ):
212
+ self .__setitem__ (DEFAULT_STORE_KEY , store )
231
213
232
- def __uri (self , uri ):
214
+ def _uri (self , uri ):
233
215
""" For **internal** use only, convert the `uri` to a `URIRef`. """
234
216
235
217
if not uri :
@@ -260,7 +242,7 @@ def close(self):
260
242
261
243
self .mapping = None
262
244
263
- def map_type (self , uri , store = None , classes = None ):
245
+ def map_type (self , uri , store = None , classes = None ):
264
246
""" Create and return a `class` based on the `uri` given.
265
247
266
248
Also will add the `classes` to the inheritance list.
@@ -270,7 +252,7 @@ def map_type(self, uri, store = None, classes = None):
270
252
classes = classes if isinstance (classes , (tuple , set , list )) else []
271
253
store = store if store else self .default_store_key
272
254
273
- uri = self .__uri (uri )
255
+ uri = self ._uri (uri )
274
256
if not uri :
275
257
return None
276
258
name = uri_to_classname (uri )
@@ -283,11 +265,11 @@ def map_type(self, uri, store = None, classes = None):
283
265
if type (session_classes ) not in [list , tuple , set ]:
284
266
session_classes = [session_classes ]
285
267
base_classes .extend (session_classes )
286
- return type (str (name ), tuple (base_classes ), {'uri' : uri ,
287
- 'store_key' : store ,
288
- 'session' : self })
268
+ return type (str (name ), tuple (base_classes ), {'uri' : uri ,
269
+ 'store_key' : store ,
270
+ 'session' : self })
289
271
290
- def get_class (self , uri , store = None , classes = None ):
272
+ def get_class (self , uri , store = None , classes = None ):
291
273
"""
292
274
See :func:`surf.session.Session.map_type`.
293
275
The `uri` parameter can be any of the following:
@@ -301,10 +283,10 @@ def get_class(self, uri, store = None, classes = None):
301
283
302
284
"""
303
285
304
- return self .map_type (uri , store = store , classes = classes )
286
+ return self .map_type (uri , store = store , classes = classes )
305
287
306
- def map_instance (self , concept , subject , store = None , classes = None ,
307
- block_auto_load = False , context = None ):
288
+ def map_instance (self , concept , subject , store = None , classes = None ,
289
+ block_auto_load = False , context = None ):
308
290
"""Create an `instance` of the `class` specified by `uri` and `classes`
309
291
to be inherited, see `map_type` for more information. """
310
292
@@ -317,13 +299,12 @@ def map_instance(self, concept, subject, store = None, classes = None,
317
299
store = self .default_store_key
318
300
319
301
if not (isinstance (concept , type ) and issubclass (concept , Resource )):
320
- concept = self .map_type (concept , store = store , classes = classes )
321
-
322
- return concept (subject , block_auto_load = block_auto_load , context = context )
302
+ concept = self .map_type (concept , store = store , classes = classes )
323
303
304
+ return concept (subject , block_auto_load = block_auto_load , context = context )
324
305
325
- def get_resource (self , subject , concept = None , store = None , graph = None ,
326
- block_auto_load = False , context = None , classes = None ):
306
+ def get_resource (self , subject , concept = None , store = None , graph = None ,
307
+ block_auto_load = False , context = None , classes = None ):
327
308
""" Same as `map_type` but `set` the resource from the `graph`. """
328
309
329
310
classes = classes if isinstance (classes , (tuple , set , list )) else []
@@ -334,17 +315,17 @@ def get_resource(self, subject, concept = None, store = None, graph = None,
334
315
if concept is None :
335
316
concept = Resource .concept (subject )
336
317
337
- resource = self .map_instance (concept , subject , store = store , classes = classes ,
338
- block_auto_load = block_auto_load ,
339
- context = context )
318
+ resource = self .map_instance (concept , subject , store = store , classes = classes ,
319
+ block_auto_load = block_auto_load ,
320
+ context = context )
340
321
341
322
if graph :
342
323
resource .set (graph )
343
324
344
325
return resource
345
326
346
- def load_resource (self , uri , subject , store = None , data = None ,
347
- file = None , location = None , format = None , classes = None ):
327
+ def load_resource (self , uri , subject , store = None , data = None ,
328
+ file = None , location = None , format = None , classes = None ):
348
329
""" Create an `instance` of the `class` specified by `uri`, while
349
330
`subject` is the subject of the new resource instance.
350
331
@@ -359,11 +340,11 @@ def load_resource(self, uri, subject, store = None, data = None,
359
340
"""
360
341
classes = classes if isinstance (classes , (tuple , set , list )) else []
361
342
362
- ResourceClass = self .map_type (uri , store = store , classes = classes )
343
+ ResourceClass = self .map_type (uri , store = store , classes = classes )
363
344
if ResourceClass :
364
345
resource = ResourceClass (subject )
365
- resource .load_from_source (data = data , file = file ,
366
- location = location , format = format )
346
+ resource .load_from_source (data = data , file = file ,
347
+ location = location , format = format )
367
348
return resource
368
349
return None
369
350
0 commit comments