Skip to content

Commit 30819c0

Browse files
Update views.py
1 parent dd411b5 commit 30819c0

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

frameworks/Python/aiohttp/app/views.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
from functools import partial
1+
import random
22
from operator import attrgetter, itemgetter
33
from pathlib import Path
4-
from random import randint, sample
54

5+
import aiohttp.web
66
import jinja2
7+
import sqlalchemy
8+
import sqlalchemy.orm
79
import ujson
8-
from aiohttp.web import Response, json_response
9-
from sqlalchemy import select
10-
from sqlalchemy.orm.attributes import flag_modified
1110

12-
from .models import sa_fortunes, sa_worlds, Fortune, World
11+
from . import models
1312

1413
ADDITIONAL_FORTUNE_ORM = Fortune(id=0, message='Additional fortune added at request time.')
1514
ADDITIONAL_FORTUNE_ROW = {'id': 0, 'message': 'Additional fortune added at request time.'}
@@ -23,6 +22,23 @@
2322
sort_fortunes_orm = attrgetter('message')
2423
sort_fortunes_raw = itemgetter('message')
2524

25+
# In current versions of Python (tested 3.9 and 3.12), from ... import ...
26+
# creates variables that are atleast 4x slower to reference:
27+
# > python3 -m timeit 'from random import sample' 'sample'
28+
# 500000 loops, best of 5: 823 nsec per loop
29+
# > python3 -m timeit 'import random' 'random.sample'
30+
# 2000000 loops, best of 5: 161 nsec per loop
31+
# > python3 -m timeit 'import random; sample = random.sample' 'sample'
32+
# 2000000 loops, best of 5: 161 nsec per loop
33+
randint = random.randint
34+
sample = random.sample
35+
Response = aiohttp.web.Response
36+
json_response = aiohttp.web.json_response
37+
select = sqlalchemy.select
38+
flag_modified = sqlalchemy.orm.attributes.flag_modified
39+
Fortune = models.Fortune
40+
World = models.World
41+
2642

2743
def get_num_queries(request):
2844
try:

0 commit comments

Comments
 (0)