1+ import os
2+ import utils .logger as logger
3+
4+ from dotenv import load_dotenv
5+
6+
7+
8+ # Load everything from .env
9+ load_dotenv ()
10+
11+
12+
13+ # TODO ADAM: fix up the file where this is used
14+ NETUID = os .getenv ("NETUID" )
15+ if not NETUID :
16+ logger .fatal ("NETUID is not set in .env" )
17+ NETUID = int (NETUID )
18+
19+ SUBTENSOR_ADDRESS = os .getenv ("SUBTENSOR_ADDRESS" )
20+ if not SUBTENSOR_ADDRESS :
21+ logger .fatal ("SUBTENSOR_ADDRESS is not set in .env" )
22+
23+ SUBTENSOR_NETWORK = os .getenv ("SUBTENSOR_NETWORK" )
24+ if not SUBTENSOR_ADDRESS :
25+ logger .fatal ("SUBTENSOR_ADDRESS is not set in .env" )
26+
27+
28+
29+
30+ # Load the environment configuration
31+ ENV = os .getenv ("ENV" )
32+ if not ENV :
33+ logger .fatal ("ENV is not set in .env" )
34+
35+ if ENV != "prod" and ENV != "dev" :
36+ logger .fatal ("ENV must be either 'prod' or 'dev'" )
37+
38+
39+
40+ # Load AWS configuration
41+ AWS_ACCESS_KEY_ID = os .getenv ("AWS_ACCESS_KEY_ID" )
42+ if not AWS_ACCESS_KEY_ID :
43+ logger .fatal ("AWS_ACCESS_KEY_ID is not set in .env" )
44+
45+ AWS_SECRET_ACCESS_KEY = os .getenv ("AWS_SECRET_ACCESS_KEY" )
46+ if not AWS_SECRET_ACCESS_KEY :
47+ logger .fatal ("AWS_SECRET_ACCESS_KEY is not set in .env" )
48+
49+ AWS_REGION = os .getenv ("AWS_REGION" )
50+ if not AWS_REGION :
51+ logger .fatal ("AWS_REGION is not set in .env" )
52+
53+
54+
55+ # Load S3 configuration
56+ S3_BUCKET_NAME = os .getenv ("S3_BUCKET_NAME" )
57+ if not S3_BUCKET_NAME :
58+ logger .fatal ("S3_BUCKET_NAME is not set in .env" )
59+
60+
61+
62+ # Load database configuration
63+ DATABASE_USERNAME = os .getenv ("DATABASE_USERNAME" )
64+ if not DATABASE_USERNAME :
65+ logger .fatal ("DATABASE_USERNAME is not set in .env" )
66+
67+ DATABASE_PASSWORD = os .getenv ("DATABASE_PASSWORD" )
68+ if not DATABASE_PASSWORD :
69+ logger .fatal ("DATABASE_PASSWORD is not set in .env" )
70+
71+ DATABASE_HOST = os .getenv ("DATABASE_HOST" )
72+ if not DATABASE_HOST :
73+ logger .fatal ("DATABASE_HOST is not set in .env" )
74+
75+ DATABASE_PORT = os .getenv ("DATABASE_PORT" )
76+ if not DATABASE_PORT :
77+ logger .fatal ("DATABASE_PORT is not set in .env" )
78+ DATABASE_PORT = int (DATABASE_PORT )
79+
80+ DATABASE_NAME = os .getenv ("DATABASE_NAME" )
81+ if not DATABASE_NAME :
82+ logger .fatal ("DATABASE_NAME is not set in .env" )
83+
84+
85+
86+ # Load screener configuration
87+ SCREENER_PASSWORD = os .getenv ("SCREENER_PASSWORD" )
88+ if not SCREENER_PASSWORD :
89+ logger .fatal ("SCREENER_PASSWORD is not set in .env" )
90+
91+ SCREENER_1_THRESHOLD = os .getenv ("SCREENER_1_THRESHOLD" )
92+ if not SCREENER_1_THRESHOLD :
93+ logger .fatal ("SCREENER_1_THRESHOLD is not set in .env" )
94+ SCREENER_1_THRESHOLD = float (SCREENER_1_THRESHOLD )
95+
96+ SCREENER_2_THRESHOLD = os .getenv ("SCREENER_2_THRESHOLD" )
97+ if not SCREENER_2_THRESHOLD :
98+ logger .fatal ("SCREENER_2_THRESHOLD is not set in .env" )
99+ SCREENER_2_THRESHOLD = float (SCREENER_2_THRESHOLD )
100+
101+ PRUNE_THRESHOLD = os .getenv ("PRUNE_THRESHOLD" )
102+ if not PRUNE_THRESHOLD :
103+ logger .fatal ("PRUNE_THRESHOLD is not set in .env" )
104+ PRUNE_THRESHOLD = float (PRUNE_THRESHOLD )
105+
106+
107+
108+ # Load validator configuration
109+ VALIDATOR_HEARTBEAT_TIMEOUT_SECONDS = os .getenv ("VALIDATOR_HEARTBEAT_TIMEOUT_SECONDS" )
110+ if not VALIDATOR_HEARTBEAT_TIMEOUT_SECONDS :
111+ logger .fatal ("VALIDATOR_HEARTBEAT_TIMEOUT_SECONDS is not set in .env" )
112+ VALIDATOR_HEARTBEAT_TIMEOUT_SECONDS = int (VALIDATOR_HEARTBEAT_TIMEOUT_SECONDS )
113+
114+ VALIDATOR_HEARTBEAT_TIMEOUT_INTERVAL_SECONDS = os .getenv ("VALIDATOR_HEARTBEAT_TIMEOUT_INTERVAL_SECONDS" )
115+ if not VALIDATOR_HEARTBEAT_TIMEOUT_INTERVAL_SECONDS :
116+ logger .fatal ("VALIDATOR_HEARTBEAT_TIMEOUT_INTERVAL_SECONDS is not set in .env" )
117+ VALIDATOR_HEARTBEAT_TIMEOUT_INTERVAL_SECONDS = int (VALIDATOR_HEARTBEAT_TIMEOUT_INTERVAL_SECONDS )
118+
119+ VALIDATOR_RUNNING_AGENT_TIMEOUT_SECONDS = os .getenv ("VALIDATOR_RUNNING_AGENT_TIMEOUT_SECONDS" )
120+ if not VALIDATOR_RUNNING_AGENT_TIMEOUT_SECONDS :
121+ logger .fatal ("VALIDATOR_RUNNING_AGENT_TIMEOUT_SECONDS is not set in .env" )
122+ VALIDATOR_RUNNING_AGENT_TIMEOUT_SECONDS = int (VALIDATOR_RUNNING_AGENT_TIMEOUT_SECONDS )
123+
124+ VALIDATOR_RUNNING_EVAL_TIMEOUT_SECONDS = os .getenv ("VALIDATOR_RUNNING_EVAL_TIMEOUT_SECONDS" )
125+ if not VALIDATOR_RUNNING_EVAL_TIMEOUT_SECONDS :
126+ logger .fatal ("VALIDATOR_RUNNING_EVAL_TIMEOUT_SECONDS is not set in .env" )
127+ VALIDATOR_RUNNING_EVAL_TIMEOUT_SECONDS = int (VALIDATOR_RUNNING_EVAL_TIMEOUT_SECONDS )
128+
129+ NUM_EVALS_PER_AGENT = os .getenv ("NUM_EVALS_PER_AGENT" )
130+ if not NUM_EVALS_PER_AGENT :
131+ logger .fatal ("NUM_EVALS_PER_AGENT is not set in .env" )
132+ NUM_EVALS_PER_AGENT = int (NUM_EVALS_PER_AGENT )
133+
134+
135+
136+ MINER_AGENT_UPLOAD_RATE_LIMIT_SECONDS = os .getenv ("MINER_AGENT_UPLOAD_RATE_LIMIT_SECONDS" )
137+ if not MINER_AGENT_UPLOAD_RATE_LIMIT_SECONDS :
138+ logger .fatal ("MINER_AGENT_UPLOAD_RATE_LIMIT_SECONDS is not set in .env" )
139+ MINER_AGENT_UPLOAD_RATE_LIMIT_SECONDS = int (MINER_AGENT_UPLOAD_RATE_LIMIT_SECONDS )
140+
141+
142+
143+ logger .info ("=== API Configuration ===" )
144+ logger .info (f"Environment: { 'Production' if ENV == 'prod' else 'Development' } " )
145+ logger .info ("-------------------------" )
146+ logger .info (f"AWS Region: { AWS_REGION } " )
147+ logger .info ("-------------------------" )
148+ logger .info (f"S3 Bucket Name: { S3_BUCKET_NAME } " )
149+ logger .info ("-------------------------" )
150+ logger .info (f"Database Username: { DATABASE_USERNAME } " )
151+ logger .info (f"Database Host: { DATABASE_HOST } " )
152+ logger .info (f"Database Port: { DATABASE_PORT } " )
153+ logger .info (f"Database Name: { DATABASE_NAME } " )
154+ logger .info ("-------------------------" )
155+ logger .info (f"Screener 1 Threshold: { SCREENER_1_THRESHOLD } " )
156+ logger .info (f"Screener 2 Threshold: { SCREENER_2_THRESHOLD } " )
157+ logger .info (f"Prune Threshold: { PRUNE_THRESHOLD } " )
158+ logger .info ("-------------------------" )
159+ logger .info (f"Validator Heartbeat Timeout: { VALIDATOR_HEARTBEAT_TIMEOUT_SECONDS } second(s)" )
160+ logger .info (f"Validator Heartbeat Timeout Interval: { VALIDATOR_HEARTBEAT_TIMEOUT_INTERVAL_SECONDS } second(s)" )
161+ logger .info (f"Validator Running Agent Timeout: { VALIDATOR_RUNNING_AGENT_TIMEOUT_SECONDS } second(s)" )
162+ logger .info (f"Validator Running Evaluation Timeout: { VALIDATOR_RUNNING_EVAL_TIMEOUT_SECONDS } second(s)" )
163+ logger .info ("-------------------------" )
164+ logger .info (f"Number of Evaluations Per Agent: { NUM_EVALS_PER_AGENT } " )
165+ logger .info ("-------------------------" )
166+ logger .info (f"Miner Agent Upload Rate Limit: { MINER_AGENT_UPLOAD_RATE_LIMIT_SECONDS } second(s)" )
167+ logger .info ("=========================" )
0 commit comments