def __init__(self, store, logger=None, task_paths=None, schedule_periodic=False, backlog=1, max_tasks=0, name=None, poll_timeout=None): super(TaskBackend, self).__init__(store._loop, many_times_events=('task_queued', 'task_started', 'task_done')) self.store = store self._logger = logger self.name = name self.task_paths = task_paths self.backlog = backlog self.max_tasks = max_tasks self.poll_timeout = max(poll_timeout or 0, 2) self.concurrent_tasks = set() self.processed = 0 self.schedule_periodic = schedule_periodic self.next_run = time.time() self.callbacks = {} self.models = odm.Mapper(self.store) self.models.register(Task) self._pubsub = self.get_pubsub()
def _create_mapper(self, app): # Create the object data mapper config = app.config odm = config['ODM'] default_address = None if not odm: from pulsar.apps.data import odm config['ODM'] = odm default_address = DEFAULT_ADDRESS self.html_crud_routers = odm.ModelDictionary() self.api_crud_routers = odm.ModelDictionary() datastore = config['DATASTORE'] or {} address = datastore.get('') if not address: if default_address: address = default_address config['DATASTORE'][''] = address else: raise ValueError('Default datastore not set') mapper = odm.Mapper(address) self.set_search_engine(app, mapper) # don't need lux has we know it does not have any model extensions = config['EXTENSIONS'][1:] mapper.register_applications(extensions, stores=datastore) return mapper
def setUpClass(cls): store = cls.create_store() yield store.create_database() cls.models = odm.Mapper(store) cls.models.register(User) yield cls.models.create_tables() yield cls.populate()
def mapper(cls, *models, **kw): '''Create a mapper for models''' mapper = odm.Mapper(cls.store) for model in models: mapper.register(model) return mapper
from pulsar.utils.security import gen_unique_id from pulsar.apps.data import odm from pulsar.apps.tasks import Task models = odm.Mapper('couchdb://127.0.0.1:5984/test') store = models.default_store try: ok = store.delete_database() except Exception: pass ok = store.create_database() models.register(Task) ok = models.create_tables() tasks = models.task task1 = tasks.create(name='bla', id=gen_unique_id()) assert task1.name == 'bla' task2 = tasks.create(name='foo', id=gen_unique_id()) assert task2.name == 'foo' task3 = tasks.create(name='foo', id=gen_unique_id()) assert task3.name == 'foo' objs = store.table_info(Task) ok = models.drop_tables()