Contact: fumanchu@aminus.org

Log in as guest/dejavu to create tickets

I think I've seen this ORM somewhere before...

Changeset 338

Show
Ignore:
Timestamp:
12/06/06 07:53:38
Author:
fumanchu
Message:

Moved arena.logflag checking out of the log method and out to each call point. This is a bit of a burden on callers, but is often necessary to save expensive logging of Expressions.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/arenas.py

    r337 r338  
    4040        self.logflags = logflags.ERROR + logflags.IO 
    4141     
    42     def log(self, message, flag): 
     42    def log(self, message): 
    4343        """Default logger (writes to stdout). Feel free to replace.""" 
    44         if flag & self.logflags: 
    45             if isinstance(message, unicode): 
    46                 print message.encode('utf8') 
    47             else: 
    48                 print message 
     44        if isinstance(message, unicode): 
     45            print message.encode('utf8') 
     46        else: 
     47            print message 
    4948     
    5049    def load(self, configFileName): 
     
    274273        id = unit.identity() 
    275274        self._cache(cls)[id] = unit 
    276         self.arena.log("MEMORIZE %s: %s" % (cls.__name__, id), logflags.MEMORIZE) 
     275        if self.arena.logflags & logflags.MEMORIZE: 
     276            self.arena.log("MEMORIZE %s: %s" % (cls.__name__, id)) 
    277277         
    278278        # Do this at the end of the func, since most on_memorize 
     
    286286         
    287287        id = unit.identity() 
    288         self.arena.log("FORGET %s: %s" % (cls.__name__, id), logflags.FORGET) 
     288        if self.arena.logflags & logflags.FORGET: 
     289            self.arena.log("FORGET %s: %s" % (cls.__name__, id)) 
    289290        self.arena.storage(cls).destroy(unit) 
    290291         
     
    316317                expr = f 
    317318         
    318         self.arena.log("RECALL %s: %s" % (cls.__name__, expr), logflags.RECALL) 
     319        if self.arena.logflags & logflags.RECALL: 
     320            self.arena.log("RECALL %s: %s" % (cls.__name__, expr)) 
    319321         
    320322        # Collect all registered subclasses of cls. 
     
    408410                expr = f 
    409411         
    410         self.arena.log("RECALL %s %s" % 
    411                        (", ".join([c.__name__ for c in classes]), expr), 
    412                        logflags.RECALL
     412        if self.arena.logflags & logflags.RECALL: 
     413            self.arena.log("RECALL %s %s" % 
     414                           (", ".join([c.__name__ for c in classes]), expr)
    413415         
    414416        stores = [self.arena.storage(cls) for cls in classes] 
     
    468470                expr = f 
    469471         
    470         self.arena.log("VIEW %s [%s]: %s" % (cls.__name__, attrs, expr), logflags.VIEW) 
     472        if self.arena.logflags & logflags.VIEW: 
     473            self.arena.log("VIEW %s [%s]: %s" % (cls.__name__, attrs, expr)) 
    471474         
    472475        cache = self._cache(cls) 
     
    518521                expr = f 
    519522         
    520         self.arena.log("DISTINCT %s [%s]: %s" % (cls.__name__, attrs, expr), logflags.VIEW) 
     523        if self.arena.logflags & logflags.VIEW: 
     524            self.arena.log("DISTINCT %s [%s]: %s" % (cls.__name__, attrs, expr)) 
    521525         
    522526        seen = {} 
     
    598602        cls = unit.__class__ 
    599603        id = unit.identity() 
    600         self.arena.log("REPRESS %s: %s" % (cls.__name__, id), logflags.REPRESS) 
     604        if self.arena.logflags & logflags.REPRESS: 
     605            self.arena.log("REPRESS %s: %s" % (cls.__name__, id)) 
    601606         
    602607        if hasattr(unit, "on_repress"): 
     
    630635            while cache: 
    631636                unitid, unit = cache.popitem() 
    632                 self.arena.log("REPRESS %s: %s" % (cls.__name__, unitid), logflags.REPRESS) 
     637                if self.arena.logflags & logflags.REPRESS: 
     638                    self.arena.log("REPRESS %s: %s" % (cls.__name__, unitid)) 
    633639                store.save(unit) 
    634640         
  • trunk/storage/db.py

    r337 r338  
    115115        name = allOptions.pop('name') 
    116116        self.db = self.databaseclass(name, **allOptions) 
    117         self.db.log = lambda msg: self.arena.log(msg, dejavu.logflags.SQL) 
     117        def logger(msg): 
     118            if self.arena.logflags & logflags.SQL: 
     119                self.arena.log(msg) 
     120        self.db.log = logger 
    118121         
    119122        adapter = get_option('Type Adapter') 
  • trunk/test/zoo_fixture.py

    r337 r338  
    11731173arena = dejavu.Arena() 
    11741174 
    1175 def _djvlog(message, flag): 
     1175def _djvlog(message): 
    11761176    """Dejavu logger (writes to error.log).""" 
    1177     if flag & arena.logflags: 
    1178         if isinstance(message, unicode): 
    1179             message = message.encode('utf8') 
    1180         s = "%s %s" % (datetime.datetime.now().isoformat(), message) 
    1181         fname = os.path.join(os.path.dirname(__file__), "djvtest.log") 
    1182         f = open(fname, 'ab') 
    1183         f.write(s + '\n') 
    1184         f.close() 
     1177    if isinstance(message, unicode): 
     1178        message = message.encode('utf8') 
     1179    s = "%s %s" % (datetime.datetime.now().isoformat(), message) 
     1180    fname = os.path.join(os.path.dirname(__file__), "djvtest.log") 
     1181    f = open(fname, 'ab') 
     1182    f.write(s + '\n') 
     1183    f.close() 
    11851184 
    11861185def init():