using dotenv with default values properly and

certalized default value logic
This commit is contained in:
Karma Riuk
2025-06-12 15:12:14 +02:00
parent 47cefc955c
commit 173a20ef3f
7 changed files with 30 additions and 16 deletions

View File

@ -5,8 +5,7 @@ from utils.dataset import CommentGenSubmission
from utils.errors import InvalidJsonFormatError
from utils.process_data import evaluate_comments, evaluate_refinement
from utils.observer import SocketObserver, Status, Subject
import functools
import json
import functools, json, os
from utils.queue_manager import QueueManager
@ -56,7 +55,7 @@ def validate_json_format_for_code_refinement(data: str) -> dict[str, dict[str, s
raise InvalidJsonFormatError()
QUEUE_MANAGER = QueueManager(1)
QUEUE_MANAGER = QueueManager(int(os.environ["MAX_WORKERS"]))
def handler(type_: str, validate_json: Callable, evaluate_submission: Callable):

View File

@ -8,7 +8,7 @@ DATASETS = {'comment_generation', 'code_refinement'}
# below, the '../' + is need because the send_from send_from_directory is local
# the file, but the DATA_DIR is local to the root of the repo
DATA_DIR = os.path.join('..', os.getenv("DATA_PATH", "data"))
DATA_DIR = os.path.join('..', os.environ["DATA_PATH"])
@router.route('/download/<dataset>')

View File

@ -1,4 +1,9 @@
# server.py
from utils.env_defaults import set_env_defaults
from dotenv import load_dotenv
set_env_defaults()
load_dotenv()
from flask import Flask, request
from flask_cors import CORS
from flask_socketio import SocketIO
@ -9,10 +14,6 @@ from routes.datasets import router as datasets_router
from werkzeug.exceptions import HTTPException
import os
from dotenv import load_dotenv
load_dotenv()
app = Flask(__name__, static_folder='../public', static_url_path='/')
with app.app_context():
@ -79,7 +80,7 @@ def init_socketio(app):
socketio = init_socketio(app)
if __name__ == '__main__':
port = int(os.getenv('PORT', 45003))
port = int(os.environ['PORT'])
socketio.run(
app,
use_reloader=True,

View File

@ -637,7 +637,7 @@ def get_build_handler(root: str, repo: str, verbose: bool = False) -> BuildHandl
an instance of GradleHandler or MavenHandler
"""
path = os.path.join(root, repo)
if os.getenv('MOCK_BUILD_HANDLER', False):
if bool(os.environ["MOCK_BUILD_HANDLER"]):
return WaitBuildHander("NO REPO PATH", "NO BUILD FILE", {})
# 1) If it's a tarball, extract it

16
src/utils/env_defaults.py Normal file
View File

@ -0,0 +1,16 @@
import os
from typing import Any
def set(k: str, v: Any):
os.environ.setdefault(k, str(v))
def set_env_defaults():
set("PORT", 45003)
set("MAX_WORKERS", 5)
set("RESULTS_DIR", "submission_results")
set("MOCK_BUILD_HANDLER", False)
set("DATA_PATH", "data")
set("DATASET_PATH", os.path.join(os.environ["DATA_PATH"], "dataset.json"))
set("ARCHIVES_ROOT", os.path.join(os.environ["DATA_PATH"], "archives"))

View File

@ -4,7 +4,7 @@ from enum import Enum
import os, tempfile, threading, json
from typing import Callable, Optional, Set
RESULTS_DIR = os.getenv("RESULTS_DIR", "submission_results")
RESULTS_DIR = os.environ["RESULTS_DIR"]
class Status(Enum):

View File

@ -5,11 +5,9 @@ from utils.build_handlers import get_build_handler
from sacrebleu import sentence_bleu as bleu
from utils.dataset import ArchiveState, Comment, CommentGenSubmission, Dataset
REFERENCE_MAP = Dataset.from_json(
os.getenv("DATASET_PATH", os.path.join("data", "dataset.json")),
).build_reference_map()
REFERENCE_MAP = Dataset.from_json(os.environ["DATASET_PATH"]).build_reference_map()
ARCHIVES_ROOT = os.getenv("ARCHIVES_ROOT", "data/archives")
ARCHIVES_ROOT = os.environ["ARCHIVES_ROOT"]
def comment_distance(submission: CommentGenSubmission, entry: Comment):