42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
# 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'])
|