Skip to content

Instantly share code, notes, and snippets.

@evtn
Created June 14, 2021 09:47
Show Gist options
  • Select an option

  • Save evtn/c381a9adc705841e98dd43ccdab42c74 to your computer and use it in GitHub Desktop.

Select an option

Save evtn/c381a9adc705841e98dd43ccdab42c74 to your computer and use it in GitHub Desktop.
Simple pretty print
def add_tab(s, tab_char=" "):
return (tab_char + s).replace("\n", "\n" + tab_char)
container_parens = {
dict: "{}",
list: "[]",
tuple: "()",
set: "{}"
}
def pretty_list(lst):
result = [
pretty(elem)
for elem in lst
]
parens = container_parens.get(type(lst), "[]")
if len(lst):
return "\n".join([
parens[0],
add_tab(",\n".join(result)) + ",",
parens[1]
])
return parens
def pretty_dict(dct):
result = [
"{}: {}".format(
key,
pretty(dct[key])
)
for key in dct
]
parens = container_parens.get(type(dct), "{}")
if len(dct):
return "\n".join([
parens[0],
add_tab(",\n".join(result)) + ",",
parens[1]
])
return parens
def pretty(obj):
if isinstance(obj, (set, list, tuple)):
return pretty_list(obj)
elif isinstance(obj, dict):
return pretty_dict(obj)
return str(obj)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment