1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
import boto3
from botocore.config import Config
from generalresearchutils.pg_helper import PostgresConfig
from generalresearchutils.redis_helper import RedisConfig
from influxdb import InfluxDBClient
from mypy_boto3_mturk import MTurkClient
from mypy_boto3_sns import SNSClient
from jb.config import settings
from jb.managers import Permission
from jb.managers.assignment import AssignmentManager
from jb.managers.bonus import BonusManager
from jb.managers.hit import HitTypeManager, HitManager, HitQuestionManager
redis_config = RedisConfig(
dsn=settings.redis,
decode_responses=True,
socket_timeout=settings.redis_timeout,
socket_connect_timeout=settings.redis_timeout,
)
REDIS = redis_config.create_redis_client()
CLIENT_CONFIG = Config(
# connect_timeout (float or int) – The time in seconds till a timeout
# exception is thrown when attempting to make a connection. The default
# is 60 seconds.
connect_timeout=1,
# read_timeout (float or int) – The time in seconds till a timeout
# exception is thrown when attempting to read from a connection. The
# default is 60 seconds.
read_timeout=2.5,
)
# We shouldn't use this directly. Use our AMTManager wrapper
AMT_CLIENT: MTurkClient = boto3.client(
service_name="mturk",
region_name="us-east-1",
endpoint_url=str(settings.amt_endpoint),
aws_access_key_id=settings.amt_access_id,
aws_secret_access_key=settings.amt_secret_key,
config=CLIENT_CONFIG,
)
SNS_CLIENT: SNSClient = boto3.client(
service_name="sns",
region_name="us-east-2",
aws_access_key_id=settings.amt_access_id,
aws_secret_access_key=settings.amt_secret_key,
config=CLIENT_CONFIG,
)
pg_config = PostgresConfig(
dsn=settings.amt_jb_db,
connect_timeout=1,
statement_timeout=1,
)
HTM = HitTypeManager(
pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE]
)
HM = HitManager(pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE])
HQM = HitQuestionManager(
pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE]
)
AM = AssignmentManager(
pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE]
)
BM = BonusManager(pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE])
influx_client = None
if settings.influx_db:
influx_client = InfluxDBClient.from_dsn(str(settings.influx_db))
|