Coverage for /home/antoine/projects/xpra-git/dist/python3/lib64/python/xpra/platform/info.py : 95%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# This file is part of Xpra.
2# Copyright (C) 2013 Antoine Martin <antoine@xpra.org>
3# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
4# later version. See the file COPYING for details.
6import os
8from xpra.platform import platform_import
11def get_posix_sys_info():
12 info = {}
13 try:
14 import resource
15 for k, constant in {
16 "server" : "RUSAGE_SELF",
17 "children" : "RUSAGE_CHILDREN",
18 "total" : "RUSAGE_BOTH",
19 }.items():
20 try:
21 v = getattr(resource, constant)
22 except (NameError, AttributeError):
23 continue
24 stats = resource.getrusage(v)
25 minfo = info.setdefault("memory", {}).setdefault(k, {})
26 for var in (
27 "utime", "stime", "maxrss",
28 "ixrss", "idrss", "isrss",
29 "minflt", "majflt", "nswap",
30 "inblock", "oublock",
31 "msgsnd", "msgrcv",
32 "nsignals", "nvcsw", "nivcsw",
33 ):
34 value = getattr(stats, "ru_%s" % var)
35 if isinstance(value, float):
36 value = int(value)
37 minfo[var] = value
38 except Exception: # pragma: no cover
39 from xpra.os_util import get_util_logger
40 get_util_logger().error("Error getting memory usage info", exc_info=True)
41 return info
43def get_sys_info():
44 if os.name=="posix":
45 return get_posix_sys_info()
46 return {} # pragma: no cover
48def get_version_info():
49 return {}
51def _get_pwd():
52 try:
53 import pwd
54 USER_ID = os.getuid()
55 return pwd.getpwuid(USER_ID)
56 except KeyError: # pragma: no cover
57 return None
59def get_username():
60 p = _get_pwd()
61 if p is None: # pragma: no cover
62 return ""
63 return p.pw_name
65def get_name():
66 p = _get_pwd()
67 if p is None: # pragma: no cover
68 return ""
69 return p.pw_gecos.replace(",", "")
71def get_user_info():
72 return {
73 "username" : get_username(),
74 "name" : get_name()
75 }
77platform_import(globals(), "info", False,
78 "get_sys_info",
79 "get_version_info",
80 "get_username",
81 "get_name")