vfx-9 / python_core /common /HeaderFooter.py
TaqiRaza512's picture
Initial commit
a103028
import importlib.util
from .Common import *
from .Git import *
from .Log import *
from datetime import date
def printHeader(file_path):
global StartTime
StartTime = datetime.datetime.now()
parent_dir = GetParentDir(file_path)
message = ""
version_lib = importlib.util.find_spec("version")
if IsInsideGitRepository():
current_dir = GetCurrentDir()
ChangeDir(parent_dir, True)
today = date.today()
datetag = today.strftime("%m%d")
# Note: we need escape character because these double quotes will go inside another string in version.py
message = message + "{"
message = message + "\\\"path\\\":\\\"" + file_path + "\\\""
message = message + ","
message = message + "\\\"build_tag\\\":\\\"" + datetag + "-" + git_revision_hash() + "\\\""
message = message + ","
message = message + "\\\"branch\\\":\\\"" + git_revision_branch() + "\\\""
message = message + ","
message = message + "\\\"version\\\":\\\"" + git_version() + "\\\""
if git_diff_word_count() > 0:
message = message + ","
message = message + "\\\"local_changes\\\":\\\"true\\\""
message = message + "}"
ChangeDir(current_dir, True)
log.info("Begin " + message)
elif version_lib is not None:
import version
version_text = version.Get()
start_tag = "INFO Begin"
if version_text.startswith(start_tag):
version_text = version_text[len(start_tag):]
else:
log.error("invalid version_text" + version_text)
log.info("Begin " + version_text)
def printFooter(file_path, ret_code = 0, extra_flags = {}):
EndTime = datetime.datetime.now()
__secs = round( (EndTime - StartTime).total_seconds(), 2 )
__mins = round( __secs / 60, 2 )
footer = "Ended {\"path\":\"" + file_path + "\",\"code\":\"" + str(ret_code) + "\""
if ret_code == 0:
footer = footer + ",\"status\":\"success\""
else:
footer = footer + ",\"status\":\"failure\""
footer = footer + ",\"runtime_mins\":" + str(__mins)
for key, value in extra_flags.items():
if isinstance(value,str):
footer = footer + ",\"" + key + "\":" + "\"" + str(value) + "\""
else:
footer = footer + ",\"" + key + "\":" + str(value)
log.info(footer + "}")
return __secs