diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2020-04-28 04:27:56 +0200 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2020-04-28 04:27:56 +0200 |
commit | 56db14e14797ac790094a7bd8865d63383fd93a7 (patch) | |
tree | 004a33a8cc6280ac3099b55c44b91ef9223d0d02 | |
parent | efe1cdb3b7177a0e65531cf9b099d28df9bc8271 (diff) | |
download | psutil-56db14e14797ac790094a7bd8865d63383fd93a7.tar.gz |
show status() in __repr__
-rw-r--r-- | README.rst | 12 | ||||
-rw-r--r-- | psutil/__init__.py | 30 | ||||
-rwxr-xr-x | psutil/tests/test_misc.py | 2 |
3 files changed, 24 insertions, 20 deletions
@@ -327,7 +327,7 @@ Process management >>> >>> p = psutil.Process(7055) >>> p - psutil.Process(pid=7055, name='python', started='09:04:44') + psutil.Process(pid=7055, name='python3', status='running', started='09:04:44') >>> p.name() 'python' >>> p.exe() @@ -342,15 +342,15 @@ Process management >>> p.ppid() 7054 >>> p.children(recursive=True) - [psutil.Process(pid=29835, name='python2.7', started='11:45:38'), - psutil.Process(pid=29836, name='python2.7', started='11:43:39')] + [psutil.Process(pid=29835, name='python3', status='sleeping', started='11:45:38'), + psutil.Process(pid=29836, name='python3', status='waking', started='11:43:39')] >>> >>> p.parent() - psutil.Process(pid=4699, name='bash', started='09:06:44') + psutil.Process(pid=4699, name='bash', status='sleeping', started='09:06:44') >>> p.parents() [psutil.Process(pid=4699, name='bash', started='09:06:44'), - psutil.Process(pid=4689, name='gnome-terminal-server', started='0:06:44'), - psutil.Process(pid=1, name='systemd', started='05:56:55')] + psutil.Process(pid=4689, name='gnome-terminal-server', status='sleeping', started='0:06:44'), + psutil.Process(pid=1, name='systemd', status='sleeping', started='05:56:55')] >>> >>> p.status() 'running' diff --git a/psutil/__init__.py b/psutil/__init__.py index 650fcf0f..028ab049 100644 --- a/psutil/__init__.py +++ b/psutil/__init__.py @@ -397,20 +397,22 @@ class Process(object): except AttributeError: info = {} # Python 2.6 info["pid"] = self.pid - try: - info["name"] = self.name() - if self._create_time: - info['started'] = _pprint_secs(self._create_time) - except ZombieProcess: - info["status"] = "zombie" - except NoSuchProcess: - info["status"] = "terminated" - except AccessDenied: - pass - return "%s.%s(%s)" % ( - self.__class__.__module__, - self.__class__.__name__, - ", ".join(["%s=%r" % (k, v) for k, v in info.items()])) + with self.oneshot(): + try: + info["name"] = self.name() + info["status"] = self.status() + if self._create_time: + info['started'] = _pprint_secs(self._create_time) + except ZombieProcess: + info["status"] = "zombie" + except NoSuchProcess: + info["status"] = "terminated" + except AccessDenied: + pass + return "%s.%s(%s)" % ( + self.__class__.__module__, + self.__class__.__name__, + ", ".join(["%s=%r" % (k, v) for k, v in info.items()])) __repr__ = __str__ diff --git a/psutil/tests/test_misc.py b/psutil/tests/test_misc.py index 8ae7ea4d..18781e75 100755 --- a/psutil/tests/test_misc.py +++ b/psutil/tests/test_misc.py @@ -61,7 +61,9 @@ class TestMisc(unittest.TestCase): self.assertIn("psutil.Process", r) self.assertIn("pid=%s" % p.pid, r) self.assertIn("name=", r) + self.assertIn("status=", r) self.assertIn(p.name(), r) + self.assertIn("status='running'", r) with mock.patch.object(psutil.Process, "name", side_effect=psutil.ZombieProcess(os.getpid())): p = psutil.Process() |