From: Fredrik Tolf Date: Fri, 27 Sep 2013 05:52:36 +0000 (+0200) Subject: Merge branch 'master' into python3 X-Git-Url: http://dolda2000.com/gitweb/?a=commitdiff_plain;ds=sidebyside;h=ebe466f227b464a7457dee55accb1b426821c7c9;hp=-c;p=pdm.git Merge branch 'master' into python3 --- ebe466f227b464a7457dee55accb1b426821c7c9 diff --combined pdm/perf.py index 6a68676,8326884..bad3112 --- a/pdm/perf.py +++ b/pdm/perf.py @@@ -45,7 -45,7 +45,7 @@@ It contains two named PERF objects - platform -- An attribute returning the Python build platform. """ - import os, sys, resource, time, socket, threading + import os, sys, time, socket, threading __all__ = ["attrinfo", "simpleattr", "valueattr", "eventobj", "staticdir", "event", "procevent", "startevent", @@@ -63,7 -63,7 +63,7 @@@ class attrinfo(object) class perfobj(object): def __init__(self, *args, **kwargs): - super(perfobj, self).__init__() + super().__init__() def pdm_protocols(self): return [] @@@ -74,7 -74,7 +74,7 @@@ class simpleattr(perfobj) read. """ def __init__(self, func, info = None, *args, **kwargs): - super(simpleattr, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.func = func if info is None: info = attrinfo() @@@ -87,7 -87,7 +87,7 @@@ return self.info def pdm_protocols(self): - return super(simpleattr, self).pdm_protocols() + ["attr"] + return super().pdm_protocols() + ["attr"] class valueattr(perfobj): """An implementation of the `attr' interface, which is initialized @@@ -95,7 -95,7 +95,7 @@@ updates to the value are reflected in subsequent reads. """ def __init__(self, init, info = None, *args, **kwargs): - super(valueattr, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.value = init if info is None: info = attrinfo() @@@ -108,7 -108,7 +108,7 @@@ return self.info def pdm_protocols(self): - return super(valueattr, self).pdm_protocols() + ["attr"] + return super().pdm_protocols() + ["attr"] class eventobj(perfobj): """An implementation of the `event' interface. It keeps track of @@@ -116,7 -116,7 +116,7 @@@ subscribers when submitted with the `notify' method. """ def __init__(self, *args, **kwargs): - super(eventobj, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.subscribers = set() def subscribe(self, cb): @@@ -135,7 -135,7 +135,7 @@@ except: pass def pdm_protocols(self): - return super(eventobj, self).pdm_protocols() + ["event"] + return super().pdm_protocols() + ["event"] class staticdir(perfobj): """An implementation of the `dir' interface. Put other PERF @@@ -143,7 -143,7 +143,7 @@@ return them to requesting clients. """ def __init__(self, *args, **kwargs): - super(staticdir, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.map = {} def __setitem__(self, name, ob): @@@ -159,13 -159,13 +159,13 @@@ return self.map.get(name, default) def listdir(self): - return self.map.keys() + return list(self.map.keys()) def lookup(self, name): return self.map[name] def pdm_protocols(self): - return super(staticdir, self).pdm_protocols() + ["dir"] + return super().pdm_protocols() + ["dir"] class event(object): """This class should be subclassed by all event objects sent via @@@ -209,7 -209,7 +209,7 @@@ class procevent(event) `finishevent' emitted when the connection is closed. """ def __init__(self, id): - super(procevent, self).__init__() + super().__init__() if isinstance(id, procevent): self.id = id.id else: @@@ -218,7 -218,7 +218,7 @@@ class startevent(procevent): """A subclass of `procevent'. See its documentation for details.""" def __init__(self): - super(startevent, self).__init__(getprocid()) + super().__init__(getprocid()) class finishevent(procevent): """A subclass of `procevent'. Intended to be emitted when a @@@ -227,21 -227,26 +227,26 @@@ distinction is meaningful. The `start' parameter should be the `startevent' instance used when the process was initiated.""" def __init__(self, start, aborted = False): - super(finishevent, self).__init__(start) + super().__init__(start) self.aborted = aborted sysres = staticdir() itime = time.time() - ires = resource.getrusage(resource.RUSAGE_SELF) - def ct(): - ru = resource.getrusage(resource.RUSAGE_SELF) - return (ru.ru_utime - ires.ru_utime) + (ru.ru_stime - ires.ru_stime) sysres["realtime"] = simpleattr(func = lambda: time.time() - itime) - sysres["cputime"] = simpleattr(func = ct) - sysres["utime"] = simpleattr(func = lambda: resource.getrusage(resource.RUSAGE_SELF).ru_utime - ires.ru_utime) - sysres["stime"] = simpleattr(func = lambda: resource.getrusage(resource.RUSAGE_SELF).ru_stime - ires.ru_stime) - sysres["maxrss"] = simpleattr(func = lambda: resource.getrusage(resource.RUSAGE_SELF).ru_maxrss) - sysres["rusage"] = simpleattr(func = lambda: resource.getrusage(resource.RUSAGE_SELF)) + try: + import resource + except ImportError: + pass + else: + ires = resource.getrusage(resource.RUSAGE_SELF) + def ct(): + ru = resource.getrusage(resource.RUSAGE_SELF) + return (ru.ru_utime - ires.ru_utime) + (ru.ru_stime - ires.ru_stime) + sysres["cputime"] = simpleattr(func = ct) + sysres["utime"] = simpleattr(func = lambda: resource.getrusage(resource.RUSAGE_SELF).ru_utime - ires.ru_utime) + sysres["stime"] = simpleattr(func = lambda: resource.getrusage(resource.RUSAGE_SELF).ru_stime - ires.ru_stime) + sysres["maxrss"] = simpleattr(func = lambda: resource.getrusage(resource.RUSAGE_SELF).ru_maxrss) + sysres["rusage"] = simpleattr(func = lambda: resource.getrusage(resource.RUSAGE_SELF)) sysinfo = staticdir() sysinfo["pid"] = simpleattr(func = os.getpid)