Metadata-Version: 2.1
Name: winstats
Version: 0.80
Summary: A simple Windows status retrieval module with no additional dependencies.
Home-page: https://github.com/mixmastamyk/winstats
Author: Mike Miller
Author-email: mixmastamyk@bitbucket.org
License: UNKNOWN
Download-URL: https://github.com/mixmastamyk/winstats/get/default.tar.gz
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Win32 (MS Windows)
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Operating System :: Microsoft :: Windows :: Windows 7
Classifier: Operating System :: Microsoft :: Windows :: Windows XP
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: System :: Hardware
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Software Development :: Libraries



Windows Stats
===============

A simple Windows status retrieval module with no additional
dependencies.  Wraps common system status queries from Windows' ugly C-API:

* Memory stats
* Performance stats
* Disk info, types, and stats
* Performance Data Counters (aka PerfMon)

Supports Python 2.6 and above; WindowsXP and above.

*Note:* Relicensed as LGPL v3 (or later).


Install
-------------

::

    D:\> pip install winstats


Use
-----

**Setup**::

    import winstats

    # optional
    import locale
    locale.setlocale(locale.LC_ALL, '')
    fmt = lambda n: locale.format('%d', n, True)

**Memory Stats**::

    meminfo = winstats.get_mem_info()
    print '    Total: %s b' % fmt(meminfo.TotalPhys)
    print '    usage: %s%%' % fmt(meminfo.MemoryLoad)
    print

**Performance Stats**::

    pinfo = winstats.get_perf_info()
    print '    Cache: %s p' % fmt(pinfo.SystemCache)
    print '    Cache: %s b' % fmt(pinfo.SystemCacheBytes)
    print

**Disk Stats**::

    drives = winstats.get_drives()
    drive = drives[0]
    fsinfo = winstats.get_fs_usage(drive)
    vinfo = winstats.get_vol_info(drive)

    print '    Disks:', ', '.join(drives)
    print '    %s:\\' % drive
    print '        Name:', vinfo.name
    print '        Type:', vinfo.fstype
    print '        Total:', fmt(fsinfo.total)
    print '        Used: ', fmt(fsinfo.used)
    print '        Free: ', fmt(fsinfo.free)
    print

**Perfmon - Performance Counters**::

    # take a second snapshot 100ms after the first:
    usage = winstats.get_perf_data(r'\Processor(_Total)\% Processor Time',
                                   fmt='double', delay=100)
    print '    CPU Usage: %.02f %%' % usage

    # query multiple at once:
    counters = [ r'\Paging File(_Total)\% Usage', r'\Memory\Available MBytes']
    results = winstats.get_perf_data(counters, fmts='double large'.split())
    print '    Pagefile Usage: %.2f %%, Mem Avail: %s MB' % results


Results
---------

The examples above are built into the module, and double as a minimal test
suite::

    D:\> python.exe -m winstats

    Memory Stats:
        Total: 536,330,240 b
        usage: 31%

    Performance Stats:
        Cache: 35,921 p
        Cache: 147,132,416 b

    Disk Stats:
        Disks: C, D, O
        C:\
            Name: System
            Type: NTFS
            Total: 10,725,732,352
            Used:  3,160,956,928
            Free:  7,564,775,424

    PerfMon queries:
        CPU Usage: 10.00 %
        Pagefile Usage: 0.55 %, Mem Avail: 347 MB

And more ...


