X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=pdm%2Fperf.py;h=6a68676066ce99b12660202fdb1d93783ffbd7f3;hb=98ecc02e068d7108325210c9fd9f510ec7bae66c;hp=786ab98f8e991d9cd2ff675fc4c7833d5d000276;hpb=5463509c7f8c15ae648eea644bea001a043d8b09;p=pdm.git diff --git a/pdm/perf.py b/pdm/perf.py index 786ab98..6a68676 100644 --- a/pdm/perf.py +++ b/pdm/perf.py @@ -5,35 +5,44 @@ for implementing PERF interfaces in common ways, and uses those classes to implement some standard PERF objects that can be used by PERF clients connecting to any PERF server. -See the documentation for pdm.srv.perf for a description of the +See the documentation for L{pdm.srv.perf} for a description of the various PERF interfaces. It contains two named PERF objects: - * sysres -- A directory containing the following objects pertaining - to the resource usage of the server process: - * realtime -- An attribute returning the amount of real time - since the PDM module was imported (which likely - coincides with the amount of time the server process - has been running). - * cputime -- An attribute returning the amount of CPU time - consumed by the server process (in both user and - kernel mode). - * utime -- An attribute returning the amount of CPU time the - server process has spent in user mode. - * stime -- An attribute returning the amount of CPU time the - server process has spent in kernel mode. - * maxrss -- An attribute returning the largest resident set size - the server process has used during its lifetime. - * rusage -- An attribute returning the current rusage of the - server process. -* sysinfo -- A directory containing the following objects pertaining - to the environment of the server process: - * pid -- An attribute returning the PID of the server process. - * uname -- An attribute returning the uname information of the - system. - * hostname -- An attribute returning the hostname of the system. - * platform -- An attribute returning the Python build platform. + - sysres -- A directory containing the following objects pertaining + to the resource usage of the server process: + + - realtime -- An attribute returning the amount of real time since + the PDM module was imported (which likely coincides with the + amount of time the server process has been running). + + - cputime -- An attribute returning the amount of CPU time + consumed by the server process (in both user and kernel mode). + + - utime -- An attribute returning the amount of CPU time the + server process has spent in user mode. + + - stime -- An attribute returning the amount of CPU time the + server process has spent in kernel mode. + + - maxrss -- An attribute returning the largest resident set size + the server process has used during its lifetime. + + - rusage -- An attribute returning the current rusage of the + server process. + + - sysinfo -- A directory containing the following objects pertaining + to the environment of the server process: + + - pid -- An attribute returning the PID of the server process. + + - uname -- An attribute returning the uname information of the + system. + + - hostname -- An attribute returning the hostname of the system. + + - platform -- An attribute returning the Python build platform. """ import os, sys, resource, time, socket, threading @@ -44,7 +53,7 @@ __all__ = ["attrinfo", "simpleattr", "valueattr", "eventobj", class attrinfo(object): """The return value of the `attrinfo' method on `attr' objects as - described in pdm.srv.perf. + described in L{pdm.srv.perf}. Currently contains a single data field, `desc', which should have a human-readable description of the purpose of the attribute. @@ -54,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 [] @@ -65,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() @@ -78,7 +87,7 @@ class simpleattr(perfobj): 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 @@ -86,7 +95,7 @@ class valueattr(perfobj): 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() @@ -99,7 +108,7 @@ class valueattr(perfobj): 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 @@ -107,7 +116,7 @@ class eventobj(perfobj): 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): @@ -126,7 +135,7 @@ class eventobj(perfobj): 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 @@ -134,7 +143,7 @@ class staticdir(perfobj): 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): @@ -150,13 +159,13 @@ class staticdir(perfobj): 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 @@ -200,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: @@ -209,7 +218,7 @@ class procevent(event): 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 @@ -218,7 +227,7 @@ class finishevent(procevent): 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()