jesshewyz's picture
Upload folder using huggingface_hub
825942f verified
import os
import sys
import textwrap
from box.reltools import pathjoin
def get_width():
try:
return os.get_terminal_size().columns
except:
return 80
def bat(path):
path = path if os.path.isabs(path) else pathjoin(sys._getframe(1), path)
with open(path, 'r') as f:
contents = f.readlines()
lines = contents
max_line_number = len(lines)
line_number_width = len(str(max_line_number))
gutter_padding = 2 # Padding on each side of the line number
# Calculate the total width of the output
terminal_width = get_width()
gutter_width = line_number_width + 2 * gutter_padding + 1 # +1 for the vertical bar
content_width = terminal_width - gutter_width - 1 # -1 for the space after the vertical bar
# ANSI escape codes for dimming and resetting
dim = "\033[2m"
reset = "\033[0m"
bold = "\033[1m"
# Print the header
print(f"{dim}{'─' * (gutter_width - 1)}┬{'─' * (content_width + 1)}{reset}")
print(f"{dim}{'':{gutter_width - 1}}β”‚{reset} File: {bold}{path}{reset}")
print(f"{dim}{'─' * (gutter_width - 1)}β”Ό{'─' * (content_width + 1)}{reset}")
# Print the file contents with line numbers and wrapping
for i, line in enumerate(lines, start=1):
line = line.rstrip('\n')
wrapped_lines = textwrap.wrap(line, width=content_width)
for j, wrapped_line in enumerate(wrapped_lines):
if j == 0:
print(f"{dim}{i:>{line_number_width + gutter_padding}}{' ' * gutter_padding}β”‚{reset} {wrapped_line}")
else:
print(f"{dim}{'':{line_number_width + gutter_padding}}{' ' * gutter_padding}β”‚{reset} {wrapped_line}")
# Print the footer
print(f"{dim}{'─' * (gutter_width - 1)}β”΄{'─' * (content_width + 1)}{reset}")
if __name__ == "__main__":
bat(sys.argv[1])
# run.vim: vert term python % tmp/lorem_ipsum.txt