Todo-list¶
Todo
Should we switch to --color=<auto|never|always> as GNU tools does?
Also see how the isatty property defaults with this option, and how it can be implemented in Python.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.ColorOption, line 7.)
Todo
Support the TERM environment variable convention?
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.ColorOption, line 16.)
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config.ConfigFormat, line 15.)
Todo
Use platformdirs for more advanced configuration folder detection?
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config.ConfigOption.default_pattern, line 13.)
Todo
Propose addition of meta keyword upstream to Click.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/context.py:docstring of click_extra.context.ExtraContext, line 11.)
Todo
Pretty print JSON output (easier to read in bug reports)?
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/version.py:docstring of click_extra.version.ExtraVersionOption.print_debug_message, line 3.)
Todo
Drop this override once the minimum supported Click pins
to the release that includes pallets/click#3420. The
term_len-based visible-width check below becomes redundant
once Click’s own wrapper counts visible width.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.HelpExtraFormatter.write_usage, line 27.)
Todo
Allow passing extra parameters to the self.lazy_subcommands so we can
register commands with custom settings like Cloup’s section or
fallback_to_default_section:
section: Optional[Section] = None,
fallback_to_default_section: bool = True,
See: https://github.com/janluke/cloup/blob/master/cloup/_sections.py#L169
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/commands.py:docstring of click_extra.commands.LazyGroup.get_command, line 3.)
Todo
Evaluates the possibility of replacing all key-based access to the tree-like structure by a Box object, as it provides lots of utilities to merge its content.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/parameters.py:docstring of click_extra.parameters.ParamStructure, line 8.)
Todo
Submit a PR to Click to separate production of param spec and help record. That way we can always produce the param spec even if the parameter is hidden. See: https://github.com/kdeldycke/click-extra/issues/689
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/__init__.py:docstring of click_extra.parameters.get_param_spec, line 8.)
Todo
Propose upstream to Click to extract the inline name.replace("-", "_")
into a private _normalize_param_name helper, so downstream projects
like Click Extra can reuse it instead of duplicating the transform.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/__init__.py:docstring of click_extra.config.normalize_config_keys, line 23.)
Todo
Should we switch to --color=<auto|never|always> as GNU tools does?
Also see how the isatty property defaults with this option, and how it can be implemented in Python.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.ColorOption, line 7.)
Todo
Support the TERM environment variable convention?
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.ColorOption, line 16.)
Todo
Drop this override once the minimum supported Click pins
to the release that includes pallets/click#3420. The
term_len-based visible-width check below becomes redundant
once Click’s own wrapper counts visible width.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.HelpExtraFormatter.write_usage, line 27.)
Todo
Support case-foldeing, so we can have the Straße string matching the
Strasse content.
This could be tricky as it messes with string length and characters index, which our logic relies on.
Danger
Danger
Roundtrip through lower-casing/upper-casing is a can of worms, because some characters change length when their case is changed:
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.highlight, line 6.)
Todo
For bullet-proof handling of edge-cases, we should probably add an indirection layer to have the processing order of options (the one below) different from the presentation order of options in the help screen.
This is probably something that has been requested in issue #544.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/commands.py:docstring of click_extra.commands.default_extra_params, line 49.)
Todo
Allow passing extra parameters to the self.lazy_subcommands so we can
register commands with custom settings like Cloup’s section or
fallback_to_default_section:
section: Optional[Section] = None,
fallback_to_default_section: bool = True,
See: https://github.com/janluke/cloup/blob/master/cloup/_sections.py#L169
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/commands.py:docstring of click_extra.commands.LazyGroup.get_command, line 3.)
Todo
Add a --dump-config or --export-config option to write down the current
configuration (or a template) into a file or <stdout>.
Help message would be: you can use this option with other options or environment variables to have them set in the generated configuration.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config, line 19.)
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config.ConfigFormat, line 15.)
Todo
Propose upstream to Click to extract the inline name.replace("-", "_")
into a private _normalize_param_name helper, so downstream projects
like Click Extra can reuse it instead of duplicating the transform.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config.normalize_config_keys, line 23.)
Todo
Use platformdirs for more advanced configuration folder detection?
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config.ConfigOption.default_pattern, line 13.)
Todo
Evaluates the possibility of replacing all key-based access to the tree-like structure by a Box object, as it provides lots of utilities to merge its content.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/parameters.py:docstring of click_extra.parameters.ParamStructure, line 8.)
Todo
Submit a PR to Click to separate production of param spec and help record. That way we can always produce the param spec even if the parameter is hidden. See: https://github.com/kdeldycke/click-extra/issues/689
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/parameters.py:docstring of click_extra.parameters.get_param_spec, line 8.)
Todo
shadow-rs also provides constants not yet covered here:
BUILD_TIME, BUILD_TIME_2822, BUILD_TIME_3339,
BUILD_OS, BUILD_TARGET, BUILD_TARGET_ARCH. Some overlap
with data already in {env_info} (Python version, OS,
architecture). Others like BUILD_TIME could be added as new
template fields.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/version.py:docstring of click_extra.version, line 8.)
Todo
Pretty print JSON output (easier to read in bug reports)?
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/version.py:docstring of click_extra.version.ExtraVersionOption.print_debug_message, line 3.)
Todo
Should we switch to --color=<auto|never|always> as GNU tools does?
Also see how the isatty property defaults with this option, and how it can be implemented in Python.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.ColorOption, line 7.)
Todo
Support the TERM environment variable convention?
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.ColorOption, line 16.)
Todo
Drop this override once the minimum supported Click pins
to the release that includes pallets/click#3420. The
term_len-based visible-width check below becomes redundant
once Click’s own wrapper counts visible width.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.HelpExtraFormatter.write_usage, line 27.)
Todo
Support case-foldeing, so we can have the Straße string matching the
Strasse content.
This could be tricky as it messes with string length and characters index, which our logic relies on.
Danger
Danger
Roundtrip through lower-casing/upper-casing is a can of worms, because some characters change length when their case is changed:
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/colorize.py:docstring of click_extra.colorize.highlight, line 6.)
Todo
For bullet-proof handling of edge-cases, we should probably add an indirection layer to have the processing order of options (the one below) different from the presentation order of options in the help screen.
This is probably something that has been requested in issue #544.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/commands.py:docstring of click_extra.commands.default_extra_params, line 49.)
Todo
Allow passing extra parameters to the self.lazy_subcommands so we can
register commands with custom settings like Cloup’s section or
fallback_to_default_section:
section: Optional[Section] = None,
fallback_to_default_section: bool = True,
See: https://github.com/janluke/cloup/blob/master/cloup/_sections.py#L169
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/commands.py:docstring of click_extra.commands.LazyGroup.get_command, line 3.)
Todo
Write example.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/config.md, line 921.)
Todo
Write example.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/config.md, line 931.)
Todo
Write example.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/config.md, line 941.)
Todo
Write example.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/config.md, line 949.)
Todo
Write example.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/config.md, line 959.)
Todo
Add a --dump-config or --export-config option to write down the current
configuration (or a template) into a file or <stdout>.
Help message would be: you can use this option with other options or environment variables to have them set in the generated configuration.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config, line 19.)
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config.ConfigFormat, line 15.)
Todo
Propose upstream to Click to extract the inline name.replace("-", "_")
into a private _normalize_param_name helper, so downstream projects
like Click Extra can reuse it instead of duplicating the transform.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config.normalize_config_keys, line 23.)
Todo
Use platformdirs for more advanced configuration folder detection?
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config.py:docstring of click_extra.config.ConfigOption.default_pattern, line 13.)
Todo
Propose addition of meta keyword upstream to Click.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/context.py:docstring of click_extra.context.ExtraContext, line 11.)
Todo
Propose the raw_args feature upstream to Click.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/parameters.md, line 107.)
Todo
Write example and tutorial.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/parameters.md, line 153.)
Todo
Evaluates the possibility of replacing all key-based access to the tree-like structure by a Box object, as it provides lots of utilities to merge its content.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/parameters.py:docstring of click_extra.parameters.ParamStructure, line 8.)
Todo
Submit a PR to Click to separate production of param spec and help record. That way we can always produce the param spec even if the parameter is hidden. See: https://github.com/kdeldycke/click-extra/issues/689
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/parameters.py:docstring of click_extra.parameters.get_param_spec, line 8.)
Todo
Write example and tutorial.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/pytest.md, line 13.)
Todo
Write example and tutorial.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/pytest.md, line 19.)
Todo
Write example and tutorial.
(The original entry is located in /home/runner/work/click-extra/click-extra/docs/testing.md, line 3.)
Todo
Test standalone scripts setting package name to filename and version to None.
(The original entry is located in /home/runner/work/click-extra/click-extra/tests/test_version.py:docstring of tests.test_version, line 3.)
Todo
Test standalone script fetching version from __version__ variable.
(The original entry is located in /home/runner/work/click-extra/click-extra/tests/test_version.py:docstring of tests.test_version, line 7.)
Todo
Maybe have the possibility to tweak CLI callback evaluation order so we can
let the user to have the NO_COLOR env set to allow for color-less --version
output.
(The original entry is located in /home/runner/work/click-extra/click-extra/tests/test_version.py:docstring of tests.test_version.test_color_option_precedence, line 7.)
Todo
Get rid of this method, and make the test case provide its own sphinx_app.
(The original entry is located in /home/runner/work/click-extra/click-extra/tests/sphinx/conftest.py:docstring of tests.sphinx.conftest.DirectiveTestCase.supports_format, line 3.)
Todo
shadow-rs also provides constants not yet covered here:
BUILD_TIME, BUILD_TIME_2822, BUILD_TIME_3339,
BUILD_OS, BUILD_TARGET, BUILD_TARGET_ARCH. Some overlap
with data already in {env_info} (Python version, OS,
architecture). Others like BUILD_TIME could be added as new
template fields.
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/version.py:docstring of click_extra.version, line 8.)
Todo
Pretty print JSON output (easier to read in bug reports)?
(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/version.py:docstring of click_extra.version.ExtraVersionOption.print_debug_message, line 3.)