# Platforms module # Contains platform-specific implementations # Import Android platform (always available) try: from .android import AndroidDevice, AndroidDeviceState _android_available = True except ImportError: _android_available = False # Import iOS platform (optional) try: from .ios import IOSDevice, IOSDeviceState _ios_available = True except ImportError: _ios_available = False # Import Web platform (optional) try: from .web import WebDevice, WebDeviceState, WebApp _web_available = True except ImportError: _web_available = False # Import Windows platform (optional) try: from .windows import WindowsDevice, WindowsDeviceState _windows_available = True except ImportError: _windows_available = False # Build __all__ dynamically based on available platforms __all__ = [] if _android_available: __all__.extend(['AndroidDevice', 'AndroidDeviceState']) if _ios_available: __all__.extend(['IOSDevice', 'IOSDeviceState']) if _web_available: __all__.extend(['WebDevice', 'WebDeviceState', 'WebApp']) if _windows_available: __all__.extend(['WindowsDevice', 'WindowsDeviceState'])