defer importing ProfileSession

This commit is contained in:
David Rose 2008-12-22 19:17:18 +00:00
parent bdc229dbab
commit aa5bebac85
2 changed files with 15 additions and 2 deletions

View File

@ -9,7 +9,6 @@ __all__ = ['Task', 'TaskManager',
from direct.directnotify.DirectNotifyGlobal import *
from direct.showbase import ExceptionVarDump
from direct.showbase.PythonUtil import *
from direct.showbase.ProfileSession import ProfileSession
import signal
import types
import time
@ -550,6 +549,10 @@ class TaskManager:
# call to get a profile session that you can modify before passing to profileFrames()
if name is None:
name = 'taskMgrFrameProfile'
# Defer this import until we need it: some Python
# distributions don't provide the profile and pstats modules.
from direct.showbase.ProfileSession import ProfileSession
return ProfileSession(name)
def profileFrames(self, num=None, session=None, callback=None):
@ -634,6 +637,9 @@ class TaskManager:
task.setArgs(taskArgs, appendTask)
task.setFunction(profileInfo.taskFunc)
# Defer this import until we need it: some Python
# distributions don't provide the profile and pstats modules.
from direct.showbase.ProfileSession import ProfileSession
profileSession = ProfileSession('profiled-task-%s' % task.getName(),
Functor(profileInfo.taskFunc, *profileInfo.taskArgs))
ret = profileSession.run()

View File

@ -21,7 +21,6 @@ from direct.directnotify.DirectNotifyGlobal import *
from direct.showbase.PythonUtil import *
from direct.showbase.MessengerGlobal import *
from direct.showbase import ExceptionVarDump
from direct.showbase.ProfileSession import ProfileSession
import time
import fnmatch
import string
@ -873,6 +872,10 @@ class TaskManager:
# don't profile the same task twice in a row
doProfile = doProfile and (not profileInfo.profiled)
# Defer this import until we need it: some Python
# distributions don't provide the profile and pstats modules.
from direct.showbase.ProfileSession import ProfileSession
if not self.taskTimerVerbose:
startTime = self.trueClock.getShortTime()
@ -1034,6 +1037,10 @@ class TaskManager:
# call to get a profile session that you can modify before passing to profileFrames()
if name is None:
name = 'taskMgrFrameProfile'
# Defer this import until we need it: some Python
# distributions don't provide the profile and pstats modules.
from direct.showbase.ProfileSession import ProfileSession
return ProfileSession(name)
def profileFrames(self, num=None, session=None, callback=None):