Skip to content
This repository was archived by the owner on Aug 16, 2022. It is now read-only.

Commit 167d4e7

Browse files
committed
Format code, refactor & bugfix settings
1 parent 49836fb commit 167d4e7

File tree

3 files changed

+49
-34
lines changed

3 files changed

+49
-34
lines changed

tilde/core/api.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,16 @@ def formula(self, atom_sequence):
177177
labels = {}
178178
types = []
179179
y = 0
180-
for k, atomi in enumerate(atom_sequence):
181-
lbl = re.sub("[0-9]+", "", atomi).capitalize()
180+
for k, atom_i in enumerate(atom_sequence):
181+
lbl = re.sub("[0-9]+", "", atom_i).capitalize()
182182
if lbl not in labels:
183183
labels[lbl] = y
184184
types.append([k+1])
185185
y += 1
186186
else:
187187
types[ labels[lbl] ].append(k+1)
188188
atoms = list(labels.keys())
189-
atoms = [x for x in self.formula_sequence if x in atoms] + [x for x in atoms if x not in self.formula_sequence] # accordingly
189+
atoms = [x for x in self.formula_sequence if x in atoms] + [x for x in atoms if x not in self.formula_sequence]
190190
formula = ''
191191
for atom in atoms:
192192
n = len(types[labels[atom]])
@@ -645,8 +645,8 @@ def save(self, calc, session):
645645
codefamily = model.Codefamily.as_unique(session, content = calc.info['framework'])
646646
codeversion = model.Codeversion.as_unique(session, content = calc.info['prog'])
647647

648-
codeversion.instances.append( ormcalc.meta_data )
649-
codefamily.versions.append( codeversion )
648+
codeversion.instances.append(ormcalc.meta_data)
649+
codefamily.versions.append(codeversion)
650650

651651
pot = model.Pottype.as_unique(session, name = calc.info['H'])
652652
pot.instances.append(ormcalc)
@@ -692,7 +692,7 @@ def save(self, calc, session):
692692
if topic or not entity['optional']:
693693
uitopics.append( model.topic(cid=entity['cid'], topic=topic) )
694694

695-
uitopics = [model.Topic.as_unique(session, cid=x.cid, topic="%s" % x.topic) for x in uitopics]
695+
uitopics = [model.Topic.as_unique(session, cid=x.cid, topic=str(x.topic)) for x in uitopics]
696696

697697
ormcalc.uitopics.extend(uitopics)
698698

tilde/core/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def str2html(s, units=True):
4242
def html_formula(string):
4343
sub, html_formula = False, ''
4444
for i in string:
45-
if i.isdigit() or i=='.' or i=='-':
45+
if i.isdigit() or i == '.' or i == '-':
4646
if not sub:
4747
html_formula += '<sub>'
4848
sub = True

tilde/core/settings.py

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import os, sys
66
import json
7+
import logging
78

89
from sqlalchemy import create_engine
910
from sqlalchemy.orm import sessionmaker, scoped_session
@@ -13,7 +14,7 @@
1314
import tilde.core.model as model
1415

1516

