1
1
# -*- coding: utf-8 -*-
2
2
3
- import typing as ty
3
+ from typing import Optional , List , Tuple , Dict , Set
4
+
4
5
import collections
5
6
import weakref
6
7
import inspect
@@ -91,8 +92,8 @@ class OptionGroup:
91
92
:param help: the group help text or None
92
93
"""
93
94
94
- def __init__ (self , name : ty . Optional [str ] = None , * ,
95
- hidden = False , help : ty . Optional [str ] = None ) -> None : # noqa
95
+ def __init__ (self , name : Optional [str ] = None , * ,
96
+ hidden = False , help : Optional [str ] = None ) -> None : # noqa
96
97
self ._name = name if name else ''
97
98
self ._help = inspect .cleandoc (help if help else '' )
98
99
self ._hidden = hidden
@@ -117,13 +118,13 @@ def help(self) -> str:
117
118
return self ._help
118
119
119
120
@property
120
- def name_extra (self ) -> ty . List [str ]:
121
+ def name_extra (self ) -> List [str ]:
121
122
"""Returns extra name attributes for the group
122
123
"""
123
124
return []
124
125
125
126
@property
126
- def forbidden_option_attrs (self ) -> ty . List [str ]:
127
+ def forbidden_option_attrs (self ) -> List [str ]:
127
128
"""Returns the list of forbidden option attributes for the group
128
129
"""
129
130
return []
@@ -140,7 +141,7 @@ def get_default_name(self, ctx: click.Context) -> str:
140
141
option_names = '|' .join (self .get_option_names (ctx ))
141
142
return f'({ option_names } )'
142
143
143
- def get_help_record (self , ctx : click .Context ) -> ty . Optional [ty . Tuple [str , str ]]:
144
+ def get_help_record (self , ctx : click .Context ) -> Optional [Tuple [str , str ]]:
144
145
"""Returns the help record for the group
145
146
146
147
:param ctx: Click Context object
@@ -186,17 +187,17 @@ def decorator(func):
186
187
187
188
return decorator
188
189
189
- def get_options (self , ctx : click .Context ) -> ty . Dict [str , GroupedOption ]:
190
+ def get_options (self , ctx : click .Context ) -> Dict [str , GroupedOption ]:
190
191
"""Returns the dictionary with group options
191
192
"""
192
193
return self ._options .get (resolve_wrappers (ctx .command .callback ), {})
193
194
194
- def get_option_names (self , ctx : click .Context ) -> ty . List [str ]:
195
+ def get_option_names (self , ctx : click .Context ) -> List [str ]:
195
196
"""Returns the list with option names ordered by addition in the group
196
197
"""
197
198
return list (reversed (list (self .get_options (ctx ))))
198
199
199
- def get_error_hint (self , ctx , option_names : ty . Optional [ty . Set [str ]] = None ) -> str :
200
+ def get_error_hint (self , ctx , option_names : Optional [Set [str ]] = None ) -> str :
200
201
options = self .get_options (ctx )
201
202
text = ''
202
203
@@ -258,11 +259,11 @@ class RequiredAnyOptionGroup(OptionGroup):
258
259
"""
259
260
260
261
@property
261
- def forbidden_option_attrs (self ) -> ty . List [str ]:
262
+ def forbidden_option_attrs (self ) -> List [str ]:
262
263
return ['required' ]
263
264
264
265
@property
265
- def name_extra (self ) -> ty . List [str ]:
266
+ def name_extra (self ) -> List [str ]:
266
267
return super ().name_extra + ['required_any' ]
267
268
268
269
def handle_parse_result (self , option : GroupedOption , ctx : click .Context , opts : dict ) -> None :
@@ -296,11 +297,11 @@ class RequiredAllOptionGroup(OptionGroup):
296
297
"""
297
298
298
299
@property
299
- def forbidden_option_attrs (self ) -> ty . List [str ]:
300
+ def forbidden_option_attrs (self ) -> List [str ]:
300
301
return ['required' , 'hidden' ]
301
302
302
303
@property
303
- def name_extra (self ) -> ty . List [str ]:
304
+ def name_extra (self ) -> List [str ]:
304
305
return super ().name_extra + ['required_all' ]
305
306
306
307
def handle_parse_result (self , option : GroupedOption , ctx : click .Context , opts : dict ) -> None :
@@ -325,11 +326,11 @@ class MutuallyExclusiveOptionGroup(OptionGroup):
325
326
"""
326
327
327
328
@property
328
- def forbidden_option_attrs (self ) -> ty . List [str ]:
329
+ def forbidden_option_attrs (self ) -> List [str ]:
329
330
return ['required' ]
330
331
331
332
@property
332
- def name_extra (self ) -> ty . List [str ]:
333
+ def name_extra (self ) -> List [str ]:
333
334
return super ().name_extra + ['mutually_exclusive' ]
334
335
335
336
def handle_parse_result (self , option : GroupedOption , ctx : click .Context , opts : dict ) -> None :
@@ -356,7 +357,7 @@ class RequiredMutuallyExclusiveOptionGroup(MutuallyExclusiveOptionGroup):
356
357
"""
357
358
358
359
@property
359
- def name_extra (self ) -> ty . List [str ]:
360
+ def name_extra (self ) -> List [str ]:
360
361
return super ().name_extra + ['required' ]
361
362
362
363
def handle_parse_result (self , option : GroupedOption , ctx : click .Context , opts : dict ) -> None :
@@ -384,11 +385,11 @@ class AllOptionGroup(OptionGroup):
384
385
"""
385
386
386
387
@property
387
- def forbidden_option_attrs (self ) -> ty . List [str ]:
388
+ def forbidden_option_attrs (self ) -> List [str ]:
388
389
return ['required' , 'hidden' ]
389
390
390
391
@property
391
- def name_extra (self ) -> ty . List [str ]:
392
+ def name_extra (self ) -> List [str ]:
392
393
return super ().name_extra + ['all_or_none' ]
393
394
394
395
def handle_parse_result (self , option : GroupedOption , ctx : click .Context , opts : dict ) -> None :
0 commit comments