Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/click/__init__.py: 85%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

84 statements  

1""" 

2Click is a simple Python module inspired by the stdlib optparse to make 

3writing command line scripts fun. Unlike other modules, it's based 

4around a simple API that does not come with too much magic and is 

5composable. 

6""" 

7 

8from __future__ import annotations 

9 

10from .core import Argument as Argument 

11from .core import Command as Command 

12from .core import CommandCollection as CommandCollection 

13from .core import Context as Context 

14from .core import Group as Group 

15from .core import Option as Option 

16from .core import Parameter as Parameter 

17from .decorators import argument as argument 

18from .decorators import command as command 

19from .decorators import confirmation_option as confirmation_option 

20from .decorators import group as group 

21from .decorators import help_option as help_option 

22from .decorators import make_pass_decorator as make_pass_decorator 

23from .decorators import option as option 

24from .decorators import pass_context as pass_context 

25from .decorators import pass_obj as pass_obj 

26from .decorators import password_option as password_option 

27from .decorators import version_option as version_option 

28from .exceptions import Abort as Abort 

29from .exceptions import BadArgumentUsage as BadArgumentUsage 

30from .exceptions import BadOptionUsage as BadOptionUsage 

31from .exceptions import BadParameter as BadParameter 

32from .exceptions import ClickException as ClickException 

33from .exceptions import FileError as FileError 

34from .exceptions import MissingParameter as MissingParameter 

35from .exceptions import NoSuchOption as NoSuchOption 

36from .exceptions import UsageError as UsageError 

37from .formatting import HelpFormatter as HelpFormatter 

38from .formatting import wrap_text as wrap_text 

39from .globals import get_current_context as get_current_context 

40from .termui import clear as clear 

41from .termui import confirm as confirm 

42from .termui import echo_via_pager as echo_via_pager 

43from .termui import edit as edit 

44from .termui import getchar as getchar 

45from .termui import launch as launch 

46from .termui import pause as pause 

47from .termui import progressbar as progressbar 

48from .termui import prompt as prompt 

49from .termui import secho as secho 

50from .termui import style as style 

51from .termui import unstyle as unstyle 

52from .types import BOOL as BOOL 

53from .types import Choice as Choice 

54from .types import DateTime as DateTime 

55from .types import File as File 

56from .types import FLOAT as FLOAT 

57from .types import FloatRange as FloatRange 

58from .types import INT as INT 

59from .types import IntRange as IntRange 

60from .types import ParamType as ParamType 

61from .types import Path as Path 

62from .types import STRING as STRING 

63from .types import Tuple as Tuple 

64from .types import UNPROCESSED as UNPROCESSED 

65from .types import UUID as UUID 

66from .utils import echo as echo 

67from .utils import format_filename as format_filename 

68from .utils import get_app_dir as get_app_dir 

69from .utils import get_binary_stream as get_binary_stream 

70from .utils import get_text_stream as get_text_stream 

71from .utils import open_file as open_file 

72 

73 

74def __getattr__(name: str) -> object: 

75 import warnings 

76 

77 if name == "BaseCommand": 

78 from .core import _BaseCommand 

79 

80 warnings.warn( 

81 "'BaseCommand' is deprecated and will be removed in Click 9.0. Use" 

82 " 'Command' instead.", 

83 DeprecationWarning, 

84 stacklevel=2, 

85 ) 

86 return _BaseCommand 

87 

88 if name == "MultiCommand": 

89 from .core import _MultiCommand 

90 

91 warnings.warn( 

92 "'MultiCommand' is deprecated and will be removed in Click 9.0. Use" 

93 " 'Group' instead.", 

94 DeprecationWarning, 

95 stacklevel=2, 

96 ) 

97 return _MultiCommand 

98 

99 if name == "OptionParser": 

100 from .parser import _OptionParser 

101 

102 warnings.warn( 

103 "'OptionParser' is deprecated and will be removed in Click 9.0. The" 

104 " old parser is available in 'optparse'.", 

105 DeprecationWarning, 

106 stacklevel=2, 

107 ) 

108 return _OptionParser 

109 

110 if name == "__version__": 

111 import importlib.metadata 

112 import warnings 

113 

114 warnings.warn( 

115 "The '__version__' attribute is deprecated and will be removed in" 

116 " Click 9.1. Use feature detection or" 

117 " 'importlib.metadata.version(\"click\")' instead.", 

118 DeprecationWarning, 

119 stacklevel=2, 

120 ) 

121 return importlib.metadata.version("click") 

122 

123 raise AttributeError(name)