Skip to content

Update dependency cyclopts to ==4.10.*#103

Open
madnoberson wants to merge 1 commit intomainfrom
renovate/cyclopts-4.x
Open

Update dependency cyclopts to ==4.10.*#103
madnoberson wants to merge 1 commit intomainfrom
renovate/cyclopts-4.x

Conversation

@madnoberson
Copy link
Copy Markdown
Contributor

@madnoberson madnoberson commented Feb 24, 2026

This PR contains the following updates:

Package Type Update Change
cyclopts project.dependencies minor ==4.5.* -> ==4.10.*

Release Notes

BrianPugh/cyclopts (cyclopts)

v4.10.1

Compare Source

Bug Fixes

Full Changelog: BrianPugh/cyclopts@v4.10.0...v4.10.1

v4.10.0

Compare Source

Features

  • New App.error_formatter field to control out CycloptsError are displayed. The formatter receives a CycloptsError and returns any rich-printable object, replacing the default CycloptsPanel. Can be set at app creation or passed as a runtime override to parse_args / __call__ / run_async. by @​BrianPugh in https://github.com/BrianPugh/cyclopts/pull/771

    By default (without error_formatter), errors are displayed in a Rich panel:

    $ my-app foo
    ╭─ Error ─────────────────────────────────────────────────╮
    │ Invalid value "foo" for "VALUE": unable to convert      │
    │ "foo" into int.                                         │
    ╰─────────────────────────────────────────────────────────╯
    

    With a custom formatter, you can simplify or restyle the output:

    from cyclopts import App, CycloptsError
    
    def my_error_formatter(e: CycloptsError):
        return f"[bold red]error:[/bold red] {e}"
    
    app = App(error_formatter=my_error_formatter)
    
    @​app.default
    def main(value: int):
        pass
    
    app()
    $ my-app foo
    error: Invalid value "foo" for "VALUE": unable to convert "foo" into int.

Full Changelog: BrianPugh/cyclopts@v4.9.0...v4.10.0

v4.9.0

Compare Source

Features

  • Parameter.consume_multiple now accepts int or tuple[int, int] for min/max element bounds.

    • An int sets a minimum (e.g. consume_multiple=2 requires at least 2 values).
    • A tuple sets both bounds (e.g. consume_multiple=(1, 3) requires 1–3 values).
    • Violations raise ConsumeMultipleError.

Require 1–3 space-separated values: --files a.txt b.txt c.txt

files: Annotated[list[str], Parameter(consume_multiple=(1, 3))]

By @​BrianPugh in https://github.com/BrianPugh/cyclopts/pull/764

* New field `Parameter.allow_repeating` controls whether an option can be specified multiple times.
-   `False` raises `RepeatArgumentError` on repeat (useful with `consume_multiple`).
-   `True` allows repeats for any type; scalars use last-wins semantics.
-   `None` (default) preserves existing behavior: lists accumulate, scalars error.

```python
### Allow --files a b c, but not --files a --files b
files: Annotated[list[str], Parameter(consume_multiple=True, allow_repeating=False)]
### Last value wins: --color red --color blue → "blue"
color: Annotated[str, Parameter(allow_repeating=True)]

By @​BrianPugh in https://github.com/BrianPugh/cyclopts/pull/768

  • New field App.help_prologue displays text before the "Usage" line in help output.
    Inherited by subcommands; override per-command or set to "" to disable.
    app = App(help_prologue="myapp v1.0.0 — https://example.com")
    By @​tahv in https://github.com/BrianPugh/cyclopts/pull/769

Bug Fixes

Other

New Contributors

Full Changelog: BrianPugh/cyclopts@v4.8.0...v4.9.0

v4.8.0

Compare Source

Features

Lazy Loading --help improvements.

Previously, running --help on a parent command would import and resolve all lazy child commands, negating much of the startup-time benefits. Now, parent --help displays lazy commands without triggering any imports.

To show descriptions for lazy commands in --help output, provide help= at registration time:

app.command("myapp.commands:deploy", help="Deploy the application.")

Other metadata (group=, show=, sort_key=) can also be provided at registration time and will be used for help display without resolving the command.

Lazy commands are now only resolved when:

  • The specific command is executed
  • The specific command's own --help is requested (e.g., myapp deploy --help)
  • The command is accessed directly via app["command_name"]

Thanks to @​zzstoatzz for the initial contribution in #​757.

Full Changelog: BrianPugh/cyclopts@v4.7.0...v4.8.0

v4.7.0

Compare Source

Features

Bug Fixes

Full Changelog: BrianPugh/cyclopts@v4.6.0...v4.7.0

v4.6.0

Compare Source

Features

Full Changelog: BrianPugh/cyclopts@v4.5.4...v4.6.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@madnoberson madnoberson force-pushed the renovate/cyclopts-4.x branch from 677df12 to 0100a25 Compare February 24, 2026 02:01
@codecov
Copy link
Copy Markdown

codecov bot commented Feb 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@madnoberson madnoberson force-pushed the renovate/cyclopts-4.x branch from 0100a25 to 75b655c Compare March 6, 2026 02:00
@madnoberson madnoberson changed the title Update dependency cyclopts to ==4.6.* Update dependency cyclopts to ==4.7.* Mar 6, 2026
@madnoberson madnoberson force-pushed the renovate/cyclopts-4.x branch from 75b655c to 416457c Compare March 8, 2026 02:01
@madnoberson madnoberson changed the title Update dependency cyclopts to ==4.7.* Update dependency cyclopts to ==4.8.* Mar 8, 2026
@madnoberson madnoberson force-pushed the renovate/cyclopts-4.x branch from 416457c to 333928a Compare March 14, 2026 01:56
@madnoberson madnoberson changed the title Update dependency cyclopts to ==4.8.* Update dependency cyclopts to ==4.9.* Mar 14, 2026
@madnoberson madnoberson force-pushed the renovate/cyclopts-4.x branch from 333928a to 0bd6921 Compare March 15, 2026 02:13
@madnoberson madnoberson changed the title Update dependency cyclopts to ==4.9.* Update dependency cyclopts to ==4.10.* Mar 15, 2026
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.

2 participants