Colorama is always installed on Windows in order to provide style and color support. 1784
Adds a repr to Command, showing the command name for friendlier debugging. 1267, 1295
Add support for distinguishing the source of a command line parameter. 1264, 1329
Add an optional parameter to ProgressBar.update to set the current_item. 1226, 1332
version_option uses importlib.metadata (or the importlib_metadata backport) instead of pkg_resources. 1582
If validation fails for a prompt with hide_input=True, the value is not shown in the error message. 1460
An IntRange or FloatRange option shows the accepted range in its help text. 1525, 1303
IntRange and FloatRange bounds can be open (<) instead of closed (<=) by setting min_open and max_open. Error messages have changed to reflect this. 1100
An option defined with duplicate flag names ("--foo/--foo") raises a ValueError. 1465
echo() will not fail when using pytest's capsys fixture on Windows. 1590
Resolving commands returns the canonical command name instead of the matched name. This makes behavior such as help text and Context.invoked_subcommand consistent when using patterns like AliasedGroup. 1422
The BOOL type accepts the values "on" and "off". 1629
A Group with invoke_without_command=True will always invoke its result callback. 1178
nargs == -1 and nargs > 1 is parsed and validated for values from environment variables and defaults. 729
Detect the program name when executing a module or package with python -m name. 1603
Include required parent arguments in help synopsis of subcommands. 1475
Help for boolean flags with show_default=True shows the flag name instead of True or False. 1538
Non-string objects passed to style() and secho() will be converted to string. 1146
edit(require_save=True) will detect saves for editors that exit very fast on filesystems with 1 second resolution. 1050
New class attributes make it easier to use custom core objects throughout an entire application. 938
Command.context_class controls the context created when running the command.
Context.invoke creates new contexts of the same type, so a custom type will persist to invoked subcommands.
Context.formatter_class controls the formatter used to generate help and usage.
Group.command_class changes the default type for subcommands with @group.command().
Group.group_class changes the default type for subgroups with @group.group(). Setting it to type will create subgroups of the same type as the group itself.
Core objects use super() consistently for better support of subclassing.
Use Context.with_resource() to manage resources that would normally be used in a with statement, allowing them to be used across subcommands and callbacks, then cleaned up when the context ends. 1191
The result object returned by the test runner's invoke() method has a return_value attribute with the value returned by the invoked command. 1312
Required arguments with the Choice type show the choices in curly braces to indicate that one is required ({a|b|c}). 1272
If only a name is passed to option(), Click suggests renaming it to --name. 1355
A context's show_default parameter defaults to the value from the parent context. 1565
click.style() can output 256 and RGB color codes. Most modern terminals support these codes. 1429
When using CliRunner.invoke(), the replaced stdin file has name and mode attributes. This lets File options with the - value match non-testing behavior. 1064
When creating a Group, allow passing a list of commands instead of a dict. 1339
When a long option name isn't valid, use difflib to make better suggestions for possible corrections. 1446
Core objects have a to_info_dict() method. This gathers information about the object's structure that could be useful for a tool generating user-facing documentation. To get the structure of an entire CLI, use Context(cli).to_info_dict(). 461
Redesign the shell completion system. 1484, 1622
Support Bash >= 4.4, Zsh, and Fish, with the ability for extensions to add support for other shells.
Allow commands, groups, parameters, and types to override their completions suggestions.
Groups complete the names commands were registered with, which can differ from the name they were created with.
The autocompletion parameter for options and arguments is renamed to shell_complete. The function must take ctx, param, incomplete, must do matching rather than return all values, and must return a list of strings or a list of ShellComplete. The old name and behavior is deprecated and will be removed in 8.1.
The env var values used to start completion have changed order. The shell now comes first, such as {shell}_source rather than source_{shell}, and is always required.
Completion correctly parses command line strings with incomplete quoting or escape sequences. 1708
Extra context settings (obj=..., etc.) are passed on to the completion system. 942
... (truncated)
Commits
9da1669 Merge pull request #1877 from pallets/release-8.0.0
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
If all status checks pass Dependabot will automatically merge this pull request.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in the `.dependabot/config.yml` file in this repo:
- Update frequency
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps click from 7.1.2 to 8.0.0.
Release notes
Sourced from click's releases.
Changelog
Sourced from click's changelog.
... (truncated)
Commits
9da1669
Merge pull request #1877 from pallets/release-8.0.0dfa6369
release version 8.0.0b862cb1
update requirementsf51584c
Merge pull request #1876 from pallets/pre-commit-ci-schedule804c71c
update pre-commit monthlyac655f8
Merge pull request #1872 from janLuke/fix/formatter_write_textdcd991d
HelpFormatter.write_text uses full width5215fc1
Merge pull request #1870 from AdrienPensart/allow_colors_in_metavare3e1691
repr is erasing ANSI escapes codes482e6e6
Merge pull request #1875 from pallets/pre-commit-ci-update-configDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.If all status checks pass Dependabot will automatically merge this pull request.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in the `.dependabot/config.yml` file in this repo: - Update frequency - Automerge options (never/patch/minor, and dev/runtime dependencies) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)