Changeset 280
- Timestamp:
- 08/12/06 01:12:42
- Files:
-
- trunk/arenas.py (modified) (13 diffs)
- trunk/storage/db.py (modified) (2 diffs)
- trunk/storage/geniusql.py (modified) (2 diffs)
- trunk/storage/storeado.py (modified) (2 diffs)
- trunk/storage/storefirebird.py (modified) (2 diffs)
- trunk/storage/storemysql.py (modified) (2 diffs)
- trunk/storage/storepypgsql.py (modified) (1 diff)
- trunk/storage/storesqlite.py (modified) (1 diff)
- trunk/test/zoo_fixture.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/arenas.py
r279 r280 27 27 logflags.REPRESS = 1024 28 28 logflags.FORGET = 2048 29 logflags.SANDBOX = logflags.MEMORIZE | logflags.RECALL | logflags.VIEW | logflags.REPRESS | logflags.FORGET 29 logflags.SANDBOX = (logflags.MEMORIZE | logflags.RECALL | logflags.VIEW | 30 logflags.REPRESS | logflags.FORGET) 30 31 31 32 32 33 class Arena(object): 33 """A rena(). Anamespace/workspace for a Dejavu application."""34 """A namespace/workspace for a Dejavu application.""" 34 35 35 36 def __init__(self): … … 39 40 self.associations = Graph(directed=False) 40 41 self.engine_functions = {} 41 self.logflags = 142 self.logflags = logflags.ERROR + logflags.IO 42 43 43 44 def log(self, message, flag): … … 106 107 107 108 def register(self, cls): 108 """ register(cls) ->Assert that Units of class 'cls' will be handled."""109 """Assert that Units of class 'cls' will be handled.""" 109 110 # We must allow modules to register classes before any stores have 110 111 # been added, but not overwrite a store which has already been found. … … 161 162 162 163 def create_storage(self, cls): 163 """ create_storage(cls).Create storage space for cls."""164 """Create storage space for cls.""" 164 165 self.storage(cls).create_storage(cls) 165 166 … … 180 181 181 182 def migrate_class(self, cls, new_store): 182 """ migrate_class(cls, new_store).Copy all units of cls to new_store."""183 """Copy all units of cls to new_store.""" 183 184 new_store.create_storage(cls) 184 185 for unit in self.new_sandbox().xrecall(cls): … … 187 188 188 189 def migrate(self, new_store, old_store=None, copy_only=False): 189 """ migrate(new_store, old_store=None).Copy all units (of old_store) to new_store."""190 """Copy all units (of old_store) to new_store.""" 190 191 for cls in self._registered_classes: 191 192 store = self.storage(cls) … … 204 205 205 206 class Sandbox(object): 206 """ Sandbox(arena).Data sandbox for Dejavu arenas.207 """Data sandbox for Dejavu arenas. 207 208 208 209 Each consumer (that is, each UI process) maintains a Sandbox for … … 248 249 249 250 def memorize(self, unit): 250 """ memorize(unit).Persist unit in storage."""251 """Persist unit in storage.""" 251 252 cls = unit.__class__ 252 253 unit.sandbox = self … … 374 375 375 376 def xmulti(self, classes, expr=None, **kwargs): 376 """xmulti(classes, expr) -> [[unit, ...], [unit, ...], ...] 377 Recall units of each cls if they together match the expr. 377 """Recall units of each cls if they together match the expr. 378 378 379 379 Each yielded value will be a list of Units, in the same order as … … 521 521 522 522 def count(self, cls, expr): 523 """ count(cls, expr) ->Number of Units of class 'cls'."""523 """Number of Units of class 'cls'.""" 524 524 return len(self.distinct(cls, cls.identifiers, expr)) 525 525 … … 529 529 530 530 def _cache(self, cls): 531 """ cache(cls).Return the cache for the specified class.531 """Return the cache for the specified class. 532 532 533 533 This base class creates a new cache for each cls per request. … … 538 538 539 539 def purge(self, cls): 540 """ purge(cls).Drop all cached Units of class 'cls'. Do not save."""540 """Drop all cached Units of class 'cls'. Do not save.""" 541 541 del self._caches[cls] 542 542 543 543 def repress(self, unit): 544 """ repress(unit).Remove unit from cache (but don't destroy)."""544 """Remove unit from cache (but don't destroy).""" 545 545 cls = unit.__class__ 546 546 id = unit.identity() … … 556 556 557 557 def flush_all(self): 558 """ flush_all().Repress all units."""558 """Repress all units.""" 559 559 560 560 for cls in self._caches.keys(): trunk/storage/db.py
r279 r280 114 114 name = allOptions.pop('name') 115 115 self.db = self.databaseclass(name, **allOptions) 116 self.db.log = lambda *a, **kw: self.arena.log(*a, **kw)116 self.db.log = lambda msg: self.arena.log(msg, dejavu.logflags.SQL) 117 117 118 118 adapter = get_option('Type Adapter') … … 516 516 517 517 def rename_storage(self, oldname, newname): 518 self.arena.log("rename table %s to %s" % (oldname, newname), logflags.SQL)519 518 self.db.rename(oldname, newname) 520 519 trunk/storage/geniusql.py
r279 r280 72 72 73 73 import dejavu 74 from dejavu import codewalk, errors , logflags74 from dejavu import codewalk, errors 75 75 76 76 … … 1385 1385 if isinstance(query, unicode): 1386 1386 query = query.encode(self.adaptertosql.encoding) 1387 self.log(query , logflags.SQL)1387 self.log(query) 1388 1388 return conn.query(query) 1389 1389 trunk/storage/storeado.py
r279 r280 506 506 if isinstance(query, unicode): 507 507 query = query.encode(self.adaptertosql.encoding) 508 self.log(query , dejavu.logflags.SQL)508 self.log(query) 509 509 try: 510 510 conn.Execute(query) … … 523 523 res = conn.OpenSchema(query) 524 524 else: 525 self.log(query , dejavu.logflags.SQL)525 self.log(query) 526 526 res = win32com.client.Dispatch(r'ADODB.Recordset') 527 527 if hasattr(conn, "conn"): trunk/storage/storefirebird.py
r279 r280 75 75 if isinstance(query, unicode): 76 76 query = query.encode(self.toAdapter.encoding) 77 self. arena.log(query, dejavu.logflags.SQL)77 self.log(query) 78 78 cur = conn.cursor() 79 79 cur.execute(query) … … 99 99 if isinstance(query, unicode): 100 100 query = query.encode(self.toAdapter.encoding) 101 self. arena.log(query, dejavu.logflags.SQL)101 self.log(query) 102 102 cur = conn.cursor() 103 103 cur.execute(query) trunk/storage/storemysql.py
r279 r280 18 18 19 19 import dejavu 20 from dejavu import storage, logic , logflags20 from dejavu import storage, logic 21 21 from dejavu.storage import db 22 22 … … 405 405 if isinstance(query, unicode): 406 406 query = query.encode(self.adaptertosql.encoding) 407 self.log(query , logflags.SQL)407 self.log(query) 408 408 try: 409 409 return conn.query(query) trunk/storage/storepypgsql.py
r279 r280 393 393 def create_database(self): 394 394 c = self._template_conn() 395 self.execute("CREATE DATABASE %s WITH ENCODING '%s'" 396 % (self.qname, self.encoding), c) 395 encoding = self.encoding 396 if encoding: 397 encoding = " WITH ENCODING '%s'" % encoding 398 self.execute("CREATE DATABASE %s%s" % (self.qname, encoding), c) 397 399 c.finish() 398 400 self.clear() trunk/storage/storesqlite.py
r279 r280 515 515 if isinstance(query, unicode): 516 516 query = query.encode(self.adaptertosql.encoding) 517 self.log(query , dejavu.logflags.SQL)517 self.log(query) 518 518 while True: 519 519 try: trunk/test/zoo_fixture.py
r279 r280 1049 1049 arena = dejavu.Arena() 1050 1050 arena.log = _djvlog 1051 arena.logflags = dejavu.logflags.SQL + dejavu.logflags.IO + dejavu.logflags.RECALL 1051 arena.logflags = (dejavu.logflags.ERROR + dejavu.logflags.SQL + 1052 dejavu.logflags.IO + dejavu.logflags.RECALL) 1052 1053 1053 1054
