import re
path = 'templates/backtest.html'
with open(path, 'r', encoding='utf-8') as f:
html = f.read()
prefixes = ['bt', 'tl', 'bo', 'mom', 'usmom']
for prefix in prefixes:
# 1. find the eod_enabled div
regex_enabled = re.compile(
r'(\s*
\s*
\s*]*>\s*\s*
\s*
)',
re.DOTALL
)
# 2. find the eod_hm div
regex_hm = re.compile(
r'(\s*
\s*\s*]*>\s*
)',
re.DOTALL
)
# fallback for bt_eod_hm which uses col-4 col-md-1
regex_hm2 = re.compile(
r'(\s*
\s*\s*]*>\s*
)',
re.DOTALL
)
enabled_match = regex_enabled.search(html)
hm_match = regex_hm.search(html) or regex_hm2.search(html)
if not enabled_match or not hm_match:
print(f"Failed to match {prefix}")
continue
enabled_str = enabled_match.group(1)
hm_str = hm_match.group(1)
# Remove from html
html = html.replace(enabled_str, '')
html = html.replace(hm_str, '')
# We want to insert the new EOD block after the closing of the row.
# To do this robustly, we will insert it right before the next "', new_block + '\n ')
elif prefix == 'tl':
html = html.replace('', new_block + '\n ')
elif prefix == 'bo':
html = html.replace('', new_block + '\n ')
elif prefix == 'mom':
html = html.replace('