mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-06-19 00:17:51 +02:00
refactor try/except blocks to safe_print function
This commit is contained in:
26
jc/cli.py
26
jc/cli.py
@ -84,16 +84,7 @@ if PYGMENTS_INSTALLED:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def asciify(string):
|
|
||||||
"""
|
|
||||||
Return a string downgraded from Unicode to ASCII with some simple
|
|
||||||
conversions.
|
|
||||||
"""
|
|
||||||
string = string.replace('©', '(c)')
|
|
||||||
# the ascii() function adds single quotes around the string
|
|
||||||
string = ascii(string)[1:-1]
|
|
||||||
string = string.replace(r'\n', '\n')
|
|
||||||
return string
|
|
||||||
|
|
||||||
|
|
||||||
def set_env_colors(env_colors=None):
|
def set_env_colors(env_colors=None):
|
||||||
@ -449,17 +440,11 @@ def main():
|
|||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
if help_me:
|
if help_me:
|
||||||
try:
|
utils.safe_print(help_doc(sys.argv))
|
||||||
print(help_doc(sys.argv))
|
|
||||||
except UnicodeEncodeError:
|
|
||||||
print(asciify(help_doc(sys.argv)))
|
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
if version_info:
|
if version_info:
|
||||||
try:
|
utils.safe_print(versiontext())
|
||||||
print(versiontext())
|
|
||||||
except UnicodeEncodeError:
|
|
||||||
print(asciify(versiontext()))
|
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
# if magic syntax used, try to run the command and error if it's not found, etc.
|
# if magic syntax used, try to run the command and error if it's not found, etc.
|
||||||
@ -474,10 +459,7 @@ def main():
|
|||||||
try:
|
try:
|
||||||
magic_stdout, magic_stderr, magic_exit_code = run_user_command(run_command)
|
magic_stdout, magic_stderr, magic_exit_code = run_user_command(run_command)
|
||||||
if magic_stderr:
|
if magic_stderr:
|
||||||
try:
|
utils.safe_print(magic_stderr[:-1], file=sys.stderr)
|
||||||
print(magic_stderr[:-1], file=sys.stderr)
|
|
||||||
except UnicodeEncodeError:
|
|
||||||
print(asciify(magic_stderr[:-1], file=sys.stderr))
|
|
||||||
|
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
if debug:
|
if debug:
|
||||||
|
27
jc/utils.py
27
jc/utils.py
@ -9,6 +9,25 @@ from functools import lru_cache
|
|||||||
from typing import List, Iterable, Union, Optional
|
from typing import List, Iterable, Union, Optional
|
||||||
|
|
||||||
|
|
||||||
|
def asciify(string: str) -> str:
|
||||||
|
"""
|
||||||
|
Return a string downgraded from Unicode to ASCII with some simple
|
||||||
|
conversions.
|
||||||
|
"""
|
||||||
|
string = string.replace('©', '(c)')
|
||||||
|
# the ascii() function adds single quotes around the string
|
||||||
|
string = ascii(string)[1:-1]
|
||||||
|
string = string.replace(r'\n', '\n')
|
||||||
|
return string
|
||||||
|
|
||||||
|
|
||||||
|
def safe_print(string: str, sep=' ', end='\n', file=sys.stdout, flush=False) -> None:
|
||||||
|
try:
|
||||||
|
print(string, sep=sep, end=end, file=file, flush=flush)
|
||||||
|
except UnicodeEncodeError:
|
||||||
|
print(asciify(string), sep=sep, end=end, file=file, flush=flush)
|
||||||
|
|
||||||
|
|
||||||
def warning_message(message_lines: List[str]) -> None:
|
def warning_message(message_lines: List[str]) -> None:
|
||||||
"""
|
"""
|
||||||
Prints warning message for non-fatal issues. The first line is
|
Prints warning message for non-fatal issues. The first line is
|
||||||
@ -36,13 +55,13 @@ def warning_message(message_lines: List[str]) -> None:
|
|||||||
first_line = message_lines.pop(0)
|
first_line = message_lines.pop(0)
|
||||||
first_str = f'jc: Warning - {first_line}'
|
first_str = f'jc: Warning - {first_line}'
|
||||||
first_str = first_wrapper.fill(first_str)
|
first_str = first_wrapper.fill(first_str)
|
||||||
print(first_str, file=sys.stderr)
|
safe_print(first_str, file=sys.stderr)
|
||||||
|
|
||||||
for line in message_lines:
|
for line in message_lines:
|
||||||
if line == '':
|
if line == '':
|
||||||
continue
|
continue
|
||||||
message = next_wrapper.fill(line)
|
message = next_wrapper.fill(line)
|
||||||
print(message, file=sys.stderr)
|
safe_print(message, file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
def error_message(message_lines: List[str]) -> None:
|
def error_message(message_lines: List[str]) -> None:
|
||||||
@ -68,13 +87,13 @@ def error_message(message_lines: List[str]) -> None:
|
|||||||
first_line = message_lines.pop(0)
|
first_line = message_lines.pop(0)
|
||||||
first_str = f'jc: Error - {first_line}'
|
first_str = f'jc: Error - {first_line}'
|
||||||
first_str = first_wrapper.fill(first_str)
|
first_str = first_wrapper.fill(first_str)
|
||||||
print(first_str, file=sys.stderr)
|
safe_print(first_str, file=sys.stderr)
|
||||||
|
|
||||||
for line in message_lines:
|
for line in message_lines:
|
||||||
if line == '':
|
if line == '':
|
||||||
continue
|
continue
|
||||||
message = next_wrapper.fill(line)
|
message = next_wrapper.fill(line)
|
||||||
print(message, file=sys.stderr)
|
safe_print(message, file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
def compatibility(mod_name: str, compatible: List, quiet: bool = False) -> None:
|
def compatibility(mod_name: str, compatible: List, quiet: bool = False) -> None:
|
||||||
|
Reference in New Issue
Block a user