-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathContext.py
More file actions
49 lines (37 loc) · 1.23 KB
/
Context.py
File metadata and controls
49 lines (37 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import sqlite3
import Op
class Context:
def __init__(self, conn: sqlite3.Connection, names: [str]):
self.conn = conn
self.cursor = conn.cursor()
self.names = [[e, 0] for e in names]
self.name = names[0][0]
self.count = 0
self.var_count = 0
self.current = []
self.previous = [Op.Bool(False) for _ in range(30)]
self.current_ts = 0
self.previous_ts = 0
def get_table_name(self):
self.count += 1
return self.name + str(self.count)
def cycle_name(self):
sql = """DROP TABLE "{name}";"""
for e in range(1, self.names[-1][1] + 1):
self.cursor.execute(sql.format(name=(self.names[-1][0] + str(e))))
self.conn.commit()
self.names.append([self.name, self.count])
self.names.pop(0)
self.name = self.names[0][0]
self.count = 0
self.var_count = 0
self.previous = self.current
self.current = 0
def get_current_index(self):
return len(self.current)
def get_var_name(self):
self.var_count += 1
return "customvar_" + str(self.var_count)
def set_ts(self, v):
self.previous_ts = self.current_ts
self.current_ts = v