mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
344 lines
8.2 KiB
Diff
344 lines
8.2 KiB
Diff
diff --git python3-psutil-clean/psutil/__init__.py python3-psutil-workdir/psutil/__init__.py
|
|
index f10598e..ff7678d 100644
|
|
--- python3-psutil-clean/psutil/__init__.py
|
|
+++ python3-psutil-workdir/psutil/__init__.py
|
|
@@ -37,6 +37,7 @@ except ImportError:
|
|
|
|
from . import _common
|
|
from . import _ntuples as _ntp
|
|
+from ._common import ASTRAL
|
|
from ._common import AIX
|
|
from ._common import BSD
|
|
from ._common import CONN_CLOSE
|
|
@@ -86,7 +87,10 @@ from ._common import debug
|
|
from ._common import memoize_when_activated
|
|
from ._common import wrap_numbers as _wrap_numbers
|
|
|
|
-if LINUX:
|
|
+if ASTRAL:
|
|
+ from . import _psastral as _psplatform
|
|
+
|
|
+elif LINUX:
|
|
# This is public API and it will be retrieved from _pslinux.py
|
|
# via sys.modules.
|
|
PROCFS_PATH = "/proc"
|
|
diff --git python3-psutil-clean/psutil/_common.py python3-psutil-workdir/psutil/_common.py
|
|
index 33b6282..111504b 100644
|
|
--- python3-psutil-clean/psutil/_common.py
|
|
+++ python3-psutil-workdir/psutil/_common.py
|
|
@@ -37,8 +37,8 @@ _DEFAULT = object()
|
|
# fmt: off
|
|
__all__ = [
|
|
# OS constants
|
|
- 'FREEBSD', 'BSD', 'LINUX', 'NETBSD', 'OPENBSD', 'MACOS', 'OSX', 'POSIX',
|
|
- 'SUNOS', 'WINDOWS',
|
|
+ 'ASTRAL', 'FREEBSD', 'BSD', 'LINUX', 'NETBSD', 'OPENBSD', 'MACOS', 'OSX',
|
|
+ 'POSIX', 'SUNOS', 'WINDOWS',
|
|
# connection constants
|
|
'CONN_CLOSE', 'CONN_CLOSE_WAIT', 'CONN_CLOSING', 'CONN_ESTABLISHED',
|
|
'CONN_FIN_WAIT1', 'CONN_FIN_WAIT2', 'CONN_LAST_ACK', 'CONN_LISTEN',
|
|
@@ -71,7 +71,8 @@ __all__ = [
|
|
|
|
POSIX = os.name == "posix"
|
|
WINDOWS = os.name == "nt"
|
|
-LINUX = sys.platform.startswith("linux")
|
|
+ASTRAL = sys.platform.startswith("astral")
|
|
+LINUX = sys.platform.startswith("linux") or ASTRAL
|
|
MACOS = sys.platform.startswith("darwin")
|
|
OSX = MACOS # deprecated alias
|
|
FREEBSD = sys.platform.startswith(("freebsd", "midnightbsd"))
|
|
diff --git python3-psutil-workdir/psutil/_psastral.py python3-psutil-workdir/psutil/_psastral.py
|
|
new file mode 100644
|
|
index 0000000..44ed0db
|
|
--- /dev/null
|
|
+++ python3-psutil-workdir/psutil/_psastral.py
|
|
@@ -0,0 +1,247 @@
|
|
+# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
|
|
+# Use of this source code is governed by a BSD-style license that can be
|
|
+# found in the LICENSE file.
|
|
+
|
|
+"""Minimal Astral backend.
|
|
+
|
|
+Astral does not expose the Linux /proc and syscall interfaces psutil's native
|
|
+backends are built around. Keep import and conservative POSIX APIs working, and
|
|
+raise NotImplementedError where the kernel does not currently provide data.
|
|
+"""
|
|
+
|
|
+import os
|
|
+import resource
|
|
+import signal
|
|
+import socket
|
|
+import time
|
|
+
|
|
+from . import _psposix
|
|
+from . import _common
|
|
+from . import _ntuples as _ntp
|
|
+
|
|
+AF_LINK = getattr(socket, "AF_LINK", socket.AF_UNSPEC)
|
|
+__extra__all__ = []
|
|
+
|
|
+
|
|
+class cext:
|
|
+ version = 722
|
|
+ __file__ = __file__
|
|
+
|
|
+ @staticmethod
|
|
+ def check_pid_range(pid):
|
|
+ if pid < 0:
|
|
+ raise ValueError("pid must be a positive integer")
|
|
+
|
|
+ @staticmethod
|
|
+ def set_debug(value):
|
|
+ return None
|
|
+
|
|
+
|
|
+def _unsupported():
|
|
+ raise NotImplementedError("psutil support for Astral is incomplete")
|
|
+
|
|
+
|
|
+def pids():
|
|
+ return [os.getpid()]
|
|
+
|
|
+
|
|
+def pid_exists(pid):
|
|
+ return _psposix.pid_exists(pid)
|
|
+
|
|
+
|
|
+def cpu_count_logical():
|
|
+ count = os.cpu_count()
|
|
+ return 1 if count is None else count
|
|
+
|
|
+
|
|
+def cpu_count_cores():
|
|
+ return None
|
|
+
|
|
+
|
|
+def cpu_times():
|
|
+ return _ntp.scputimes(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
|
|
+
|
|
+
|
|
+def per_cpu_times():
|
|
+ return [cpu_times()]
|
|
+
|
|
+
|
|
+def cpu_stats():
|
|
+ return _ntp.scpustats(0, 0, 0, 0)
|
|
+
|
|
+
|
|
+def cpu_freq():
|
|
+ return None
|
|
+
|
|
+
|
|
+def virtual_memory():
|
|
+ total = 0
|
|
+ return _ntp.svmem(total, total, 0.0, 0, total, 0, 0, 0, 0, 0, 0)
|
|
+
|
|
+
|
|
+def swap_memory():
|
|
+ return _ntp.sswap(0, 0, 0, 0.0, 0, 0)
|
|
+
|
|
+
|
|
+def disk_usage(path):
|
|
+ return _psposix.disk_usage(path)
|
|
+
|
|
+
|
|
+def disk_partitions(all=False):
|
|
+ return []
|
|
+
|
|
+
|
|
+def disk_io_counters(perdisk=False):
|
|
+ return {} if perdisk else None
|
|
+
|
|
+
|
|
+def net_io_counters():
|
|
+ return {}
|
|
+
|
|
+
|
|
+def net_connections(kind="inet"):
|
|
+ return []
|
|
+
|
|
+
|
|
+def net_if_addrs():
|
|
+ return {}
|
|
+
|
|
+
|
|
+def net_if_stats():
|
|
+ return {}
|
|
+
|
|
+
|
|
+def sensors_temperatures():
|
|
+ return {}
|
|
+
|
|
+
|
|
+def sensors_fans():
|
|
+ return {}
|
|
+
|
|
+
|
|
+def sensors_battery():
|
|
+ return None
|
|
+
|
|
+
|
|
+def boot_time():
|
|
+ return 0.0
|
|
+
|
|
+
|
|
+def users():
|
|
+ return []
|
|
+
|
|
+
|
|
+def heap_info():
|
|
+ return (0, 0)
|
|
+
|
|
+
|
|
+def heap_trim():
|
|
+ return 0
|
|
+
|
|
+
|
|
+class Process:
|
|
+ def __init__(self, pid):
|
|
+ self.pid = pid
|
|
+ self._name = None
|
|
+ if not pid_exists(pid):
|
|
+ raise _common.NoSuchProcess(pid)
|
|
+
|
|
+ def oneshot_enter(self):
|
|
+ return None
|
|
+
|
|
+ def oneshot_exit(self):
|
|
+ return None
|
|
+
|
|
+ def name(self):
|
|
+ if self.pid == os.getpid():
|
|
+ return os.path.basename(self.exe()) or "python"
|
|
+ return str(self.pid)
|
|
+
|
|
+ def exe(self):
|
|
+ if self.pid == os.getpid():
|
|
+ return ""
|
|
+ raise _common.AccessDenied(self.pid)
|
|
+
|
|
+ def cmdline(self):
|
|
+ if self.pid == os.getpid():
|
|
+ return []
|
|
+ raise _common.AccessDenied(self.pid)
|
|
+
|
|
+ def environ(self):
|
|
+ if self.pid == os.getpid():
|
|
+ return dict(os.environ)
|
|
+ raise _common.AccessDenied(self.pid)
|
|
+
|
|
+ def terminal(self):
|
|
+ return None
|
|
+
|
|
+ def cpu_times(self):
|
|
+ usage = resource.getrusage(resource.RUSAGE_SELF)
|
|
+ return _ntp.pcputimes(usage.ru_utime, usage.ru_stime, 0.0, 0.0)
|
|
+
|
|
+ def wait(self, timeout=None):
|
|
+ return _psposix.wait_pid(self.pid, timeout)
|
|
+
|
|
+ def create_time(self, monotonic=False, fast_only=False):
|
|
+ return time.monotonic() if monotonic else time.time()
|
|
+
|
|
+ def memory_info(self):
|
|
+ return _ntp.pmem(0, 0, 0, 0, 0, 0, 0)
|
|
+
|
|
+ def memory_full_info(self):
|
|
+ return _ntp.pfullmem(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
|
+
|
|
+ def cwd(self):
|
|
+ if self.pid == os.getpid():
|
|
+ return os.getcwd()
|
|
+ raise _common.AccessDenied(self.pid)
|
|
+
|
|
+ def num_ctx_switches(self):
|
|
+ return _ntp.pctxsw(0, 0)
|
|
+
|
|
+ def num_threads(self):
|
|
+ return 1
|
|
+
|
|
+ def nice_get(self):
|
|
+ return os.nice(0)
|
|
+
|
|
+ def nice_set(self, value):
|
|
+ os.nice(value - os.nice(0))
|
|
+
|
|
+ def status(self):
|
|
+ return _common.STATUS_RUNNING
|
|
+
|
|
+ def open_files(self):
|
|
+ return []
|
|
+
|
|
+ def net_connections(self, kind="inet"):
|
|
+ return []
|
|
+
|
|
+ def num_fds(self):
|
|
+ return 0
|
|
+
|
|
+ def ppid(self):
|
|
+ return os.getppid() if self.pid == os.getpid() else 0
|
|
+
|
|
+ def uids(self):
|
|
+ uid = os.getuid()
|
|
+ return _ntp.puids(uid, os.geteuid(), uid)
|
|
+
|
|
+ def gids(self):
|
|
+ gid = os.getgid()
|
|
+ return _ntp.pgids(gid, os.getegid(), gid)
|
|
+
|
|
+ def username(self):
|
|
+ return str(os.getuid())
|
|
+
|
|
+ def send_signal(self, sig):
|
|
+ os.kill(self.pid, sig)
|
|
+
|
|
+ def suspend(self):
|
|
+ self.send_signal(signal.SIGSTOP)
|
|
+
|
|
+ def resume(self):
|
|
+ self.send_signal(signal.SIGCONT)
|
|
+
|
|
+ def kill(self):
|
|
+ self.send_signal(signal.SIGKILL)
|
|
diff --git python3-psutil-clean/setup.py python3-psutil-workdir/setup.py
|
|
index 9603b29..609a905 100755
|
|
--- python3-psutil-clean/setup.py
|
|
+++ python3-psutil-workdir/setup.py
|
|
@@ -56,6 +56,7 @@ HERE = os.path.abspath(os.path.dirname(__file__))
|
|
sys.path.insert(0, os.path.join(HERE, "psutil"))
|
|
|
|
from _common import AIX # noqa: E402
|
|
+from _common import ASTRAL # noqa: E402
|
|
from _common import BSD # noqa: E402
|
|
from _common import FREEBSD # noqa: E402
|
|
from _common import LINUX # noqa: E402
|
|
@@ -117,6 +118,7 @@ DEV_DEPS = TEST_DEPS + [
|
|
# The pre-processor macros that are passed to the C compiler when
|
|
# building the extension.
|
|
macros = []
|
|
+ext = None
|
|
|
|
if POSIX:
|
|
macros.append(("PSUTIL_POSIX", 1))
|
|
@@ -269,7 +271,10 @@ def unix_can_compile(c_code):
|
|
shutil.rmtree(tempdir)
|
|
|
|
|
|
-if WINDOWS:
|
|
+if os.environ.get("PSUTIL_ASTRAL") == "1":
|
|
+ pass
|
|
+
|
|
+elif WINDOWS:
|
|
|
|
def get_winver():
|
|
maj, min = sys.getwindowsversion()[0:2]
|
|
@@ -482,7 +487,7 @@ def main():
|
|
platforms='Platform Independent',
|
|
license='BSD-3-Clause',
|
|
packages=['psutil'],
|
|
- ext_modules=[ext],
|
|
+ ext_modules=[] if ext is None else [ext],
|
|
options=options,
|
|
classifiers=[
|
|
'Development Status :: 5 - Production/Stable',
|