Added cycle_list param and function in Checkbox prompt (issue #442) & Added 2 test cases #443
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is the problem that this PR addresses?
Issue #442
By default, the checkbox prompt in Questionary wraps the cursor from the last item back to the first (and vice versa). In long lists this can be disorienting—overshooting your target immediately jumps you to the other end. There wasn’t a built-in way to disable this “infinite carousel” behavior.
How did I solve it?
Introduced a new
cycle_list: bool
parameter on thecheckbox()
prompt (defaults to True to preserve existing behavior).Updated the internal cursor-movement handlers (
move_cursor_down
/move_cursor_up
) to checkcycle_list
. Whencycle_list=False
, attempts to move past the first or last item simply do nothing, rather than wrap.Added docstring entries for cycle_list.
Wrote automated tests covering both cycle_list=True (wraps) and cycle_list=False (does not wrap) in the tests/prompts/test_checkbox_cycle.py.
Checklist