diff options
| author | Rob Hudson | 2008-12-11 14:04:45 -0800 | 
|---|---|---|
| committer | Rob Hudson | 2008-12-11 14:04:45 -0800 | 
| commit | d163dea7a5e6f07de690a43a65409df072fdb612 (patch) | |
| tree | 3f3c801ce2114806f9ddab4703b39a6b84da4a1e | |
| parent | ec08e18be48929e83b1c14ae13d439e5d6bdf2fc (diff) | |
| download | django-debug-toolbar-d163dea7a5e6f07de690a43a65409df072fdb612.tar.bz2 | |
Win32 systems don't have the resource module.  This patch codes around it so only
the basic timings are shown for those that don't have the resource module, and 
finer grained timings are shown for those that do.
| -rw-r--r-- | debug_toolbar/panels/timer.py | 29 | 
1 files changed, 22 insertions, 7 deletions
| diff --git a/debug_toolbar/panels/timer.py b/debug_toolbar/panels/timer.py index cafdb05..352bf55 100644 --- a/debug_toolbar/panels/timer.py +++ b/debug_toolbar/panels/timer.py @@ -1,4 +1,7 @@ -import resource +try: +    import resource +except ImportError: +    pass # Will fail on Win32 systems  import time  from django.template.loader import render_to_string  from debug_toolbar.panels import DebugPanel @@ -9,20 +12,32 @@ class TimerDebugPanel(DebugPanel):      Panel that displays the time a response took in milliseconds.      """      name = 'Timer' -    has_content = True +    try: # if resource module not available, don't show content panel +        resource +    except NameError: +        has_content = False +        has_resource = False +    else: +        has_content = True +        has_resource = True      def process_request(self, request):          self._start_time = time.time() -        self._start_rusage = resource.getrusage(resource.RUSAGE_SELF) +        if self.has_resource: +            self._start_rusage = resource.getrusage(resource.RUSAGE_SELF)      def process_response(self, request, response):          self.total_time = (time.time() - self._start_time) * 1000 -        self._end_rusage = resource.getrusage(resource.RUSAGE_SELF) +        if self.has_resource: +            self._end_rusage = resource.getrusage(resource.RUSAGE_SELF)      def title(self): -        utime = self._end_rusage.ru_utime - self._start_rusage.ru_utime -        stime = self._end_rusage.ru_stime - self._start_rusage.ru_stime -        return 'Time: %0.2fms, %0.2fms CPU' % (self.total_time, (utime + stime) * 1000.0) +        if self.has_resource: +            utime = self._end_rusage.ru_utime - self._start_rusage.ru_utime +            stime = self._end_rusage.ru_stime - self._start_rusage.ru_stime +            return 'Time: %0.2fms, %0.2fms CPU' % (self.total_time, (utime + stime) * 1000.0) +        else: +            return 'Time: %0.2fms' % (self.total_time)      def url(self):          return '' | 
