X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=pdm%2Fperf.py;h=7c0d561effaf32b8e33f2d9b8a55702af3ca441a;hb=HEAD;hp=7aef95a40b15b9e1e313889a868ecbf3f6d9125e;hpb=51c86362e0f20b1cb660b612f61f5f4e67b3cbd5;p=pdm.git diff --git a/pdm/perf.py b/pdm/perf.py index 7aef95a..307dccb 100644 --- a/pdm/perf.py +++ b/pdm/perf.py @@ -51,6 +51,13 @@ __all__ = ["attrinfo", "simpleattr", "valueattr", "eventobj", "staticdir", "event", "procevent", "startevent", "finishevent"] +class error(Exception): + pass +class nosuchname(LookupError, error): + pass +class nosuchproto(error): + pass + class attrinfo(object): """The return value of the `attrinfo' method on `attr' objects as described in L{pdm.srv.perf}. @@ -186,7 +193,7 @@ class simplefunc(perfobj): def invoke(self, method, *args, **kwargs): if method not in self.map: raise AttributeError(method) - self.map[method](*args, **kwargs) + return self.map[method](*args, **kwargs) def pdm_protocols(self): return super().pdm_protocols() + ["invoke"] @@ -278,4 +285,12 @@ sysinfo["uname"] = simpleattr(func = os.uname) sysinfo["hostname"] = simpleattr(func = socket.gethostname) sysinfo["platform"] = valueattr(init = sys.platform) -sysctl = simplefunc(exit=lambda status=0: os._exit(status)) +def reload(modname): + mod = sys.modules.get(modname) + if mod is None: + raise ValueError(modname) + import importlib + importlib.reload(mod) + +sysctl = simplefunc(exit=lambda status=0: os._exit(status), + reload=reload)