@@ -226,11 +226,15 @@ def _flag_is_registered(self, flag_obj: Flag) -> bool:
226
226
flag_dict = self ._flags ()
227
227
# Check whether flag_obj is registered under its long name.
228
228
name = flag_obj .name
229
- if flag_dict . get ( name , None ) == flag_obj :
229
+ if name in flag_dict and flag_dict [ name ] == flag_obj :
230
230
return True
231
231
# Check whether flag_obj is registered under its short name.
232
232
short_name = flag_obj .short_name
233
- if (short_name is not None and flag_dict .get (short_name , None ) == flag_obj ):
233
+ if (
234
+ short_name is not None
235
+ and short_name in flag_dict
236
+ and flag_dict [short_name ] == flag_obj
237
+ ):
234
238
return True
235
239
return False
236
240
@@ -478,7 +482,7 @@ def __dir__(self) -> List[str]:
478
482
Returns:
479
483
[str], a list of names of all defined flags.
480
484
"""
481
- return sorted (self .__dict__ [ '__flags' ] )
485
+ return sorted (self ._flags () )
482
486
483
487
def __getitem__ (self , name : str ) -> Flag :
484
488
"""Returns the Flag object for the flag --name."""
@@ -490,14 +494,14 @@ def _hide_flag(self, name):
490
494
491
495
def __getattr__ (self , name : str ) -> Any :
492
496
"""Retrieves the 'value' attribute of the flag --name."""
493
- fl = self ._flags ()
494
- if name not in fl :
497
+ flag_entry = self ._flags (). get ( name )
498
+ if flag_entry is None :
495
499
raise AttributeError (name )
496
500
if name in self .__dict__ ['__hiddenflags' ]:
497
501
raise AttributeError (name )
498
502
499
- if self .__dict__ ['__flags_parsed' ] or fl [ name ] .present :
500
- return fl [ name ] .value
503
+ if self .__dict__ ['__flags_parsed' ] or flag_entry .present :
504
+ return flag_entry .value
501
505
else :
502
506
raise _exceptions .UnparsedFlagAccessError (
503
507
'Trying to access flag --%s before flags were parsed.' % name )
@@ -1307,11 +1311,9 @@ def write_help_in_xml_format(self, outfile: Optional[TextIO] = None) -> None:
1307
1311
# Get list of key flags for the main module.
1308
1312
key_flags = self .get_key_flags_for_module (sys .argv [0 ])
1309
1313
1310
- # Sort flags by declaring module name and next by flag name.
1311
1314
flags_by_module = self .flags_by_module_dict ()
1312
- all_module_names = list (flags_by_module .keys ())
1313
- all_module_names .sort ()
1314
- for module_name in all_module_names :
1315
+ # Sort flags by declaring module name and next by flag name.
1316
+ for module_name in sorted (flags_by_module .keys ()):
1315
1317
flag_list = [(f .name , f ) for f in flags_by_module [module_name ]]
1316
1318
flag_list .sort ()
1317
1319
for unused_flag_name , flag in flag_list :
0 commit comments