aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Nanis2026-08-24 12:35:35 -0700
committerMax Nanis2026-08-24 12:35:35 -0700
commite2c5de703be45746bacaea4136f24440ff5a291c (patch)
tree9c3d9d448e56357feda24a4b0749370a9a33cb55
parentd48f04ab7f034b9b2039c42cd616d7d7851817b9 (diff)
downloadgeneralresearch-e2c5de703be45746bacaea4136f24440ff5a291c.tar.gz
generalresearch-e2c5de703be45746bacaea4136f24440ff5a291c.zip
Ruff std replacements
-rw-r--r--generalresearch/__init__.py2
-rw-r--r--generalresearch/config.py2
-rw-r--r--generalresearch/grliq/managers/event_plotter.py4
-rw-r--r--generalresearch/grliq/managers/forensic_data.py4
-rw-r--r--generalresearch/grliq/managers/forensic_events.py76
-rw-r--r--generalresearch/grliq/managers/forensic_results.py7
-rw-r--r--generalresearch/grliq/models/custom_types.py3
-rw-r--r--generalresearch/grliq/models/forensic_data.py1
-rw-r--r--generalresearch/grliq/models/forensic_summary.py3
-rw-r--r--generalresearch/grliq/utils.py2
-rw-r--r--generalresearch/grpc.py2
-rw-r--r--generalresearch/incite/base.py10
-rw-r--r--generalresearch/incite/collections/__init__.py18
-rw-r--r--generalresearch/incite/defaults.py2
-rw-r--r--generalresearch/incite/mergers/foundations/__init__.py2
-rw-r--r--generalresearch/incite/mergers/foundations/enriched_session.py10
-rw-r--r--generalresearch/incite/mergers/foundations/enriched_task_adjust.py5
-rw-r--r--generalresearch/incite/mergers/foundations/enriched_wall.py8
-rw-r--r--generalresearch/incite/mergers/ym_survey_wall.py10
-rw-r--r--generalresearch/incite/mergers/ym_wall_summary.py3
-rw-r--r--generalresearch/incite/schemas/thl_web.py2
-rw-r--r--generalresearch/locales/setup_json.py1
-rw-r--r--generalresearch/locales/timezone.py1
-rw-r--r--generalresearch/managers/cint/survey.py2
-rw-r--r--generalresearch/managers/criteria.py4
-rw-r--r--generalresearch/managers/dynata/survey.py2
-rw-r--r--generalresearch/managers/events.py4
-rw-r--r--generalresearch/managers/gr/authentication.py5
-rw-r--r--generalresearch/managers/gr/team.py2
-rw-r--r--generalresearch/managers/innovate/survey.py2
-rw-r--r--generalresearch/managers/leaderboard/__init__.py3
-rw-r--r--generalresearch/managers/leaderboard/manager.py2
-rw-r--r--generalresearch/managers/morning/survey.py2
-rw-r--r--generalresearch/managers/network/label.py9
-rw-r--r--generalresearch/managers/network/tool_run.py22
-rw-r--r--generalresearch/managers/precision/survey.py10
-rw-r--r--generalresearch/managers/prodege/survey.py2
-rw-r--r--generalresearch/managers/repdata/survey.py4
-rw-r--r--generalresearch/managers/sago/survey.py2
-rw-r--r--generalresearch/managers/spectrum/survey.py2
-rw-r--r--generalresearch/managers/survey.py2
-rw-r--r--generalresearch/managers/thl/buyer.py2
-rw-r--r--generalresearch/managers/thl/cashout_method.py2
-rw-r--r--generalresearch/managers/thl/contest_manager.py3
-rw-r--r--generalresearch/managers/thl/ledger_manager/conditions.py4
-rw-r--r--generalresearch/managers/thl/ledger_manager/exceptions.py5
-rw-r--r--generalresearch/managers/thl/ledger_manager/ledger.py15
-rw-r--r--generalresearch/managers/thl/ledger_manager/thl_ledger.py22
-rw-r--r--generalresearch/managers/thl/product.py10
-rw-r--r--generalresearch/managers/thl/profiling/question.py2
-rw-r--r--generalresearch/managers/thl/profiling/uqa.py2
-rw-r--r--generalresearch/managers/thl/profiling/user_upk.py2
-rw-r--r--generalresearch/managers/thl/session.py11
-rw-r--r--generalresearch/managers/thl/survey.py25
-rw-r--r--generalresearch/managers/thl/task_adjustment.py7
-rw-r--r--generalresearch/managers/thl/user_compensate.py2
-rw-r--r--generalresearch/managers/thl/user_manager/mysql_user_manager.py2
-rw-r--r--generalresearch/managers/thl/user_manager/user_manager.py1
-rw-r--r--generalresearch/managers/thl/userhealth.py2
-rw-r--r--generalresearch/managers/thl/wall.py2
-rw-r--r--generalresearch/managers/thl/wallet/tango.py2
-rw-r--r--generalresearch/models/admin/request.py2
-rw-r--r--generalresearch/models/custom_types.py3
-rw-r--r--generalresearch/models/dynata/survey.py4
-rw-r--r--generalresearch/models/gr/authentication.py5
-rw-r--r--generalresearch/models/gr/business.py6
-rw-r--r--generalresearch/models/gr/team.py7
-rw-r--r--generalresearch/models/legacy/questions.py3
-rw-r--r--generalresearch/models/network/mtr/execute.py2
-rw-r--r--generalresearch/models/network/nmap/parser.py2
-rw-r--r--generalresearch/models/network/rdns/execute.py2
-rw-r--r--generalresearch/models/spectrum/survey.py2
-rw-r--r--generalresearch/models/string_utils.py1
-rw-r--r--generalresearch/models/thl/contest/contest.py4
-rw-r--r--generalresearch/models/thl/contest/contest_entry.py2
-rw-r--r--generalresearch/models/thl/contest/examples.py7
-rw-r--r--generalresearch/models/thl/contest/io.py2
-rw-r--r--generalresearch/models/thl/contest/leaderboard.py2
-rw-r--r--generalresearch/models/thl/contest/milestone.py3
-rw-r--r--generalresearch/models/thl/contest/raffle.py2
-rw-r--r--generalresearch/models/thl/finance.py5
-rw-r--r--generalresearch/models/thl/ipinfo.py2
-rw-r--r--generalresearch/models/thl/ledger_example.py2
-rw-r--r--generalresearch/models/thl/offerwall/cache.py2
-rw-r--r--generalresearch/models/thl/payout_format.py12
-rw-r--r--generalresearch/models/thl/product.py2
-rw-r--r--generalresearch/models/thl/profiling/marketplace.py2
-rw-r--r--generalresearch/models/thl/profiling/upk_question.py2
-rw-r--r--generalresearch/models/thl/profiling/upk_question_answer.py2
-rw-r--r--generalresearch/models/thl/profiling/user_question_answer.py2
-rw-r--r--generalresearch/models/thl/session.py2
-rw-r--r--generalresearch/models/thl/survey/__init__.py3
-rw-r--r--generalresearch/models/thl/survey/buyer.py2
-rw-r--r--generalresearch/models/thl/survey/model.py2
-rw-r--r--generalresearch/models/thl/survey/penalty.py2
-rw-r--r--generalresearch/models/thl/task_adjustment.py2
-rw-r--r--generalresearch/models/thl/user.py2
-rw-r--r--generalresearch/models/thl/user_iphistory.py3
-rw-r--r--generalresearch/models/thl/wallet/payout.py2
-rw-r--r--generalresearch/pg_helper.py12
-rw-r--r--generalresearch/schemas/survey_stats.py2
-rw-r--r--generalresearch/sql_helper.py19
-rw-r--r--generalresearch/thl_django/apps.py14
-rw-r--r--generalresearch/thl_django/fields.py3
-rw-r--r--generalresearch/thl_django/migrations/0001_initial.py3
-rw-r--r--generalresearch/thl_django/migrations/0002_surveystat_is_live_alter_surveycategory_strength_and_more.py2
-rw-r--r--generalresearch/thl_django/migrations/0003_remove_surveystat_surveystat_live_survey_idx_and_more.py2
-rw-r--r--generalresearch/thl_django/migrations/0006_remove_thlsession_thl_session_status_d578b7_idx_and_more.py2
-rw-r--r--generalresearch/thl_django/migrations/0009_toolrun_mtrhop_portscanport_iplabel_mtr_portscan_and_more.py5
-rw-r--r--generalresearch/thl_django/network/models.py5
-rw-r--r--generalresearch/utils/enum.py4
-rw-r--r--generalresearch/wall_status_codes/lucid.py2
-rw-r--r--generalresearch/wall_status_codes/morning.py2
-rw-r--r--generalresearch/wall_status_codes/pollfish.py2
-rw-r--r--generalresearch/wall_status_codes/precision.py2
-rw-r--r--generalresearch/wall_status_codes/repdata.py2
-rw-r--r--test_utils/conftest.py3
-rw-r--r--test_utils/grliq/conftest.py2
-rw-r--r--test_utils/incite/conftest.py2
-rw-r--r--test_utils/managers/conftest.py2
-rw-r--r--test_utils/models/conftest.py9
-rw-r--r--test_utils/models/contest/conftest.py2
-rw-r--r--test_utils/models/network/conftest.py2
-rw-r--r--test_utils/models/thl/conftest.py2
-rw-r--r--test_utils/spectrum/conftest.py2
-rw-r--r--tests/incite/collections/test_df_collection_base.py3
-rw-r--r--tests/incite/collections/test_df_collection_item_base.py2
-rw-r--r--tests/incite/collections/test_df_collection_item_thl_web.py11
-rw-r--r--tests/incite/collections/test_df_collection_thl_marketplaces.py7
-rw-r--r--tests/incite/collections/test_df_collection_thl_web.py2
-rw-r--r--tests/incite/mergers/foundations/test_enriched_session.py7
-rw-r--r--tests/incite/mergers/foundations/test_enriched_task_adjust.py7
-rw-r--r--tests/incite/mergers/foundations/test_enriched_wall.py23
-rw-r--r--tests/incite/mergers/foundations/test_user_id_product.py15
-rw-r--r--tests/incite/mergers/test_merge_collection.py3
-rw-r--r--tests/incite/mergers/test_merge_collection_item.py9
-rw-r--r--tests/incite/mergers/test_pop_ledger.py8
-rw-r--r--tests/incite/mergers/test_ym_survey_merge.py17
-rw-r--r--tests/incite/test_collection_base.py3
-rw-r--r--tests/incite/test_collection_base_item.py2
-rw-r--r--tests/incite/test_grl_flow.py11
-rw-r--r--tests/incite/test_interval_idx.py3
-rw-r--r--tests/managers/gr/test_authentication.py3
-rw-r--r--tests/managers/gr/test_business.py4
-rw-r--r--tests/managers/gr/test_team.py2
-rw-r--r--tests/managers/leaderboard.py2
-rw-r--r--tests/managers/network/test_label.py2
-rw-r--r--tests/managers/test_events.py15
-rw-r--r--tests/managers/test_userpid.py4
-rw-r--r--tests/managers/thl/test_contest/test_leaderboard.py8
-rw-r--r--tests/managers/thl/test_contest/test_milestone.py14
-rw-r--r--tests/managers/thl/test_contest/test_raffle.py14
-rw-r--r--tests/managers/thl/test_harmonized_uqa.py2
-rw-r--r--tests/managers/thl/test_ipinfo.py2
-rw-r--r--tests/managers/thl/test_ledger/test_lm_accounts.py6
-rw-r--r--tests/managers/thl/test_ledger/test_lm_tx_locks.py23
-rw-r--r--tests/managers/thl/test_ledger/test_thl_lm_accounts.py32
-rw-r--r--tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py10
-rw-r--r--tests/managers/thl/test_ledger/test_thl_lm_tx.py64
-rw-r--r--tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py3
-rw-r--r--tests/managers/thl/test_ledger/test_thl_pem.py7
-rw-r--r--tests/managers/thl/test_ledger/test_user_txs.py3
-rw-r--r--tests/managers/thl/test_ledger/test_wallet.py2
-rw-r--r--tests/managers/thl/test_product.py9
-rw-r--r--tests/managers/thl/test_product_prod.py2
-rw-r--r--tests/managers/thl/test_profiling/test_user_upk.py2
-rw-r--r--tests/managers/thl/test_session_manager.py7
-rw-r--r--tests/managers/thl/test_survey.py2
-rw-r--r--tests/managers/thl/test_survey_penalty.py1
-rw-r--r--tests/managers/thl/test_task_adjustment.py2
-rw-r--r--tests/managers/thl/test_task_status.py2
-rw-r--r--tests/managers/thl/test_user_manager/test_base.py4
-rw-r--r--tests/managers/thl/test_user_manager/test_mysql.py1
-rw-r--r--tests/managers/thl/test_user_manager/test_user_fetch.py1
-rw-r--r--tests/managers/thl/test_user_manager/test_user_metadata.py1
-rw-r--r--tests/managers/thl/test_user_streak.py2
-rw-r--r--tests/managers/thl/test_userhealth.py2
-rw-r--r--tests/managers/thl/test_wall_manager.py13
-rw-r--r--tests/models/admin/test_report_request.py2
-rw-r--r--tests/models/custom_types/test_aware_datetime.py2
-rw-r--r--tests/models/custom_types/test_dsn.py1
-rw-r--r--tests/models/dynata/test_eligbility.py2
-rw-r--r--tests/models/gr/test_authentication.py2
-rw-r--r--tests/models/gr/test_business.py3
-rw-r--r--tests/models/innovate/test_question.py6
-rw-r--r--tests/models/legacy/test_user_question_answer_in.py4
-rw-r--r--tests/models/morning/test.py2
-rw-r--r--tests/models/network/test_mtr.py4
-rw-r--r--tests/models/network/test_nmap_parser.py1
-rw-r--r--tests/models/prodege/test_survey_participation.py2
-rw-r--r--tests/models/spectrum/test_question.py2
-rw-r--r--tests/models/spectrum/test_survey.py2
-rw-r--r--tests/models/spectrum/test_survey_manager.py2
-rw-r--r--tests/models/test_finance.py2
-rw-r--r--tests/models/thl/question/test_question_info.py2
-rw-r--r--tests/models/thl/test_adjustments.py30
-rw-r--r--tests/models/thl/test_contest/test_leaderboard_contest.py2
-rw-r--r--tests/models/thl/test_ledger.py2
-rw-r--r--tests/models/thl/test_payout.py5
-rw-r--r--tests/models/thl/test_product.py2
-rw-r--r--tests/models/thl/test_upkquestion.py12
-rw-r--r--tests/models/thl/test_user.py6
-rw-r--r--tests/models/thl/test_user_iphistory.py2
-rw-r--r--tests/models/thl/test_user_streak.py2
-rw-r--r--tests/models/thl/test_wall.py2
-rw-r--r--tests/models/thl/test_wall_session.py2
-rw-r--r--tests/sql_helper.py4
207 files changed, 398 insertions, 725 deletions
diff --git a/generalresearch/__init__.py b/generalresearch/__init__.py
index 604b7e2..3b2ec3d 100644
--- a/generalresearch/__init__.py
+++ b/generalresearch/__init__.py
@@ -129,7 +129,7 @@ def synchronized(wrapped):
if lock is None:
lock = threading.RLock()
- setattr(context, "_synchronized_lock", lock)
+ context._synchronized_lock = lock
return lock
diff --git a/generalresearch/config.py b/generalresearch/config.py
index 76e3995..c6f41e8 100644
--- a/generalresearch/config.py
+++ b/generalresearch/config.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import os
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from pathlib import Path
from pydantic import DirectoryPath, Field, MariaDBDsn, PostgresDsn, RedisDsn
diff --git a/generalresearch/grliq/managers/event_plotter.py b/generalresearch/grliq/managers/event_plotter.py
index 0bba7c5..94b70ef 100644
--- a/generalresearch/grliq/managers/event_plotter.py
+++ b/generalresearch/grliq/managers/event_plotter.py
@@ -13,7 +13,7 @@ def make_events_svg(
mouse_events: list[MouseEvent], keyboard_events: list[KeyboardEvent]
) -> str:
if len(mouse_events) + len(keyboard_events) == 0:
- return f'<svg xmlns="http://www.w3.org/2000/svg">\n' + "\n</svg>"
+ return '<svg xmlns="http://www.w3.org/2000/svg">\n' + "\n</svg>"
t = np.array([pm.timeStamp for pm in mouse_events])
t_diff = t.max() - t.min()
@@ -88,7 +88,7 @@ def make_events_svg(
svg_elements.append(svg_multiline_text(text, cx + 5, cy - 5, font_size))
svg = (
- f'<svg xmlns="http://www.w3.org/2000/svg">'
+ '<svg xmlns="http://www.w3.org/2000/svg">'
+ "\n".join(svg_elements)
+ "\n</svg>"
)
diff --git a/generalresearch/grliq/managers/forensic_data.py b/generalresearch/grliq/managers/forensic_data.py
index 7567552..093f7ae 100644
--- a/generalresearch/grliq/managers/forensic_data.py
+++ b/generalresearch/grliq/managers/forensic_data.py
@@ -1,8 +1,8 @@
from __future__ import annotations
+from collections.abc import Collection
from datetime import datetime
from typing import Any
-from collections.abc import Collection
from psycopg import sql
from pydantic import NonNegativeInt, PositiveInt
@@ -611,7 +611,7 @@ class GrlIqDataManager:
if res and res["c"] >= 0:
return int(res["c"])
- except (Exception,) as e:
+ except Exception:
pass
query = f"""
diff --git a/generalresearch/grliq/managers/forensic_events.py b/generalresearch/grliq/managers/forensic_events.py
index c847d4d..93da481 100644
--- a/generalresearch/grliq/managers/forensic_events.py
+++ b/generalresearch/grliq/managers/forensic_events.py
@@ -36,36 +36,35 @@ class GrlIqEventManager:
"uuid": uuid4().hex,
}
- with self.postgres_config.make_connection() as conn:
- with conn.cursor() as c:
- c.execute("SELECT pg_advisory_xact_lock(hashtext(%s))", (session_uuid,))
- # Try to update first
- update_query = sql.SQL("""
+ with self.postgres_config.make_connection() as conn, conn.cursor() as c:
+ c.execute("SELECT pg_advisory_xact_lock(hashtext(%s))", (session_uuid,))
+ # Try to update first
+ update_query = sql.SQL("""
UPDATE grliq_forensicevents
SET timing_data = %(timing_data)s
WHERE session_uuid = %(session_uuid)s
AND timing_data IS NULL
RETURNING id
""")
- c.execute(update_query, data)
- result = c.fetchone()
+ c.execute(update_query, data)
+ result = c.fetchone()
- if result:
- pk = result["id"]
- conn.commit()
- return pk
+ if result:
+ pk = result["id"]
+ conn.commit()
+ return pk
- # No matching row to update. Do an insert
- insert_query = sql.SQL("""
+ # No matching row to update. Do an insert
+ insert_query = sql.SQL("""
INSERT INTO grliq_forensicevents
(uuid, session_uuid, timing_data)
VALUES
(%(uuid)s, %(session_uuid)s, %(timing_data)s)
RETURNING id
""")
- c.execute(insert_query, data)
- pk = c.fetchone()["id"]
- conn.commit()
+ c.execute(insert_query, data)
+ pk = c.fetchone()["id"]
+ conn.commit()
return int(pk)
@@ -88,11 +87,10 @@ class GrlIqEventManager:
"event_end": event_end,
}
- with self.postgres_config.make_connection() as conn:
- with conn.cursor() as c:
- c.execute("SELECT pg_advisory_xact_lock(hashtext(%s))", (session_uuid,))
- # Try to update first
- update_query = sql.SQL("""
+ with self.postgres_config.make_connection() as conn, conn.cursor() as c:
+ c.execute("SELECT pg_advisory_xact_lock(hashtext(%s))", (session_uuid,))
+ # Try to update first
+ update_query = sql.SQL("""
UPDATE grliq_forensicevents
SET events = %(events)s,
mouse_events = %(mouse_events)s,
@@ -102,16 +100,16 @@ class GrlIqEventManager:
AND events IS NULL
RETURNING id
""")
- c.execute(update_query, data)
- result = c.fetchone()
+ c.execute(update_query, data)
+ result = c.fetchone()
- if result:
- pk = result["id"]
- conn.commit()
- return pk
+ if result:
+ pk = result["id"]
+ conn.commit()
+ return pk
- # No matching row to update. Do an insert
- insert_query = sql.SQL("""
+ # No matching row to update. Do an insert
+ insert_query = sql.SQL("""
INSERT INTO grliq_forensicevents
(uuid, session_uuid, events, mouse_events,
event_start, event_end)
@@ -120,9 +118,9 @@ class GrlIqEventManager:
%(event_start)s, %(event_end)s)
RETURNING id
""")
- c.execute(insert_query, data)
- pk = c.fetchone()["id"]
- conn.commit()
+ c.execute(insert_query, data)
+ pk = c.fetchone()["id"]
+ conn.commit()
return int(pk)
@@ -167,10 +165,9 @@ class GrlIqEventManager:
{filter_str}
ORDER BY {order_by} LIMIT {limit}
"""
- with self.postgres_config.make_connection() as conn:
- with conn.cursor() as c:
- c.execute(query=query, params=params)
- res = c.fetchall()
+ with self.postgres_config.make_connection() as conn, conn.cursor() as c:
+ c.execute(query=query, params=params)
+ res = c.fetchall()
for x in res:
if x.get("mouse_events"):
@@ -206,10 +203,9 @@ class GrlIqEventManager:
AND timing_data IS NOT NULL
ORDER BY session_uuid, fe.id DESC;
""")
- with self.postgres_config.make_connection() as conn:
- with conn.cursor() as c:
- c.execute(query, params)
- res = c.fetchall()
+ with self.postgres_config.make_connection() as conn, conn.cursor() as c:
+ c.execute(query, params)
+ res = c.fetchall()
for x in res:
x["timing_data"] = TimingData.model_validate(x["timing_data"])
diff --git a/generalresearch/grliq/managers/forensic_results.py b/generalresearch/grliq/managers/forensic_results.py
index 706a7db..158e582 100644
--- a/generalresearch/grliq/managers/forensic_results.py
+++ b/generalresearch/grliq/managers/forensic_results.py
@@ -90,10 +90,9 @@ class GrlIqCategoryResultsReader:
ORDER BY created_at DESC LIMIT {limit}
"""
- with self.postgres_config.make_connection() as conn:
- with conn.cursor() as c:
- c.execute(query, params)
- res = c.fetchall()
+ with self.postgres_config.make_connection() as conn, conn.cursor() as c:
+ c.execute(query, params)
+ res = c.fetchall()
for x in res:
x["client_ip"] = str(x["client_ip"])
diff --git a/generalresearch/grliq/models/custom_types.py b/generalresearch/grliq/models/custom_types.py
index 5c7f155..903e230 100644
--- a/generalresearch/grliq/models/custom_types.py
+++ b/generalresearch/grliq/models/custom_types.py
@@ -1,6 +1,7 @@
-import annotated_types
from typing import Annotated
+import annotated_types
+
GrlIqScore = Annotated[int, annotated_types.Ge(0), annotated_types.Le(100)]
GrlIqAvgScore = Annotated[float, annotated_types.Ge(0), annotated_types.Le(100)]
GrlIqRate = Annotated[float, annotated_types.Ge(0), annotated_types.Le(1)]
diff --git a/generalresearch/grliq/models/forensic_data.py b/generalresearch/grliq/models/forensic_data.py
index 8d65696..666cb81 100644
--- a/generalresearch/grliq/models/forensic_data.py
+++ b/generalresearch/grliq/models/forensic_data.py
@@ -779,7 +779,6 @@ class GrlIqData(BaseModel):
minutes=90
), "expired session"
- return None
def model_dump_sql(self, **kwargs) -> dict[str, Any]:
d = dict()
diff --git a/generalresearch/grliq/models/forensic_summary.py b/generalresearch/grliq/models/forensic_summary.py
index 6f80768..f5b0f25 100644
--- a/generalresearch/grliq/models/forensic_summary.py
+++ b/generalresearch/grliq/models/forensic_summary.py
@@ -3,7 +3,6 @@ from __future__ import annotations
import random
from typing import (
Literal,
- Optional,
Union,
get_args,
get_origin,
@@ -125,7 +124,7 @@ def generate_GrlIqCheckerResultsSummary():
if base_type == GrlIqCheckerResult:
if is_opt:
fields[f"{field_name}_avg"] = (
- Optional[GrlIqAvgScore],
+ GrlIqAvgScore | None,
Field(default=None, examples=[random.randint(0, 100)]),
)
fields[f"{field_name}_pct_none"] = (
diff --git a/generalresearch/grliq/utils.py b/generalresearch/grliq/utils.py
index ca8c6a1..bceaa30 100644
--- a/generalresearch/grliq/utils.py
+++ b/generalresearch/grliq/utils.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import os
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
from pathlib import Path
from uuid import UUID
diff --git a/generalresearch/grpc.py b/generalresearch/grpc.py
index 178521e..f1b5611 100644
--- a/generalresearch/grpc.py
+++ b/generalresearch/grpc.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from google.protobuf.duration_pb2 import Duration
from google.protobuf.timestamp_pb2 import Timestamp
diff --git a/generalresearch/incite/base.py b/generalresearch/incite/base.py
index 6888ca2..44647fc 100644
--- a/generalresearch/incite/base.py
+++ b/generalresearch/incite/base.py
@@ -7,8 +7,9 @@ import re
import shutil
import subprocess
import warnings
+from collections.abc import Callable, Sequence
from concurrent.futures import Future
-from datetime import datetime, timedelta, timezone, UTC
+from datetime import UTC, datetime, timedelta
from os import R_OK, access, listdir
from os.path import isdir
from os.path import join as pjoin
@@ -17,8 +18,8 @@ from sys import platform
from typing import (
TYPE_CHECKING,
Any,
+ Self,
)
-from collections.abc import Callable, Sequence
from uuid import uuid4
import dask
@@ -42,7 +43,6 @@ from pydantic import (
)
from pydantic.json_schema import SkipJsonSchema
from sentry_sdk import capture_exception
-from typing import Self
from generalresearch.config import is_debug
from generalresearch.incite.schemas import (
@@ -481,7 +481,7 @@ class CollectionBase(BaseModel):
item.cleanup_partials()
def clear_tmp_archives(self) -> None:
- regex = re.compile(r"\.parquet\.[0-9a-f]{32}", re.I)
+ regex = re.compile(r"\.parquet\.[0-9a-f]{32}", re.IGNORECASE)
for fn in os.listdir(self.archive_path):
if regex.search(fn):
@@ -554,7 +554,7 @@ class CollectionBase(BaseModel):
try:
pq.ParquetDataset(highest_version).read().to_pandas()
- except (Exception,):
+ except Exception:
# If the most recent version isn't valid, we don't want to
# create a symlink to it.
# TODO: We could try to be smart and iterate down the most recent
diff --git a/generalresearch/incite/collections/__init__.py b/generalresearch/incite/collections/__init__.py
index 38749b3..42c3d31 100644
--- a/generalresearch/incite/collections/__init__.py
+++ b/generalresearch/incite/collections/__init__.py
@@ -214,13 +214,13 @@ class DFCollectionItem(CollectionItemBase):
""",
params=[start, finish],
)
- except (Exception,) as e:
+ except Exception as e:
capture_exception(error=e)
LOG.error(f"_from_mysql Exception: {e}")
return None
if not res:
- LOG.warning(f"_from_mysql query returned nothing")
+ LOG.warning("_from_mysql query returned nothing")
# Return an empty df.DataFrame with the correct columns
return empty_dataframe_from_schema(coll._schema)
@@ -228,7 +228,7 @@ class DFCollectionItem(CollectionItemBase):
df = self.validate_df(df=df)
if df is None:
- LOG.warning(f"_from_mysql query results failed validation")
+ LOG.warning("_from_mysql query results failed validation")
# Schema validation can fail...
return None
@@ -265,13 +265,13 @@ class DFCollectionItem(CollectionItemBase):
""",
params=[start, finish],
)
- except (Exception,) as e:
+ except Exception as e:
capture_exception(error=e)
LOG.error(f"_from_postgres Exception: {e}")
return None
if not res:
- LOG.warning(f"_from_postgres query returned nothing")
+ LOG.warning("_from_postgres query returned nothing")
# Return an empty df.DataFrame with the correct columns
return empty_dataframe_from_schema(coll._schema)
@@ -279,7 +279,7 @@ class DFCollectionItem(CollectionItemBase):
df = self.validate_df(df=df)
if df is None:
- LOG.warning(f"_from_postgres query results failed validation")
+ LOG.warning("_from_postgres query results failed validation")
# Schema validation can fail...
return None
@@ -351,7 +351,7 @@ class DFCollectionItem(CollectionItemBase):
c: Cursor = conn.cursor()
for chunk in chunked(tx_ids, n=5_000):
c.execute(
- query=f"""
+ query="""
SELECT ltm.transaction_id AS tx_id,
ltm.id AS tx_metadata_id,
ltm.key, ltm.value
@@ -466,7 +466,7 @@ class DFCollectionItem(CollectionItemBase):
compression="brotli",
)
- except (Exception,) as e:
+ except Exception as e:
LOG.exception(e)
self.delete_archive(tmp_path)
return False
@@ -553,7 +553,7 @@ class DFCollectionItem(CollectionItemBase):
write_metadata_file=True,
compression="brotli",
)
- except (Exception,) as e:
+ except Exception as e:
LOG.exception(e)
self.delete_archive(next_numbered_path)
return False
diff --git a/generalresearch/incite/defaults.py b/generalresearch/incite/defaults.py
index 5a95607..d4025fc 100644
--- a/generalresearch/incite/defaults.py
+++ b/generalresearch/incite/defaults.py
@@ -1,4 +1,4 @@
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
from generalresearch.incite.base import GRLDatasets
from generalresearch.incite.collections import DFCollectionType
diff --git a/generalresearch/incite/mergers/foundations/__init__.py b/generalresearch/incite/mergers/foundations/__init__.py
index f7a45a8..d3100fa 100644
--- a/generalresearch/incite/mergers/foundations/__init__.py
+++ b/generalresearch/incite/mergers/foundations/__init__.py
@@ -117,7 +117,7 @@ def annotate_product_and_team_id(
try:
with conn.cursor() as c:
c.execute(
- query=f"""
+ query="""
SELECT u.id AS user_id, u.product_id,
bp.team_id
FROM thl_user u
diff --git a/generalresearch/incite/mergers/foundations/enriched_session.py b/generalresearch/incite/mergers/foundations/enriched_session.py
index a368e6c..8a707ca 100644
--- a/generalresearch/incite/mergers/foundations/enriched_session.py
+++ b/generalresearch/incite/mergers/foundations/enriched_session.py
@@ -60,17 +60,17 @@ class EnrichedSessionMergeItem(MergeCollectionItem):
return
# --- Session ---
- LOG.warning(f"EnrichedSessionMergeItem: get session_collection")
+ LOG.warning("EnrichedSessionMergeItem: get session_collection")
session_items = [w for w in session_coll.items if w.interval.overlaps(ir)]
if len(session_items) == 0:
- LOG.warning(f"EnrichedSessionMergeItem: no session items. set_empty.")
+ LOG.warning("EnrichedSessionMergeItem: no session items. set_empty.")
if self.should_archive():
self.set_empty()
return
if not (
session_items[-1].has_partial_archive() or session_items[-1].has_archive()
):
- LOG.warning(f"EnrichedSessionMergeItem: session isn't updated!")
+ LOG.warning("EnrichedSessionMergeItem: session isn't updated!")
return
sddf = session_coll.ddf(
@@ -81,7 +81,7 @@ class EnrichedSessionMergeItem(MergeCollectionItem):
)
# --- Walls ---
- LOG.warning(f"EnrichedSessionMergeItem: merge wall_collection")
+ LOG.warning("EnrichedSessionMergeItem: merge wall_collection")
wall_items = [
w
for w in wall_coll.items
@@ -95,7 +95,7 @@ class EnrichedSessionMergeItem(MergeCollectionItem):
]
if len(wall_items) == 0:
- LOG.error(f"EnrichedSessionMergeItem: no wall items")
+ LOG.error("EnrichedSessionMergeItem: no wall items")
return
wddf = wall_coll.ddf(
diff --git a/generalresearch/incite/mergers/foundations/enriched_task_adjust.py b/generalresearch/incite/mergers/foundations/enriched_task_adjust.py
index f3ab8d8..234cd5b 100644
--- a/generalresearch/incite/mergers/foundations/enriched_task_adjust.py
+++ b/generalresearch/incite/mergers/foundations/enriched_task_adjust.py
@@ -55,7 +55,7 @@ class EnrichedTaskAdjustMergeItem(MergeCollectionItem):
LOG.warning(f"EnrichedReconMergeItem.build({ir})")
# --- Task Adjustments ---
- LOG.warning(f"EnrichedReconMergeItem: get session_collection")
+ LOG.warning("EnrichedReconMergeItem: get session_collection")
task_adj_coll_items = [
w for w in task_adj_coll.items if w.interval.overlaps(ir)
]
@@ -209,6 +209,5 @@ class EnrichedTaskAdjustMerge(MergeCollection):
enriched_wall=enriched_wall,
pg_config=pg_config,
)
- except (Exception,) as e:
+ except Exception as e:
capture_exception(error=e)
- pass
diff --git a/generalresearch/incite/mergers/foundations/enriched_wall.py b/generalresearch/incite/mergers/foundations/enriched_wall.py
index 5a7dd2b..b2ac7bb 100644
--- a/generalresearch/incite/mergers/foundations/enriched_wall.py
+++ b/generalresearch/incite/mergers/foundations/enriched_wall.py
@@ -55,10 +55,10 @@ class EnrichedWallMergeItem(MergeCollectionItem):
return
# --- Wall ---
- LOG.warning(f"EnrichedWallMergeItem: get wall_collection")
+ LOG.warning("EnrichedWallMergeItem: get wall_collection")
wall_items = [w for w in wall_coll.items if w.interval.overlaps(ir)]
if len(wall_items) == 0:
- LOG.warning(f"EnrichedWallMergeItem: no wall items. set_empty.")
+ LOG.warning("EnrichedWallMergeItem: no wall items. set_empty.")
if self.should_archive():
self.set_empty()
return
@@ -93,7 +93,7 @@ class EnrichedWallMergeItem(MergeCollectionItem):
wdf = wdf.reset_index(drop=False)
# --- Sessions ---
- LOG.warning(f"EnrichedWallMergeItem: merge session_collection")
+ LOG.warning("EnrichedWallMergeItem: merge session_collection")
session_items = [
s
for s in session_coll.items
@@ -107,7 +107,7 @@ class EnrichedWallMergeItem(MergeCollectionItem):
]
if len(session_items) == 0:
- LOG.error(f"EnrichedWallMergeItem: no session items. breaking early.")
+ LOG.error("EnrichedWallMergeItem: no session items. breaking early.")
return
sdf = session_coll.ddf(
diff --git a/generalresearch/incite/mergers/ym_survey_wall.py b/generalresearch/incite/mergers/ym_survey_wall.py
index c060aae..9750b57 100644
--- a/generalresearch/incite/mergers/ym_survey_wall.py
+++ b/generalresearch/incite/mergers/ym_survey_wall.py
@@ -62,7 +62,7 @@ class YMSurveyWallMergeCollectionItem(MergeCollectionItem):
)
ddf = ddf[ddf["started"] > start]
- LOG.warning(f"YMSurveyWallMerge: merge session_collection")
+ LOG.warning("YMSurveyWallMerge: merge session_collection")
session_items = [
s
for s in enriched_session.items
@@ -98,17 +98,16 @@ class YMSurveyWallMergeCollectionItem(MergeCollectionItem):
df.dropna(subset="product_id", how="any", inplace=True)
df.sort_values(by="started", inplace=True)
- LOG.debug(f"YMSurveyWallMerge.build() validation")
+ LOG.debug("YMSurveyWallMerge.build() validation")
df = self.validate_df(df=df)
if df is not None:
ddf = dd.from_pandas(df, npartitions=4)
- LOG.info(f"YMSurveyWallMerge.build() saving")
+ LOG.info("YMSurveyWallMerge.build() saving")
self.to_archive_symlink(client=client, ddf=ddf)
else:
LOG.warning("YMSurveyWallMerge failed validation")
- return None
class YMSurveyWallMerge(MergeCollection):
@@ -144,8 +143,7 @@ class YMSurveyWallMerge(MergeCollection):
wall_coll=wall_coll,
enriched_session=enriched_session,
)
- except (Exception,) as e:
+ except Exception as e:
capture_exception(error=e)
- pass
item.delete_dangling_partials(keep_latest=2, target_path=item.path)
diff --git a/generalresearch/incite/mergers/ym_wall_summary.py b/generalresearch/incite/mergers/ym_wall_summary.py
index 618b810..37fc3b9 100644
--- a/generalresearch/incite/mergers/ym_wall_summary.py
+++ b/generalresearch/incite/mergers/ym_wall_summary.py
@@ -117,9 +117,8 @@ class YMWallSummaryMerge(MergeCollection):
# item every time build is run even if it isn't closed
# if item.should_archive():
item.fetch(wall_collection, session_collection, user_id_product)
- except (Exception,) as e:
+ except Exception as e:
capture_exception(e)
- pass
@staticmethod
def build_groupbys(df: pd.DataFrame) -> pd.DataFrame:
diff --git a/generalresearch/incite/schemas/thl_web.py b/generalresearch/incite/schemas/thl_web.py
index b831b9a..c1be202 100644
--- a/generalresearch/incite/schemas/thl_web.py
+++ b/generalresearch/incite/schemas/thl_web.py
@@ -1,4 +1,4 @@
-from datetime import datetime, timedelta, timezone, UTC
+from datetime import UTC, datetime, timedelta
import pandas as pd
from pandera.pandas import Check, Column, DataFrameSchema, Index, MultiIndex
diff --git a/generalresearch/locales/setup_json.py b/generalresearch/locales/setup_json.py
index 356084a..57caa00 100644
--- a/generalresearch/locales/setup_json.py
+++ b/generalresearch/locales/setup_json.py
@@ -11,6 +11,7 @@ def country_default_lang():
"""
raise ValueError("no need to run this, I already ran it.")
import pandas as pd
+
from generalresearch.locales import Localelator
l = Localelator()
diff --git a/generalresearch/locales/timezone.py b/generalresearch/locales/timezone.py
index fce6e0e..810dba3 100644
--- a/generalresearch/locales/timezone.py
+++ b/generalresearch/locales/timezone.py
@@ -1,4 +1,3 @@
-from typing import Optional
from pytz import country_timezones
diff --git a/generalresearch/managers/cint/survey.py b/generalresearch/managers/cint/survey.py
index da1ecd9..819ae3d 100644
--- a/generalresearch/managers/cint/survey.py
+++ b/generalresearch/managers/cint/survey.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import logging
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
import pymysql
from pymysql import IntegrityError
diff --git a/generalresearch/managers/criteria.py b/generalresearch/managers/criteria.py
index b5d9830..c13b8ac 100644
--- a/generalresearch/managers/criteria.py
+++ b/generalresearch/managers/criteria.py
@@ -2,7 +2,7 @@ from __future__ import annotations
from abc import ABC
from collections.abc import Collection
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from more_itertools import chunked
@@ -30,7 +30,6 @@ class CriteriaManager(SqlManager, ABC):
"""
Create a single criterion
"""
- ...
def filter(self, hashes: Collection[str]) -> dict[str, MarketplaceCondition]:
"""
@@ -96,7 +95,6 @@ class CriteriaManager(SqlManager, ABC):
)
conn.commit()
- return None
@property
def mysql_fields(self) -> str:
diff --git a/generalresearch/managers/dynata/survey.py b/generalresearch/managers/dynata/survey.py
index 3a15c4d..7643dc4 100644
--- a/generalresearch/managers/dynata/survey.py
+++ b/generalresearch/managers/dynata/survey.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import logging
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
import pymysql
from pymysql import IntegrityError
diff --git a/generalresearch/managers/events.py b/generalresearch/managers/events.py
index f3c6a04..f6c429e 100644
--- a/generalresearch/managers/events.py
+++ b/generalresearch/managers/events.py
@@ -5,7 +5,7 @@ import math
import socket
import threading
import time
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from typing import TYPE_CHECKING
@@ -724,7 +724,6 @@ class EventManager(StatsManager):
)
)
self.publish_event(msg, product_id=user.product_id)
- return
def handle_task_finish(self, wall: Wall, session: Session, user: User):
self.mark_user_active(user=user)
@@ -818,7 +817,6 @@ class EventSubscriber(RedisManager):
p.subscribe(self.get_channel_name())
self.pubsub_client = r
self.pubsub = p
- return
def get_channel_name(self):
return f"{self.cache_prefix}:event-channel:{self.product_id}"
diff --git a/generalresearch/managers/gr/authentication.py b/generalresearch/managers/gr/authentication.py
index 409cb10..80bee4b 100644
--- a/generalresearch/managers/gr/authentication.py
+++ b/generalresearch/managers/gr/authentication.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import binascii
import logging
import os
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
from typing import TYPE_CHECKING, Any
from psycopg import sql
@@ -146,7 +146,7 @@ class GRUserManager(PostgresManagerWithRedis):
for item in res:
for k, v in item.items():
- if isinstance(item[k], datetime):
+ if isinstance(v, datetime):
item[k] = item[k].replace(tzinfo=UTC)
return [GRUser.model_validate(item) for item in res]
@@ -270,7 +270,6 @@ class GRTokenManager(PostgresManager):
)
conn.commit()
- return
def get_by_user_id(self, user_id: PositiveInt) -> GRToken | None:
# django authtoken_token table has (user_id) UNIQUE constraint
diff --git a/generalresearch/managers/gr/team.py b/generalresearch/managers/gr/team.py
index 393f446..d04370b 100644
--- a/generalresearch/managers/gr/team.py
+++ b/generalresearch/managers/gr/team.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
from typing import TYPE_CHECKING
from uuid import uuid4
diff --git a/generalresearch/managers/innovate/survey.py b/generalresearch/managers/innovate/survey.py
index c65b100..cddfba2 100644
--- a/generalresearch/managers/innovate/survey.py
+++ b/generalresearch/managers/innovate/survey.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import logging
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
import pymysql
from pymysql import IntegrityError
diff --git a/generalresearch/managers/leaderboard/__init__.py b/generalresearch/managers/leaderboard/__init__.py
index d5138cd..048d2cb 100644
--- a/generalresearch/managers/leaderboard/__init__.py
+++ b/generalresearch/managers/leaderboard/__init__.py
@@ -1,8 +1,9 @@
from __future__ import annotations
+from zoneinfo import ZoneInfo
+
import pytz
from cachetools import LRUCache, cached
-from zoneinfo import ZoneInfo
@cached(cache=LRUCache(maxsize=1))
diff --git a/generalresearch/managers/leaderboard/manager.py b/generalresearch/managers/leaderboard/manager.py
index 71c3a73..07e3e2c 100644
--- a/generalresearch/managers/leaderboard/manager.py
+++ b/generalresearch/managers/leaderboard/manager.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import datetime, timedelta, timezone, UTC
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from functools import cached_property
from typing import TYPE_CHECKING
diff --git a/generalresearch/managers/morning/survey.py b/generalresearch/managers/morning/survey.py
index 5fba70d..0e29010 100644
--- a/generalresearch/managers/morning/survey.py
+++ b/generalresearch/managers/morning/survey.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import json
import logging
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
import pymysql
from pymysql import IntegrityError
diff --git a/generalresearch/managers/network/label.py b/generalresearch/managers/network/label.py
index c5306a6..1f44862 100644
--- a/generalresearch/managers/network/label.py
+++ b/generalresearch/managers/network/label.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Collection
-from datetime import datetime, timedelta, timezone, UTC
+from datetime import UTC, datetime, timedelta
from psycopg import sql
from pydantic import IPvAnyNetwork, TypeAdapter
@@ -28,10 +28,9 @@ class IPLabelManager(PostgresManager):
%(provider)s, %(metadata)s
) RETURNING id;""")
params = ip_label.model_dump_postgres()
- with self.pg_config.make_connection() as conn:
- with conn.cursor() as c:
- c.execute(query, params)
- pk = c.fetchone()["id"]
+ with self.pg_config.make_connection() as conn, conn.cursor() as c:
+ c.execute(query, params)
+ pk = c.fetchone()["id"]
return ip_label
def make_filter_str(
diff --git a/generalresearch/managers/network/tool_run.py b/generalresearch/managers/network/tool_run.py
index 026b3d3..73afc13 100644
--- a/generalresearch/managers/network/tool_run.py
+++ b/generalresearch/managers/network/tool_run.py
@@ -49,7 +49,6 @@ class ToolRunManager(PostgresManager):
c.execute(query, params)
run_id = c.fetchone()["id"]
run.id = run_id
- return None
def create_tool_run(self, run: NmapRun | RDNSRun | MTRRun):
if type(run) is NmapRun:
@@ -77,10 +76,9 @@ class ToolRunManager(PostgresManager):
"""
Insert a PortScan + PortScanPorts from a Pydantic NmapResult.
"""
- with self.pg_config.make_connection() as conn:
- with conn.cursor() as c:
- self._create_tool_run(run, c)
- self.nmap_manager._create(run, c=c)
+ with self.pg_config.make_connection() as conn, conn.cursor() as c:
+ self._create_tool_run(run, c)
+ self.nmap_manager._create(run, c=c)
return run
def get_nmap_run(self, id: int) -> NmapRun:
@@ -98,10 +96,9 @@ class ToolRunManager(PostgresManager):
"""
Insert a RDnsRun + RDNSResult
"""
- with self.pg_config.make_connection() as conn:
- with conn.cursor() as c:
- self._create_tool_run(run, c)
- self.rdns_manager._create(run, c=c)
+ with self.pg_config.make_connection() as conn, conn.cursor() as c:
+ self._create_tool_run(run, c)
+ self.rdns_manager._create(run, c=c)
return run
def get_rdns_run(self, id: int) -> RDNSRun:
@@ -120,10 +117,9 @@ class ToolRunManager(PostgresManager):
return RDNSRun.model_validate(res)
def create_mtr_run(self, run: MTRRun) -> MTRRun:
- with self.pg_config.make_connection() as conn:
- with conn.cursor() as c:
- self._create_tool_run(run, c)
- self.mtr_manager._create(run, c=c)
+ with self.pg_config.make_connection() as conn, conn.cursor() as c:
+ self._create_tool_run(run, c)
+ self.mtr_manager._create(run, c=c)
return run
def get_mtr_run(self, id: int) -> MTRRun:
diff --git a/generalresearch/managers/precision/survey.py b/generalresearch/managers/precision/survey.py
index 833cb28..c13dca8 100644
--- a/generalresearch/managers/precision/survey.py
+++ b/generalresearch/managers/precision/survey.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import logging
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
import pymysql
from pymysql import IntegrityError
@@ -125,7 +125,7 @@ class PrecisionSurveyManager(SurveyManager):
country_data = [(survey.survey_id, c) for c in survey.country_isos]
c.executemany(
- f"""
+ """
INSERT INTO `thl-precision`.`precision_survey_country`
(survey_id, country_iso, is_active) VALUES
(%s, %s, TRUE)
@@ -134,7 +134,7 @@ class PrecisionSurveyManager(SurveyManager):
)
lang_data = [(survey.survey_id, c) for c in survey.language_isos]
c.executemany(
- f"""
+ """
INSERT INTO `thl-precision`.`precision_survey_language`
(survey_id, language_iso, is_active) VALUES
(%s, %s, TRUE)
@@ -188,7 +188,7 @@ class PrecisionSurveyManager(SurveyManager):
country_data = [(survey.survey_id, c) for c in survey.country_isos]
# Turn ON countries in this survey's list of countries, insert row, if already exists, set active.
c.executemany(
- query=f"""
+ query="""
INSERT INTO `thl-precision`.`precision_survey_country`
(survey_id, country_iso, is_active) VALUES
(%s, %s, TRUE) ON DUPLICATE KEY UPDATE is_active = TRUE;
@@ -207,7 +207,7 @@ class PrecisionSurveyManager(SurveyManager):
)
language_data = [(survey.survey_id, c) for c in survey.language_isos]
c.executemany(
- query=f"""
+ query="""
INSERT INTO `thl-precision`.`precision_survey_language`
(survey_id, language_iso, is_active) VALUES
(%s, %s, TRUE) ON DUPLICATE KEY UPDATE is_active = TRUE;
diff --git a/generalresearch/managers/prodege/survey.py b/generalresearch/managers/prodege/survey.py
index 750383f..983572c 100644
--- a/generalresearch/managers/prodege/survey.py
+++ b/generalresearch/managers/prodege/survey.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
import pymysql
diff --git a/generalresearch/managers/repdata/survey.py b/generalresearch/managers/repdata/survey.py
index 1e1c3c6..fe6f621 100644
--- a/generalresearch/managers/repdata/survey.py
+++ b/generalresearch/managers/repdata/survey.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import json
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
import pymysql
@@ -105,7 +105,7 @@ class RepDataSurveyManager(SurveyManager):
surveys = {s.survey_id: s for s in surveys}
if surveys:
res = self.sql_helper.execute_sql_query(
- query=f"""
+ query="""
SELECT *
FROM `thl-repdata`.`repdata_surveystream`
WHERE survey_id IN %s
diff --git a/generalresearch/managers/sago/survey.py b/generalresearch/managers/sago/survey.py
index 2582902..462d2ef 100644
--- a/generalresearch/managers/sago/survey.py
+++ b/generalresearch/managers/sago/survey.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import logging
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
import pymysql
from pymysql import IntegrityError
diff --git a/generalresearch/managers/spectrum/survey.py b/generalresearch/managers/spectrum/survey.py
index 58f8a1a..9b58d43 100644
--- a/generalresearch/managers/spectrum/survey.py
+++ b/generalresearch/managers/spectrum/survey.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import logging
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
import pymysql
from pymysql import IntegrityError
diff --git a/generalresearch/managers/survey.py b/generalresearch/managers/survey.py
index 964344f..1f057fb 100644
--- a/generalresearch/managers/survey.py
+++ b/generalresearch/managers/survey.py
@@ -12,14 +12,12 @@ class SurveyManager(SqlManager, ABC):
"""
Create a single survey
"""
- ...
def update(self, surveys: list[MarketplaceTask]) -> bool:
"""
Update a list of surveys. Depending on the implementation, this may
operate one by one or as a bulk update.
"""
- ...
def update_field(self, survey: MarketplaceTask, field: str) -> bool:
"""
diff --git a/generalresearch/managers/thl/buyer.py b/generalresearch/managers/thl/buyer.py
index ae40bc8..2cb582f 100644
--- a/generalresearch/managers/thl/buyer.py
+++ b/generalresearch/managers/thl/buyer.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
from generalresearch.managers.base import Permission, PostgresManager
from generalresearch.models import Source
diff --git a/generalresearch/managers/thl/cashout_method.py b/generalresearch/managers/thl/cashout_method.py
index 94617f7..10282d4 100644
--- a/generalresearch/managers/thl/cashout_method.py
+++ b/generalresearch/managers/thl/cashout_method.py
@@ -2,7 +2,7 @@ from __future__ import annotations
from collections.abc import Collection
from copy import copy
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
from typing import Any
from uuid import UUID, uuid4
diff --git a/generalresearch/managers/thl/contest_manager.py b/generalresearch/managers/thl/contest_manager.py
index 286de3d..62146d7 100644
--- a/generalresearch/managers/thl/contest_manager.py
+++ b/generalresearch/managers/thl/contest_manager.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
from typing import Any, Literal, cast
from uuid import UUID
@@ -827,7 +827,6 @@ class MilestoneContestManager(ContestBaseManager):
)
self.end_milestone_contest(contest)
- return None
def enter_contest_db_work_milestone(
self, contest: MilestoneUserView, user: User, incr: PositiveInt
diff --git a/generalresearch/managers/thl/ledger_manager/conditions.py b/generalresearch/managers/thl/ledger_manager/conditions.py
index f79a0f0..b2fd465 100644
--- a/generalresearch/managers/thl/ledger_manager/conditions.py
+++ b/generalresearch/managers/thl/ledger_manager/conditions.py
@@ -1,9 +1,9 @@
from __future__ import annotations
import logging
-from datetime import datetime, timedelta, timezone, UTC
-from typing import TYPE_CHECKING
from collections.abc import Callable
+from datetime import UTC, datetime, timedelta
+from typing import TYPE_CHECKING
from generalresearch.config import JAMES_BILLINGS_BPID, JAMES_BILLINGS_TX_CUTOFF
from generalresearch.currency import USDCent
diff --git a/generalresearch/managers/thl/ledger_manager/exceptions.py b/generalresearch/managers/thl/ledger_manager/exceptions.py
index b79c153..48c102b 100644
--- a/generalresearch/managers/thl/ledger_manager/exceptions.py
+++ b/generalresearch/managers/thl/ledger_manager/exceptions.py
@@ -11,7 +11,6 @@ class LedgerTransactionCreateError(Exception):
Ledger transaction creation failed
"""
- pass
class LedgerTransactionCreateLockError(LedgerTransactionCreateError):
@@ -19,7 +18,6 @@ class LedgerTransactionCreateLockError(LedgerTransactionCreateError):
Ledger transaction creation failed because we could not acquire a lock
"""
- pass
class LedgerTransactionReleaseLockError(LedgerTransactionCreateError):
@@ -29,7 +27,6 @@ class LedgerTransactionReleaseLockError(LedgerTransactionCreateError):
back-populate as in sentry I see this very rarely.
"""
- pass
class LedgerTransactionFlagAlreadyExistsError(LedgerTransactionCreateError):
@@ -38,7 +35,6 @@ class LedgerTransactionFlagAlreadyExistsError(LedgerTransactionCreateError):
tx was already set
"""
- pass
class LedgerTransactionConditionFailedError(LedgerTransactionCreateError):
@@ -46,4 +42,3 @@ class LedgerTransactionConditionFailedError(LedgerTransactionCreateError):
We tried to create a transaction but the condition check failed.
"""
- pass
diff --git a/generalresearch/managers/thl/ledger_manager/ledger.py b/generalresearch/managers/thl/ledger_manager/ledger.py
index 00fac27..410f6ca 100644
--- a/generalresearch/managers/thl/ledger_manager/ledger.py
+++ b/generalresearch/managers/thl/ledger_manager/ledger.py
@@ -2,10 +2,9 @@ from __future__ import annotations
import logging
from collections import defaultdict
-from collections.abc import Collection
-from datetime import datetime, timedelta, timezone, UTC
+from collections.abc import Callable, Collection
+from datetime import UTC, datetime, timedelta
from typing import Any
-from collections.abc import Callable
from uuid import UUID
import redis
@@ -343,7 +342,7 @@ class LedgerTransactionManager(LedgerManagerBasePostgres):
assert len(tag) > 6, "Please confirm the tag is valid"
res = self.pg_config.execute_sql_query(
- query=f"""
+ query="""
SELECT lt.id
FROM ledger_transaction AS lt
WHERE tag = %s
@@ -361,7 +360,7 @@ class LedgerTransactionManager(LedgerManagerBasePostgres):
def get_tx_ids_by_tags(self, tags: list[str]) -> set[PositiveInt]:
res = self.pg_config.execute_sql_query(
- query=f"""
+ query="""
SELECT lt.id, lt.tag, lt.created, lt.ext_description
FROM ledger_transaction AS lt
WHERE tag = ANY(%s)
@@ -869,7 +868,7 @@ class LedgerAccountManager(LedgerManagerBasePostgres):
# qualified_name has a unique index so there can only be 0 or 1 match.
res = self.pg_config.execute_sql_query(
- query=f"""
+ query="""
SELECT
uuid, display_name, qualified_name, account_type,
normal_balance, reference_type,
@@ -928,7 +927,7 @@ class LedgerAccountManager(LedgerManagerBasePostgres):
# TODO: Move to RR with long timeout (2min+), it causes problems
res = self.pg_config.execute_sql_query(
- query=f"""
+ query="""
SELECT SUM(amount * direction) AS total
FROM ledger_entry
WHERE account_id = %s
@@ -1046,7 +1045,7 @@ class LedgerManager(
"""This is for testing only, as it'll take forever to run this if
the ledger_manager is huge
"""
- res = self.pg_config.execute_sql_query(f"""
+ res = self.pg_config.execute_sql_query("""
SELECT
SUM(CASE WHEN normal_balance = -1 THEN total ELSE 0 END) AS credit_total,
SUM(CASE WHEN normal_balance = 1 THEN total ELSE 0 END) AS debit_total
diff --git a/generalresearch/managers/thl/ledger_manager/thl_ledger.py b/generalresearch/managers/thl/ledger_manager/thl_ledger.py
index c9203f6..ded6518 100644
--- a/generalresearch/managers/thl/ledger_manager/thl_ledger.py
+++ b/generalresearch/managers/thl/ledger_manager/thl_ledger.py
@@ -1,11 +1,10 @@
from __future__ import annotations
import logging
-from collections.abc import Collection
-from datetime import datetime, timedelta, timezone, UTC
+from collections.abc import Callable, Collection
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from typing import TYPE_CHECKING
-from collections.abc import Callable
from uuid import UUID
import numpy as np
@@ -407,8 +406,7 @@ class ThlLedgerManager(LedgerManager):
f"bp_pay {bp_pay} > thl_net {thl_net}. Capping bp_pay to thl_net."
)
bp_pay = thl_net
- if user_pay > bp_pay:
- user_pay = bp_pay
+ user_pay = min(user_pay, bp_pay)
commission_amount = round(thl_net - bp_pay)
@@ -538,7 +536,7 @@ class ThlLedgerManager(LedgerManager):
]
else:
- logger.info(f"create_transaction_task_adjustment. No transactions needed.")
+ logger.info("create_transaction_task_adjustment. No transactions needed.")
return None
amt_str = f"${abs(change_amount) / 100:,.2f}"
@@ -666,7 +664,7 @@ class ThlLedgerManager(LedgerManager):
else:
logger.info(
- f"create_transaction_bp_adjustment. No transactions needed."
+ "create_transaction_bp_adjustment. No transactions needed."
)
return None
else:
@@ -738,7 +736,7 @@ class ThlLedgerManager(LedgerManager):
else:
logger.info(
- f"create_transaction_bp_adjustment. No transactions needed."
+ "create_transaction_bp_adjustment. No transactions needed."
)
return None
@@ -856,7 +854,7 @@ class ThlLedgerManager(LedgerManager):
),
]
- ext_description = f"BP Payout"
+ ext_description = "BP Payout"
t = self.create_tx(
entries=entries,
metadata=metadata,
@@ -983,7 +981,7 @@ class ThlLedgerManager(LedgerManager):
raise ValueError("Invalid Direction")
if description is None:
- description = f"BP Plug"
+ description = "BP Plug"
t = self.create_tx(
entries=entries,
@@ -1191,7 +1189,7 @@ class ThlLedgerManager(LedgerManager):
f"Trying to cancel user payout {payout_event.uuid} with no request tx found."
)
- description = f"User Payout Cancelled"
+ description = "User Payout Cancelled"
f = lambda: self.create_tx_user_payout_cancelled_(
user=user,
payout_event=payout_event,
@@ -1900,7 +1898,7 @@ class ThlLedgerManager(LedgerManager):
reserve = round(wall["user_payout_int"].sum() - wall["redeemable"].sum())
redeemable_balance = user_wallet_balance - reserve
- redeemable_balance = 0 if redeemable_balance < 0 else redeemable_balance
+ redeemable_balance = max(redeemable_balance, 0)
if redeemable_balance > 0:
# it is possible the user_wallet_balance is negative, in which case
diff --git a/generalresearch/managers/thl/product.py b/generalresearch/managers/thl/product.py
index 3b92361..d924e17 100644
--- a/generalresearch/managers/thl/product.py
+++ b/generalresearch/managers/thl/product.py
@@ -4,7 +4,7 @@ import json
import logging
import operator
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
from decimal import Decimal
from threading import Lock
from typing import TYPE_CHECKING
@@ -94,9 +94,9 @@ class ProductManager(PostgresManager):
return self.fetch_uuids(
product_uuids=[product_uuid],
)[0]
- except (AssertionError,):
+ except AssertionError:
return None
- except (IndexError,):
+ except IndexError:
return None
def get_by_uuids_if_exists(
@@ -397,11 +397,11 @@ class ProductManager(PostgresManager):
#
# from pymysql import IntegrityError
# except IntegrityError as e:
- except (Exception,) as e:
+ except Exception as e:
try:
return self.get_by_uuid(product_uuid=instance.id)
- except (Exception,) as e2:
+ except Exception:
pass
finally:
self.cache_clear(instance.id)
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 3854333..fa1747b 100644
--- a/generalresearch/managers/thl/profiling/uqa.py
+++ b/generalresearch/managers/thl/profiling/uqa.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import logging
from collections.abc import Collection
-from datetime import datetime, timedelta, timezone, UTC
+from datetime import UTC, datetime, timedelta
from generalresearch.managers.base import PostgresManagerWithRedis
from generalresearch.models.thl.profiling.user_question_answer import (
diff --git a/generalresearch/managers/thl/profiling/user_upk.py b/generalresearch/managers/thl/profiling/user_upk.py
index ee36124..a2cddb3 100644
--- a/generalresearch/managers/thl/profiling/user_upk.py
+++ b/generalresearch/managers/thl/profiling/user_upk.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import json
from collections import defaultdict
from collections.abc import Collection
-from datetime import datetime, timedelta, timezone, UTC
+from datetime import UTC, datetime, timedelta
from typing import Any
from uuid import UUID
diff --git a/generalresearch/managers/thl/session.py b/generalresearch/managers/thl/session.py
index 771f882..959003c 100644
--- a/generalresearch/managers/thl/session.py
+++ b/generalresearch/managers/thl/session.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Collection
-from datetime import datetime, timedelta, timezone, UTC
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from typing import Any
from uuid import UUID, uuid4
@@ -190,14 +190,7 @@ class SessionManager(PostgresManager):
# re-run model_validate after
finished = finished if finished else datetime.now(tz=UTC)
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "status_code_2": status_code_2,
- "finished": finished,
- "payout": payout,
- "user_payout": user_payout,
- }
+ status=status, status_code_1=status_code_1, status_code_2=status_code_2, finished=finished, payout=payout, user_payout=user_payout
)
d = session.model_dump_mysql()
self.pg_config.execute_write(
diff --git a/generalresearch/managers/thl/survey.py b/generalresearch/managers/thl/survey.py
index 966e96d..a9ec841 100644
--- a/generalresearch/managers/thl/survey.py
+++ b/generalresearch/managers/thl/survey.py
@@ -2,7 +2,7 @@ from __future__ import annotations
from collections import defaultdict
from collections.abc import Collection
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Any
import pandas as pd
@@ -280,7 +280,6 @@ class SurveyManager(PostgresManager):
query=query,
params={"survey_pks": survey_pks},
)
- return None
def update_surveys_categories(self, surveys: list[Survey] | None = None) -> None:
for chunk in chunked(surveys, 500):
@@ -329,12 +328,11 @@ class SurveyManager(PostgresManager):
]
with self.pg_config.make_connection() as conn:
# noinspection PyArgumentList
- with conn.transaction():
- with conn.cursor() as c:
- c.execute(temp_table_sql)
- c.executemany(insert_values_sql, rows)
- c.execute(delete_sql)
- c.execute(upsert_sql)
+ with conn.transaction(), conn.cursor() as c:
+ c.execute(temp_table_sql)
+ c.executemany(insert_values_sql, rows)
+ c.execute(delete_sql)
+ c.execute(upsert_sql)
conn.commit()
def get_survey_categories(self):
@@ -760,12 +758,11 @@ class SurveyStatManager(PostgresManager):
print(query)
print(params)
- with self.pg_config.make_connection() as conn:
- with conn.cursor() as c:
- c.execute("SET work_mem = '256MB';")
- c.execute("SET statement_timeout = '10s';")
- c.execute(query, params=params)
- res = c.fetchall()
+ with self.pg_config.make_connection() as conn, conn.cursor() as c:
+ c.execute("SET work_mem = '256MB';")
+ c.execute("SET statement_timeout = '10s';")
+ c.execute(query, params=params)
+ res = c.fetchall()
return [SurveyStat.model_validate(x) for x in res]
diff --git a/generalresearch/managers/thl/task_adjustment.py b/generalresearch/managers/thl/task_adjustment.py
index 3ec3d41..60bade7 100644
--- a/generalresearch/managers/thl/task_adjustment.py
+++ b/generalresearch/managers/thl/task_adjustment.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import logging
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
from functools import cached_property
@@ -148,10 +148,7 @@ class TaskAdjustmentManager(PostgresManager):
if (
wall.status == Status.COMPLETE
and adjusted_status == WallAdjustedStatus.ADJUSTED_TO_COMPLETE
- ):
- new_adjusted_status = None
- new_adjusted_cpi = None
- elif (
+ ) or (
wall.status != Status.COMPLETE
and adjusted_status == WallAdjustedStatus.ADJUSTED_TO_FAIL
):
diff --git a/generalresearch/managers/thl/user_compensate.py b/generalresearch/managers/thl/user_compensate.py
index c6c0747..8338424 100644
--- a/generalresearch/managers/thl/user_compensate.py
+++ b/generalresearch/managers/thl/user_compensate.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
from uuid import uuid4
diff --git a/generalresearch/managers/thl/user_manager/mysql_user_manager.py b/generalresearch/managers/thl/user_manager/mysql_user_manager.py
index 7931ba4..d2d0ffc 100644
--- a/generalresearch/managers/thl/user_manager/mysql_user_manager.py
+++ b/generalresearch/managers/thl/user_manager/mysql_user_manager.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import logging
from collections.abc import Collection
-from datetime import datetime, timezone, UTC
+from datetime import UTC, datetime
from functools import lru_cache
from uuid import uuid4
diff --git a/generalresearch/managers/thl/user_manager/user_manager.py b/generalresearch/managers/thl/user_manager/user_manager.py
index 3794020..7486869 100644
--- a/generalresearch/managers/thl/user_manager/user_manager.py
+++ b/generalresearch/managers/thl/user_manager/user_manager.py
@@ -103,7 +103,6 @@ class UserManager:
event_value=event_value,
)
- return None
def cache_clear(self):
# Generally this is used in testing. This clears the .get_user's lru_cache.
diff --git a/generalresearch/managers/thl/userhealth.py b/generalresearch/managers/thl/userhealth.py
index 0bc60ec..babed04 100644
--- a/generalresearch/managers/thl/userhealth.py
+++ b/generalresearch/managers/thl/userhealth.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import ipaddress
from collections.abc import Collection
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from itertools import zip_longest
from typing import Any
diff --git a/generalresearch/managers/thl/wall.py b/generalresearch/managers/thl/wall.py
index 7e413d7..03ca1c6 100644
--- a/generalresearch/managers/thl/wall.py
+++ b/generalresearch/managers/thl/wall.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import logging
from collections import defaultdict
from collections.abc import Collection
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from functools import cached_property
from uuid import uuid4
diff --git a/generalresearch/managers/thl/wallet/tango.py b/generalresearch/managers/thl/wallet/tango.py
index a4ebf22..4abfc70 100644
--- a/generalresearch/managers/thl/wallet/tango.py
+++ b/generalresearch/managers/thl/wallet/tango.py
@@ -44,7 +44,7 @@ def complete_tango_order(
tango_client=tango_client,
)
- except Exception as e:
+ except Exception:
# todo: its possible the order went through, but something else was wrong
# we should try to retrieve the order by its ref_id and confirm it really
# failed...
diff --git a/generalresearch/models/admin/request.py b/generalresearch/models/admin/request.py
index 2d68de1..5fdc784 100644
--- a/generalresearch/models/admin/request.py
+++ b/generalresearch/models/admin/request.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from enum import Enum
from typing import Literal
diff --git a/generalresearch/models/custom_types.py b/generalresearch/models/custom_types.py
index 9346064..c200b34 100644
--- a/generalresearch/models/custom_types.py
+++ b/generalresearch/models/custom_types.py
@@ -2,8 +2,7 @@ from __future__ import annotations
import json
import re
-import sys as _sys
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from typing import Annotated, Any, Literal
from uuid import UUID
diff --git a/generalresearch/models/dynata/survey.py b/generalresearch/models/dynata/survey.py
index 9adac42..5a9f763 100644
--- a/generalresearch/models/dynata/survey.py
+++ b/generalresearch/models/dynata/survey.py
@@ -132,9 +132,7 @@ class DynataCondition(MarketplaceCondition):
if cell["kind"] == "RANGE":
d["values"] = [
- "{0}-{1}".format(
- cell["range"]["from"] or "inf", cell["range"]["to"] or "inf"
- )
+ f"{cell["range"]["from"] or "inf"}-{cell["range"]["to"] or "inf"}"
]
d["value_type"] = ConditionValueType.RANGE
return cls.model_validate(d)
diff --git a/generalresearch/models/gr/authentication.py b/generalresearch/models/gr/authentication.py
index 67a8fc2..f9644fe 100644
--- a/generalresearch/models/gr/authentication.py
+++ b/generalresearch/models/gr/authentication.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import binascii
import json
import os
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import TYPE_CHECKING, Any, Self
from pydantic import (
@@ -181,7 +181,7 @@ class GRUser(BaseModel):
team_products = pm.fetch_uuids(team_uuids=team_uuids) if team_uuids else []
products = {p.id: p for p in business_products + team_products}
- self.products = sorted(products.values(), key=lambda x: getattr(x, "created"))
+ self.products = sorted(products.values(), key=lambda x: x.created)
def prefetch_token(self, pg_config: PostgresConfig):
from generalresearch.managers.gr.authentication import (
@@ -283,7 +283,6 @@ class GRUser(BaseModel):
ex=ex_secs,
)
- return None
# --- ORM ---
diff --git a/generalresearch/models/gr/business.py b/generalresearch/models/gr/business.py
index 534b23f..74b5c29 100644
--- a/generalresearch/models/gr/business.py
+++ b/generalresearch/models/gr/business.py
@@ -420,7 +420,7 @@ class Business(BaseModel):
# that is still valid. Don't attempt to build a balance, leave it
# as None rather than all zeros
LOG.warning(f"Business({self.uuid=}).prebuild_balance empty dataframe")
- return None
+ return
LOG.debug(f"Business.prebuild_balance.groupby() {df.head()}")
df = df.groupby("account_id").sum()
@@ -442,13 +442,11 @@ class Business(BaseModel):
order_by=OrderBy.DESC,
)
self.prebuild_payouts_total()
- return None
def prebuild_payouts_total(self):
assert self.payouts is not None
self.payouts_total = USDCent(sum([po.amount for po in self.payouts]))
self.payouts_total_str = self.payouts_total.to_usd_str()
- return None
def prebuild_pop_financial(
self,
@@ -548,7 +546,6 @@ class Business(BaseModel):
except Exception as e:
raise OSError(f"Parquet verification failed: {e}")
- return None
def prebuild_enriched_wall_parquet(
self,
@@ -593,7 +590,6 @@ class Business(BaseModel):
except Exception as e:
raise OSError(f"Parquet verification failed: {e}")
- return None
@classmethod
def required_fields(cls) -> list[str]:
diff --git a/generalresearch/models/gr/team.py b/generalresearch/models/gr/team.py
index 900062f..78a9ba9 100644
--- a/generalresearch/models/gr/team.py
+++ b/generalresearch/models/gr/team.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import json
import os
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from enum import Enum
from pathlib import Path
from typing import TYPE_CHECKING, Self
@@ -194,7 +194,6 @@ class Team(BaseModel):
except Exception as e:
raise OSError(f"Parquet verification failed: {e}")
- return
def prebuild_enriched_wall_parquet(
self,
@@ -239,7 +238,6 @@ class Team(BaseModel):
except Exception as e:
raise OSError(f"Parquet verification failed: {e}")
- return None
@classmethod
def required_fields(cls) -> list[str]:
@@ -325,7 +323,6 @@ class Team(BaseModel):
enriched_wall=enriched_wall,
)
- return
# --- ORM ---
@@ -344,5 +341,5 @@ class Team(BaseModel):
d = {val: json.loads(res[idx]) for idx, val in enumerate(keys)}
return Team.model_validate(d)
- except (Exception,) as e:
+ except Exception:
return None
diff --git a/generalresearch/models/legacy/questions.py b/generalresearch/models/legacy/questions.py
index 8e19e57..4651ab0 100644
--- a/generalresearch/models/legacy/questions.py
+++ b/generalresearch/models/legacy/questions.py
@@ -106,7 +106,6 @@ class UserQuestionAnswerIn(BaseModel):
if self.question_id == user_agent_qid:
val = self.answer[0]
# assert val == request.user_agent.to_header():
- pass
return self
@@ -217,7 +216,6 @@ class UserQuestionAnswers(BaseModel):
# --- Prefetch ---
def prefetch_user(self, um: UserManager) -> None:
- from generalresearch.models.thl.user import User
res: User | None = um.get_user_if_exists(
product_id=self.product_id, product_user_id=self.product_user_id
@@ -230,7 +228,6 @@ class UserQuestionAnswers(BaseModel):
def prefetch_wall(self, wm: WallManager) -> None:
from generalresearch.models import Source
- from generalresearch.models.thl.session import Wall
res: Wall | None = wm.get_from_uuid_if_exists(wall_uuid=self.session_id)
diff --git a/generalresearch/models/network/mtr/execute.py b/generalresearch/models/network/mtr/execute.py
index 953124d..c5b3c5c 100644
--- a/generalresearch/models/network/mtr/execute.py
+++ b/generalresearch/models/network/mtr/execute.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from uuid import uuid4
from generalresearch.models.custom_types import UUIDStr
diff --git a/generalresearch/models/network/nmap/parser.py b/generalresearch/models/network/nmap/parser.py
index 6ad4ab4..ecaf2d1 100644
--- a/generalresearch/models/network/nmap/parser.py
+++ b/generalresearch/models/network/nmap/parser.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import xml.etree.ElementTree as ET
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Any
from generalresearch.models.network.definitions import IPProtocol
diff --git a/generalresearch/models/network/rdns/execute.py b/generalresearch/models/network/rdns/execute.py
index 1d74df2..d6de84b 100644
--- a/generalresearch/models/network/rdns/execute.py
+++ b/generalresearch/models/network/rdns/execute.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from uuid import uuid4
from generalresearch.models.custom_types import UUIDStr
diff --git a/generalresearch/models/spectrum/survey.py b/generalresearch/models/spectrum/survey.py
index aaf182e..f9a5e27 100644
--- a/generalresearch/models/spectrum/survey.py
+++ b/generalresearch/models/spectrum/survey.py
@@ -75,7 +75,7 @@ class SpectrumCondition(MarketplaceCondition):
rs["from"] = round(rs["from"] / 12)
rs["to"] = round(rs["to"] / 12)
d["values"] = [
- "{0}-{1}".format(rs["from"] or "inf", rs["to"] or "inf")
+ f"{rs["from"] or "inf"}-{rs["to"] or "inf"}"
for rs in d["range_sets"]
]
d["value_type"] = ConditionValueType.RANGE
diff --git a/generalresearch/models/string_utils.py b/generalresearch/models/string_utils.py
index d76456f..dff2f4d 100644
--- a/generalresearch/models/string_utils.py
+++ b/generalresearch/models/string_utils.py
@@ -1,5 +1,4 @@
import unicodedata
-from typing import Optional
def remove_nbsp(s: str | None) -> str | None:
diff --git a/generalresearch/models/thl/contest/contest.py b/generalresearch/models/thl/contest/contest.py
index 8c45f13..2a8853d 100644
--- a/generalresearch/models/thl/contest/contest.py
+++ b/generalresearch/models/thl/contest/contest.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import json
from abc import ABC, abstractmethod
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Any, Self
from uuid import uuid4
@@ -167,7 +167,7 @@ class Contest(ContestBase):
ended_at=datetime.now(tz=UTC),
end_reason=reason,
)
- return None
+ return
def model_dump_mysql(self, **kwargs) -> dict[str, Any]:
d = self.model_dump(mode="json", **kwargs)
diff --git a/generalresearch/models/thl/contest/contest_entry.py b/generalresearch/models/thl/contest/contest_entry.py
index 31ef317..bb3aef4 100644
--- a/generalresearch/models/thl/contest/contest_entry.py
+++ b/generalresearch/models/thl/contest/contest_entry.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from uuid import uuid4
from pydantic import (
diff --git a/generalresearch/models/thl/contest/examples.py b/generalresearch/models/thl/contest/examples.py
index 1810e63..018f090 100644
--- a/generalresearch/models/thl/contest/examples.py
+++ b/generalresearch/models/thl/contest/examples.py
@@ -93,7 +93,6 @@ def _example_raffle(schema: dict) -> None:
product_id=EXAMPLE_PRODUCT_ID,
).model_dump(mode="json")
- return None
def _example_raffle_user_view(schema: dict[str, Any]) -> None:
@@ -144,7 +143,6 @@ def _example_raffle_user_view(schema: dict[str, Any]) -> None:
product_user_id="test-user",
).model_dump(mode="json")
- return None
def _example_milestone_create(schema: dict[str, Any]) -> None:
@@ -185,7 +183,6 @@ def _example_milestone_create(schema: dict[str, Any]) -> None:
terms_and_conditions=HttpUrl("https://www.example.com"),
).model_dump(mode="json")
- return None
def _example_milestone(schema: dict[str, Any]) -> None:
@@ -231,7 +228,6 @@ def _example_milestone(schema: dict[str, Any]) -> None:
win_count=12,
).model_dump(mode="json")
- return None
def _example_milestone_user_view(schema: dict[str, Any]) -> None:
@@ -277,7 +273,6 @@ def _example_milestone_user_view(schema: dict[str, Any]) -> None:
product_user_id="test-user",
).model_dump(mode="json")
- return None
def _example_leaderboard_contest_create(schema: dict[str, Any]) -> None:
@@ -322,7 +317,6 @@ def _example_leaderboard_contest_create(schema: dict[str, Any]) -> None:
leaderboard_key=f"leaderboard:{EXAMPLE_PRODUCT_ID}:us:weekly:2025-05-26:complete_count",
).model_dump(mode="json")
- return None
def _example_leaderboard_contest(schema: dict[str, Any]) -> None:
@@ -368,7 +362,6 @@ def _example_leaderboard_contest(schema: dict[str, Any]) -> None:
product_id=EXAMPLE_PRODUCT_ID,
).model_dump(mode="json")
- return None
def _example_leaderboard_contest_user_view(schema: dict[str, Any]) -> None:
diff --git a/generalresearch/models/thl/contest/io.py b/generalresearch/models/thl/contest/io.py
index c6af719..d11080f 100644
--- a/generalresearch/models/thl/contest/io.py
+++ b/generalresearch/models/thl/contest/io.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from uuid import uuid4
from generalresearch.models.thl.contest.definitions import ContestType
diff --git a/generalresearch/models/thl/contest/leaderboard.py b/generalresearch/models/thl/contest/leaderboard.py
index c5e0626..696cdea 100644
--- a/generalresearch/models/thl/contest/leaderboard.py
+++ b/generalresearch/models/thl/contest/leaderboard.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from typing import Any, Literal, Self
from pydantic import (
diff --git a/generalresearch/models/thl/contest/milestone.py b/generalresearch/models/thl/contest/milestone.py
index 8b74d50..8d96fcb 100644
--- a/generalresearch/models/thl/contest/milestone.py
+++ b/generalresearch/models/thl/contest/milestone.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import logging
from datetime import timedelta
-from typing import Any, Literal
+from typing import Any, Literal, Self
from pydantic import (
BaseModel,
@@ -10,7 +10,6 @@ from pydantic import (
Field,
PositiveInt,
)
-from typing import Self
from generalresearch.models.custom_types import AwareDatetimeISO
from generalresearch.models.thl.contest.contest import (
diff --git a/generalresearch/models/thl/contest/raffle.py b/generalresearch/models/thl/contest/raffle.py
index b497a44..08243f4 100644
--- a/generalresearch/models/thl/contest/raffle.py
+++ b/generalresearch/models/thl/contest/raffle.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import logging
import random
from collections import defaultdict
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Any, Literal, Self
from pydantic import (
diff --git a/generalresearch/models/thl/finance.py b/generalresearch/models/thl/finance.py
index a992f78..0856825 100644
--- a/generalresearch/models/thl/finance.py
+++ b/generalresearch/models/thl/finance.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import random
-from datetime import UTC, timezone
+from datetime import UTC
from typing import TYPE_CHECKING
from uuid import uuid4
@@ -28,8 +28,7 @@ payout_example = random.randint(150, 750 * 100)
adjustment_example = random.randint(-1_000, 50 * 100)
if TYPE_CHECKING:
- from generalresearch.managers.thl.product import ProductManager
- from generalresearch.models.thl.ledger import AccountType, Direction, LedgerAccount
+ from generalresearch.models.thl.ledger import LedgerAccount
class AdjustmentType(BaseModel):
diff --git a/generalresearch/models/thl/ipinfo.py b/generalresearch/models/thl/ipinfo.py
index 3f212cf..e327bae 100644
--- a/generalresearch/models/thl/ipinfo.py
+++ b/generalresearch/models/thl/ipinfo.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import ipaddress
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Any, Literal, Self
from faker import Faker
diff --git a/generalresearch/models/thl/ledger_example.py b/generalresearch/models/thl/ledger_example.py
index 92ad83d..0291691 100644
--- a/generalresearch/models/thl/ledger_example.py
+++ b/generalresearch/models/thl/ledger_example.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Any
from uuid import uuid4
diff --git a/generalresearch/models/thl/offerwall/cache.py b/generalresearch/models/thl/offerwall/cache.py
index 82ab36d..97546b2 100644
--- a/generalresearch/models/thl/offerwall/cache.py
+++ b/generalresearch/models/thl/offerwall/cache.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Any
from pydantic import BaseModel, Field
diff --git a/generalresearch/models/thl/payout_format.py b/generalresearch/models/thl/payout_format.py
index a7fc4fb..4d616b6 100644
--- a/generalresearch/models/thl/payout_format.py
+++ b/generalresearch/models/thl/payout_format.py
@@ -45,7 +45,7 @@ def format_payout_format(payout_format: str, payout_int: int) -> str:
try:
xform, formatstr = inside.split(":")
- except ValueError as e:
+ except ValueError:
raise ValueError(
"Payout format string must contain ':' to distinguish between transformations and formatting."
)
@@ -61,17 +61,17 @@ def format_payout_format(payout_format: str, payout_int: int) -> str:
payout = decimal.Decimal(eval(xform, {"payout": payout_int}))
- except NameError as e:
+ except NameError:
raise ValueError("Payout format string must contain 'payout' variable.")
- except ZeroDivisionError as e:
+ except ZeroDivisionError:
raise ValueError("Cannot divide by zero.")
- except TypeError as e:
+ except TypeError:
# "{payout()*1:}" - TypeError: 'int' object is not callable
raise ValueError("Invalid type reference.")
- except Exception as e:
- raise ValueError(f"Invalid payout transformation")
+ except Exception:
+ raise ValueError("Invalid payout transformation")
formatstr = f"{{:{formatstr}}}"
diff --git a/generalresearch/models/thl/product.py b/generalresearch/models/thl/product.py
index 5b7ab9a..76a8e83 100644
--- a/generalresearch/models/thl/product.py
+++ b/generalresearch/models/thl/product.py
@@ -77,7 +77,6 @@ if TYPE_CHECKING:
from generalresearch.models.thl.payout import (
BrokerageProductPayoutEvent,
)
- from generalresearch.models.thl.user import User
# fmt: off
@@ -1088,7 +1087,6 @@ class Product(BaseModel, validate_assignment=True):
from generalresearch.incite.schemas.mergers.pop_ledger import (
numerical_col_names,
)
- from generalresearch.models.thl.ledger import LedgerAccount
account: LedgerAccount = thl_lm.get_account_or_create_bp_wallet(product=self)
assert self.id == account.reference_uuid
diff --git a/generalresearch/models/thl/profiling/marketplace.py b/generalresearch/models/thl/profiling/marketplace.py
index 9038cf6..ad4ce80 100644
--- a/generalresearch/models/thl/profiling/marketplace.py
+++ b/generalresearch/models/thl/profiling/marketplace.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from abc import ABC, abstractmethod
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from functools import cached_property
from typing import Any
diff --git a/generalresearch/models/thl/profiling/upk_question.py b/generalresearch/models/thl/profiling/upk_question.py
index 08ea350..77bba6f 100644
--- a/generalresearch/models/thl/profiling/upk_question.py
+++ b/generalresearch/models/thl/profiling/upk_question.py
@@ -367,7 +367,7 @@ class UpkQuestion(BaseModel):
self.choices is None
), f"No `choices` are allowed for type `{self.type}`"
else:
- assert self.choices is not None, f"`choices` must be set"
+ assert self.choices is not None, "`choices` must be set"
return self
@model_validator(mode="after")
diff --git a/generalresearch/models/thl/profiling/upk_question_answer.py b/generalresearch/models/thl/profiling/upk_question_answer.py
index c59d99d..d8323ad 100644
--- a/generalresearch/models/thl/profiling/upk_question_answer.py
+++ b/generalresearch/models/thl/profiling/upk_question_answer.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Any, Self
from uuid import uuid4
diff --git a/generalresearch/models/thl/profiling/user_question_answer.py b/generalresearch/models/thl/profiling/user_question_answer.py
index a55b205..2db07b7 100644
--- a/generalresearch/models/thl/profiling/user_question_answer.py
+++ b/generalresearch/models/thl/profiling/user_question_answer.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import json
from collections.abc import Iterator
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from typing import Any, Literal, Self
from pydantic import (
diff --git a/generalresearch/models/thl/session.py b/generalresearch/models/thl/session.py
index c8e681c..fe7194a 100644
--- a/generalresearch/models/thl/session.py
+++ b/generalresearch/models/thl/session.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import json
import logging
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from typing import TYPE_CHECKING, Annotated, Any, Self
from uuid import uuid4
diff --git a/generalresearch/models/thl/survey/__init__.py b/generalresearch/models/thl/survey/__init__.py
index bc3d699..6e6b475 100644
--- a/generalresearch/models/thl/survey/__init__.py
+++ b/generalresearch/models/thl/survey/__init__.py
@@ -111,7 +111,6 @@ class MarketplaceTask(BaseModel, ABC):
"""
The Condition Model for this survey class
"""
- pass
@property
@abstractmethod
@@ -119,7 +118,6 @@ class MarketplaceTask(BaseModel, ABC):
"""
The age question ID
"""
- pass
@property
@abstractmethod
@@ -129,7 +127,6 @@ class MarketplaceTask(BaseModel, ABC):
"""
Mapping of generic Gender to the marketplace condition for that gender
"""
- pass
@property
def marketplace_age_groups(
diff --git a/generalresearch/models/thl/survey/buyer.py b/generalresearch/models/thl/survey/buyer.py
index 384bab4..b888007 100644
--- a/generalresearch/models/thl/survey/buyer.py
+++ b/generalresearch/models/thl/survey/buyer.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
from math import log
from typing import Annotated
diff --git a/generalresearch/models/thl/survey/model.py b/generalresearch/models/thl/survey/model.py
index 57bcbe2..2eed8f7 100644
--- a/generalresearch/models/thl/survey/model.py
+++ b/generalresearch/models/thl/survey/model.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
from typing import Annotated, Any
diff --git a/generalresearch/models/thl/survey/penalty.py b/generalresearch/models/thl/survey/penalty.py
index 05153fe..04f8e20 100644
--- a/generalresearch/models/thl/survey/penalty.py
+++ b/generalresearch/models/thl/survey/penalty.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import abc
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Annotated, Literal
from pydantic import BaseModel, ConfigDict, Field, TypeAdapter
diff --git a/generalresearch/models/thl/task_adjustment.py b/generalresearch/models/thl/task_adjustment.py
index 1834898..27c47d4 100644
--- a/generalresearch/models/thl/task_adjustment.py
+++ b/generalresearch/models/thl/task_adjustment.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
from uuid import uuid4
diff --git a/generalresearch/models/thl/user.py b/generalresearch/models/thl/user.py
index 55bbd18..11e0d67 100644
--- a/generalresearch/models/thl/user.py
+++ b/generalresearch/models/thl/user.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import json
import logging
import re
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import TYPE_CHECKING, Annotated, Self
from uuid import UUID, uuid4
diff --git a/generalresearch/models/thl/user_iphistory.py b/generalresearch/models/thl/user_iphistory.py
index 469f8ba..257c41a 100644
--- a/generalresearch/models/thl/user_iphistory.py
+++ b/generalresearch/models/thl/user_iphistory.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import ipaddress
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from typing import Self
from faker import Faker
@@ -204,7 +204,6 @@ class UserIPHistory(BaseModel):
if res.get(x.ip):
x.information = res[x.ip]
- return None
def collapse_ip_records(self):
"""
diff --git a/generalresearch/models/thl/wallet/payout.py b/generalresearch/models/thl/wallet/payout.py
index cbb37fe..42530b3 100644
--- a/generalresearch/models/thl/wallet/payout.py
+++ b/generalresearch/models/thl/wallet/payout.py
@@ -2,7 +2,7 @@ from __future__ import annotations
import json
from collections.abc import Collection
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import Any
from uuid import uuid4
diff --git a/generalresearch/pg_helper.py b/generalresearch/pg_helper.py
index b5e124a..1d5d30b 100644
--- a/generalresearch/pg_helper.py
+++ b/generalresearch/pg_helper.py
@@ -1,12 +1,11 @@
from __future__ import annotations
-from datetime import UTC, timezone
+from datetime import UTC
import psycopg
-from psycopg.adapt import Buffer
from psycopg.rows import RowFactory, dict_row
from psycopg.types.datetime import TimestampLoader
-from psycopg.types.net import Address, InetLoader, Interface
+from psycopg.types.net import InetLoader
from psycopg.types.string import TextLoader
from psycopg.types.uuid import UUIDLoader
from pydantic import PostgresDsn
@@ -103,10 +102,9 @@ class PostgresConfig:
# This is only intended for SELECT queries
assert "SELECT" in query.upper(), "Supports SELECTs only"
- with self.make_connection() as conn:
- with conn.cursor() as c:
- c.execute(query=query, params=params)
- return c.fetchall()
+ with self.make_connection() as conn, conn.cursor() as c:
+ c.execute(query=query, params=params)
+ return c.fetchall()
def execute_write(self, query, params=None) -> int:
cmd = query.lstrip().upper()
diff --git a/generalresearch/schemas/survey_stats.py b/generalresearch/schemas/survey_stats.py
index 0d509e1..b3acf34 100644
--- a/generalresearch/schemas/survey_stats.py
+++ b/generalresearch/schemas/survey_stats.py
@@ -70,7 +70,7 @@ UnitInterval = Column(
SID_CHECKS = [
Check.str_length(min_value=3, max_value=67),
- Check.str_matches("^[a-z]{1,2}\:[A-Za-z0-9]+"),
+ Check.str_matches(r"^[a-z]{1,2}\:[A-Za-z0-9]+"),
Check(
lambda x: len(set(x.str.split(":").str[0])) == 1,
error="the sources must all be the same",
diff --git a/generalresearch/sql_helper.py b/generalresearch/sql_helper.py
index 2bbdbe5..ea45305 100644
--- a/generalresearch/sql_helper.py
+++ b/generalresearch/sql_helper.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import logging
-from typing import Any, Optional
+from typing import Any
from uuid import UUID
from pydantic import MariaDBDsn, MySQLDsn, PostgresDsn
@@ -39,14 +39,7 @@ class SqlConnector:
# I'm intentionally doing a match case here so that we'll make sure
# we can NOT use this on old versions of python 😈
- if "mysql" in self.dsn.scheme:
- import pymysql as engine_module
-
- self.engine_module = engine_module
- self.cursor_class = engine_module.cursors.DictCursor
- self.quote_char = "`"
-
- elif "maria" in self.dsn.scheme:
+ if "mysql" in self.dsn.scheme or "maria" in self.dsn.scheme:
import pymysql as engine_module
self.engine_module = engine_module
@@ -199,7 +192,6 @@ class SqlHelper(SqlConnector):
if cursor is None:
c.connection.commit()
- return None
def bulk_update(
self,
@@ -233,7 +225,7 @@ class SqlHelper(SqlConnector):
if cursor is None:
c.connection.commit()
- return None
+ return
def get_or_create(
self,
@@ -253,7 +245,7 @@ class SqlHelper(SqlConnector):
lookup_fns = ",".join(
["`" + x + "`" for x in set(lookup_dict.keys()) | {primary_key}]
)
- lookup_vals = " AND ".join([f"`{fn}`=%({fn})s" for fn in lookup_dict.keys()])
+ lookup_vals = " AND ".join([f"`{fn}`=%({fn})s" for fn in lookup_dict])
table_name_str = self._quote(table_name)
query = f"SELECT {lookup_fns} FROM {table_name_str} WHERE {lookup_vals} LIMIT 2"
if cursor is None:
@@ -293,7 +285,7 @@ class SqlHelper(SqlConnector):
else:
c = cursor
field_names = ",".join(map(self._quote, create_dict))
- vals = ",".join([f"%({fn})s" for fn in create_dict.keys()])
+ vals = ",".join([f"%({fn})s" for fn in create_dict])
table_name_str = self._quote(table_name)
query = f"INSERT INTO {table_name_str} ({field_names}) VALUES ({vals})"
c.execute(query, create_dict)
@@ -352,4 +344,3 @@ class SqlHelper(SqlConnector):
if cursor is None:
c.connection.commit()
- return None
diff --git a/generalresearch/thl_django/apps.py b/generalresearch/thl_django/apps.py
index 2813947..bd87110 100644
--- a/generalresearch/thl_django/apps.py
+++ b/generalresearch/thl_django/apps.py
@@ -6,11 +6,11 @@ class THLSchemaConfig(AppConfig):
label = "thl_django"
def ready(self):
- from .accounting import models # noqa: F401 # pycharm: keep
- from .common import models # noqa: F401 # pycharm: keep
- from .contest import models # noqa: F401 # pycharm: keep
- from .event import models # noqa: F401 # pycharm: keep
- from .marketplace import models # noqa: F401 # pycharm: keep
- from .network import models # noqa: F401 # pycharm: keep
- from .userhealth import models # noqa: F401 # pycharm: keep
+ from .accounting import models # pycharm: keep
+ from .common import models # pycharm: keep
+ from .contest import models # pycharm: keep
+ from .event import models # pycharm: keep
+ from .marketplace import models # pycharm: keep
+ from .network import models # pycharm: keep
+ from .userhealth import models # pycharm: keep
from .userprofile import models # noqa: F401 # pycharm: keep
diff --git a/generalresearch/thl_django/fields.py b/generalresearch/thl_django/fields.py
index 5e40ef0..251faa5 100644
--- a/generalresearch/thl_django/fields.py
+++ b/generalresearch/thl_django/fields.py
@@ -1,6 +1,7 @@
-from django.db import models
import ipaddress
+from django.db import models
+
class CIDRField(models.Field):
description = "PostgreSQL CIDR network"
diff --git a/generalresearch/thl_django/migrations/0001_initial.py b/generalresearch/thl_django/migrations/0001_initial.py
index ecae35a..cf147e3 100644
--- a/generalresearch/thl_django/migrations/0001_initial.py
+++ b/generalresearch/thl_django/migrations/0001_initial.py
@@ -1,7 +1,8 @@
# Generated by Django 6.0 on 2025-12-26 20:53
-import django.db.models.deletion
import uuid
+
+import django.db.models.deletion
from django.db import migrations, models
diff --git a/generalresearch/thl_django/migrations/0002_surveystat_is_live_alter_surveycategory_strength_and_more.py b/generalresearch/thl_django/migrations/0002_surveystat_is_live_alter_surveycategory_strength_and_more.py
index 211c48a..f767afc 100644
--- a/generalresearch/thl_django/migrations/0002_surveystat_is_live_alter_surveycategory_strength_and_more.py
+++ b/generalresearch/thl_django/migrations/0002_surveystat_is_live_alter_surveycategory_strength_and_more.py
@@ -1,7 +1,7 @@
# Generated by Django 6.0 on 2025-12-28 16:49
-from django.db import migrations, models
from django.contrib.postgres.operations import AddIndexConcurrently
+from django.db import migrations, models
class Migration(migrations.Migration):
diff --git a/generalresearch/thl_django/migrations/0003_remove_surveystat_surveystat_live_survey_idx_and_more.py b/generalresearch/thl_django/migrations/0003_remove_surveystat_surveystat_live_survey_idx_and_more.py
index ecaf0a9..dcf9ef2 100644
--- a/generalresearch/thl_django/migrations/0003_remove_surveystat_surveystat_live_survey_idx_and_more.py
+++ b/generalresearch/thl_django/migrations/0003_remove_surveystat_surveystat_live_survey_idx_and_more.py
@@ -1,10 +1,10 @@
# Generated by Django 6.0 on 2025-12-29 21:22
-from django.db import migrations, models
from django.contrib.postgres.operations import (
AddIndexConcurrently,
RemoveIndexConcurrently,
)
+from django.db import migrations, models
class Migration(migrations.Migration):
diff --git a/generalresearch/thl_django/migrations/0006_remove_thlsession_thl_session_status_d578b7_idx_and_more.py b/generalresearch/thl_django/migrations/0006_remove_thlsession_thl_session_status_d578b7_idx_and_more.py
index e2492ab..64338c8 100644
--- a/generalresearch/thl_django/migrations/0006_remove_thlsession_thl_session_status_d578b7_idx_and_more.py
+++ b/generalresearch/thl_django/migrations/0006_remove_thlsession_thl_session_status_d578b7_idx_and_more.py
@@ -1,7 +1,7 @@
# Generated by Django 6.0 on 2026-01-02 17:38
-from django.db import migrations
from django.contrib.postgres.operations import RemoveIndexConcurrently
+from django.db import migrations
class Migration(migrations.Migration):
diff --git a/generalresearch/thl_django/migrations/0009_toolrun_mtrhop_portscanport_iplabel_mtr_portscan_and_more.py b/generalresearch/thl_django/migrations/0009_toolrun_mtrhop_portscanport_iplabel_mtr_portscan_and_more.py
index e19a353..e8ac2c2 100644
--- a/generalresearch/thl_django/migrations/0009_toolrun_mtrhop_portscanport_iplabel_mtr_portscan_and_more.py
+++ b/generalresearch/thl_django/migrations/0009_toolrun_mtrhop_portscanport_iplabel_mtr_portscan_and_more.py
@@ -1,13 +1,14 @@
# Generated by Django 6.0 on 2026-03-15 20:17
+import uuid
+
import django.contrib.postgres.indexes
import django.db.models.deletion
import django.utils.timezone
from django.contrib.postgres.operations import CreateExtension
+from django.db import migrations, models
import generalresearch.thl_django.fields
-import uuid
-from django.db import migrations, models
class Migration(migrations.Migration):
diff --git a/generalresearch/thl_django/network/models.py b/generalresearch/thl_django/network/models.py
index 167af02..733c0ab 100644
--- a/generalresearch/thl_django/network/models.py
+++ b/generalresearch/thl_django/network/models.py
@@ -1,12 +1,11 @@
from uuid import uuid4
-from django.utils import timezone
-from django.contrib.postgres.indexes import GistIndex, GinIndex
+from django.contrib.postgres.indexes import GinIndex, GistIndex
from django.db import models
+from django.utils import timezone
from generalresearch.thl_django.fields import CIDRField
-
#######
# ** Signals **
# ToolRun
diff --git a/generalresearch/utils/enum.py b/generalresearch/utils/enum.py
index e59a383..b4620b3 100644
--- a/generalresearch/utils/enum.py
+++ b/generalresearch/utils/enum.py
@@ -19,7 +19,7 @@ class ReprEnumMeta(EnumMeta):
[f" - __{e.value}__ *({e.name})*: {descriptions[e.name]}" for e in self]
)
else:
- return f"\nAllowed values: \n" + "\n".join(
+ return "\nAllowed values: \n" + "\n".join(
[f" - __{e.value}__ *({e.name})*: {descriptions[e.name]}" for e in self]
)
@@ -35,7 +35,7 @@ class ReprEnumMeta(EnumMeta):
[f" - __{e.name}__: {descriptions[e.name]}" for e in self]
)
else:
- return f"\nAllowed values: \n" + "\n".join(
+ return "\nAllowed values: \n" + "\n".join(
[f" - __{e.name}__: {descriptions[e.name]}" for e in self]
)
diff --git a/generalresearch/wall_status_codes/lucid.py b/generalresearch/wall_status_codes/lucid.py
index 05b75fb..3cc1b5e 100644
--- a/generalresearch/wall_status_codes/lucid.py
+++ b/generalresearch/wall_status_codes/lucid.py
@@ -61,7 +61,7 @@ client_status_map: dict[str, StatusCode1] = {
"35": StatusCode1.BUYER_QUALITY_FAIL,
}
-status_map = defaultdict(lambda: Status.FAIL, **{"s": Status.COMPLETE})
+status_map = defaultdict(lambda: Status.FAIL, s=Status.COMPLETE)
status_codes_ext_map: dict[StatusCode1, list[str]] = {
StatusCode1.COMPLETE: [],
StatusCode1.BUYER_FAIL: ["3"],
diff --git a/generalresearch/wall_status_codes/morning.py b/generalresearch/wall_status_codes/morning.py
index bac9669..ffa6be2 100644
--- a/generalresearch/wall_status_codes/morning.py
+++ b/generalresearch/wall_status_codes/morning.py
@@ -52,7 +52,7 @@ short_code_to_status_codes_morning: dict[str, str] = {
"sur_tim": "survey_timeout",
"tem_ban": "temporarily_banned",
}
-status_map = defaultdict(lambda: Status.FAIL, **{"complete": Status.COMPLETE})
+status_map = defaultdict(lambda: Status.FAIL, complete=Status.COMPLETE)
status_codes_ext_map: dict[StatusCode1, list[str]] = {
StatusCode1.COMPLETE: ["complete"],
diff --git a/generalresearch/wall_status_codes/pollfish.py b/generalresearch/wall_status_codes/pollfish.py
index 1ae732d..a5c6e25 100644
--- a/generalresearch/wall_status_codes/pollfish.py
+++ b/generalresearch/wall_status_codes/pollfish.py
@@ -28,7 +28,7 @@ status_codes_map: dict[str, str] = {
"su_al_ta": "survey_already_taken",
"complete": "complete",
}
-status_map = defaultdict(lambda: Status.FAIL, **{"complete": Status.COMPLETE})
+status_map = defaultdict(lambda: Status.FAIL, complete=Status.COMPLETE)
status_codes_ext_map: dict[StatusCode1, list[str]] = {
StatusCode1.COMPLETE: ["complete"],
StatusCode1.BUYER_FAIL: ["third_party_termination", "screenout"],
diff --git a/generalresearch/wall_status_codes/precision.py b/generalresearch/wall_status_codes/precision.py
index b033cf2..c7593cf 100644
--- a/generalresearch/wall_status_codes/precision.py
+++ b/generalresearch/wall_status_codes/precision.py
@@ -45,7 +45,7 @@ status_codes_precision: dict[str, str] = {
"60": "Client Reject",
"80": "Final Complete",
}
-status_map = defaultdict(lambda: Status.FAIL, **{"s": Status.COMPLETE})
+status_map = defaultdict(lambda: Status.FAIL, s=Status.COMPLETE)
status_codes_ext_map: dict[StatusCode1, list[str]] = {
StatusCode1.COMPLETE: ["10"],
StatusCode1.BUYER_FAIL: ["20", "30"],
diff --git a/generalresearch/wall_status_codes/repdata.py b/generalresearch/wall_status_codes/repdata.py
index ad64338..24aab14 100644
--- a/generalresearch/wall_status_codes/repdata.py
+++ b/generalresearch/wall_status_codes/repdata.py
@@ -46,7 +46,7 @@ rd_threat_name: dict[str, str] = {
"18": "MaxMind Failure",
}
-status_map = defaultdict(lambda: Status.FAIL, **{"complete": Status.COMPLETE})
+status_map = defaultdict(lambda: Status.FAIL, complete=Status.COMPLETE)
status_code_map: dict[StatusCode1, list[str]] = {
StatusCode1.COMPLETE: ["1000"],
StatusCode1.BUYER_FAIL: ["2000", "4000"],
diff --git a/test_utils/conftest.py b/test_utils/conftest.py
index ffe458c..03e9305 100644
--- a/test_utils/conftest.py
+++ b/test_utils/conftest.py
@@ -5,9 +5,8 @@ import shutil
import stat
import subprocess
import sys
-import tempfile
from collections.abc import Callable, Generator
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from os.path import join as pjoin
from pathlib import Path
from uuid import uuid4
diff --git a/test_utils/grliq/conftest.py b/test_utils/grliq/conftest.py
index 7665b52..9a3bc56 100644
--- a/test_utils/grliq/conftest.py
+++ b/test_utils/grliq/conftest.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Callable
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from uuid import uuid4
import pytest
diff --git a/test_utils/incite/conftest.py b/test_utils/incite/conftest.py
index 87ea7ae..2968d18 100644
--- a/test_utils/incite/conftest.py
+++ b/test_utils/incite/conftest.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Callable
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from os.path import join as pjoin
from pathlib import Path
from random import choice as randchoice
diff --git a/test_utils/managers/conftest.py b/test_utils/managers/conftest.py
index 4dacb29..2a9ea00 100644
--- a/test_utils/managers/conftest.py
+++ b/test_utils/managers/conftest.py
@@ -20,14 +20,12 @@ from generalresearch.managers.thl.ipinfo import (
IPGeonameManager,
IPInformationManager,
)
-from generalresearch.managers.thl.profiling.uqa import UQAManager
from generalresearch.managers.thl.userhealth import (
AuditLogManager,
IPRecordManager,
UserIpHistoryManager,
)
from generalresearch.models import Source
-from generalresearch.models.thl.user import User
from generalresearch.pg_helper import PostgresConfig
from generalresearch.redis_helper import RedisConfig
from generalresearch.sql_helper import SqlHelper
diff --git a/test_utils/models/conftest.py b/test_utils/models/conftest.py
index 3a9e45c..5570b40 100644
--- a/test_utils/models/conftest.py
+++ b/test_utils/models/conftest.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Callable
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from random import choice as randchoice
from random import randint
@@ -19,17 +19,15 @@ from generalresearch.models.thl.definitions import (
)
from generalresearch.models.thl.survey.model import Buyer, Survey
from generalresearch.pg_helper import PostgresConfig
-from generalresearch.redis_helper import RedisConfig
if TYPE_CHECKING:
from generalresearch.currency import USDCent
- from generalresearch.managers.gr.authentication import GRTokenManager, GRUserManager
from generalresearch.managers.gr.business import (
BusinessAddressManager,
BusinessBankAccountManager,
BusinessManager,
)
- from generalresearch.managers.gr.team import MembershipManager, TeamManager
+ from generalresearch.managers.gr.team import TeamManager
from generalresearch.managers.thl.buyer import BuyerManager
from generalresearch.managers.thl.ipinfo import (
IPGeonameManager,
@@ -45,13 +43,12 @@ if TYPE_CHECKING:
from generalresearch.managers.thl.user_manager.user_manager import UserManager
from generalresearch.managers.thl.userhealth import AuditLogManager, IPRecordManager
from generalresearch.managers.thl.wall import WallManager
- from generalresearch.models.gr.authentication import GRToken, GRUser
from generalresearch.models.gr.business import (
Business,
BusinessAddress,
BusinessBankAccount,
)
- from generalresearch.models.gr.team import Membership, Team
+ from generalresearch.models.gr.team import Team
from generalresearch.models.thl.ipinfo import IPGeoname, IPInformation
from generalresearch.models.thl.payout import (
BrokerageProductPayoutEvent,
diff --git a/test_utils/models/contest/conftest.py b/test_utils/models/contest/conftest.py
index 0060946..b14e126 100644
--- a/test_utils/models/contest/conftest.py
+++ b/test_utils/models/contest/conftest.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Callable
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
from uuid import uuid4
diff --git a/test_utils/models/network/conftest.py b/test_utils/models/network/conftest.py
index cabd8dc..6ba37a3 100644
--- a/test_utils/models/network/conftest.py
+++ b/test_utils/models/network/conftest.py
@@ -1,5 +1,5 @@
import os
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from uuid import uuid4
import pytest
diff --git a/test_utils/models/thl/conftest.py b/test_utils/models/thl/conftest.py
index a2adcce..5b21c6b 100644
--- a/test_utils/models/thl/conftest.py
+++ b/test_utils/models/thl/conftest.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Callable
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import ROUND_DOWN, Decimal
from random import choice as rand_choice
from random import choice as rchoice
diff --git a/test_utils/spectrum/conftest.py b/test_utils/spectrum/conftest.py
index 9c067d3..eb2e289 100644
--- a/test_utils/spectrum/conftest.py
+++ b/test_utils/spectrum/conftest.py
@@ -1,6 +1,6 @@
import logging
import time
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import TYPE_CHECKING
import pytest
diff --git a/tests/incite/collections/test_df_collection_base.py b/tests/incite/collections/test_df_collection_base.py
index c3c64e4..176bf4b 100644
--- a/tests/incite/collections/test_df_collection_base.py
+++ b/tests/incite/collections/test_df_collection_base.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import TYPE_CHECKING
import pandas as pd
@@ -9,7 +9,6 @@ from generalresearch.incite.collections import (
DFCollection,
DFCollectionType,
)
-from test_utils.incite.conftest import mnt_filepath
if TYPE_CHECKING:
from generalresearch.incite.base import GRLDatasets
diff --git a/tests/incite/collections/test_df_collection_item_base.py b/tests/incite/collections/test_df_collection_item_base.py
index 8cf719d..0218f30 100644
--- a/tests/incite/collections/test_df_collection_item_base.py
+++ b/tests/incite/collections/test_df_collection_item_base.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from typing import TYPE_CHECKING
import pytest
diff --git a/tests/incite/collections/test_df_collection_item_thl_web.py b/tests/incite/collections/test_df_collection_item_thl_web.py
index 062171d..3d70e56 100644
--- a/tests/incite/collections/test_df_collection_item_thl_web.py
+++ b/tests/incite/collections/test_df_collection_item_thl_web.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from collections.abc import Callable, Generator
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from itertools import product as iter_product
from os.path import join as pjoin
from pathlib import Path, PurePath
@@ -236,7 +236,6 @@ class TestDFCollectionItemMethod:
incite_item_factory,
delete_df_collection,
):
- from generalresearch.models.thl.user import User
if df_collection.data_type in unsupported_mock_types:
return
@@ -280,7 +279,6 @@ class TestDFCollectionItemMethod:
incite_item_factory,
delete_df_collection,
):
- from generalresearch.models.thl.user import User
if df_collection.data_type in unsupported_mock_types:
return
@@ -333,7 +331,6 @@ class TestDFCollectionItemMethod:
delete_df_collection,
mnt_filepath,
):
- from generalresearch.models.thl.user import User
if df_collection.data_type != DFCollectionType.LEDGER:
return
@@ -385,7 +382,6 @@ class TestDFCollectionItemMethod:
delete_df_collection,
mnt_filepath,
):
- from generalresearch.models.thl.user import User
if df_collection.data_type in unsupported_mock_types:
return
@@ -766,7 +762,6 @@ class TestDFCollectionItemFunctionalTest:
delete_df_collection,
mnt_filepath: GRLDatasets,
):
- from generalresearch.models.thl.user import User
if df_collection.data_type in unsupported_mock_types:
return
@@ -828,7 +823,6 @@ class TestDFCollectionItemFunctionalTest:
import pyarrow.parquet as pq
- from generalresearch.models.thl.user import User
if df_collection.data_type in unsupported_mock_types:
return
@@ -864,7 +858,6 @@ class TestDFCollectionItemFunctionalTest:
delete_df_collection,
mnt_filepath: GRLDatasets,
):
- from generalresearch.models.thl.user import User
delete_df_collection(coll=df_collection)
df_collection._client = client_no_amm
@@ -920,7 +913,6 @@ class TestDFCollectionItemFunctionalTest:
"""Don't allow creating an archive for data that will likely be
overwritten or updated
"""
- from generalresearch.models.thl.user import User
if df_collection.data_type in unsupported_mock_types:
return
@@ -987,7 +979,6 @@ class TestDFCollectionItemFunctionalTest:
duration: timedelta,
mnt_filepath,
):
- from generalresearch.models.thl.user import User
delete_df_collection(coll=df_collection)
df_collection._client = client_no_amm
diff --git a/tests/incite/collections/test_df_collection_thl_marketplaces.py b/tests/incite/collections/test_df_collection_thl_marketplaces.py
index 2597d38..d2d3ce4 100644
--- a/tests/incite/collections/test_df_collection_thl_marketplaces.py
+++ b/tests/incite/collections/test_df_collection_thl_marketplaces.py
@@ -1,6 +1,5 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from itertools import product
-from typing import TYPE_CHECKING
import pytest
from pandera.pandas import Column, DataFrameSchema, Index
@@ -12,10 +11,6 @@ from generalresearch.incite.collections.thl_marketplaces import (
SagoSurveyHistoryCollection,
SpectrumSurveyTimeseriesCollection,
)
-from test_utils.incite.conftest import mnt_filepath
-
-if TYPE_CHECKING:
- from generalresearch.incite.base import GRLDatasets
def combo_object():
diff --git a/tests/incite/collections/test_df_collection_thl_web.py b/tests/incite/collections/test_df_collection_thl_web.py
index 2cb0ba0..bcdeb83 100644
--- a/tests/incite/collections/test_df_collection_thl_web.py
+++ b/tests/incite/collections/test_df_collection_thl_web.py
@@ -13,9 +13,7 @@ from pandera.pandas import DataFrameSchema
from generalresearch.incite.collections import DFCollection, DFCollectionType
if TYPE_CHECKING:
- from generalresearch.incite.base import GRLDatasets
from generalresearch.incite.collections import (
- DFCollectionItem,
DFCollectionType,
)
diff --git a/tests/incite/mergers/foundations/test_enriched_session.py b/tests/incite/mergers/foundations/test_enriched_session.py
index a0ae01e..ba11725 100644
--- a/tests/incite/mergers/foundations/test_enriched_session.py
+++ b/tests/incite/mergers/foundations/test_enriched_session.py
@@ -1,7 +1,6 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from itertools import product
-from typing import Optional
import dask.dataframe as dd
import pandas as pd
@@ -11,10 +10,6 @@ from generalresearch.incite.schemas.admin_responses import (
AdminPOPSessionSchema,
)
from generalresearch.pg_helper import PostgresConfig
-from test_utils.incite.collections.conftest import (
- session_collection,
- wall_collection,
-)
@pytest.mark.parametrize(
diff --git a/tests/incite/mergers/foundations/test_enriched_task_adjust.py b/tests/incite/mergers/foundations/test_enriched_task_adjust.py
index 96c214f..8c3a647 100644
--- a/tests/incite/mergers/foundations/test_enriched_task_adjust.py
+++ b/tests/incite/mergers/foundations/test_enriched_task_adjust.py
@@ -5,13 +5,6 @@ import dask.dataframe as dd
import pandas as pd
import pytest
-from test_utils.incite.collections.conftest import (
- wall_collection,
- task_adj_collection,
- session_collection,
-)
-from test_utils.incite.mergers.conftest import enriched_wall_merge
-
@pytest.mark.parametrize(
argnames="offset, duration,",
diff --git a/tests/incite/mergers/foundations/test_enriched_wall.py b/tests/incite/mergers/foundations/test_enriched_wall.py
index b421df8..0e28bce 100644
--- a/tests/incite/mergers/foundations/test_enriched_wall.py
+++ b/tests/incite/mergers/foundations/test_enriched_wall.py
@@ -1,34 +1,15 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from itertools import product as iter_product
-from typing import Optional
import dask.dataframe as dd
import pandas as pd
import pytest
# noinspection PyUnresolvedReferences
-from distributed.utils_test import (
- cleanup,
- client,
- client_no_amm,
- cluster_fixture,
- gen_cluster,
- loop,
- loop_in_thread,
-)
-
from generalresearch.incite.mergers.foundations.enriched_wall import (
EnrichedWallMergeItem,
)
-from test_utils.incite.collections.conftest import (
- session_collection,
- wall_collection,
-)
-from test_utils.incite.conftest import incite_item_factory
-from test_utils.incite.mergers.conftest import (
- enriched_wall_merge,
-)
@pytest.mark.parametrize(
@@ -118,7 +99,7 @@ class TestEnrichedWall:
try:
modified_time1 = path.stat().st_mtime
- except (Exception,):
+ except Exception:
modified_time1 = 0
item.build(
diff --git a/tests/incite/mergers/foundations/test_user_id_product.py b/tests/incite/mergers/foundations/test_user_id_product.py
index a696b45..10802e5 100644
--- a/tests/incite/mergers/foundations/test_user_id_product.py
+++ b/tests/incite/mergers/foundations/test_user_id_product.py
@@ -1,24 +1,13 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from itertools import product
import pandas as pd
import pytest
# noinspection PyUnresolvedReferences
-from distributed.utils_test import (
- cleanup,
- client,
- client_no_amm,
- cluster_fixture,
- gen_cluster,
- loop,
- loop_in_thread,
-)
-
from generalresearch.incite.mergers.foundations.user_id_product import (
UserIdProductMergeItem,
)
-from test_utils.incite.mergers.conftest import user_id_product_merge
@pytest.mark.parametrize(
@@ -51,7 +40,7 @@ class TestUserIDProduct:
try:
modified_time1 = path.stat().st_mtime
- except (Exception,):
+ except Exception:
modified_time1 = 0
user_id_product_merge.build(client=client_no_amm, user_coll=user_collection)
diff --git a/tests/incite/mergers/test_merge_collection.py b/tests/incite/mergers/test_merge_collection.py
index 77fa8c7..15fa4db 100644
--- a/tests/incite/mergers/test_merge_collection.py
+++ b/tests/incite/mergers/test_merge_collection.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from itertools import product
import pandas as pd
@@ -9,7 +9,6 @@ from generalresearch.incite.mergers import (
MergeCollection,
MergeType,
)
-from test_utils.incite.conftest import mnt_filepath
merge_types = list(e for e in MergeType if e != MergeType.TEST)
diff --git a/tests/incite/mergers/test_merge_collection_item.py b/tests/incite/mergers/test_merge_collection_item.py
index 96f8789..3d0b644 100644
--- a/tests/incite/mergers/test_merge_collection_item.py
+++ b/tests/incite/mergers/test_merge_collection_item.py
@@ -1,17 +1,10 @@
-from datetime import datetime, timezone, timedelta
+from datetime import timedelta
from itertools import product
from pathlib import PurePath
import pytest
from generalresearch.incite.mergers import MergeCollectionItem, MergeType
-from generalresearch.incite.mergers.foundations.enriched_session import (
- EnrichedSessionMerge,
-)
-from generalresearch.incite.mergers.foundations.enriched_wall import (
- EnrichedWallMerge,
-)
-from test_utils.incite.mergers.conftest import merge_collection
@pytest.mark.parametrize(
diff --git a/tests/incite/mergers/test_pop_ledger.py b/tests/incite/mergers/test_pop_ledger.py
index 7583faf..dc01179 100644
--- a/tests/incite/mergers/test_pop_ledger.py
+++ b/tests/incite/mergers/test_pop_ledger.py
@@ -1,18 +1,12 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from itertools import product as iter_product
-from typing import Optional
import pandas as pd
import pytest
-from distributed.utils_test import client_no_amm
from generalresearch.incite.schemas.mergers.pop_ledger import (
numerical_col_names,
)
-from test_utils.incite.collections.conftest import ledger_collection
-from test_utils.incite.conftest import incite_item_factory, mnt_filepath
-from test_utils.incite.mergers.conftest import pop_ledger_merge
-from test_utils.managers.ledger.conftest import create_main_accounts
@pytest.mark.parametrize(
diff --git a/tests/incite/mergers/test_ym_survey_merge.py b/tests/incite/mergers/test_ym_survey_merge.py
index 9107f21..850df8a 100644
--- a/tests/incite/mergers/test_ym_survey_merge.py
+++ b/tests/incite/mergers/test_ym_survey_merge.py
@@ -1,25 +1,10 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from itertools import product
import pandas as pd
import pytest
# noinspection PyUnresolvedReferences
-from distributed.utils_test import (
- cleanup,
- client,
- client_no_amm,
- cluster_fixture,
- gen_cluster,
- loop,
- loop_in_thread,
-)
-
-from test_utils.incite.collections.conftest import session_collection, wall_collection
-from test_utils.incite.mergers.conftest import (
- enriched_session_merge,
- ym_survey_wall_merge,
-)
@pytest.mark.parametrize(
diff --git a/tests/incite/test_collection_base.py b/tests/incite/test_collection_base.py
index 5a63019..7e1577a 100644
--- a/tests/incite/test_collection_base.py
+++ b/tests/incite/test_collection_base.py
@@ -10,7 +10,6 @@ import pytest
from _pytest._code.code import ExceptionInfo
from generalresearch.incite.base import CollectionBase
-from test_utils.incite.conftest import mnt_filepath
AGO_15min = (datetime.now(tz=UTC) - timedelta(minutes=15)).replace(microsecond=0)
AGO_1HR = (datetime.now(tz=UTC) - timedelta(hours=1)).replace(microsecond=0)
@@ -108,7 +107,7 @@ class TestCollectionBase:
with pytest.raises(expected_exception=ValueError) as cm:
cm: ExceptionInfo
- CollectionBase(offset=f"59sec", archive_path=mnt_filepath.data_src)
+ CollectionBase(offset="59sec", archive_path=mnt_filepath.data_src)
assert "Must be equal to, or longer than 1 min" in str(cm.value)
with pytest.raises(expected_exception=ValueError) as cm:
diff --git a/tests/incite/test_collection_base_item.py b/tests/incite/test_collection_base_item.py
index 3f4d023..7a0a581 100644
--- a/tests/incite/test_collection_base_item.py
+++ b/tests/incite/test_collection_base_item.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from os.path import join as pjoin
from pathlib import Path
from uuid import uuid4
diff --git a/tests/incite/test_grl_flow.py b/tests/incite/test_grl_flow.py
index c632f9a..6aea182 100644
--- a/tests/incite/test_grl_flow.py
+++ b/tests/incite/test_grl_flow.py
@@ -1,15 +1,16 @@
class TestGRLFlow:
def test_init(self, mnt_filepath, thl_web_rr):
+ from generalresearch.incite.collections.thl_web import (
+ LedgerDFCollection,
+ TaskAdjustmentDFCollection,
+ )
from generalresearch.incite.defaults import (
ledger_df_collection,
task_df_collection,
- pop_ledger as plm,
)
-
- from generalresearch.incite.collections.thl_web import (
- LedgerDFCollection,
- TaskAdjustmentDFCollection,
+ from generalresearch.incite.defaults import (
+ pop_ledger as plm,
)
from generalresearch.incite.mergers.pop_ledger import PopLedgerMerge
diff --git a/tests/incite/test_interval_idx.py b/tests/incite/test_interval_idx.py
index ea2bced..3034c21 100644
--- a/tests/incite/test_interval_idx.py
+++ b/tests/incite/test_interval_idx.py
@@ -1,5 +1,6 @@
+from datetime import datetime
+
import pandas as pd
-from datetime import datetime, timezone, timedelta
class TestIntervalIndex:
diff --git a/tests/managers/gr/test_authentication.py b/tests/managers/gr/test_authentication.py
index 53b6931..b9f43a6 100644
--- a/tests/managers/gr/test_authentication.py
+++ b/tests/managers/gr/test_authentication.py
@@ -1,11 +1,9 @@
import logging
-from random import randint
from uuid import uuid4
import pytest
from generalresearch.models.gr.authentication import GRUser
-from test_utils.models.conftest import gr_user
SSO_ISSUER = ""
@@ -13,7 +11,6 @@ SSO_ISSUER = ""
class TestGRUserManager:
def test_create(self, gr_um):
- from generalresearch.models.gr.authentication import GRUser
user: GRUser = gr_um.create_dummy()
instance = gr_um.get_by_id(user.id)
diff --git a/tests/managers/gr/test_business.py b/tests/managers/gr/test_business.py
index 7eb77f8..74a5450 100644
--- a/tests/managers/gr/test_business.py
+++ b/tests/managers/gr/test_business.py
@@ -2,8 +2,6 @@ from uuid import uuid4
import pytest
-from test_utils.models.conftest import business
-
class TestBusinessBankAccountManager:
@@ -12,8 +10,8 @@ class TestBusinessBankAccountManager:
def test_create(self, business, business_bank_account_manager):
from generalresearch.models.gr.business import (
- TransferMethod,
BusinessBankAccount,
+ TransferMethod,
)
instance = business_bank_account_manager.create(
diff --git a/tests/managers/gr/test_team.py b/tests/managers/gr/test_team.py
index 9215da4..0918ab8 100644
--- a/tests/managers/gr/test_team.py
+++ b/tests/managers/gr/test_team.py
@@ -1,7 +1,5 @@
from uuid import uuid4
-from test_utils.models.conftest import team
-
class TestMembershipManager:
diff --git a/tests/managers/leaderboard.py b/tests/managers/leaderboard.py
index 149bdbb..7773030 100644
--- a/tests/managers/leaderboard.py
+++ b/tests/managers/leaderboard.py
@@ -1,7 +1,7 @@
import os
import time
import zoneinfo
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
from uuid import uuid4
diff --git a/tests/managers/network/test_label.py b/tests/managers/network/test_label.py
index 5b9a790..bfc7518 100644
--- a/tests/managers/network/test_label.py
+++ b/tests/managers/network/test_label.py
@@ -9,8 +9,8 @@ from generalresearch.managers.network.label import IPLabelManager
from generalresearch.models.network.label import (
IPLabel,
IPLabelKind,
- IPLabelSource,
IPLabelMetadata,
+ IPLabelSource,
)
from generalresearch.models.thl.ipinfo import normalize_ip
diff --git a/tests/managers/test_events.py b/tests/managers/test_events.py
index 6941c00..cc9a1bf 100644
--- a/tests/managers/test_events.py
+++ b/tests/managers/test_events.py
@@ -1,11 +1,10 @@
import math
import random
import time
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from functools import partial
from math import floor
-from typing import Optional
from uuid import uuid4
import pytest
@@ -384,7 +383,7 @@ class TestTaskStatsManager:
"task_created_count_last_24h": AggregateBySource(total=0),
}
event_manager.set_source_task_stats(
- source=Source.TESTING, live_task_count=0, live_tasks_max_payout=Decimal("0")
+ source=Source.TESTING, live_task_count=0, live_tasks_max_payout=Decimal(0)
)
assert event_manager.get_task_stats_raw() == {
"live_task_count": AggregateBySource(
@@ -400,7 +399,7 @@ class TestTaskStatsManager:
event_manager.set_source_task_stats(
source=Source.TESTING,
live_task_count=0,
- live_tasks_max_payout=Decimal("0"),
+ live_tasks_max_payout=Decimal(0),
created_count=10,
)
res = event_manager.get_task_stats_raw()
@@ -414,7 +413,7 @@ class TestTaskStatsManager:
event_manager.set_source_task_stats(
source=Source.TESTING,
live_task_count=0,
- live_tasks_max_payout=Decimal("0"),
+ live_tasks_max_payout=Decimal(0),
created_count=10,
)
res = event_manager.get_task_stats_raw()
@@ -428,7 +427,7 @@ class TestTaskStatsManager:
event_manager.set_source_task_stats(
source=Source.TESTING2,
live_task_count=0,
- live_tasks_max_payout=Decimal("0"),
+ live_tasks_max_payout=Decimal(0),
created_count=1,
)
res = event_manager.get_task_stats_raw()
@@ -481,7 +480,7 @@ class TestChannelsSubscriptions:
wall = Wall(
req_survey_id="a",
- req_cpi=Decimal("1"),
+ req_cpi=Decimal(1),
source=Source.TESTING,
session_id=session.id,
user_id=user.user_id,
@@ -497,7 +496,7 @@ class TestChannelsSubscriptions:
status=Status.COMPLETE,
status_code_1=StatusCode1.COMPLETE,
finished=datetime.now(tz=UTC),
- cpi=Decimal("1"),
+ cpi=Decimal(1),
)
event_manager.handle_task_finish(wall, session, user)
msg = event_subscriber.get_next_message()
diff --git a/tests/managers/test_userpid.py b/tests/managers/test_userpid.py
index 4a3f699..36c2de9 100644
--- a/tests/managers/test_userpid.py
+++ b/tests/managers/test_userpid.py
@@ -1,11 +1,10 @@
import pytest
from pydantic import MySQLDsn
-from generalresearch.managers.marketplace.user_pid import UserPidMultiManager
-from generalresearch.sql_helper import SqlHelper
from generalresearch.managers.cint.user_pid import CintUserPidManager
from generalresearch.managers.dynata.user_pid import DynataUserPidManager
from generalresearch.managers.innovate.user_pid import InnovateUserPidManager
+from generalresearch.managers.marketplace.user_pid import UserPidMultiManager
from generalresearch.managers.morning.user_pid import MorningUserPidManager
# from generalresearch.managers.precision import PrecisionUserPidManager
@@ -13,6 +12,7 @@ from generalresearch.managers.prodege.user_pid import ProdegeUserPidManager
from generalresearch.managers.repdata.user_pid import RepdataUserPidManager
from generalresearch.managers.sago.user_pid import SagoUserPidManager
from generalresearch.managers.spectrum.user_pid import SpectrumUserPidManager
+from generalresearch.sql_helper import SqlHelper
dsn = ""
diff --git a/tests/managers/thl/test_contest/test_leaderboard.py b/tests/managers/thl/test_contest/test_leaderboard.py
index 1a52f83..7adea9c 100644
--- a/tests/managers/thl/test_contest/test_leaderboard.py
+++ b/tests/managers/thl/test_contest/test_leaderboard.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from zoneinfo import ZoneInfo
from generalresearch.currency import USDCent
@@ -12,12 +12,6 @@ from generalresearch.models.thl.contest.leaderboard import (
)
from generalresearch.models.thl.product import Product
from generalresearch.models.thl.user import User
-from test_utils.managers.contest.conftest import (
- leaderboard_contest_create as contest_create,
-)
-from test_utils.managers.contest.conftest import (
- leaderboard_contest_in_db as contest_in_db,
-)
class TestLeaderboardContestCRUD:
diff --git a/tests/managers/thl/test_contest/test_milestone.py b/tests/managers/thl/test_contest/test_milestone.py
index 66c5dc4..ed0bbb5 100644
--- a/tests/managers/thl/test_contest/test_milestone.py
+++ b/tests/managers/thl/test_contest/test_milestone.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from generalresearch.models.thl.contest.definitions import (
ContestEndReason,
@@ -12,18 +12,6 @@ from generalresearch.models.thl.contest.milestone import (
)
from generalresearch.models.thl.product import Product
from generalresearch.models.thl.user import User
-from test_utils.managers.contest.conftest import (
- milestone_contest as contest,
-)
-from test_utils.managers.contest.conftest import (
- milestone_contest_create as contest_create,
-)
-from test_utils.managers.contest.conftest import (
- milestone_contest_factory as contest_factory,
-)
-from test_utils.managers.contest.conftest import (
- milestone_contest_in_db as contest_in_db,
-)
class TestMilestoneContest:
diff --git a/tests/managers/thl/test_contest/test_raffle.py b/tests/managers/thl/test_contest/test_raffle.py
index 5804ea3..736a5e9 100644
--- a/tests/managers/thl/test_contest/test_raffle.py
+++ b/tests/managers/thl/test_contest/test_raffle.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
import pytest
from pydantic import ValidationError
@@ -28,18 +28,6 @@ from generalresearch.models.thl.contest.raffle import (
)
from generalresearch.models.thl.product import Product
from generalresearch.models.thl.user import User
-from test_utils.managers.contest.conftest import (
- raffle_contest as contest,
-)
-from test_utils.managers.contest.conftest import (
- raffle_contest_create as contest_create,
-)
-from test_utils.managers.contest.conftest import (
- raffle_contest_factory as contest_factory,
-)
-from test_utils.managers.contest.conftest import (
- raffle_contest_in_db as contest_in_db,
-)
class TestRaffleContest:
diff --git a/tests/managers/thl/test_harmonized_uqa.py b/tests/managers/thl/test_harmonized_uqa.py
index 3b6df48..81ac080 100644
--- a/tests/managers/thl/test_harmonized_uqa.py
+++ b/tests/managers/thl/test_harmonized_uqa.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
import pytest
diff --git a/tests/managers/thl/test_ipinfo.py b/tests/managers/thl/test_ipinfo.py
index 847b00c..61d4d19 100644
--- a/tests/managers/thl/test_ipinfo.py
+++ b/tests/managers/thl/test_ipinfo.py
@@ -1,9 +1,9 @@
import faker
from generalresearch.managers.thl.ipinfo import (
+ GeoIpInfoManager,
IPGeonameManager,
IPInformationManager,
- GeoIpInfoManager,
)
from generalresearch.models.thl.ipinfo import IPGeoname, IPInformation
diff --git a/tests/managers/thl/test_ledger/test_lm_accounts.py b/tests/managers/thl/test_ledger/test_lm_accounts.py
index faef5fb..11b2835 100644
--- a/tests/managers/thl/test_ledger/test_lm_accounts.py
+++ b/tests/managers/thl/test_ledger/test_lm_accounts.py
@@ -1,4 +1,3 @@
-from collections.abc import Callable
from itertools import product as iproduct
from random import randint
from typing import TYPE_CHECKING
@@ -22,7 +21,6 @@ from generalresearch.models.thl.ledger import (
if TYPE_CHECKING:
from pydantic import PositiveInt
- from generalresearch.config import GRLSettings
from generalresearch.currency import LedgerCurrency
from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
from generalresearch.models.custom_types import AccountType, Direction, UUIDStr
@@ -32,10 +30,6 @@ if TYPE_CHECKING:
LedgerAccount,
LedgerTransaction,
)
- from generalresearch.models.thl.product import Product
- from generalresearch.models.thl.session import Session
- from generalresearch.models.thl.user import User
- from generalresearch.models.thl.wallet import PayoutType
@pytest.mark.parametrize(
diff --git a/tests/managers/thl/test_ledger/test_lm_tx_locks.py b/tests/managers/thl/test_ledger/test_lm_tx_locks.py
index 07c3712..020b74a 100644
--- a/tests/managers/thl/test_ledger/test_lm_tx_locks.py
+++ b/tests/managers/thl/test_ledger/test_lm_tx_locks.py
@@ -1,6 +1,6 @@
import logging
from collections.abc import Callable
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
import pytest
@@ -23,7 +23,6 @@ from generalresearch.models.thl.session import (
WallAdjustedStatus,
)
from generalresearch.models.thl.user import User
-from test_utils.models.conftest import product_user_wallet_no, session, user_factory
logger = logging.getLogger("LedgerManager")
@@ -56,7 +55,7 @@ class TestLedgerLocks:
s1 = session_factory(
user=user,
wall_count=3,
- wall_req_cpis=[Decimal("1.23"), Decimal("3.21"), Decimal("4")],
+ wall_req_cpis=[Decimal("1.23"), Decimal("3.21"), Decimal(4)],
wall_statuses=[Status.COMPLETE, Status.COMPLETE, Status.COMPLETE],
)
@@ -187,7 +186,7 @@ class TestLedgerLocks:
user_id=user.user_id,
source=Source.DYNATA,
req_survey_id="xxx",
- req_cpi=Decimal("4"),
+ req_cpi=Decimal(4),
session_id=1,
status=Status.COMPLETE,
status_code_1=StatusCode1.COMPLETE,
@@ -292,13 +291,7 @@ class TestLedgerLocks:
status, status_code_1 = session.determine_session_status()
thl_net, commission_amount, bp_pay, user_pay = session.determine_payments()
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": session.started + timedelta(minutes=10),
- "payout": bp_pay,
- "user_payout": user_pay,
- }
+ status=status, status_code_1=status_code_1, finished=session.started + timedelta(minutes=10), payout=bp_pay, user_payout=user_pay
)
print(thl_net, commission_amount, bp_pay, user_pay)
@@ -336,13 +329,7 @@ class TestLedgerLocks:
status, status_code_1 = session.determine_session_status()
thl_net, commission_amount, bp_pay, user_pay = session.determine_payments()
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": session.started + timedelta(minutes=10),
- "payout": bp_pay,
- "user_payout": user_pay,
- }
+ status=status, status_code_1=status_code_1, finished=session.started + timedelta(minutes=10), payout=bp_pay, user_payout=user_pay
)
print(thl_net, commission_amount, bp_pay, user_pay)
diff --git a/tests/managers/thl/test_ledger/test_thl_lm_accounts.py b/tests/managers/thl/test_ledger/test_thl_lm_accounts.py
index 01d5fe1..8d7d828 100644
--- a/tests/managers/thl/test_ledger/test_thl_lm_accounts.py
+++ b/tests/managers/thl/test_ledger/test_thl_lm_accounts.py
@@ -8,9 +8,9 @@ class TestThlLedgerManagerAccounts:
def test_get_account_or_create_user_wallet(self, user, thl_lm, lm):
from generalresearch.currency import LedgerCurrency
from generalresearch.models.thl.ledger import (
- LedgerAccount,
- Direction,
AccountType,
+ Direction,
+ LedgerAccount,
)
account = thl_lm.get_account_or_create_user_wallet(user=user)
@@ -31,9 +31,9 @@ class TestThlLedgerManagerAccounts:
def test_get_account_or_create_bp_wallet(self, product, thl_lm, lm):
from generalresearch.currency import LedgerCurrency
from generalresearch.models.thl.ledger import (
- LedgerAccount,
- Direction,
AccountType,
+ Direction,
+ LedgerAccount,
)
account = thl_lm.get_account_or_create_bp_wallet(product=product)
@@ -54,8 +54,8 @@ class TestThlLedgerManagerAccounts:
def test_get_account_or_create_bp_commission(self, product, thl_lm, lm):
from generalresearch.currency import LedgerCurrency
from generalresearch.models.thl.ledger import (
- Direction,
AccountType,
+ Direction,
)
account = thl_lm.get_account_or_create_bp_commission(product=product)
@@ -76,8 +76,8 @@ class TestThlLedgerManagerAccounts:
def test_get_account_or_create_bp_expense(self, product, expense, thl_lm, lm):
from generalresearch.currency import LedgerCurrency
from generalresearch.models.thl.ledger import (
- Direction,
AccountType,
+ Direction,
)
account = thl_lm.get_account_or_create_bp_expense(
@@ -98,8 +98,8 @@ class TestThlLedgerManagerAccounts:
def test_get_or_create_bp_pending_payout_account(self, product, thl_lm, lm):
from generalresearch.currency import LedgerCurrency
from generalresearch.models.thl.ledger import (
- Direction,
AccountType,
+ Direction,
)
account = thl_lm.get_or_create_bp_pending_payout_account(product=product)
@@ -132,8 +132,8 @@ class TestThlLedgerManagerAccounts:
self, account_cash, account_revenue_task_complete, thl_lm, lm
):
from generalresearch.models.thl.ledger import (
- LedgerAccount,
AccountType,
+ LedgerAccount,
)
res = thl_lm.get_account_task_complete_revenue()
@@ -155,8 +155,8 @@ class TestThlLedgerManagerAccounts:
def test_get_account_cash(self, account_cash, thl_lm, lm):
from generalresearch.models.thl.ledger import (
- LedgerAccount,
AccountType,
+ LedgerAccount,
)
res = thl_lm.get_account_cash()
@@ -167,10 +167,10 @@ class TestThlLedgerManagerAccounts:
assert res.display_name == "Operating Cash Account"
def test_get_accounts(self, setup_accounts, product, user_factory, thl_lm, lm, lam):
- from generalresearch.models.thl.user import User
from generalresearch.managers.thl.ledger_manager.exceptions import (
LedgerAccountDoesntExistError,
)
+ from generalresearch.models.thl.user import User
user1: User = user_factory(product=product)
user2: User = user_factory(product=product)
@@ -276,9 +276,9 @@ class TestLedgerAccountManager:
LedgerAccountDoesntExistError,
)
from generalresearch.models.thl.ledger import (
- LedgerAccount,
- Direction,
AccountType,
+ Direction,
+ LedgerAccount,
)
u = uuid4().hex
@@ -311,8 +311,8 @@ class TestLedgerAccountManager:
LedgerAccountDoesntExistError,
)
from generalresearch.models.thl.ledger import (
- LedgerAccount,
AccountType,
+ LedgerAccount,
)
with pytest.raises(LedgerAccountDoesntExistError):
@@ -326,10 +326,10 @@ class TestLedgerAccountManager:
assert user.product.uuid == account.reference_uuid
def test_get_many(self, product_factory, thl_lm, lm, lam, currency):
- from generalresearch.models.thl.product import Product
from generalresearch.managers.thl.ledger_manager.exceptions import (
LedgerAccountDoesntExistError,
)
+ from generalresearch.models.thl.product import Product
p1: Product = product_factory()
p2: Product = product_factory()
@@ -388,9 +388,9 @@ class TestLedgerAccountManager:
def test_create_account(self, thl_lm, lm, lam):
from generalresearch.models.thl.ledger import (
- LedgerAccount,
- Direction,
AccountType,
+ Direction,
+ LedgerAccount,
)
u = uuid4().hex
diff --git a/tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py b/tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py
index 1fb9c01..cfb8f8f 100644
--- a/tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py
+++ b/tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py
@@ -1,5 +1,5 @@
import logging
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from random import randint
from uuid import uuid4
@@ -78,13 +78,7 @@ class TestThlLedgerManagerBPPayout:
status, status_code_1 = session.determine_session_status()
thl_net, commission_amount, bp_pay, user_pay = session.determine_payments()
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": now + timedelta(minutes=10),
- "payout": bp_pay,
- "user_payout": user_pay,
- }
+ status=status, status_code_1=status_code_1, finished=now + timedelta(minutes=10), payout=bp_pay, user_payout=user_pay
)
thl_lm.create_tx_bp_payment(session=session, created=wall1.started)
diff --git a/tests/managers/thl/test_ledger/test_thl_lm_tx.py b/tests/managers/thl/test_ledger/test_thl_lm_tx.py
index be988a1..1130621 100644
--- a/tests/managers/thl/test_ledger/test_thl_lm_tx.py
+++ b/tests/managers/thl/test_ledger/test_thl_lm_tx.py
@@ -1,5 +1,5 @@
import logging
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from random import randint
from uuid import uuid4
@@ -114,7 +114,7 @@ class TestThlLedgerTxManager:
user_wallet_config=UserWalletConfig(amt=True, enabled=True),
)
user = user_factory(product=product)
- s1 = session_factory(user=user, wall_req_cpi=Decimal("1"))
+ s1 = session_factory(user=user, wall_req_cpi=Decimal(1))
status, status_code_1 = s1.determine_session_status()
assert status == Status.COMPLETE
@@ -207,9 +207,7 @@ class TestThlLedgerTxManager:
# Update the finished timestamp, but nothing else. This means that
# there is no financial changes needed
session.update(
- **{
- "finished": datetime.now(tz=UTC) + timedelta(minutes=10),
- }
+ finished=datetime.now(tz=UTC) + timedelta(minutes=10)
)
assert session.finished
with caplog.at_level(logging.INFO):
@@ -829,13 +827,7 @@ class TestThlLedgerTxManagerFlows:
status, status_code_1 = s1.determine_session_status()
thl_net, commission_amount, bp_pay, user_pay = s1.determine_payments()
s1.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": s1.started + timedelta(minutes=10),
- "payout": bp_pay,
- "user_payout": user_pay,
- }
+ status=status, status_code_1=status_code_1, finished=s1.started + timedelta(minutes=10), payout=bp_pay, user_payout=user_pay
)
print(thl_net, commission_amount, bp_pay, user_pay)
thl_lm.create_tx_bp_payment(session=s1, created=w1.started)
@@ -892,13 +884,7 @@ class TestThlLedgerTxManagerFlows:
status, status_code_1 = session.determine_session_status()
thl_net, commission_amount, bp_pay, user_pay = session.determine_payments()
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": session.started + timedelta(minutes=10),
- "payout": bp_pay,
- "user_payout": user_pay,
- }
+ status=status, status_code_1=status_code_1, finished=session.started + timedelta(minutes=10), payout=bp_pay, user_payout=user_pay
)
print(thl_net, commission_amount, bp_pay, user_pay)
@@ -930,13 +916,7 @@ class TestThlLedgerTxManagerFlows:
status, status_code_1 = session.determine_session_status()
# thl_net, commission_amount, bp_pay, user_pay = session.determine_payments()
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": session.started + timedelta(minutes=10),
- "payout": Decimal("1.53"),
- "user_payout": Decimal("1.53"),
- }
+ status=status, status_code_1=status_code_1, finished=session.started + timedelta(minutes=10), payout=Decimal("1.53"), user_payout=Decimal("1.53")
)
thl_lm.create_tx_bp_payment(session=session, created=wall1.started)
@@ -971,13 +951,7 @@ class TestThlLedgerTxManagerFlows:
status, status_code_1 = session.determine_session_status()
# thl_net, commission_amount, bp_pay, user_pay = session.determine_payments()
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": session.started + timedelta(minutes=10),
- "payout": Decimal("0.39"),
- "user_payout": Decimal("0.26"),
- }
+ status=status, status_code_1=status_code_1, finished=session.started + timedelta(minutes=10), payout=Decimal("0.39"), user_payout=Decimal("0.26")
)
# with pytest.logs(logger, level=logging.WARNING) as cm:
# tx = thl_lm.create_transaction_bp_payment(session, created=wall1.started)
@@ -1310,13 +1284,7 @@ class TestThlLedgerManagerAdj:
status, status_code_1 = session.determine_session_status()
thl_net, commission_amount, bp_pay, user_pay = session.determine_payments()
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": utc_hour_ago + timedelta(minutes=10),
- "payout": bp_pay,
- "user_payout": user_pay,
- }
+ status=status, status_code_1=status_code_1, finished=utc_hour_ago + timedelta(minutes=10), payout=bp_pay, user_payout=user_pay
)
thl_lm.create_tx_bp_payment(session, created=wall1.started)
@@ -1484,13 +1452,7 @@ class TestThlLedgerManagerAdj:
assert user_pay == Decimal("1.52")
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": now + timedelta(minutes=10),
- "payout": bp_pay,
- "user_payout": user_pay,
- }
+ status=status, status_code_1=status_code_1, finished=now + timedelta(minutes=10), payout=bp_pay, user_payout=user_pay
)
tx = thl_lm.create_tx_bp_adjustment(session=session, created=wall1.started)
@@ -1664,13 +1626,7 @@ class TestThlLedgerManagerAdj:
status, status_code_1 = session.determine_session_status()
thl_net, commission_amount, bp_pay, user_pay = session.determine_payments()
session.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": utc_hour_ago + timedelta(minutes=10),
- "payout": bp_pay,
- "user_payout": user_pay,
- }
+ status=status, status_code_1=status_code_1, finished=utc_hour_ago + timedelta(minutes=10), payout=bp_pay, user_payout=user_pay
)
thl_lm.create_tx_bp_payment(session, created=wall1.started)
diff --git a/tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py b/tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py
index 9253ff0..cd6ea79 100644
--- a/tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py
+++ b/tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py
@@ -1,5 +1,5 @@
import logging
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from uuid import uuid4
@@ -12,7 +12,6 @@ from generalresearch.managers.thl.ledger_manager.exceptions import (
from generalresearch.models.thl.payout import UserPayoutEvent
from generalresearch.models.thl.user import User
from generalresearch.models.thl.wallet import PayoutType
-from test_utils.managers.ledger.conftest import create_main_accounts
class TestLedgerManagerAMT:
diff --git a/tests/managers/thl/test_ledger/test_thl_pem.py b/tests/managers/thl/test_ledger/test_thl_pem.py
index 5fb9e7d..7a4f0c9 100644
--- a/tests/managers/thl/test_ledger/test_thl_pem.py
+++ b/tests/managers/thl/test_ledger/test_thl_pem.py
@@ -1,6 +1,5 @@
-import uuid
from random import randint
-from uuid import uuid4, UUID
+from uuid import UUID, uuid4
import pytest
@@ -33,7 +32,6 @@ class TestThlPayoutEventManager:
thl_lm,
brokerage_product_payout_event_manager,
):
- from generalresearch.models.thl.payout import UserPayoutEvent
N_PRODUCTS = randint(3, 10)
N_PAYOUT_EVENTS = randint(3, 10)
@@ -73,7 +71,6 @@ class TestThlPayoutEventManager:
brokerage_product_payout_event_manager,
thl_lm,
):
- from generalresearch.models.thl.payout import UserPayoutEvent
N_PRODUCTS = randint(3, 10)
N_PAYOUT_EVENTS = randint(3, 10)
@@ -119,7 +116,6 @@ class TestThlPayoutEventManager:
description can't be None
"""
from generalresearch.models.thl.payout import (
- UserPayoutEvent,
PayoutType,
)
@@ -174,7 +170,6 @@ class TestThlPayoutEventManager:
brokerage_product_payout_event_manager,
lm,
):
- from generalresearch.models.thl.payout import UserPayoutEvent
delete_ledger_db()
create_main_accounts()
diff --git a/tests/managers/thl/test_ledger/test_user_txs.py b/tests/managers/thl/test_ledger/test_user_txs.py
index b4b0437..f83641e 100644
--- a/tests/managers/thl/test_ledger/test_user_txs.py
+++ b/tests/managers/thl/test_ledger/test_user_txs.py
@@ -1,5 +1,5 @@
from collections.abc import Callable
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime
from decimal import Decimal
from typing import TYPE_CHECKING
from uuid import uuid4
@@ -8,7 +8,6 @@ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerMana
from generalresearch.managers.thl.user_compensate import user_compensate
from generalresearch.models.thl.definitions import (
Status,
- WallAdjustedStatus,
)
from generalresearch.models.thl.ledger import (
TransactionType,
diff --git a/tests/managers/thl/test_ledger/test_wallet.py b/tests/managers/thl/test_ledger/test_wallet.py
index a0abd7c..bb49cd8 100644
--- a/tests/managers/thl/test_ledger/test_wallet.py
+++ b/tests/managers/thl/test_ledger/test_wallet.py
@@ -4,10 +4,10 @@ from uuid import uuid4
import pytest
from generalresearch.models.thl.product import (
- UserWalletConfig,
PayoutConfig,
PayoutTransformation,
PayoutTransformationPercentArgs,
+ UserWalletConfig,
)
from generalresearch.models.thl.user import User
diff --git a/tests/managers/thl/test_product.py b/tests/managers/thl/test_product.py
index 78d5dde..f8dd44d 100644
--- a/tests/managers/thl/test_product.py
+++ b/tests/managers/thl/test_product.py
@@ -5,15 +5,14 @@ import pytest
from generalresearch.models import Source
from generalresearch.models.thl.product import (
Product,
+ ProfilingConfig,
SourceConfig,
- UserCreateConfig,
SourcesConfig,
- UserHealthConfig,
- ProfilingConfig,
- SupplyPolicy,
SupplyConfig,
+ SupplyPolicy,
+ UserCreateConfig,
+ UserHealthConfig,
)
-from test_utils.models.conftest import product_factory
class TestProductManagerGetMethods:
diff --git a/tests/managers/thl/test_product_prod.py b/tests/managers/thl/test_product_prod.py
index 7b4f677..f5aa78d 100644
--- a/tests/managers/thl/test_product_prod.py
+++ b/tests/managers/thl/test_product_prod.py
@@ -4,7 +4,6 @@ from uuid import uuid4
import pytest
from generalresearch.models.thl.product import Product
-from test_utils.models.conftest import product_factory
logger = logging.getLogger()
@@ -79,4 +78,3 @@ class TestProductManagerGetAll:
products = product_manager.get_all(rand_limit=50)
logger.info(f"Fetching {len(products)} product uuids")
# todo: once timebucks stops spamming broken accounts, fetch more
- pass
diff --git a/tests/managers/thl/test_profiling/test_user_upk.py b/tests/managers/thl/test_profiling/test_user_upk.py
index 491e2b1..8b995b1 100644
--- a/tests/managers/thl/test_profiling/test_user_upk.py
+++ b/tests/managers/thl/test_profiling/test_user_upk.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from generalresearch.managers.thl.profiling.user_upk import UserUpkManager
diff --git a/tests/managers/thl/test_session_manager.py b/tests/managers/thl/test_session_manager.py
index 6bedc2b..adcbe25 100644
--- a/tests/managers/thl/test_session_manager.py
+++ b/tests/managers/thl/test_session_manager.py
@@ -7,11 +7,10 @@ from faker import Faker
from generalresearch.models import DeviceType
from generalresearch.models.legacy.bucket import Bucket
from generalresearch.models.thl.definitions import (
+ SessionStatusCode2,
Status,
StatusCode1,
- SessionStatusCode2,
)
-from test_utils.models.conftest import user
fake = Faker()
@@ -21,8 +20,8 @@ class TestSessionManager:
bucket = Bucket(
loi_min=timedelta(seconds=60),
loi_max=timedelta(seconds=120),
- user_payout_min=Decimal("1"),
- user_payout_max=Decimal("2"),
+ user_payout_min=Decimal(1),
+ user_payout_max=Decimal(2),
)
s1 = session_manager.create(
diff --git a/tests/managers/thl/test_survey.py b/tests/managers/thl/test_survey.py
index 4b4a579..37f0b66 100644
--- a/tests/managers/thl/test_survey.py
+++ b/tests/managers/thl/test_survey.py
@@ -1,5 +1,5 @@
import uuid
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
import pytest
diff --git a/tests/managers/thl/test_survey_penalty.py b/tests/managers/thl/test_survey_penalty.py
index 4c7dc08..2a3cdc2 100644
--- a/tests/managers/thl/test_survey_penalty.py
+++ b/tests/managers/thl/test_survey_penalty.py
@@ -1,7 +1,6 @@
import uuid
import pytest
-from cachetools.keys import _HashedTuple
from generalresearch.models import Source
from generalresearch.models.thl.survey.penalty import (
diff --git a/tests/managers/thl/test_task_adjustment.py b/tests/managers/thl/test_task_adjustment.py
index 71e3535..43337b6 100644
--- a/tests/managers/thl/test_task_adjustment.py
+++ b/tests/managers/thl/test_task_adjustment.py
@@ -1,5 +1,5 @@
import logging
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from random import randint
diff --git a/tests/managers/thl/test_task_status.py b/tests/managers/thl/test_task_status.py
index 468fd5e..93a624d 100644
--- a/tests/managers/thl/test_task_status.py
+++ b/tests/managers/thl/test_task_status.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
import pytest
diff --git a/tests/managers/thl/test_user_manager/test_base.py b/tests/managers/thl/test_user_manager/test_base.py
index 2704490..7d83c11 100644
--- a/tests/managers/thl/test_user_manager/test_base.py
+++ b/tests/managers/thl/test_user_manager/test_base.py
@@ -1,5 +1,5 @@
import logging
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from random import randint
from uuid import uuid4
@@ -156,7 +156,7 @@ class TestCreateUserManager:
# make sure thl_user row is created
res_thl_user = thl_web_rw.execute_sql_query(
- query=f"""
+ query="""
SELECT *
FROM thl_user AS u
WHERE u.id = %s
diff --git a/tests/managers/thl/test_user_manager/test_mysql.py b/tests/managers/thl/test_user_manager/test_mysql.py
index 0313bbf..d414a13 100644
--- a/tests/managers/thl/test_user_manager/test_mysql.py
+++ b/tests/managers/thl/test_user_manager/test_mysql.py
@@ -1,4 +1,3 @@
-from test_utils.models.conftest import user, user_manager
class TestUserManagerMysqlNew:
diff --git a/tests/managers/thl/test_user_manager/test_user_fetch.py b/tests/managers/thl/test_user_manager/test_user_fetch.py
index a4b3d57..7c9e012 100644
--- a/tests/managers/thl/test_user_manager/test_user_fetch.py
+++ b/tests/managers/thl/test_user_manager/test_user_fetch.py
@@ -3,7 +3,6 @@ from uuid import uuid4
import pytest
from generalresearch.models.thl.user import User
-from test_utils.models.conftest import product, user_manager, user_factory
class TestUserManagerFetch:
diff --git a/tests/managers/thl/test_user_manager/test_user_metadata.py b/tests/managers/thl/test_user_manager/test_user_metadata.py
index 91dc16a..19b3d9f 100644
--- a/tests/managers/thl/test_user_manager/test_user_metadata.py
+++ b/tests/managers/thl/test_user_manager/test_user_metadata.py
@@ -3,7 +3,6 @@ from uuid import uuid4
import pytest
from generalresearch.models.thl.user_profile import UserMetadata
-from test_utils.models.conftest import user, user_manager, user_factory
class TestUserMetadataManager:
diff --git a/tests/managers/thl/test_user_streak.py b/tests/managers/thl/test_user_streak.py
index ef25e2b..be0729c 100644
--- a/tests/managers/thl/test_user_streak.py
+++ b/tests/managers/thl/test_user_streak.py
@@ -1,5 +1,5 @@
import copy
-from datetime import UTC, date, datetime, timedelta, timezone
+from datetime import UTC, date, datetime, timedelta
from decimal import Decimal
from zoneinfo import ZoneInfo
diff --git a/tests/managers/thl/test_userhealth.py b/tests/managers/thl/test_userhealth.py
index e2ea4a8..be8f9c8 100644
--- a/tests/managers/thl/test_userhealth.py
+++ b/tests/managers/thl/test_userhealth.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from uuid import uuid4
import faker
diff --git a/tests/managers/thl/test_wall_manager.py b/tests/managers/thl/test_wall_manager.py
index 46d199f..5abc648 100644
--- a/tests/managers/thl/test_wall_manager.py
+++ b/tests/managers/thl/test_wall_manager.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from uuid import uuid4
@@ -10,7 +10,6 @@ from generalresearch.models.thl.session import (
Status,
StatusCode1,
)
-from test_utils.models.conftest import session, user
class TestWallManager:
@@ -92,7 +91,7 @@ class TestWallManager:
source=Source.DYNATA,
buyer_id="123",
req_survey_id="456",
- req_cpi=Decimal("1"),
+ req_cpi=Decimal(1),
)
assert w is not None
@@ -110,7 +109,7 @@ class TestWallManager:
source=Source.DYNATA,
buyer_id="123",
req_survey_id="456",
- req_cpi=Decimal("1"),
+ req_cpi=Decimal(1),
)
wall_manager.report(
wall=w1,
@@ -151,7 +150,7 @@ class TestWallManager:
source=Source.DYNATA,
buyer_id="123",
req_survey_id="456",
- req_cpi=Decimal("1"),
+ req_cpi=Decimal(1),
)
finish_ts = utc_hour_ago + timedelta(minutes=10)
@@ -190,7 +189,7 @@ class TestWallManager:
source=Source.DYNATA,
buyer_id="123",
req_survey_id="456",
- req_cpi=Decimal("1"),
+ req_cpi=Decimal(1),
)
res = wall_manager.filter_wall_attempts(user_id=user.user_id)
assert len(res) == 1
@@ -202,7 +201,7 @@ class TestWallManager:
source=Source.DYNATA,
buyer_id="123",
req_survey_id="555",
- req_cpi=Decimal("1"),
+ req_cpi=Decimal(1),
)
res = wall_manager.filter_wall_attempts(user_id=user.user_id)
assert len(res) == 2
diff --git a/tests/models/admin/test_report_request.py b/tests/models/admin/test_report_request.py
index 4626ab4..5b2ff0d 100644
--- a/tests/models/admin/test_report_request.py
+++ b/tests/models/admin/test_report_request.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
import pandas as pd
import pytest
diff --git a/tests/models/custom_types/test_aware_datetime.py b/tests/models/custom_types/test_aware_datetime.py
index 043fba0..7c45710 100644
--- a/tests/models/custom_types/test_aware_datetime.py
+++ b/tests/models/custom_types/test_aware_datetime.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import logging
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
import pytest
import pytz
diff --git a/tests/models/custom_types/test_dsn.py b/tests/models/custom_types/test_dsn.py
index 050976e..eb27526 100644
--- a/tests/models/custom_types/test_dsn.py
+++ b/tests/models/custom_types/test_dsn.py
@@ -1,4 +1,3 @@
-from typing import Optional
from uuid import uuid4
import pytest
diff --git a/tests/models/dynata/test_eligbility.py b/tests/models/dynata/test_eligbility.py
index 16cad26..27de5b3 100644
--- a/tests/models/dynata/test_eligbility.py
+++ b/tests/models/dynata/test_eligbility.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
class TestEligibility:
diff --git a/tests/models/gr/test_authentication.py b/tests/models/gr/test_authentication.py
index 51595a7..ac39e64 100644
--- a/tests/models/gr/test_authentication.py
+++ b/tests/models/gr/test_authentication.py
@@ -2,7 +2,7 @@ import binascii
import json
import os
from collections.abc import Callable
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from random import randint
from uuid import uuid4
diff --git a/tests/models/gr/test_business.py b/tests/models/gr/test_business.py
index 716ec75..948acb3 100644
--- a/tests/models/gr/test_business.py
+++ b/tests/models/gr/test_business.py
@@ -1,7 +1,6 @@
import os
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
-from typing import Optional
from uuid import uuid4
import pandas as pd
diff --git a/tests/models/innovate/test_question.py b/tests/models/innovate/test_question.py
index 330f919..b0c2964 100644
--- a/tests/models/innovate/test_question.py
+++ b/tests/models/innovate/test_question.py
@@ -1,15 +1,15 @@
from generalresearch.models import Source
from generalresearch.models.innovate.question import (
InnovateQuestion,
- InnovateQuestionType,
InnovateQuestionOption,
+ InnovateQuestionType,
)
from generalresearch.models.thl.profiling.upk_question import (
- UpkQuestionSelectorTE,
UpkQuestion,
+ UpkQuestionChoice,
UpkQuestionSelectorMC,
+ UpkQuestionSelectorTE,
UpkQuestionType,
- UpkQuestionChoice,
)
diff --git a/tests/models/legacy/test_user_question_answer_in.py b/tests/models/legacy/test_user_question_answer_in.py
index 224334a..1904798 100644
--- a/tests/models/legacy/test_user_question_answer_in.py
+++ b/tests/models/legacy/test_user_question_answer_in.py
@@ -263,12 +263,12 @@ class TestUserQuestionAnswerIn:
UserQuestionAnswerIn,
)
- for qid in {
+ for qid in (
"2fbedb2b9f7647b09ff5e52fa119cc5e",
"4030c52371b04e80b64e058d9c5b82e9",
"a91cb1dea814480dba12d9b7b48696dd",
"1d1e2e8380ac474b87fb4e4c569b48df",
- }:
+ ):
# This is the UserAgent question which only allows a single answer
with pytest.raises(ValueError) as cm:
UserQuestionAnswerIn.model_validate(
diff --git a/tests/models/morning/test.py b/tests/models/morning/test.py
index 222cb93..7474766 100644
--- a/tests/models/morning/test.py
+++ b/tests/models/morning/test.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from generalresearch.models.morning.question import MorningQuestion
diff --git a/tests/models/network/test_mtr.py b/tests/models/network/test_mtr.py
index 2965300..840a773 100644
--- a/tests/models/network/test_mtr.py
+++ b/tests/models/network/test_mtr.py
@@ -1,7 +1,7 @@
-from generalresearch.models.network.mtr.execute import execute_mtr
import faker
-from generalresearch.models.network.tool_run import ToolName, ToolClass
+from generalresearch.models.network.mtr.execute import execute_mtr
+from generalresearch.models.network.tool_run import ToolClass, ToolName
fake = faker.Faker()
diff --git a/tests/models/network/test_nmap_parser.py b/tests/models/network/test_nmap_parser.py
index abc83c9..7822380 100644
--- a/tests/models/network/test_nmap_parser.py
+++ b/tests/models/network/test_nmap_parser.py
@@ -4,6 +4,7 @@ import pytest
from generalresearch.models.network.nmap.parser import parse_nmap_xml
+
@pytest.fixture
def nmap_raw_output_2(request) -> str:
fp = os.path.join(request.config.rootpath, "data/nmaprun2.xml")
diff --git a/tests/models/prodege/test_survey_participation.py b/tests/models/prodege/test_survey_participation.py
index 3b35d0c..e1ba9ab 100644
--- a/tests/models/prodege/test_survey_participation.py
+++ b/tests/models/prodege/test_survey_participation.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
class TestProdegeParticipation:
diff --git a/tests/models/spectrum/test_question.py b/tests/models/spectrum/test_question.py
index 4f92961..57d260d 100644
--- a/tests/models/spectrum/test_question.py
+++ b/tests/models/spectrum/test_question.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from generalresearch.models import Source
from generalresearch.models.spectrum.question import (
diff --git a/tests/models/spectrum/test_survey.py b/tests/models/spectrum/test_survey.py
index 5e095a3..7365c7e 100644
--- a/tests/models/spectrum/test_survey.py
+++ b/tests/models/spectrum/test_survey.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
diff --git a/tests/models/spectrum/test_survey_manager.py b/tests/models/spectrum/test_survey_manager.py
index 11970bf..ce26c44 100644
--- a/tests/models/spectrum/test_survey_manager.py
+++ b/tests/models/spectrum/test_survey_manager.py
@@ -1,6 +1,6 @@
import copy
import logging
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from decimal import Decimal
from pymysql import IntegrityError
diff --git a/tests/models/test_finance.py b/tests/models/test_finance.py
index 6dcd441..3d3ff3a 100644
--- a/tests/models/test_finance.py
+++ b/tests/models/test_finance.py
@@ -1,5 +1,5 @@
from collections.abc import Callable
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from itertools import product as iter_product
from random import randint
from uuid import uuid4
diff --git a/tests/models/thl/question/test_question_info.py b/tests/models/thl/question/test_question_info.py
index 945ee7a..b619fc3 100644
--- a/tests/models/thl/question/test_question_info.py
+++ b/tests/models/thl/question/test_question_info.py
@@ -1,6 +1,6 @@
from generalresearch.models.thl.profiling.upk_property import (
- UpkProperty,
ProfilingInfo,
+ UpkProperty,
)
diff --git a/tests/models/thl/test_adjustments.py b/tests/models/thl/test_adjustments.py
index c2c035d..30e9bce 100644
--- a/tests/models/thl/test_adjustments.py
+++ b/tests/models/thl/test_adjustments.py
@@ -1,5 +1,5 @@
from collections.abc import Callable
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
import pytest
@@ -426,7 +426,7 @@ class TestAdjustments:
s1 = session_factory(
user=user,
wall_count=1,
- wall_req_cpi=Decimal("1"),
+ wall_req_cpi=Decimal(1),
final_status=Status.COMPLETE,
started=utc_hour_ago,
)
@@ -525,7 +525,7 @@ class TestAdjustments:
s1 = session_factory(
user=user,
wall_count=1,
- wall_req_cpi=Decimal("1"),
+ wall_req_cpi=Decimal(1),
final_status=Status.COMPLETE,
started=utc_hour_ago,
)
@@ -534,13 +534,7 @@ class TestAdjustments:
status, status_code_1 = s1.determine_session_status()
thl_net, commission_amount, bp_pay, user_pay = s1.determine_payments()
s1.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": utc_hour_ago + timedelta(minutes=10),
- "payout": bp_pay,
- "user_payout": user_pay,
- }
+ status=status, status_code_1=status_code_1, finished=utc_hour_ago + timedelta(minutes=10), payout=bp_pay, user_payout=user_pay
)
w1.update(
adjusted_status=WallAdjustedStatus.ADJUSTED_TO_FAIL,
@@ -592,13 +586,7 @@ class TestAdjustments:
thl_net = Decimal(sum(w.cpi for w in s1.wall_events if w.is_visible_complete()))
payout = user.product.determine_bp_payment(thl_net=thl_net)
s1.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": utc_hour_ago + timedelta(minutes=25),
- "payout": payout,
- "user_payout": None,
- }
+ status=status, status_code_1=status_code_1, finished=utc_hour_ago + timedelta(minutes=25), payout=payout, user_payout=None
)
# Test. Adjust first fail to complete. Now we have 2 completes.
@@ -646,13 +634,7 @@ class TestAdjustments:
thl_net = Decimal(sum(w.cpi for w in s1.wall_events if w.is_visible_complete()))
payout = user.product.determine_bp_payment(thl_net)
s1.update(
- **{
- "status": status,
- "status_code_1": status_code_1,
- "finished": utc_hour_ago + timedelta(minutes=25),
- "payout": payout,
- "user_payout": None,
- }
+ status=status, status_code_1=status_code_1, finished=utc_hour_ago + timedelta(minutes=25), payout=payout, user_payout=None
)
# Test. Adjust complete to fail. Now we have 2 fails.
diff --git a/tests/models/thl/test_contest/test_leaderboard_contest.py b/tests/models/thl/test_contest/test_leaderboard_contest.py
index 3efcf2f..52a4bec 100644
--- a/tests/models/thl/test_contest/test_leaderboard_contest.py
+++ b/tests/models/thl/test_contest/test_leaderboard_contest.py
@@ -1,4 +1,4 @@
-from datetime import UTC, timezone
+from datetime import UTC
from uuid import uuid4
import pytest
diff --git a/tests/models/thl/test_ledger.py b/tests/models/thl/test_ledger.py
index 5edcc9d..7066180 100644
--- a/tests/models/thl/test_ledger.py
+++ b/tests/models/thl/test_ledger.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timezone
+from datetime import UTC, datetime
from uuid import uuid4
import pytest
diff --git a/tests/models/thl/test_payout.py b/tests/models/thl/test_payout.py
index 7068a41..d0b0acc 100644
--- a/tests/models/thl/test_payout.py
+++ b/tests/models/thl/test_payout.py
@@ -5,14 +5,13 @@ from pydantic import ValidationError
from generalresearch.currency import USDCent
from generalresearch.models.gr import Team
+from generalresearch.models.gr.business import Business, BusinessAddress, BusinessType
from generalresearch.models.thl.payout import (
- BusinessPayoutEvent,
BrokerageProductPayoutEvent,
+ BusinessPayoutEvent,
)
from generalresearch.models.thl.wallet import PayoutType
-from generalresearch.models.gr.business import Business, BusinessAddress, BusinessType
-
class TestBusinessPayoutEvent:
diff --git a/tests/models/thl/test_product.py b/tests/models/thl/test_product.py
index 78bc10a..bc95c2d 100644
--- a/tests/models/thl/test_product.py
+++ b/tests/models/thl/test_product.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import os
import shutil
from collections.abc import Callable
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from uuid import uuid4
diff --git a/tests/models/thl/test_upkquestion.py b/tests/models/thl/test_upkquestion.py
index d32875c..99d7871 100644
--- a/tests/models/thl/test_upkquestion.py
+++ b/tests/models/thl/test_upkquestion.py
@@ -201,18 +201,10 @@ class TestUpkQuestion:
)
q = MorningQuestion(
- **{
- "id": "gender",
- "country_iso": "us",
- "language_iso": "eng",
- "name": "Gender",
- "text": "What is your gender?",
- "type": "s",
- "options": [
+ id="gender", country_iso="us", language_iso="eng", name="Gender", text="What is your gender?", type="s", options=[
{"id": "1", "text": "yes", "order": 1},
{"id": "2", "text": "no", "order": 2},
- ],
- }
+ ]
)
q.to_upk_question()
q = MorningQuestion(
diff --git a/tests/models/thl/test_user.py b/tests/models/thl/test_user.py
index a4f331a..aafce68 100644
--- a/tests/models/thl/test_user.py
+++ b/tests/models/thl/test_user.py
@@ -197,7 +197,7 @@ class TestUserProductUserID:
assert "Input should be a valid string" in str(cm.value)
with pytest.raises(ValueError) as cm:
- User(user_id=self.user_id, product_user_id=Decimal("0"))
+ User(user_id=self.user_id, product_user_id=Decimal(0))
assert "1 validation error for User" in str(cm.value)
assert "Input should be a valid string" in str(cm.value)
@@ -236,7 +236,7 @@ class TestUserProductUserID:
def test_invalid_chars_slash(self):
from generalresearch.models.thl.user import User
- product_user_id = f"{self.randomword(50)}\{self.randomword(50)}"
+ product_user_id = rf"{self.randomword(50)}\{self.randomword(50)}"
with pytest.raises(expected_exception=ValueError) as cm:
User(user_id=self.user_id, product_user_id=product_user_id)
assert "1 validation error for User" in str(cm.value)
@@ -310,7 +310,7 @@ class TestUserUUID:
assert "Input should be a valid string" in str(cm.value)
with pytest.raises(ValueError) as cm:
- User(user_id=self.user_id, uuid=Decimal("0"))
+ User(user_id=self.user_id, uuid=Decimal(0))
assert "1 validation error for User" in str(cm.value)
assert "Input should be a valid string" in str(cm.value)
diff --git a/tests/models/thl/test_user_iphistory.py b/tests/models/thl/test_user_iphistory.py
index 0f050b0..d6ade9d 100644
--- a/tests/models/thl/test_user_iphistory.py
+++ b/tests/models/thl/test_user_iphistory.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from generalresearch.models.thl.user_iphistory import (
UserIPHistory,
diff --git a/tests/models/thl/test_user_streak.py b/tests/models/thl/test_user_streak.py
index 0cacd3e..26c5e25 100644
--- a/tests/models/thl/test_user_streak.py
+++ b/tests/models/thl/test_user_streak.py
@@ -1,8 +1,8 @@
from datetime import datetime, timedelta
+from zoneinfo import ZoneInfo
import pytest
from pydantic import ValidationError
-from zoneinfo import ZoneInfo
from generalresearch.models.thl.user_streak import (
StreakFulfillment,
diff --git a/tests/models/thl/test_wall.py b/tests/models/thl/test_wall.py
index 9e9483b..88914ac 100644
--- a/tests/models/thl/test_wall.py
+++ b/tests/models/thl/test_wall.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
from uuid import uuid4
diff --git a/tests/models/thl/test_wall_session.py b/tests/models/thl/test_wall_session.py
index 10f3cba..b39ad31 100644
--- a/tests/models/thl/test_wall_session.py
+++ b/tests/models/thl/test_wall_session.py
@@ -1,4 +1,4 @@
-from datetime import UTC, datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
from decimal import Decimal
import pytest
diff --git a/tests/sql_helper.py b/tests/sql_helper.py
index c4cc2ca..8ab7bdb 100644
--- a/tests/sql_helper.py
+++ b/tests/sql_helper.py
@@ -19,7 +19,7 @@ class TestSqlHelper:
def test_scheme(self):
from generalresearch.sql_helper import SqlHelper
- dsn = MySQLDsn(f"mysql://root@localhost/test")
+ dsn = MySQLDsn("mysql://root@localhost/test")
instance = SqlHelper(dsn=dsn)
assert instance.is_mysql()
@@ -30,7 +30,7 @@ class TestSqlHelper:
# self.assertTrue(instance.is_postgresql())
with pytest.raises(ValidationError):
- SqlHelper(dsn=MariaDBDsn(f"maria://root@localhost/test"))
+ SqlHelper(dsn=MariaDBDsn("maria://root@localhost/test"))
def test_row_decode(self):
from generalresearch.sql_helper import decode_uuids