Skip to content

Suboptimal rendering of constraints in help output #182

@mathrick

Description

@mathrick

Bug description

The way the constraints descriptions are printed under the option group headers doesn't work very well with longer descriptions that require wrapping. I have implemented a "required if missing" constraint as follows (RequireNamed is my custom constraint):

If(AnySet(*names), then=require_any.rephrased("optional"), else_=RequireNamed(*dependents))

and it results in the following output:

Asset metadata inputs:
  [optional if either --plugin or URL is set, otherwise parameters --title,
  --version, --godot_version, and --licence required]
  --title TEXT          Title / short description of the asset
  --version TEXT        Asset version
  --godot-version TEXT  Minimum Godot version asset is compatible with
  --licence TEXT        Asset's licence

Notice how the description wraps around in a way that makes it look like it's a part of the option listing. IMHO, there should be a blank line inserted between the description and the option list if the description wraps around.

To Reproduce

Steps to reproduce the behavior:

  1. Add the following constraint to any option group
constraint=If("some_option", then=require_any.rephrased("optional"), else_=require_all.rephrased(
              "this is some very long description that will wrap around and make things look weird"
             ))
  1. Run with --help

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions