Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix rendering of string-valued defaults #137

Merged
merged 1 commit into from
May 15, 2024

Conversation

hoodmane
Copy link
Contributor

@hoodmane hoodmane commented May 9, 2024

Summary

Before this patch, string defaults are formatted without quotes around them.
However, if the default is a tuple or list of strings, quotes will be included:

default="a" ==> :default: ``a``
default=("a",) ==> :default: ``('a')``

This is a slightly annoying inconsistency, and leads to potential for confusion
between default="0" and default=0. Most bothersome is that in the case of an
empty string we get:

:default: ````

Which makes docutils angry:

CRITICAL: Unexpected section title or transition: ````

This fixes the trouble by formatting the repr of the default.

On top of #136.

Tasks

  • Added unit tests
  • Added documentation for new features (where applicable)
  • Added release notes (using reno)
  • Ran test suite and style checks and built documentation (tox)

@hoodmane hoodmane force-pushed the empty-string-default branch 2 times, most recently from 6e2ae93 to 88e1a84 Compare May 9, 2024 14:21
@hoodmane hoodmane changed the title Empty string default Fix rendering of string-valued defaults May 9, 2024
@hoodmane
Copy link
Contributor Author

hoodmane commented May 9, 2024

There's still a CRITICAL: Unexpected section title or transition if a multiple option has an empty list default.

hoodmane added a commit to hoodmane/pyodide that referenced this pull request May 9, 2024
hoodmane added a commit to pyodide/pyodide that referenced this pull request May 9, 2024
sphinx_click/ext.py Outdated Show resolved Hide resolved
tests/test_formatter.py Outdated Show resolved Hide resolved
@stephenfin
Copy link
Member

stephenfin commented May 14, 2024

You can rebase this now that #136 is merged too.

Before this patch, string defaults are formatted without quotes around
them. However, if the default is a tuple or list of strings, quotes will
be included:

  default="a" ==> :default: ``a``
  default=("a",) ==> :default: ``('a')``

This is a slightly annoying inconsistency, and leads to potential for
confusion between `default="0"` and `default=0`. Most bothersome is that
in the case of an empty string we get:

  :default: ````

Which makes docutils angry:

  CRITICAL: Unexpected section title or transition.

This fixes the trouble by formatting the repr of the default.
@stephenfin stephenfin merged commit 7f29172 into click-contrib:master May 15, 2024
8 checks passed
@hoodmane hoodmane deleted the empty-string-default branch May 16, 2024 13:50
@hoodmane
Copy link
Contributor Author

Thanks for maintaining sphinx-click @stephenfin!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants