Skip to content

Commit 825b8a9

Browse files
committed
Removing cache now that we're more performant
1 parent ad9e6bf commit 825b8a9

File tree

4 files changed

+30
-39
lines changed

4 files changed

+30
-39
lines changed

packet/packet.py

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ def set_essays(freshman_username, eboard=None, events=None, achieve=None):
5858
return True
5959

6060

61-
@lru_cache(maxsize=2048)
6261
def get_signatures(freshman_username):
6362
"""
6463
Gets a list of all signatures for the given member
@@ -75,17 +74,17 @@ def get_signatures(freshman_username):
7574

7675
upper_signatures = db.session.query(UpperSignature.member, UpperSignature.signed, Freshman.rit_username) \
7776
.select_from(UpperSignature).join(Packet).join(Freshman) \
78-
.filter(UpperSignature.packet_id == packet.id, UpperSignature.eboard.is_(False))\
79-
.order_by(UpperSignature.signed.desc())\
77+
.filter(UpperSignature.packet_id == packet.id, UpperSignature.eboard.is_(False)) \
78+
.order_by(UpperSignature.signed.desc()) \
8079
.distinct().all()
81-
fresh_signatures = \
82-
db.session.query(FreshSignature.freshman_username, FreshSignature.signed, Freshman.rit_username, Freshman.name) \
80+
fresh_signatures = db.session.query(
81+
FreshSignature.freshman_username, FreshSignature.signed, Freshman.rit_username, Freshman.name) \
8382
.select_from(Packet).join(FreshSignature).join(Freshman) \
8483
.filter(FreshSignature.packet_id == packet.id) \
8584
.order_by(FreshSignature.signed.desc()) \
8685
.distinct().all()
8786

88-
misc_signatures = db.session.query(MiscSignature.member, Freshman.rit_username)\
87+
misc_signatures = db.session.query(MiscSignature.member, Freshman.rit_username) \
8988
.select_from(MiscSignature).join(Packet).join(Freshman) \
9089
.filter(MiscSignature.packet_id == packet.id) \
9190
.distinct().all()
@@ -111,7 +110,7 @@ def get_misc_signatures():
111110
return packet_misc_sigs
112111

113112

114-
@lru_cache(maxsize=2048)
113+
@lru_cache(maxsize=512)
115114
def valid_signature(signer_username, freshman_username):
116115
if signer_username == freshman_username:
117116
return False
@@ -127,17 +126,15 @@ def valid_signature(signer_username, freshman_username):
127126
return True
128127

129128

130-
@lru_cache(maxsize=512)
131129
def get_freshman(freshman_username):
132130
return Freshman.query.filter_by(rit_username=freshman_username).first()
133131

134132

135-
@lru_cache(maxsize=512)
136133
def get_current_packet(freshman_username):
137134
return get_freshman(freshman_username).current_packet()
138135

139136

140-
@lru_cache(maxsize=2048)
137+
@lru_cache(maxsize=512)
141138
def get_number_signed(freshman_username, separated=False):
142139
"""
143140
Gets the raw number of signatures for the user
@@ -151,7 +148,7 @@ def get_number_signed(freshman_username, separated=False):
151148
.first().signatures_received(not separated)
152149

153150

154-
@lru_cache(maxsize=2048)
151+
@lru_cache(maxsize=512)
155152
def get_number_required(separated=False):
156153
"""
157154
Get the number of required signatures for Packet (not counting on/off-floor status)
@@ -162,7 +159,6 @@ def get_number_required(separated=False):
162159
.filter(Packet.start < datetime.now(), Packet.end > datetime.now()).first().signatures_required(not separated)
163160

164161

165-
@lru_cache(maxsize=2048)
166162
def get_upperclassmen_percent(username, onfloor=False):
167163
required = get_number_required(True)
168164
upperclassmen_required = required['upperclassmen'] + required['eboard'] + required['miscellaneous']
@@ -186,14 +182,26 @@ def signed_packets(member):
186182
return MiscSignature.query.filter_by(member=member).all()
187183

188184

185+
@lru_cache(maxsize=512)
186+
def signed_packet(signer, freshman):
187+
packet = get_current_packet(freshman)
188+
freshman_signature = FreshSignature.query.filter_by(packet=packet, freshman_username=signer, signed=True).first()
189+
upper_signature = UpperSignature.query.filter_by(packet=packet, member=signer, signed=True).first()
190+
misc_signature = MiscSignature.query.filter_by(packet=packet, member=signer).first()
191+
192+
if freshman_signature is not None:
193+
return freshman_signature.signed
194+
if upper_signature is not None:
195+
return upper_signature.signed
196+
if misc_signature is not None:
197+
return misc_signature
198+
return False
199+
200+
189201
def clear_cache():
190202
"""
191203
Clear cache of all frequently changing data
192204
"""
193205
get_number_signed.cache_clear()
194-
get_signatures.cache_clear()
195206
get_number_required.cache_clear()
196-
get_upperclassmen_percent.cache_clear()
197-
get_freshman.cache_clear()
198-
get_current_packet.cache_clear()
199207
signed_packets.cache_clear()

packet/routes/freshmen.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
from flask import redirect, render_template, request
22

3-
from packet import auth, app, db
4-
from packet.models import Packet
5-
from packet.utils import before_request
3+
from packet import auth, app
64
from packet.packet import set_essays, get_current_packet
5+
from packet.utils import before_request
76

87

98
@app.route("/")

packet/routes/shared.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
from packet import auth, app
44
from packet.member import current_packets
55
from packet.models import Freshman
6-
from packet.packet import get_number_required, get_number_signed
6+
from packet.packet import get_number_required, get_number_signed, signed_packet
77
from packet.packet import get_signatures, get_upperclassmen_percent
8-
from packet.utils import before_request, signed_packet
8+
from packet.utils import before_request
99

1010

1111
@app.route('/logout')
@@ -23,7 +23,7 @@ def freshman_packet(uid, info=None):
2323
signatures = get_signatures(uid)
2424
signed_dict = get_number_signed(uid, True)
2525
required = get_number_required()
26-
signed = sum(signed_dict.values())
26+
signed = get_number_signed(uid)
2727

2828
packet_signed = signed_packet(info['uid'], uid)
2929
return render_template("packet.html", info=info, signatures=signatures, uid=uid, required=required, signed=signed,

packet/utils.py

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
ldap_is_onfloor,
1212
ldap_get_roomnumber,
1313
ldap_get_groups)
14-
from packet.models import FreshSignature, UpperSignature, MiscSignature
15-
from packet.packet import get_current_packet, get_freshman
14+
from packet.packet import get_freshman
1615

1716
INTRO_REALM = "https://sso.csh.rit.edu/auth/realms/intro"
1817

@@ -67,21 +66,6 @@ def is_on_floor(uid):
6766
return get_freshman(uid).onfloor
6867

6968

70-
@lru_cache(maxsize=2048)
71-
def signed_packet(signer, freshman):
72-
packet = get_current_packet(freshman)
73-
freshman_signature = FreshSignature.query.filter_by(packet=packet, freshman_username=signer, signed=True).first()
74-
upper_signature = UpperSignature.query.filter_by(packet=packet, member=signer, signed=True).first()
75-
misc_signature = MiscSignature.query.filter_by(packet=packet, member=signer).first()
76-
77-
if freshman_signature is not None:
78-
return freshman_signature.signed
79-
if upper_signature is not None:
80-
return upper_signature.signed
81-
if misc_signature is not None:
82-
return misc_signature
83-
return False
84-
8569

8670
@app.context_processor
8771
def utility_processor():

0 commit comments

Comments
 (0)