equal
deleted
inserted
replaced
200 |
200 |
201 # helpers for debugging selectors |
201 # helpers for debugging selectors |
202 SELECTOR_LOGGER = logging.getLogger('cubicweb.selectors') |
202 SELECTOR_LOGGER = logging.getLogger('cubicweb.selectors') |
203 TRACED_OIDS = None |
203 TRACED_OIDS = None |
204 |
204 |
205 def _trace_selector(cls, ret): |
205 def _trace_selector(cls, selector, args, ret): |
206 # /!\ lltrace decorates pure function or __call__ method, this |
206 # /!\ lltrace decorates pure function or __call__ method, this |
207 # means argument order may be different |
207 # means argument order may be different |
208 if isinstance(cls, Selector): |
208 if isinstance(cls, Selector): |
209 selname = str(cls) |
209 selname = str(cls) |
210 vobj = args[0] |
210 vobj = args[0] |
223 if CubicWebConfiguration.mode == 'system': # XXX config.debug |
223 if CubicWebConfiguration.mode == 'system': # XXX config.debug |
224 return selector |
224 return selector |
225 def traced(cls, *args, **kwargs): |
225 def traced(cls, *args, **kwargs): |
226 ret = selector(cls, *args, **kwargs) |
226 ret = selector(cls, *args, **kwargs) |
227 if TRACED_OIDS is not None: |
227 if TRACED_OIDS is not None: |
228 _trace_selector(cls, ret) |
228 _trace_selector(cls, selector, args, ret) |
229 return ret |
229 return ret |
230 traced.__name__ = selector.__name__ |
230 traced.__name__ = selector.__name__ |
231 traced.__doc__ = selector.__doc__ |
231 traced.__doc__ = selector.__doc__ |
232 return traced |
232 return traced |
233 |
233 |