仅当在 absl-py 中设置了另一个标志时,如何根据需要标记一个标志?
How to mark a flag as required only if another flag is set in absl-py?
我有两个标志f1
和f2
,f1
是一个布尔标志。每当 f1
设置为 True 时,我想根据需要标记 f2
。这可以用 absl-py 实现吗?
您可以为此使用 validator:
from absl import app
from absl import flags
FLAGS = flags.FLAGS
flags.DEFINE_bool("f1", False, "some flag")
flags.DEFINE_string("f2", None, "some other flag")
flags.register_validator(
# the flag to validate
"f1",
# a function that takes that flag's value and returns whether it's valid
lambda value: not value or FLAGS.f2 is not None,
# a message to print if it isn't
message="if f1 is set, f2 needs to be set"
)
def main(argv):
pass
if __name__ == '__main__':
app.run(main)
我有两个标志f1
和f2
,f1
是一个布尔标志。每当 f1
设置为 True 时,我想根据需要标记 f2
。这可以用 absl-py 实现吗?
您可以为此使用 validator:
from absl import app
from absl import flags
FLAGS = flags.FLAGS
flags.DEFINE_bool("f1", False, "some flag")
flags.DEFINE_string("f2", None, "some other flag")
flags.register_validator(
# the flag to validate
"f1",
# a function that takes that flag's value and returns whether it's valid
lambda value: not value or FLAGS.f2 is not None,
# a message to print if it isn't
message="if f1 is set, f2 needs to be set"
)
def main(argv):
pass
if __name__ == '__main__':
app.run(main)