1"""Lazy imports that may apply across the xonsh package.""" 2import importlib 3 4from xonsh.platform import ON_WINDOWS, ON_DARWIN 5from xonsh.lazyasd import LazyObject, lazyobject 6 7pygments = LazyObject( 8 lambda: importlib.import_module("pygments"), globals(), "pygments" 9) 10pyghooks = LazyObject( 11 lambda: importlib.import_module("xonsh.pyghooks"), globals(), "pyghooks" 12) 13 14 15@lazyobject 16def pty(): 17 if ON_WINDOWS: 18 return 19 else: 20 return importlib.import_module("pty") 21 22 23@lazyobject 24def termios(): 25 if ON_WINDOWS: 26 return 27 else: 28 return importlib.import_module("termios") 29 30 31@lazyobject 32def fcntl(): 33 if ON_WINDOWS: 34 return 35 else: 36 return importlib.import_module("fcntl") 37 38 39@lazyobject 40def tty(): 41 if ON_WINDOWS: 42 return 43 else: 44 return importlib.import_module("tty") 45 46 47@lazyobject 48def _winapi(): 49 if ON_WINDOWS: 50 import _winapi as m 51 else: 52 m = None 53 return m 54 55 56@lazyobject 57def msvcrt(): 58 if ON_WINDOWS: 59 import msvcrt as m 60 else: 61 m = None 62 return m 63 64 65@lazyobject 66def winutils(): 67 if ON_WINDOWS: 68 import xonsh.winutils as m 69 else: 70 m = None 71 return m 72 73 74@lazyobject 75def macutils(): 76 if ON_DARWIN: 77 import xonsh.macutils as m 78 else: 79 m = None 80 return m 81 82 83@lazyobject 84def terminal256(): 85 return importlib.import_module("pygments.formatters.terminal256") 86