Changeset 329
- Timestamp:
- 11/13/08 11:09:04 (2 months ago)
- Files:
-
- trunk/src/datastore/__init__.py (modified) (2 diffs)
- trunk/src/datastore/django_orm/__init__.py (modified) (2 diffs)
- trunk/src/datastore/django_orm/models.py (modified) (3 diffs)
- trunk/src/datastore/shelve_ds.py (modified) (1 diff)
- trunk/test/test_datastore.py (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/datastore/__init__.py
r298 r329 1 1 """ 2 NeuroTools.datastore 3 ==================== 4 2 5 The `datastore` package aims to present a consistent interface for persistent 3 6 data storage, irrespective of storage back-end. … … 21 24 `full_type`: the object class and module 22 25 `version`: the source-code version 26 27 Classes 28 ------- 29 30 ShelveDataStore - Persistent data store based on the `shelve` module and the 31 filesystem. 32 DjangoORMDataStore - Persistent data store using the Django ORM 33 (object-relational mapping - an object-oriented interface 34 to an SQL database) to store/retrieve keys/indices 35 with data stored using `pickle` on the filesystem. 36 23 37 """ 24 38 trunk/src/datastore/django_orm/__init__.py
r213 r329 3 3 """ 4 4 5 from datastore.interface import AbstractDataStore5 from NeuroTools.datastore.interface import AbstractDataStore 6 6 from django.conf import settings 7 7 … … 18 18 self.root_dir = data_root_dir 19 19 settings.configure(USE_I18N=False, 20 INSTALLED_APPS=(' datastore.django_orm',),20 INSTALLED_APPS=('NeuroTools.datastore.django_orm',), 21 21 **database_parameters) 22 22 DJANGO_CONFIGURED = True 23 23 from django.core.management import call_command 24 24 call_command('syncdb') 25 25 26 def __del__(self): 27 global DJANGO_CONFIGURED 28 DJANGO_CONFIGURED = False 26 29 27 30 def retrieve(self, component, attribute_name): trunk/src/datastore/django_orm/models.py
r213 r329 26 26 """ 27 27 state = {'type': str(self.type), 28 'parameters_uri': s elf.parameters_uri}28 'parameters_uri': str(self.parameters_uri)} # convert from unicode 29 29 if self.input is None: 30 30 state['input'] = 'None' … … 33 33 return hashlib.sha1(pickle.dumps(state)).hexdigest() 34 34 35 def __unicode__(self): 36 return '<ComponentState: type=%s, uri=%s, input=%s>' % (str(self.type), 37 self.parameters_uri, 38 self.input and self.input.global_id() or 'None') 35 39 36 40 class DataItem(models.Model): … … 42 46 path = os.path.join(root_dir, cs.global_id() + ".dj") 43 47 if not (os.path.exists(path) and os.path.isdir(path)): 44 os.m kdir(path)48 os.makedirs(path) 45 49 filename = os.path.join(path, self.attribute_name) 46 50 return filename trunk/src/datastore/shelve_ds.py
r298 r329 3 3 """ 4 4 5 from datastore.interface import AbstractDataStore6 from datastore.keygenerators import join_with_underscores5 from NeuroTools.datastore.interface import AbstractDataStore 6 from NeuroTools.datastore.keygenerators import join_with_underscores 7 7 import os.path, shelve 8 8 import logging 9 9 10 10 class ShelveDataStore(AbstractDataStore):

