1from __future__ import annotations 2 3import sys 4 5PLATFORM_WINDOWS = "windows" 6PLATFORM_LINUX = "linux" 7PLATFORM_BSD = "bsd" 8PLATFORM_DARWIN = "darwin" 9PLATFORM_UNKNOWN = "unknown" 10 11 12def get_platform_name() -> str: 13 if sys.platform.startswith("win"): 14 return PLATFORM_WINDOWS 15 16 if sys.platform.startswith("darwin"): 17 return PLATFORM_DARWIN 18 19 if sys.platform.startswith("linux"): 20 return PLATFORM_LINUX 21 22 if sys.platform.startswith(("dragonfly", "freebsd", "netbsd", "openbsd", "bsd")): 23 return PLATFORM_BSD 24 25 return PLATFORM_UNKNOWN 26 27 28__platform__ = get_platform_name() 29 30 31def is_linux() -> bool: 32 return __platform__ == PLATFORM_LINUX 33 34 35def is_bsd() -> bool: 36 return __platform__ == PLATFORM_BSD 37 38 39def is_darwin() -> bool: 40 return __platform__ == PLATFORM_DARWIN 41 42 43def is_windows() -> bool: 44 return __platform__ == PLATFORM_WINDOWS 45