Todo-list

Todo

Add support for JWCC / hujson format?

(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config/formats.py:docstring of click_extra.config.formats.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/option.py:docstring of click_extra.config.option.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.Context, line 16.)

Todo

Drop this override once the minimum supported Click rises to 8.4.0 (which 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/highlight.py:docstring of click_extra.highlight.HelpFormatter.write_usage, line 28.)

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: Section | None = 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

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.VersionOption.print_debug_message, line 3.)

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.schema.normalize_config_keys, line 23.)

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_params, line 51.)

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: Section | None = 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

Drop this override once the minimum supported Click rises to 8.4.0 (which 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/highlight.py:docstring of click_extra.highlight.HelpFormatter.write_usage, line 28.)

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/highlight.py:docstring of click_extra.highlight.highlight, line 6.)

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

Add the following build-time template fields, mirroring the constants shadow-rs injects:

  • {build_time}: when the distribution was built (shadow-rs exposes it as BUILD_TIME, with RFC 2822 and RFC 3339 variants BUILD_TIME_2822 / BUILD_TIME_3339).

  • {build_os} / {build_target} / {build_target_arch}: the OS, target triple and architecture the build ran on. These describe the build host, unlike {env_info} which reports the runtime Python, OS and architecture, so both are worth keeping for cross-built binaries.

(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/prebake.py:docstring of click_extra.prebake, line 14.)

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.VersionOption.print_debug_message, line 3.)

Todo

Add support for JWCC / hujson format?

(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config/formats.py:docstring of click_extra.config.formats.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/option.py:docstring of click_extra.config.option.ConfigOption.default_pattern, line 13.)

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/__init__.py:docstring of click_extra.config.schema.normalize_config_keys, line 23.)

Todo

Add support for JWCC / hujson format?

(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config/formats.py:docstring of click_extra.config.formats.ConfigFormat, line 15.)

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/option.py:docstring of click_extra.config.option, line 19.)

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/option.py:docstring of click_extra.config.option.ConfigOption.default_pattern, line 13.)

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/schema.py:docstring of click_extra.config.schema.normalize_config_keys, line 23.)

Todo

Drop this override once the minimum supported Click rises to 8.4.0 (which 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/highlight.py:docstring of click_extra.highlight.HelpFormatter.write_usage, line 28.)

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/highlight.py:docstring of click_extra.highlight.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_params, line 51.)

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: Section | None = 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 1003.)

Todo

Write example.

(The original entry is located in /home/runner/work/click-extra/click-extra/docs/config.md, line 1013.)

Todo

Write example.

(The original entry is located in /home/runner/work/click-extra/click-extra/docs/config.md, line 1023.)

Todo

Write example.

(The original entry is located in /home/runner/work/click-extra/click-extra/docs/config.md, line 1031.)

Todo

Write example.

(The original entry is located in /home/runner/work/click-extra/click-extra/docs/config.md, line 1041.)

Todo

Add support for JWCC / hujson format?

(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/config/formats.py:docstring of click_extra.config.formats.ConfigFormat, line 15.)

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/option.py:docstring of click_extra.config.option, line 19.)

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/option.py:docstring of click_extra.config.option.ConfigOption.default_pattern, line 13.)

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/schema.py:docstring of click_extra.config.schema.normalize_config_keys, line 23.)

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.Context, line 16.)

Todo

Write example and tutorial.

(The original entry is located in /home/runner/work/click-extra/click-extra/docs/parameters.md, line 184.)

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

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

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.VersionOption.print_debug_message, line 3.)

Todo

Add the following build-time template fields, mirroring the constants shadow-rs injects:

  • {build_time}: when the distribution was built (shadow-rs exposes it as BUILD_TIME, with RFC 2822 and RFC 3339 variants BUILD_TIME_2822 / BUILD_TIME_3339).

  • {build_os} / {build_target} / {build_target_arch}: the OS, target triple and architecture the build ran on. These describe the build host, unlike {env_info} which reports the runtime Python, OS and architecture, so both are worth keeping for cross-built binaries.

(The original entry is located in /home/runner/work/click-extra/click-extra/click_extra/prebake.py:docstring of click_extra.prebake, line 14.)