tf.compat.v1.flags.FlagValues

Registry of 'Flag' objects.

A 'FlagValues' can then scan command line arguments, passing flag arguments through to the 'Flag' objects that it owns. It also provides easy access to the flag values. Typically only one 'FlagValues' object is needed by an application: flags.FLAGS

This class is heavily overloaded:

'Flag' objects are registered via setitem: FLAGS['longname'] = x # register a new flag

The .value attribute of the registered 'Flag' objects can be accessed as attributes of this 'FlagValues' object, through getattr. Both the long and short name of the original 'Flag' objects can be used to access its value: FLAGS.longname # parsed flag value FLAGS.x # parsed flag value (short name)

Command line arguments are scanned and passed to the registered 'Flag' objects through the call method. Unparsed arguments, including argv0 are returned. argv = FLAGS(sys.argv) # scan command line arguments

The original registered Flag objects can be retrieved through the use of the dictionary-like operator, getitem: x = FLAGS['longname'] # access the registered Flag object

The str() operator of a 'FlagValues' object provides help for all of the registered 'Flag' objects.

Methods

append_flag_values

Appends flags registered in another FlagValues instance.

Args
flag_values FlagValues, the FlagValues instance from which to copy flags.

append_flags_into_file

Appends all flags assignments from this FlagInfo object to a file.

Output will be in the format of a flagfile.

Note: MUST mirror the behavior of the C++ AppendFlagsIntoFile from https://github.com/gflags/gflags
Args
filename str, name of the file.

find_module_defining_flag

Return the name of the module defining this flag, or default.

Args
flagname str, name of the flag to lookup.
default Value to return if flagname is not defined. Defaults to None.
Returns
The name of the module which registered the flag with this name. If no such module exists (i.e. no flag with this name exists), we return default.

find_module_id_defining_flag

Return the ID of the module defining this flag, or default.

Args
flagname str, name of the flag to lookup.
default Value to return if flagname is not defined. Defaults to None.
Returns
The ID of the module which registered the flag with this name. If no such module exists (i.e. no flag with this name exists), we return default.

flag_values_dict

Returns a dictionary that maps flag names to flag values.

flags_by_module_dict

Returns the dictionary of module_name -> list of defined flags.

Returns
A dictionary. Its keys are module names (strings). Its values are lists of Flag objects.

flags_by_module_id_dict

Returns the dictionary of module_id -> list of defined flags.

Returns
A dictionary. Its keys are module IDs (ints). Its values are lists of Flag objects.

flags_into_string

Returns a string with the flags assignments from this FlagValues object.

This function ignores flags whose value is None. Each flag assignment is separated by a newline.

Note: MUST mirror the behavior of the C++ CommandlineFlagsIntoString from https://github.com/gflags/gflags
Returns
str, the string with the flags assignments from this FlagValues object. The flags are ordered by (module_name, flag_name).

get_flag_value

Returns the value of a flag (if not None) or a default value.

Args
name str, the name of a flag.
default Default value to use if the flag value is None.
Returns
Requested flag value or default.

get_flags_for_module

Returns the list of flags defined by a module.

Args
module module|str, the module to get flags from.
Returns
[Flag], a new list of Flag instances. Caller may update this list as
desired none of those changes will affect the internals of this FlagValue instance.

get_help

Returns a help string for all known flags.

Args
prefix str, per-line output prefix.
include_special_flags bool, whether to include description of SPECIAL_FLAGS, i.e. --flagfile and --undefok.
Returns
str, formatted help message.

get_key_flags_for_module

Returns the list of key flags for a module.

Args
module module|str, the module to get key flags from.
Returns
[Flag], a new list of Flag instances. Caller may update this list as
desired none of those changes will affect the internals of this FlagValue instance.

is_gnu_getopt

is_parsed

Returns whether flags were parsed.

key_flags_by_module_dict

Returns the dictionary of module_name -> list of key flags.

Returns
A dictionary. Its keys are module names (strings). Its values are lists of Flag objects.

main_module_help

Describes the key flags of the main module.

Returns
str, describing the key flags of the main module.

mark_as_parsed

Explicitly marks flags as parsed.

