michael@0: TODO michael@0: ==== michael@0: michael@0: A collection of ideas and notes about stuff to implement in future versions. michael@0: "#NNN" occurrences refer to bug tracker issues at: michael@0: https://code.google.com/p/psutil/issues/list michael@0: michael@0: michael@0: HIGHER PRIORITY michael@0: =============== michael@0: michael@0: * #387: system-wide connections (netstat). michael@0: * OpenBSD support. michael@0: michael@0: * #371: CPU temperature (apparently OSX and Linux only; on Linux it requires michael@0: lm-sensors lib). michael@0: michael@0: * #250: net ifaces speed. michael@0: michael@0: * (Linux) resource limit get/set - see man prlimit. michael@0: michael@0: * Process.name on Windows is slow: michael@0: http://stackoverflow.com/questions/6587036/ michael@0: michael@0: * Windows binary for Python 3.3 64-bit. michael@0: michael@0: * #269: expose network ifaces RX/TW queues. michael@0: michael@0: michael@0: LOWER PRIORITY michael@0: ============== michael@0: michael@0: * #355: Android support. michael@0: michael@0: * #276: GNU/Hurd support. michael@0: michael@0: * NetBSD support? michael@0: michael@0: * DranflyBSD support? michael@0: michael@0: * AIX support? michael@0: michael@0: * examples/pidof.py (same as 'pidof' cli tool) michael@0: michael@0: * examples/pstree.py (same as 'pstree' cli tool) michael@0: * get_threads() should also return thread names in order to implement it michael@0: michael@0: * examples/taskmgr-gui.py (using tk). michael@0: michael@0: * system-wide # open file descriptors: michael@0: * https://jira.hyperic.com/browse/SIGAR-30 michael@0: * http://www.netadmintools.com/part295.html michael@0: michael@0: * Number of system threads. michael@0: * Windows: http://msdn.microsoft.com/en-us/library/windows/desktop/ms684824(v=vs.85).aspx michael@0: michael@0: * #357: what CPU a process is on. michael@0: michael@0: * thread names: michael@0: * https://code.google.com/p/plcrashreporter/issues/detail?id=65 michael@0: michael@0: michael@0: DEBATABLE michael@0: ========= michael@0: michael@0: * [Linux]: process cgroups (http://en.wikipedia.org/wiki/Cgroups). They look michael@0: similar to prlimit() in terms of functionality but uglier (they should allow michael@0: limiting per-process network IO resources though, which is great). Needs michael@0: further reading. michael@0: michael@0: * cpu_percent(): current default interval is 0.1 so that by default it will michael@0: produce a meaningful value. It represents a trap in case the user iterates michael@0: over multiple processes though, as it introduces a big slowdown. michael@0: Should it default to 0.0? michael@0: michael@0: * Rename connection ntuple's fields 'local_address', 'remote_address' to michael@0: 'laddr', 'raddr' (note in accordance with http://bugs.python.org/issue17675) michael@0: michael@0: * Process per-cpus percent (XXX Windows only?), see: michael@0: https://groups.google.com/forum/?fromgroups#!topic/psutil/ErrKTxAbu50 michael@0: michael@0: * Should we expose OS constants (psutil.WINDOWS, psutil.OSX etc.)? michael@0: michael@0: * Python 3.3. exposed different sched.h functions: michael@0: http://docs.python.org/dev/whatsnew/3.3.html#os michael@0: http://bugs.python.org/issue12655 michael@0: http://docs.python.org/dev/library/os.html#interface-to-the-scheduler michael@0: It might be worth to take a look and figure out whether we can include some michael@0: of those in psutil. michael@0: Also, we can probably reimplement wait_pid() on POSIX which is currently michael@0: implemented as a busy-loop. michael@0: michael@0: * Certain systems (XXX figure out which ones exactly) provide CPU times about michael@0: process children. On those systems Process.get_cpu_times() might return michael@0: a (user, system, user_children, system_children) ntuple.