in pytext/utils/documentation.py [0:0]
def pretty_print_config_class(obj):
"""Pretty-print the fields of one object."""
parent_class_name = ""
if hasattr(obj, "__bases__"):
parent_classes = (b.__name__ for b in obj.__bases__)
parent_class_name = ", ".join(parent_classes)
print(f"=== {obj.__module__}.{obj.__name__} ({parent_class_name}) ===")
else:
print(f"=== {obj.__module__}.{obj.__name__} ===")
if obj.__doc__:
print(f'"""\n{obj.__doc__.strip()}\n"""')
config_help = get_config_fields(obj)
if issubclass(obj, Enum):
for k, v in config_help.items():
default, typing, options = v
print(f" {k}: ({typing})")
for o in options:
print(f" {o}")
return
for k, v in config_help.items():
default, typing, options = v
if hasattr(default, "__module__"):
default_value = get_component_name(default)
else:
default_value = default
if typing and options: # Enum
print(f" {k}: ({typing.__name__})")
for o in options:
if o == default_value:
print(f" {o} (default)")
else:
print(f" {o}")
elif options: # Union
print(f" {k}: (one of)")
for o in options:
if o == default_value:
print(f" {o} (default)")
else:
print(f" {o}")
elif default and typing:
print(f" {k}: {typing} = {default_value}")
elif default:
print(f" {k} = {default_value}")
elif typing:
print(f" {k}: {typing}")
else:
print(f" {k} = null")