aboutsummaryrefslogtreecommitdiff
path: root/generalresearch/managers/thl/profiling
diff options
context:
space:
mode:
Diffstat (limited to 'generalresearch/managers/thl/profiling')
-rw-r--r--generalresearch/managers/thl/profiling/question.py2
-rw-r--r--generalresearch/managers/thl/profiling/uqa.py9
-rw-r--r--generalresearch/managers/thl/profiling/user_upk.py24
3 files changed, 20 insertions, 15 deletions
diff --git a/generalresearch/managers/thl/profiling/question.py b/generalresearch/managers/thl/profiling/question.py
index 10a9e32..078894a 100644
--- a/generalresearch/managers/thl/profiling/question.py
+++ b/generalresearch/managers/thl/profiling/question.py
@@ -85,7 +85,7 @@ class QuestionManager(PostgresManager):
def lookup_by_property(
self, property_code: str, country_iso: str, language_iso: str
) -> UpkQuestion:
- query = f"""
+ query = """
SELECT data, property_code, explanation_template, explanation_fragment_template
FROM marketplace_question
WHERE property_code = %(property_code)s
diff --git a/generalresearch/managers/thl/profiling/uqa.py b/generalresearch/managers/thl/profiling/uqa.py
index cbe39e7..d240eea 100644
--- a/generalresearch/managers/thl/profiling/uqa.py
+++ b/generalresearch/managers/thl/profiling/uqa.py
@@ -2,14 +2,17 @@ from __future__ import annotations
import logging
from collections.abc import Collection
-from datetime import datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
+from typing import TYPE_CHECKING
from generalresearch.managers.base import PostgresManagerWithRedis
from generalresearch.models.thl.profiling.user_question_answer import (
DUMMY_UQA,
UserQuestionAnswer,
)
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.models.thl.user import User
logger = logging.getLogger()
@@ -128,7 +131,7 @@ class UQAManager(PostgresManagerWithRedis):
def get_from_db(self, user: User) -> list[UserQuestionAnswer]:
logger.info(f"get_uqa_from_db: {user.user_id}")
# Only store the latest row per question_id. We don't need it multiple times.
- since = datetime.now(tz=timezone.utc) - timedelta(days=30)
+ since = datetime.now(tz=UTC) - timedelta(days=30)
# We CAN use the RR, b/c either
# 1) the cache expired and the user hasn't sent an answer recently
diff --git a/generalresearch/managers/thl/profiling/user_upk.py b/generalresearch/managers/thl/profiling/user_upk.py
index 1820103..53475b5 100644
--- a/generalresearch/managers/thl/profiling/user_upk.py
+++ b/generalresearch/managers/thl/profiling/user_upk.py
@@ -3,28 +3,30 @@ from __future__ import annotations
import json
from collections import defaultdict
from collections.abc import Collection
-from datetime import datetime, timedelta, timezone
-from typing import Any
+from datetime import UTC, datetime, timedelta
+from typing import TYPE_CHECKING, Any
from uuid import UUID
from psycopg import Cursor
from pydantic import PositiveInt
from generalresearch.managers.base import (
- Permission,
PostgresManagerWithRedis,
)
from generalresearch.managers.thl.profiling.schema import UpkSchemaManager
from generalresearch.models.thl.profiling.upk_property import (
Cardinality,
PropertyType,
- UpkProperty,
)
from generalresearch.models.thl.profiling.upk_question_answer import (
UpkQuestionAnswer,
)
-from generalresearch.pg_helper import PostgresConfig
-from generalresearch.redis_helper import RedisConfig
+
+if TYPE_CHECKING:
+ from generalresearch.managers.base import Permission
+ from generalresearch.models.thl.profiling.upk_property import UpkProperty
+ from generalresearch.pg_helper import PostgresConfig
+ from generalresearch.redis_helper import RedisConfig
class UserUpkManager(PostgresManagerWithRedis):
@@ -56,7 +58,7 @@ class UserUpkManager(PostgresManagerWithRedis):
return res
def get_user_upk_mysql(self, user_id: int) -> list[UpkQuestionAnswer]:
- since = datetime.now(tz=timezone.utc) - timedelta(days=89)
+ since = datetime.now(tz=UTC) - timedelta(days=89)
query = """
SELECT
@@ -158,7 +160,7 @@ class UserUpkManager(PostgresManagerWithRedis):
country_isos = {x["country_iso"] for x in upk_ans_dict}
assert len(country_isos) == 1
- country_iso = list(country_isos)[0]
+ country_iso = next(iter(country_isos))
for x in upk_ans_dict:
x["pred"] = x["pred"].replace("gr:", "")
x["obj"] = x["obj"].replace("gr:", "")
@@ -304,15 +306,15 @@ class UserUpkManager(PostgresManagerWithRedis):
def set_user_upk(self, upk_ans: list[UpkQuestionAnswer]) -> None:
user_id = {x.user_id for x in upk_ans}
assert len(user_id) == 1, "only run for 1 user at a time"
- user_id = list(user_id)[0]
+ user_id = next(iter(user_id))
curr_upk = self.get_user_upk(user_id=user_id)
curr_upk_simple = self.get_user_upk_simple(user_id=user_id)
new_upk_simple = defaultdict(set)
delete_items = set()
- upk_multi = list()
- delete_upk_multi = list()
+ upk_multi = []
+ delete_upk_multi = []
for x in upk_ans:
# For zero or more (multiple values) We want all values to equal these.
# Might involve deleting values if they exist and are not in upk_ans