Always exit unsuccessfully with `sys.exit` (#1481) `exit` is undefined when the `site` module isn't loaded (i.e. when Python is executed with the `-S` option), and `exit` isn't explicitly defined as a function or imported from elsewhere in `main.py`, so reaching any code path that attempts to execute `exit(1)` in this environment results in a `NameError` being raised: ``` Traceback (most recent call last): File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/lib/python3.10/runpy.py", line 86, in _run_code exec(code, run_globals) File "[...]/__main__.py", line 415, in <module> File "[...]/__main__.py", line 399, in run File "[...]/__main__.py", line 389, in main File "/usr/lib/python3.10/runpy.py", line 220, in run_module mod_name, mod_spec, code = _get_module_details(mod_name) File "/usr/lib/python3.10/runpy.py", line 157, in _get_module_details code = loader.get_code(mod_name) File "[...]/__main__.py", line 264, in get_code File "[...]/__main__.py", line 204, in load_module File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "third_party/python3/__pgcli_main__.py", line 3, in <module> File "[...]/click/core.py", line 1157, in __call__ File "[...]/click/core.py", line 1078, in main File "[...]/click/core.py", line 1434, in invoke File "[...]/click/core.py", line 783, in invoke File "[...]/pgcli/main.py", line 1617, in cli File "[...]/pgcli/main.py", line 766, in connect NameError: name 'exit' is not defined. Did you mean: 'atexit'? ``` When exiting unsuccessfully, do so with `sys.exit(1)` - this is already used in several other places in `main.py`, and is always used (with exit code 0) when exiting successfully.
1 месяц назад История
Описание

Postgres CLI with autocompletion and syntax highlighting

Конвейеры
0 успешных
0 с ошибкой