Fix mypy errors in changes to recalculate_user_disk_usage()

This commit is contained in:
Nicola Soranzo
2025-12-18 12:27:31 -05:00
committed by Nate Coraor
parent 5798871dc2
commit b6d37af910
+8 -7
View File
@@ -1104,31 +1104,32 @@ WHERE user_id = :user_id and quota_source_label = :label
self.disk_usage = (self.disk_usage or 0) + amount
else:
# else would work on newer sqlite - 3.24.0
engine = required_object_session(self).bind
if "sqlite" in engine.dialect.name:
sa_session = required_object_session(self)
assert sa_session.bind is not None
if "sqlite" in sa_session.bind.dialect.name:
# hacky alternative for older sqlite
statement = """
sql = """
WITH new (user_id, quota_source_label) AS ( VALUES(:user_id, :label) )
INSERT OR REPLACE INTO user_quota_source_usage (id, user_id, quota_source_label, disk_usage)
SELECT old.id, new.user_id, new.quota_source_label, COALESCE(old.disk_usage + :amount, :amount)
FROM new LEFT JOIN user_quota_source_usage AS old ON new.user_id = old.user_id AND NEW.quota_source_label = old.quota_source_label;
"""
else:
statement = """
sql = """
INSERT INTO user_quota_source_usage(user_id, disk_usage, quota_source_label)
VALUES(:user_id, :amount, :label)
ON CONFLICT
ON constraint uqsu_unique_label_per_user
DO UPDATE SET disk_usage = user_quota_source_usage.disk_usage + :amount
"""
statement = text(statement)
statement = text(sql)
params = {
"user_id": self.id,
"amount": int(amount),
"label": quota_source_label,
}
with engine.connect() as conn, conn.begin():
conn.execute(statement, params)
with sa_session.begin():
sa_session.execute(statement, params)
def _get_social_auth(self, provider_backend):
if not self.social_auth: