chore: move path to const
This commit is contained in:
		
							parent
							
								
									4b3668d772
								
							
						
					
					
						commit
						6b5d941eb1
					
				|  | @ -2,6 +2,7 @@ import os | ||||||
| from typing import List | from typing import List | ||||||
| 
 | 
 | ||||||
| from joj3_config_generator.models import joj1, repo, result, task | from joj3_config_generator.models import joj1, repo, result, task | ||||||
|  | from joj3_config_generator.models.const import CACHE_ROOT, JOJ3_CONFIG_ROOT | ||||||
| from joj3_config_generator.processers.repo import ( | from joj3_config_generator.processers.repo import ( | ||||||
|     get_healthcheck_config, |     get_healthcheck_config, | ||||||
|     get_teapot_stage, |     get_teapot_stage, | ||||||
|  | @ -22,10 +23,10 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: | ||||||
|     result_conf = result.Config( |     result_conf = result.Config( | ||||||
|         name=task_conf.task.name, |         name=task_conf.task.name, | ||||||
|         # exact folder difference specified by type |         # exact folder difference specified by type | ||||||
|         log_path=f"/home/tt/.cache/joj3/{task_conf.task.type_}.log", |         log_path=str(CACHE_ROOT / "joj3" / f"{task_conf.task.type_}.log"), | ||||||
|         expire_unix_timestamp=int(task_conf.release.end_time.timestamp()), |         expire_unix_timestamp=int(task_conf.release.end_time.timestamp()), | ||||||
|         effective_unix_timestamp=int(task_conf.release.begin_time.timestamp()), |         effective_unix_timestamp=int(task_conf.release.begin_time.timestamp()), | ||||||
|         actor_csv_path="/home/tt/.config/joj/students.csv",  # students.csv position |         actor_csv_path=str(JOJ3_CONFIG_ROOT / "students.csv"),  # students.csv position | ||||||
|         max_total_score=repo_conf.max_total_score, |         max_total_score=repo_conf.max_total_score, | ||||||
|         stage=result.Stage(sandbox_token=repo_conf.sandbox_token), |         stage=result.Stage(sandbox_token=repo_conf.sandbox_token), | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|  | @ -10,6 +10,7 @@ from typing_extensions import Annotated | ||||||
| from joj3_config_generator.convert import convert as convert_conf | from joj3_config_generator.convert import convert as convert_conf | ||||||
| from joj3_config_generator.convert import convert_joj1 as convert_joj1_conf | from joj3_config_generator.convert import convert_joj1 as convert_joj1_conf | ||||||
| from joj3_config_generator.models import joj1, repo, task | from joj3_config_generator.models import joj1, repo, task | ||||||
|  | from joj3_config_generator.models.const import JOJ3_CONFIG_ROOT | ||||||
| from joj3_config_generator.utils.logger import logger | from joj3_config_generator.utils.logger import logger | ||||||
| 
 | 
 | ||||||
| app = typer.Typer(add_completion=False) | app = typer.Typer(add_completion=False) | ||||||
|  | @ -50,8 +51,7 @@ def convert( | ||||||
|     root: Annotated[ |     root: Annotated[ | ||||||
|         Path, |         Path, | ||||||
|         typer.Argument( |         typer.Argument( | ||||||
|             help="root directory of config files, " |             help=f"root directory of config files, located at {JOJ3_CONFIG_ROOT} in JTC" | ||||||
|             "located at /home/tt/.config/joj in JTC" |  | ||||||
|         ), |         ), | ||||||
|     ] = Path(".") |     ] = Path(".") | ||||||
| ) -> None: | ) -> None: | ||||||
|  |  | ||||||
|  | @ -1,5 +1,11 @@ | ||||||
|  | from pathlib import Path | ||||||
|  | 
 | ||||||
| from joj3_config_generator.models.common import Memory, Time | from joj3_config_generator.models.common import Memory, Time | ||||||
| 
 | 
 | ||||||
| DEFAULT_CPU_LIMIT = Time("1s") | DEFAULT_CPU_LIMIT = Time("1s") | ||||||
| DEFAULT_MEMORY_LIMIT = Memory("128m") | DEFAULT_MEMORY_LIMIT = Memory("128m") | ||||||
| DEFAULT_FILE_LIMIT = Memory("32m") | DEFAULT_FILE_LIMIT = Memory("32m") | ||||||
|  | 
 | ||||||
|  | JOJ3_CONFIG_ROOT = Path("/home/tt/.config/joj") | ||||||
|  | TEAPOT_CONFIG_ROOT = Path("/home/tt/.config/teapot") | ||||||
|  | CACHE_ROOT = Path("/home/tt/.cache") | ||||||
|  |  | ||||||
|  | @ -3,13 +3,14 @@ from pathlib import Path | ||||||
| from typing import List | from typing import List | ||||||
| 
 | 
 | ||||||
| from joj3_config_generator.models import repo, result | from joj3_config_generator.models import repo, result | ||||||
|  | from joj3_config_generator.models.const import CACHE_ROOT, TEAPOT_CONFIG_ROOT | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_teapot_stage(repo_conf: repo.Config) -> result.StageDetail: | def get_teapot_stage(repo_conf: repo.Config) -> result.StageDetail: | ||||||
|     args = [ |     args = [ | ||||||
|         "/usr/local/bin/joint-teapot", |         "/usr/local/bin/joint-teapot", | ||||||
|         "joj3-all-env", |         "joj3-all-env", | ||||||
|         "/home/tt/.config/teapot/teapot.env", |         str(TEAPOT_CONFIG_ROOT / "teapot.env"), | ||||||
|         "--grading-repo-name", |         "--grading-repo-name", | ||||||
|         repo_conf.grading_repo_name, |         repo_conf.grading_repo_name, | ||||||
|         "--max-total-score", |         "--max-total-score", | ||||||
|  | @ -23,7 +24,7 @@ def get_teapot_stage(repo_conf: repo.Config) -> result.StageDetail: | ||||||
|             with_=result.ExecutorWith( |             with_=result.ExecutorWith( | ||||||
|                 default=result.Cmd( |                 default=result.Cmd( | ||||||
|                     args=args, |                     args=args, | ||||||
|                     env=["LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"], |                     env=[f"LOG_FILE_PATH={CACHE_ROOT}/joint-teapot-debug.log"], | ||||||
|                 ), |                 ), | ||||||
|                 cases=[], |                 cases=[], | ||||||
|             ), |             ), | ||||||
|  | @ -58,7 +59,7 @@ def get_debug_args(repo_conf: repo.Config) -> List[str]: | ||||||
|     return [ |     return [ | ||||||
|         "/usr/local/bin/joint-teapot", |         "/usr/local/bin/joint-teapot", | ||||||
|         "joj3-check-env", |         "joj3-check-env", | ||||||
|         "/home/tt/.config/teapot/teapot.env", |         str(TEAPOT_CONFIG_ROOT / "teapot.env"), | ||||||
|         "--grading-repo-name", |         "--grading-repo-name", | ||||||
|         repo_conf.grading_repo_name, |         repo_conf.grading_repo_name, | ||||||
|         "--group-config", |         "--group-config", | ||||||
|  | @ -80,7 +81,7 @@ def get_healthcheck_config(repo_conf: repo.Config) -> result.StageDetail: | ||||||
|                     ), |                     ), | ||||||
|                     result.OptionalCmd( |                     result.OptionalCmd( | ||||||
|                         args=get_debug_args(repo_conf), |                         args=get_debug_args(repo_conf), | ||||||
|                         env=["LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"], |                         env=[f"LOG_FILE_PATH={CACHE_ROOT}/joint-teapot-debug.log"], | ||||||
|                     ), |                     ), | ||||||
|                 ], |                 ], | ||||||
|             ), |             ), | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ import shlex | ||||||
| from typing import List, Tuple | from typing import List, Tuple | ||||||
| 
 | 
 | ||||||
| from joj3_config_generator.models import result, task | from joj3_config_generator.models import result, task | ||||||
|  | from joj3_config_generator.models.const import JOJ3_CONFIG_ROOT | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_conf_stage( | def get_conf_stage( | ||||||
|  | @ -36,22 +37,9 @@ def get_conf_stage( | ||||||
| def get_executor_with_config( | def get_executor_with_config( | ||||||
|     task_stage: task.Stage, cached: List[str] |     task_stage: task.Stage, cached: List[str] | ||||||
| ) -> Tuple[result.ExecutorWith, List[str]]: | ) -> Tuple[result.ExecutorWith, List[str]]: | ||||||
|     file_import = ( |     file_import = task_stage.files.import_ | ||||||
|         task_stage.files.import_ |  | ||||||
|         if hasattr(task_stage, "files") |  | ||||||
|         and hasattr(task_stage.files, "import_") |  | ||||||
|         and (task_stage.files is not None) |  | ||||||
|         and (task_stage.files.import_ is not None) |  | ||||||
|         else [] |  | ||||||
|     ) |  | ||||||
|     copy_in_files = [file for file in file_import if file not in cached] |     copy_in_files = [file for file in file_import if file not in cached] | ||||||
|     file_export = ( |     file_export = task_stage.files.export | ||||||
|         task_stage.files.export |  | ||||||
|         if hasattr(task_stage, "files") |  | ||||||
|         and hasattr(task_stage.files, "export") |  | ||||||
|         and (task_stage.files is not None) |  | ||||||
|         else [] |  | ||||||
|     ) |  | ||||||
|     copy_out_files = ["stdout", "stderr"] |     copy_out_files = ["stdout", "stderr"] | ||||||
|     executor_with_config = result.ExecutorWith( |     executor_with_config = result.ExecutorWith( | ||||||
|         default=result.Cmd( |         default=result.Cmd( | ||||||
|  | @ -61,7 +49,7 @@ def get_executor_with_config( | ||||||
|                 else [] |                 else [] | ||||||
|             ), |             ), | ||||||
|             copy_in={ |             copy_in={ | ||||||
|                 file: result.LocalFile(src=f"/home/tt/.config/joj/{file}") |                 file: result.LocalFile(src=str(JOJ3_CONFIG_ROOT / file)) | ||||||
|                 # all copyin files store in this tools folder |                 # all copyin files store in this tools folder | ||||||
|                 # are there any corner cases |                 # are there any corner cases | ||||||
|                 for file in copy_in_files |                 for file in copy_in_files | ||||||
|  | @ -213,7 +201,7 @@ def fix_diff( | ||||||
|             stage_cases.append( |             stage_cases.append( | ||||||
|                 result.OptionalCmd( |                 result.OptionalCmd( | ||||||
|                     stdin=result.LocalFile( |                     stdin=result.LocalFile( | ||||||
|                         src=f"/home/tt/.config/joj/{task_conf.task.type_}/{stdin}", |                         src=str(JOJ3_CONFIG_ROOT / task_conf.task.type_ / stdin), | ||||||
|                     ), |                     ), | ||||||
|                     args=(shlex.split(command) if command is not None else None), |                     args=(shlex.split(command) if command is not None else None), | ||||||
|                     cpu_limit=cpu_limit, |                     cpu_limit=cpu_limit, | ||||||
|  | @ -236,7 +224,9 @@ def fix_diff( | ||||||
|                             result.DiffOutputConfig( |                             result.DiffOutputConfig( | ||||||
|                                 score=diff_output.score, |                                 score=diff_output.score, | ||||||
|                                 file_name="stdout", |                                 file_name="stdout", | ||||||
|                                 answer_path=f"/home/tt/.config/joj/{task_conf.task.type_}/{stdout}", |                                 answer_path=str( | ||||||
|  |                                     JOJ3_CONFIG_ROOT / task_conf.task.type_ / stdout | ||||||
|  |                                 ), | ||||||
|                                 force_quit_on_diff=diff_output.forcequit, |                                 force_quit_on_diff=diff_output.forcequit, | ||||||
|                                 always_hide=diff_output.hide, |                                 always_hide=diff_output.hide, | ||||||
|                                 compare_space=not diff_output.ignorespaces, |                                 compare_space=not diff_output.ignorespaces, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user