diff options
| author | Bobby <[email protected]> | 2024-03-27 22:36:48 -0400 |
|---|---|---|
| committer | Bobby <[email protected]> | 2024-03-27 22:36:48 -0400 |
| commit | 6db0708d10192a24760035e12bb7eee8c2b4e2d7 (patch) | |
| tree | 5f546437218095256df57f32aadf77c40c7de543 /dev_status/utils.py | |
| parent | 5c0b62ad493b629142f722b2f84c91071153350a (diff) | |
| download | thatcomputerscientist-6db0708d10192a24760035e12bb7eee8c2b4e2d7.tar.xz thatcomputerscientist-6db0708d10192a24760035e12bb7eee8c2b4e2d7.zip | |
Update: View Text Files in Repos
Diffstat (limited to 'dev_status/utils.py')
| -rw-r--r-- | dev_status/utils.py | 87 |
1 files changed, 81 insertions, 6 deletions
diff --git a/dev_status/utils.py b/dev_status/utils.py index 02876dc5..ffe7e029 100644 --- a/dev_status/utils.py +++ b/dev_status/utils.py @@ -1,4 +1,34 @@ from datetime import datetime +from pygments import highlight +from pygments.lexers import get_lexer_for_filename +from pygments.lexers.special import TextLexer +from pygments.formatters import HtmlFormatter + + +def text_lines(text): + # return the number of lines in a text + return len(text.split("\n")) - 1 + + +def text_loc(text): + text = text.strip() + + # return the number of lines of code in a text + return len([line for line in text.split("\n") if line.strip()]) + + +def size_format(size_bytes): + if size_bytes == 0: + return "0B" + + size_name = ("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB") + + i = int(size_bytes // 1024) + for size in size_name: + if i == 0: + return "{:.1f} {}".format(size_bytes, size) + size_bytes /= 1024 + i = int(size_bytes // 1024) def relative_date(entry): @@ -8,18 +38,63 @@ def relative_date(entry): now = datetime.now() diff = now - committedDate if diff.days > 365: - entry["commit"]["committedDate"] = str(diff.days // 365) + " year" + ("s" if diff.days // 365 > 1 else "") + " ago" + entry["commit"]["committedDate"] = ( + str(diff.days // 365) + + " year" + + ("s" if diff.days // 365 > 1 else "") + + " ago" + ) elif diff.days > 30: - entry["commit"]["committedDate"] = str(diff.days // 30) + " month" + ("s" if diff.days // 30 > 1 else "") + " ago" + entry["commit"]["committedDate"] = ( + str(diff.days // 30) + + " month" + + ("s" if diff.days // 30 > 1 else "") + + " ago" + ) elif diff.days > 7: - entry["commit"]["committedDate"] = str(diff.days // 7) + " week" + ("s" if diff.days // 7 > 1 else "") + " ago" + entry["commit"]["committedDate"] = ( + str(diff.days // 7) + " week" + ("s" if diff.days // 7 > 1 else "") + " ago" + ) elif diff.days > 0: - entry["commit"]["committedDate"] = str(diff.days) + " day" + ("s" if diff.days > 1 else "") + " ago" + entry["commit"]["committedDate"] = ( + str(diff.days) + " day" + ("s" if diff.days > 1 else "") + " ago" + ) elif diff.seconds > 3600: - entry["commit"]["committedDate"] = str(diff.seconds // 3600) + " hour" + ("s" if diff.seconds // 3600 > 1 else "") + " ago" + entry["commit"]["committedDate"] = ( + str(diff.seconds // 3600) + + " hour" + + ("s" if diff.seconds // 3600 > 1 else "") + + " ago" + ) elif diff.seconds > 60: - entry["commit"]["committedDate"] = str(diff.seconds // 60) + " minute" + ("s" if diff.seconds // 60 > 1 else "") + " ago" + entry["commit"]["committedDate"] = ( + str(diff.seconds // 60) + + " minute" + + ("s" if diff.seconds // 60 > 1 else "") + + " ago" + ) else: entry["commit"]["committedDate"] = "just now" return entry + + +def highlight_code(text, filename): + print(filename) + print(text) + try: + lexer = get_lexer_for_filename(filename, stripall=True) + except: + lexer = None + + formatter = HtmlFormatter( + noclasses=True, + style="native", + wrapcode=True, + linenos="inline", + nobackground=True, + ) + if lexer: + return highlight(text, lexer, formatter) + else: + return highlight(text, TextLexer(), formatter) |
