Initial commit
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
.vscode/
|
||||||
|
output/*.txt
|
||||||
75
gen_formula.py
Normal file
75
gen_formula.py
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
from jinja2 import Environment, FileSystemLoader
|
||||||
|
import os
|
||||||
|
|
||||||
|
def column_code(num):
|
||||||
|
result = ''
|
||||||
|
alfa_count = 1 + ord('Z') - ord('A')
|
||||||
|
shift = ord('A') - 1
|
||||||
|
while num > 0:
|
||||||
|
if num <= alfa_count:
|
||||||
|
result = chr(shift + num) + result
|
||||||
|
num = 0
|
||||||
|
else:
|
||||||
|
cur_chr = ((num -1) % alfa_count) + 1
|
||||||
|
num = int((num -1) / alfa_count)
|
||||||
|
result = chr(shift + cur_chr) + result
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def column_num(code):
|
||||||
|
result = 0
|
||||||
|
alfa_count = 1 + ord('Z') - ord('A')
|
||||||
|
shift = ord('A') - 1
|
||||||
|
mult = 1
|
||||||
|
length = len(code)
|
||||||
|
while length > 0:
|
||||||
|
cur_chr = code[-1]
|
||||||
|
result = result + mult * (ord(cur_chr) - shift)
|
||||||
|
length -= 1
|
||||||
|
if 0 == length:
|
||||||
|
code = ''
|
||||||
|
else:
|
||||||
|
code = code[:-1]
|
||||||
|
mult *= alfa_count
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def generate_columns():
|
||||||
|
column_start = column_num('H')
|
||||||
|
column_end = column_num('ZZ')
|
||||||
|
column_current = column_start
|
||||||
|
while(column_current <= column_end):
|
||||||
|
yield column_code(column_current)
|
||||||
|
column_current += 1
|
||||||
|
|
||||||
|
|
||||||
|
def render_template(name, template):
|
||||||
|
vals = {
|
||||||
|
'сol_start': 'H',
|
||||||
|
'row_num': 4,
|
||||||
|
'fixed_row': 3,
|
||||||
|
'columns': [c for c in generate_columns()]
|
||||||
|
}
|
||||||
|
print(template.render(vals))
|
||||||
|
|
||||||
|
|
||||||
|
def init_templates():
|
||||||
|
names = ['wins_formula', 'wins_red_formula', 'wins_black_formula']
|
||||||
|
templates = {}
|
||||||
|
env = Environment(
|
||||||
|
loader=FileSystemLoader(os.path.join(os.path.dirname(os.path.dirname(__file__)),'templates'))
|
||||||
|
)
|
||||||
|
for name in names:
|
||||||
|
templates[name] = env.get_template(f'{name}.jinja2')
|
||||||
|
return templates
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
templates = init_templates()
|
||||||
|
for template in templates.items():
|
||||||
|
print(template[0], template[1])
|
||||||
|
render_template(template[0], template[1])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
0
output/placeholder
Normal file
0
output/placeholder
Normal file
3
templates/base.jinja2
Normal file
3
templates/base.jinja2
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
=SUM(
|
||||||
|
{% block conditions %}{% endblock %}
|
||||||
|
)
|
||||||
6
templates/wins_black_formula.jinja2
Normal file
6
templates/wins_black_formula.jinja2
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{% extends 'base.jinja2' %}
|
||||||
|
{% block conditions %}
|
||||||
|
{% for column in columns %}
|
||||||
|
IF(AND({{column}}{{row_num}}={{column}}${{fixed_row}};{{column}}${{fixed_row}}="Ч");1;0);
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
||||||
6
templates/wins_formula.jinja2
Normal file
6
templates/wins_formula.jinja2
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{% extends 'base.jinja2' %}
|
||||||
|
{% block conditions %}
|
||||||
|
{% for column in columns %}
|
||||||
|
IF({{column}}{{row_num}}={{column}}${{fixed_row}};1;0);
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
||||||
6
templates/wins_red_formula.jinja2
Normal file
6
templates/wins_red_formula.jinja2
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{% extends 'base.jinja2' %}
|
||||||
|
{% block conditions %}
|
||||||
|
{% for column in columns %}
|
||||||
|
IF(AND({{column}}{{row_num}}={{column}}${{fixed_row}};{{column}}${{fixed_row}}="К");1;0);
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user