from .inotify import InotifyObserver as Observer except UnsupportedLibc: from .polling import PollingObserver as Observer elif platform.is_darwin(): # FIXME: catching too broad. Error prone try: from .fsevents import FSEventsObserver as Observer except: try: from .kqueue import KqueueObserver as Observer warnings.warn("Failed to import fsevents. Fall back to kqueue") except: from .polling import PollingObserver as Observer warnings.warn("Failed to import fsevents and kqueue. Fall back to polling.") elif platform.is_bsd(): from .kqueue import KqueueObserver as Observer elif platform.is_windows(): # TODO: find a reliable way of checking Windows version and import # polling explicitly for Windows XP try: from .read_directory_changes import WindowsApiObserver as Observer except: from .polling import PollingObserver as Observer warnings.warn("Failed to import read_directory_changes. Fall back to polling.") else: from .polling import PollingObserver as Observer
Classes ------- .. autoclass:: BaseThread :members: :show-inheritance: :inherited-members: """ import os import sys import threading import mitmflib.watchdog.utils.platform from mitmflib.watchdog.utils.compat import Event from collections import namedtuple if sys.version_info[0] == 2 and platform.is_windows(): # st_ino is not implemented in os.stat on this platform import win32stat stat = win32stat.stat else: stat = os.stat def has_attribute(ob, attribute): """ :func:`hasattr` swallows exceptions. :func:`has_attribute` tests a Python object for the presence of an attribute. :param ob: object to inspect :param attribute:
------- .. autoclass:: BaseThread :members: :show-inheritance: :inherited-members: """ import os import sys import threading import mitmflib.watchdog.utils.platform from mitmflib.watchdog.utils.compat import Event from collections import namedtuple if sys.version_info[0] == 2 and platform.is_windows(): # st_ino is not implemented in os.stat on this platform import win32stat stat = win32stat.stat else: stat = os.stat def has_attribute(ob, attribute): """ :func:`hasattr` swallows exceptions. :func:`has_attribute` tests a Python object for the presence of an attribute. :param ob: object to inspect :param attribute: