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))