16-
DB_SCHEMA_VERSION = '5.11'
17+
DB_SCHEMA_VERSION = '5.12'
1718
SETTINGS_FILE = 'settings.json'
1819
DEFAULT_SQLITE_DB = 'default.db'
1920
BASE_DIR = os.path.dirname(os.path.realpath(os.path.abspath(__file__)))
@@ -96,12 +97,19 @@ def connect_database(settings, named=None, no_pooling=False, default_actions=Tru
9697
# 3.
9798
chk = session.query(model.Hierarchy_value).first()
9899
if not chk:
99-
if not os.path.exists(INIT_DATA): sys.exit(INIT_DATA + ' not found!')
100-
with open(INIT_DATA) as f:
101-
while True:
102-
sql = f.readline().strip()
103-
if not sql: break
104-
engine.execute(sql)
100+
if not os.path.exists(INIT_DATA):
101+
sys.exit(INIT_DATA + ' not found!')
102+
103+
nlines = 0
104+
f = open(INIT_DATA)
105+
statements = filter(None, f.read().splitlines())
106+
f.close()
107+
for stmt in statements:
108+
engine.execute(stmt)
109+
nlines += 1
110+
111+
logging.warning("Applied DB model from file %s" % INIT_DATA)
112+
logging.warning("SQL statements executed: %s" % nlines)
105113

106114
session.commit()
107115
session.close()
@@ -120,7 +128,7 @@ def write_settings(settings):
120128
if not os.access(DATA_DIR, os.W_OK): return False
121129
try:
122130
f = open(SETTINGS_PATH, 'w')
123-
f.writelines(json.dumps(settings, indent=0))
131+
f.writelines(json.dumps(settings, indent=4))
124132
f.close()
125133
os.chmod(os.path.abspath(SETTINGS_PATH), 0o777) # to avoid (or create?) IO problems with multiple users
126134
except IOError:
@@ -136,7 +144,9 @@ def get_hierarchy(settings):
136144
'''
137145
hierarchy, hierarchy_groups, hierarchy_values = [], [], {}
138146
hgroup_ids, enumerated_vals = {}, set()
147+
139148
session = connect_database(settings)
149+
140150
for item in session.query(model.Hierarchy_value).all():
141151
try:
142152
hierarchy_values[item.cid].update({item.num: item.name})
@@ -145,27 +155,32 @@ def get_hierarchy(settings):
145155
enumerated_vals.add(item.cid)
146156
try:
147157
for item in session.query(model.Hierarchy).all():
148-
if item.has_facet and not item.has_topic: raise RuntimeError('Fatal error: "has_facet" implies "has_topic"')
149-
if item.slider and not '.' in item.slider: raise RuntimeError('Fatal error: "has_slider" must have a reference to some table field')
158+
if item.has_facet and not item.has_topic:
159+
raise RuntimeError('Fatal error: "has_facet" implies "has_topic"')
160+
if item.slider and not '.' in item.slider:
161+
raise RuntimeError('Fatal error: "has_slider" must have a reference to some table field')
162+
150163
hierarchy.append({
151-
'cid':item.cid,
152-
'category':item.name,
153-
'source':item.source,
154-
'html':item.html,
155-
'has_slider':item.slider,
156-
'sort':item.sort,
157-
'multiple':item.multiple,
158-
'optional':item.optional,
159-
'has_summary_contrb':item.has_summary_contrb,
160-
'has_column':item.has_column,
161-
'has_facet':item.has_facet,
162-
'creates_topic':item.has_topic,
163-
'is_chem_formula':item.chem_formula,
164-
'plottable':item.plottable,
165-
'enumerated':True if item.cid in enumerated_vals else False
164+
'cid': item.cid,
165+
'category': item.name,
166+
'source': item.source,
167+
'html': item.html,
168+
'has_slider': item.slider,
169+
'sort': item.sort,
170+
'multiple': item.multiple,
171+
'optional': item.optional,
172+
'has_summary_contrb': item.has_summary_contrb,
173+
'has_column': item.has_column,
174+
'has_facet': item.has_facet,
175+
'creates_topic': item.has_topic,
176+
'is_chem_formula': item.chem_formula,
177+
'plottable': item.plottable,
178+
'enumerated': True if item.cid in enumerated_vals else False
166179
})
167-
try: hgroup_ids[item.hgroup_id].append(item.cid)
168-
except KeyError: hgroup_ids[item.hgroup_id] = [item.cid]
180+
try:
181+
hgroup_ids[item.hgroup_id].append(item.cid)
182+
except KeyError:
183+
hgroup_ids[item.hgroup_id] = [item.cid]
169184
except RuntimeError as e:
170185
session.close()
171186
sys.exit(e)

0 commit comments

Comments
 (0)