Use this when the caller knows that this FlagValues has been parsed as if a call() invocation has happened. This is only a public method for use by things like appcommands which do additional command like parsing.

module_help

Describes the key flags of a module.

Args
module module|str, the module to describe the key flags for.
Returns
str, describing the key flags of a module.

read_flags_from_files

Processes command line args, but also allow args to be read from file.

Args
argv [str], a list of strings, usually sys.argv[1:], which may contain one or more flagfile directives of the form --flagfile="./filename". Note that the name of the program (sys.argv[0]) should be omitted.
force_gnu bool, if False, --flagfile parsing obeys the FLAGS.is_gnu_getopt() value. If True, ignore the value and always follow gnu_getopt semantics.
Returns
A new list which has the original list combined with what we read from any flagfile(s).
Raises
IllegalFlagValueError Raised when --flagfile is provided with no argument.

This function is called by FLAGS(argv). It scans the input list for a flag that looks like: --flagfile=. Then it opens , reads all valid key and value pairs and inserts them into the input list in exactly the place where the --flagfile arg is found.

Note that your application's flags are still defined the usual way using absl.flags DEFINE_flag() type functions.

Notes (assuming we're getting a commandline of some sort as our input): --> For duplicate flags, the last one we hit should "win". --> Since flags that appear later win, a flagfile's settings can be "weak" if the --flagfile comes at the beginning of the argument sequence, and it can be "strong" if the --flagfile comes at the end. --> A further "--flagfile=" CAN be nested in a flagfile. It will be expanded in exactly the spot where it is found. --> In a flagfile, a line beginning with # or // is a comment. --> Entirely blank lines should be ignored.

register_flag_by_module

Records the module that defines a specific flag.

We keep track of which flag is defined by which module so that we can later sort the flags by module.

Args
module_name str, the name of a Python module.
flag Flag, the Flag instance that is key to the module.

register_flag_by_module_id

Records the module that defines a specific flag.

Args
module_id int, the ID of the Python module.
flag Flag, the Flag instance that is key to the module.

register_key_flag_for_module

Specifies that a flag is a key flag for a module.

Args
module_name str, the name of a Python module.
flag Flag, the Flag instance that is key to the module.

remove_flag_values

Remove flags that were previously appended from another FlagValues.

Args
flag_values FlagValues, the FlagValues instance containing flags to remove.

set_default

Changes the default value of the named flag object.

The flag's current value is also updated if the flag is currently using the default value, i.e. not specified in the command line, and not set by FLAGS.name = value.

Args
name str, the name of the flag to modify.
value The new default value.
Raises
UnrecognizedFlagError Raised when there is no registered flag named name.
IllegalFlagValueError Raised when value is not valid.

set_gnu_getopt

Sets whether or not to use GNU style scanning.

GNU style allows mixing of flag and non-flag arguments. See http://docs.python.org/library/getopt.html#getopt.gnu_getopt

Args
gnu_getopt bool, whether or not to use GNU style scanning.

unparse_flags

Unparses all flags to the point before any FLAGS(argv) was called.

validate_all_flags

Verifies whether all flags pass validation.

Raises
AttributeError Raised if validators work with a non-existing flag.
IllegalFlagValueError Raised if validation fails for at least one validator.

write_help_in_xml_format

Outputs flag documentation in XML format.

Note: We use element names that are consistent with those used by the C++ command-line flag library, from https://github.com/gflags/gflags We also use a few new elements (e.g., ), but we do not interfere / overlap with existing XML elements used by the C++ library. Please maintain this consistency.
Args
outfile File object we write to. Default None means sys.stdout.

__call__

Parses flags from argv; stores parsed flags into this FlagValues object.

All unparsed arguments are returned.

Args
argv a tuple/list of strings.
known_only bool, if True, parse and remove known flags; return the rest untouched. Unknown flags specified by --undefok are not returned.
Returns
The list of arguments not parsed as options, including argv[0].
Raises
Error Raised on any parsing error.
TypeError Raised on passing wrong type of arguments.
ValueError Raised on flag value parsing error.

__contains__

Returns True if name is a value (flag) in the dict.

__getitem__

Returns the Flag object for the flag --name.

__iter__

__len__

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/flags/FlagValues