MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / Profiler

Class Profiler

examples/performance/__init__.py:222–405  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

220
221
222class Profiler:
223 tests = []
224
225 _setup = None
226 _setup_once = None
227 name = None
228 num = 0
229
230 def __init__(self, options):
231 self.test = options.test
232 self.dburl = options.dburl
233 self.profile = options.profile
234 self.dump = options.dump
235 self.raw = options.raw
236 self.callers = options.callers
237 self.num = options.num
238 self.echo = options.echo
239 self.sort = options.sort
240 self.gc = options.gc
241 self.stats = []
242
243 @classmethod
244 def init(cls, name, num):
245 cls.name = name
246 cls.num = num
247
248 @classmethod
249 def profile(cls, fn):
250 if cls.name is None:
251 raise ValueError(
252 "Need to call Profile.init(<suitename>, <default_num>) first."
253 )
254 cls.tests.append(fn)
255 return fn
256
257 @classmethod
258 def setup(cls, fn):
259 if cls._setup is not None:
260 raise ValueError("setup function already set to %s" % cls._setup)
261 cls._setup = staticmethod(fn)
262 return fn
263
264 @classmethod
265 def setup_once(cls, fn):
266 if cls._setup_once is not None:
267 raise ValueError(
268 "setup_once function already set to %s" % cls._setup_once
269 )
270 cls._setup_once = staticmethod(fn)
271 return fn
272
273 def run(self):
274 if self.test:
275 tests = [fn for fn in self.tests if fn.__name__ in self.test]
276 if not tests:
277 raise ValueError("No such test(s): %s" % self.test)
278 else:
279 tests = self.tests

Callers 1

mainMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected