seitime-frappe/frappe/utils/commands.py
2020-05-15 12:11:05 +05:30

42 lines
1 KiB
Python

import functools
import requests
from terminaltables import AsciiTable
@functools.lru_cache(maxsize=1024)
def get_first_party_apps():
"""Get list of all apps under orgs: frappe. erpnext from GitHub"""
apps = []
for org in ["frappe", "erpnext"]:
req = requests.get(f"https://api.github.com/users/{org}/repos", {"type": "sources", "per_page": 200})
if req.ok:
apps.extend([x["name"] for x in req.json()])
return apps
def render_table(data):
print(AsciiTable(data).table)
def add_line_after(function):
"""Adds an extra line to STDOUT after the execution of a function this decorates"""
def empty_line(*args, **kwargs):
result = function(*args, **kwargs)
print()
return result
return empty_line
def log(message, colour=''):
"""Coloured log outputs to STDOUT"""
colours = {
"nc": '\033[0m',
"blue": '\033[94m',
"green": '\033[92m',
"yellow": '\033[93m',
"red": '\033[91m',
"silver": '\033[90m'
}
colour = colours.get(colour, "")
end_line = '\033[0m'
print(colour + message + end_line)