vregistry.py
branchstable
changeset 5096 e25979a6d795
parent 5095 eaf522b9b998
child 5103 2b242604fc42
equal deleted inserted replaced
5095:eaf522b9b998 5096:e25979a6d795
   220         if winners is None:
   220         if winners is None:
   221             raise NoSelectableObject('args: %s\nkwargs: %s %s'
   221             raise NoSelectableObject('args: %s\nkwargs: %s %s'
   222                                      % (args, kwargs.keys(),
   222                                      % (args, kwargs.keys(),
   223                                         [repr(v) for v in appobjects]))
   223                                         [repr(v) for v in appobjects]))
   224         if len(winners) > 1:
   224         if len(winners) > 1:
       
   225             # don't we want the opposite: log in production environement, error
       
   226             # while debugging?
   225             if self.config.debugmode:
   227             if self.config.debugmode:
   226                 self.error('select ambiguity, args: %s\nkwargs: %s %s',
   228                 self.error('select ambiguity, args: %s\nkwargs: %s %s',
   227                            args, kwargs.keys(), [repr(v) for v in winners])
   229                            args, kwargs.keys(), [repr(v) for v in winners])
   228             else:
   230             else:
   229                 raise Exception('select ambiguity, args: %s\nkwargs: %s %s'
   231                 raise Exception('select ambiguity, args: %s\nkwargs: %s %s'
   332         """base method to add an object in the registry"""
   334         """base method to add an object in the registry"""
   333         assert not '__abstract__' in obj.__dict__
   335         assert not '__abstract__' in obj.__dict__
   334         try:
   336         try:
   335             vname = obj.__name__
   337             vname = obj.__name__
   336         except AttributeError:
   338         except AttributeError:
       
   339             # XXX may occurs?
   337             vname = obj.__class__.__name__
   340             vname = obj.__class__.__name__
   338         for registryname in class_registries(obj, registryname):
   341         for registryname in class_registries(obj, registryname):
   339             registry = self.setdefault(registryname)
   342             registry = self.setdefault(registryname)
   340             registry.register(obj, oid=oid, clear=clear)
   343             registry.register(obj, oid=oid, clear=clear)
   341             self.debug('registered appobject %s in registry %s with id %s',
   344             self.debug('registered appobject %s in registry %s with id %s',