|
@@ -1,36 +1,19 @@
|
|
|
-import random
|
|
|
from operator import attrgetter, itemgetter
|
|
|
from pathlib import Path
|
|
|
+from random import randint, sample
|
|
|
|
|
|
-import aiohttp.web
|
|
|
import jinja2
|
|
|
-import sqlalchemy
|
|
|
-import sqlalchemy.orm
|
|
|
-import orjson
|
|
|
-
|
|
|
-from . import models
|
|
|
-
|
|
|
-# In current versions of Python (tested 3.9 and 3.12), from ... import ...
|
|
|
-# creates variables that are atleast 4x slower to reference:
|
|
|
-# > python3 -m timeit 'from random import sample' 'sample'
|
|
|
-# 500000 loops, best of 5: 823 nsec per loop
|
|
|
-# > python3 -m timeit 'import random' 'random.sample'
|
|
|
-# 2000000 loops, best of 5: 161 nsec per loop
|
|
|
-# > python3 -m timeit 'import random; sample = random.sample' 'sample'
|
|
|
-# 2000000 loops, best of 5: 161 nsec per loop
|
|
|
-dumps = orjson.dumps
|
|
|
-randint = random.randint
|
|
|
-sample = random.sample
|
|
|
-Response = aiohttp.web.Response
|
|
|
-select = sqlalchemy.select
|
|
|
-flag_modified = sqlalchemy.orm.attributes.flag_modified
|
|
|
-Fortune = models.Fortune
|
|
|
-World = models.World
|
|
|
+from aiohttp.web import Response
|
|
|
+from orjson import dumps
|
|
|
+from sqlalchemy import bindparam, select
|
|
|
+from sqlalchemy.orm.attributes import flag_modified
|
|
|
+
|
|
|
+from .models import Fortune, World
|
|
|
|
|
|
ADDITIONAL_FORTUNE_ORM = Fortune(id=0, message='Additional fortune added at request time.')
|
|
|
ADDITIONAL_FORTUNE_ROW = {'id': 0, 'message': 'Additional fortune added at request time.'}
|
|
|
READ_ROW_SQL = 'SELECT "randomnumber", "id" FROM "world" WHERE id = $1'
|
|
|
-READ_SELECT_ORM = select(World.randomnumber).where(World.id == sqlalchemy.bindparam("id"))
|
|
|
+READ_SELECT_ORM = select(World.randomnumber).where(World.id == bindparam("id"))
|
|
|
READ_FORTUNES_ORM = select(Fortune.id, Fortune.message)
|
|
|
WRITE_ROW_SQL = 'UPDATE "world" SET "randomnumber"=$2 WHERE id=$1'
|
|
|
|