Skip to content

Exit with status 130 when the CLI is interrupted - #124

Merged
stefankoegl merged 4 commits into
claude/pensive-wright-ioey78from
claude/cli-sigint-exit-status
Nov 11, 2026
Merged

stefankoegl merged 4 commits into
claude/pensive-wright-ioey78from
claude/cli-sigint-exit-status

Conversation

@stefankoegl

Copy link
Copy Markdown
Owner

Stacked on #114. Once that merges, retarget this to master. This is the first PR in the CLI/packaging stack: this PR, then FileType, then pyproject, then the entry point.

On Ctrl-C, jsonpointer exited with 1, the same status as "pointer could not be resolved", so scripts couldn't tell the two apart. It now exits with 130 (128 + SIGINT), the usual status for an interrupted command. The exit statuses in doc/commandline.rst are updated to match.

This is a behaviour change for anyone who checks for status 1 after an interrupt.

There's a new test for it. I confirmed it fails with the old exit code and passes with the new one. python -m unittest, flake8 and the docs build pass.


Generated by Claude Code

claude and others added 4 commits November 10, 2026 23:05
Ctrl-C made jsonpointer exit with 1, the same status as "pointer could
not be resolved", so callers could not tell the two apart. Use 130
(128 + SIGINT), the conventional status for an interrupted command,
and document it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PewzpjhRBV84QNbKy9H564
runpy.run_path() returns a copy of the script's globals, so replacing
resolve_files in it had no effect on main(). Raise KeyboardInterrupt
from json.load() instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PewzpjhRBV84QNbKy9H564
argparse.FileType is deprecated since Python 3.14. Open the pointer
file and the JSON inputs with a small helper instead, which keeps the
existing behaviour:

- "-" still means standard input, which is never closed
- files are read as UTF-8
- a file that cannot be opened is a usage error (exit status 2) with
  the same "can't open" message

The pointer file is now opened after argument parsing rather than
during it, so the help output is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PewzpjhRBV84QNbKy9H564
Stop using the deprecated argparse.FileType in the CLI
@stefankoegl
stefankoegl merged commit e085b8f into claude/pensive-wright-ioey78 Nov 11, 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