Commit 7f9b7abde22ceca857af4b74362f1485cf3dd104
1 parent
a79bce99
Exists in
dev
update initdb.py and learnapp.py to sqlalchemy 2.0
Showing
2 changed files
with
13 additions
and
12 deletions
Show diff stats
aprendizations/initdb.py
| @@ -131,9 +131,9 @@ def main(): | @@ -131,9 +131,9 @@ def main(): | ||
| 131 | 131 | ||
| 132 | # --- database stuff | 132 | # --- database stuff |
| 133 | print(f'Database: {args.db}') | 133 | print(f'Database: {args.db}') |
| 134 | - engine = create_engine(f'sqlite:///{args.db}', echo=False, future=True) | 134 | + engine = create_engine(f'sqlite:///{args.db}') |
| 135 | Base.metadata.create_all(engine) # Creates schema if needed | 135 | Base.metadata.create_all(engine) # Creates schema if needed |
| 136 | - session = Session(engine, future=True) | 136 | + session = Session(engine) |
| 137 | 137 | ||
| 138 | # --- make list of students to insert/update | 138 | # --- make list of students to insert/update |
| 139 | students = [] | 139 | students = [] |
| @@ -183,7 +183,7 @@ def main(): | @@ -183,7 +183,7 @@ def main(): | ||
| 183 | count += 1 | 183 | count += 1 |
| 184 | print(f' {sid}, {student.name}') | 184 | print(f' {sid}, {student.name}') |
| 185 | passwd = (args.pw or sid).encode('utf-8') | 185 | passwd = (args.pw or sid).encode('utf-8') |
| 186 | - student.password = bcrypt.hashpw(passwd, bcrypt.gensalt()) | 186 | + student.password = str(bcrypt.hashpw(passwd, bcrypt.gensalt())) |
| 187 | 187 | ||
| 188 | session.commit() | 188 | session.commit() |
| 189 | print(f'Total {count} password(s) updated.') | 189 | print(f'Total {count} password(s) updated.') |
aprendizations/learnapp.py
| @@ -164,7 +164,7 @@ class LearnApp(): | @@ -164,7 +164,7 @@ class LearnApp(): | ||
| 164 | await asyncio.sleep(random()) | 164 | await asyncio.sleep(random()) |
| 165 | 165 | ||
| 166 | query = select(Student).where(Student.id == uid) | 166 | query = select(Student).where(Student.id == uid) |
| 167 | - with Session(self._engine, future=True) as session: | 167 | + with Session(self._engine) as session: |
| 168 | student = session.execute(query).scalar_one_or_none() | 168 | student = session.execute(query).scalar_one_or_none() |
| 169 | if student is None: | 169 | if student is None: |
| 170 | logger.info('User "%s" does not exist', uid) | 170 | logger.info('User "%s" does not exist', uid) |
| @@ -186,7 +186,7 @@ class LearnApp(): | @@ -186,7 +186,7 @@ class LearnApp(): | ||
| 186 | 186 | ||
| 187 | # get topics for this student and set its current state | 187 | # get topics for this student and set its current state |
| 188 | query = select(StudentTopic).where(StudentTopic.student_id == uid) | 188 | query = select(StudentTopic).where(StudentTopic.student_id == uid) |
| 189 | - with Session(self._engine, future=True) as session: | 189 | + with Session(self._engine) as session: |
| 190 | student_topics = session.execute(query).scalars().all() | 190 | student_topics = session.execute(query).scalars().all() |
| 191 | 191 | ||
| 192 | state = {t.topic_id: { | 192 | state = {t.topic_id: { |
| @@ -230,7 +230,7 @@ class LearnApp(): | @@ -230,7 +230,7 @@ class LearnApp(): | ||
| 230 | bcrypt.gensalt()) | 230 | bcrypt.gensalt()) |
| 231 | 231 | ||
| 232 | query = select(Student).where(Student.id == uid) | 232 | query = select(Student).where(Student.id == uid) |
| 233 | - with Session(self._engine, future=True) as session: | 233 | + with Session(self._engine) as session: |
| 234 | session.execute(query).scalar_one().password = hashed_pw | 234 | session.execute(query).scalar_one().password = hashed_pw |
| 235 | session.commit() | 235 | session.commit() |
| 236 | 236 | ||
| @@ -260,7 +260,7 @@ class LearnApp(): | @@ -260,7 +260,7 @@ class LearnApp(): | ||
| 260 | finishtime=str(question['finish_time']), | 260 | finishtime=str(question['finish_time']), |
| 261 | student_id=uid, | 261 | student_id=uid, |
| 262 | topic_id=topic_id) | 262 | topic_id=topic_id) |
| 263 | - with Session(self._engine, future=True) as session: | 263 | + with Session(self._engine) as session: |
| 264 | session.add(answer) | 264 | session.add(answer) |
| 265 | session.commit() | 265 | session.commit() |
| 266 | 266 | ||
| @@ -285,7 +285,7 @@ class LearnApp(): | @@ -285,7 +285,7 @@ class LearnApp(): | ||
| 285 | query = select(StudentTopic) \ | 285 | query = select(StudentTopic) \ |
| 286 | .where(StudentTopic.student_id == uid) \ | 286 | .where(StudentTopic.student_id == uid) \ |
| 287 | .where(StudentTopic.topic_id == tid) | 287 | .where(StudentTopic.topic_id == tid) |
| 288 | - with Session(self._engine, future=True) as session: | 288 | + with Session(self._engine) as session: |
| 289 | student_topic = session.execute(query).scalar_one_or_none() | 289 | student_topic = session.execute(query).scalar_one_or_none() |
| 290 | if student_topic is None: | 290 | if student_topic is None: |
| 291 | # insert new studenttopic into database | 291 | # insert new studenttopic into database |
| @@ -343,7 +343,7 @@ class LearnApp(): | @@ -343,7 +343,7 @@ class LearnApp(): | ||
| 343 | ''' | 343 | ''' |
| 344 | Fill table 'Topic' with topics from the graph, if new | 344 | Fill table 'Topic' with topics from the graph, if new |
| 345 | ''' | 345 | ''' |
| 346 | - with Session(self._engine, future=True) as session: | 346 | + with Session(self._engine) as session: |
| 347 | db_topics = session.execute(select(Topic.id)).scalars().all() | 347 | db_topics = session.execute(select(Topic.id)).scalars().all() |
| 348 | new = [Topic(id=t) for t in topics if t not in db_topics] | 348 | new = [Topic(id=t) for t in topics if t not in db_topics] |
| 349 | if new: | 349 | if new: |
| @@ -360,12 +360,13 @@ class LearnApp(): | @@ -360,12 +360,13 @@ class LearnApp(): | ||
| 360 | if not exists(database): | 360 | if not exists(database): |
| 361 | raise LearnException('Database does not exist') | 361 | raise LearnException('Database does not exist') |
| 362 | 362 | ||
| 363 | - self._engine = create_engine(f'sqlite:///{database}', future=True) | 363 | + # echo=True enables logging of the SQL emitted by sqlalchemy |
| 364 | + self._engine = create_engine(f'sqlite:///{database}', echo=False) | ||
| 364 | try: | 365 | try: |
| 365 | query_students = select(func.count(Student.id)) | 366 | query_students = select(func.count(Student.id)) |
| 366 | query_topics = select(func.count(Topic.id)) | 367 | query_topics = select(func.count(Topic.id)) |
| 367 | query_answers = select(func.count(Answer.id)) | 368 | query_answers = select(func.count(Answer.id)) |
| 368 | - with Session(self._engine, future=True) as session: | 369 | + with Session(self._engine) as session: |
| 369 | count_students = session.execute(query_students).scalar() | 370 | count_students = session.execute(query_students).scalar() |
| 370 | count_topics = session.execute(query_topics).scalar() | 371 | count_topics = session.execute(query_topics).scalar() |
| 371 | count_answers = session.execute(query_answers).scalar() | 372 | count_answers = session.execute(query_answers).scalar() |
| @@ -584,7 +585,7 @@ class LearnApp(): | @@ -584,7 +585,7 @@ class LearnApp(): | ||
| 584 | StudentTopic.topic_id, | 585 | StudentTopic.topic_id, |
| 585 | StudentTopic.level, | 586 | StudentTopic.level, |
| 586 | StudentTopic.date) | 587 | StudentTopic.date) |
| 587 | - with Session(self._engine, future=True) as session: | 588 | + with Session(self._engine) as session: |
| 588 | 589 | ||
| 589 | # all students in the database FIXME only with answers of this course | 590 | # all students in the database FIXME only with answers of this course |
| 590 | students = session.execute(query_students).all() | 591 | students = session.execute(query_students).all() |