diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2016-03-06 16:25:25 -0800 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2016-03-06 16:25:25 -0800 |
commit | afcf304e73dc84a9a21fc0b8ebce50309cdf8527 (patch) | |
tree | f88ae699e5c7c4935d4ecf2690cf3d7d1cae0629 | |
parent | 3a5f60fc633250347152eba90d9ac555708d475e (diff) | |
download | psutil-afcf304e73dc84a9a21fc0b8ebce50309cdf8527.tar.gz |
refactoring
-rw-r--r-- | psutil/_pswindows.py | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/psutil/_pswindows.py b/psutil/_pswindows.py index d9b44b9e..c5d2cc9e 100644 --- a/psutil/_pswindows.py +++ b/psutil/_pswindows.py @@ -324,14 +324,11 @@ ppid_map = cext.ppid_map # not meant to be public class WindowsService(object): """Represents an installed Windows service.""" - def __init__(self, name, display_name, status, pid, binpath): - self._name = name - self._display_name = display_name - self._status = status - if pid == 0: - pid = None - self._pid = pid - self._binpath = binpath + def __init__(self, info): + if info['pid'] == 0: + info['pid'] = None + info['status'] = SERVICE_STATUSES.get(info['status'], info['status']) + self._info = info def __str__(self): details = "(name=%s, status=%s, pid=%s)" % ( @@ -343,39 +340,33 @@ class WindowsService(object): @property def pid(self): - return self._pid + return self._info['pid'] @property def name(self): - return self._name + return self._info['name'] @property def display_name(self): - return self._display_name + return self._info['display_name'] @property def status(self): - return SERVICE_STATUSES.get(self._status, self._status) + return self._info['status'] @property def binpath(self): - return self._binpath + return self._info['binpath'] def as_dict(self): - return dict( - pid=self.pid, - name=self.name, - display_name=self.display_name, - status=self.status, - binpath=self.binpath, - ) + return self._info def win_service_iter(): """Return a list of WindowsService instances.""" - ret = cext.winservice_enumerate() - for name, display_name, status, pid, binpath in ret: - yield WindowsService(name, display_name, status, pid, binpath) + keys = ['name', 'display_name', 'status', 'pid', 'binpath'] + for row in cext.winservice_enumerate(): + yield WindowsService(dict(zip(keys, row))) # --- decorators |