mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-14 10:36:52 -07:00
Move Windows libs to libs/windows
This commit is contained in:
parent
3975aaceb2
commit
3a692c94a5
684 changed files with 4 additions and 1 deletions
52
libs/win/jaraco/windows/eventlog.py
Normal file
52
libs/win/jaraco/windows/eventlog.py
Normal file
|
@ -0,0 +1,52 @@
|
|||
import functools
|
||||
|
||||
from six.moves import map
|
||||
|
||||
import win32api
|
||||
import win32evtlog
|
||||
import win32evtlogutil
|
||||
|
||||
error = win32api.error # The error the evtlog module raises.
|
||||
|
||||
|
||||
class EventLog(object):
|
||||
def __init__(self, name="Application", machine_name=None):
|
||||
self.machine_name = machine_name
|
||||
self.name = name
|
||||
self.formatter = functools.partial(
|
||||
win32evtlogutil.FormatMessage, logType=self.name)
|
||||
|
||||
def __enter__(self):
|
||||
if hasattr(self, 'handle'):
|
||||
raise ValueError("Overlapping attempts to use this log context")
|
||||
self.handle = win32evtlog.OpenEventLog(self.machine_name, self.name)
|
||||
return self
|
||||
|
||||
def __exit__(self, *args):
|
||||
win32evtlog.CloseEventLog(self.handle)
|
||||
del self.handle
|
||||
|
||||
_default_flags = (
|
||||
win32evtlog.EVENTLOG_BACKWARDS_READ
|
||||
| win32evtlog.EVENTLOG_SEQUENTIAL_READ
|
||||
)
|
||||
|
||||
def get_records(self, flags=_default_flags):
|
||||
with self:
|
||||
while True:
|
||||
objects = win32evtlog.ReadEventLog(self.handle, flags, 0)
|
||||
if not objects:
|
||||
break
|
||||
for item in objects:
|
||||
yield item
|
||||
|
||||
def __iter__(self):
|
||||
return self.get_records()
|
||||
|
||||
def format_record(self, record):
|
||||
return self.formatter(record)
|
||||
|
||||
def format_records(self, records=None):
|
||||
if records is None:
|
||||
records = self.get_records()
|
||||
return map(self.format_record, records)
|
Loading…
Add table
Add a link
Reference in a new issue