dev #10
|  | @ -2,6 +2,7 @@ import os | |||
| from typing import List | ||||
| 
 | ||||
| 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 ( | ||||
|     get_healthcheck_config, | ||||
|     get_teapot_stage, | ||||
|  | @ -22,10 +23,10 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: | |||
|     result_conf = result.Config( | ||||
|         name=task_conf.task.name, | ||||
|         # 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()), | ||||
|         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, | ||||
|         stage=result.Stage(sandbox_token=repo_conf.sandbox_token), | ||||
|     ) | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 | ||||
|  |  | |||
|  | @ -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_joj1 as convert_joj1_conf | ||||
| 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 | ||||
| 
 | ||||
| app = typer.Typer(add_completion=False) | ||||
|  | @ -50,8 +51,7 @@ def convert( | |||
|     root: Annotated[ | ||||
|         Path, | ||||
|         typer.Argument( | ||||
|             help="root directory of config files, " | ||||
|             "located at /home/tt/.config/joj in JTC" | ||||
|             help=f"root directory of config files, located at {JOJ3_CONFIG_ROOT} in JTC" | ||||
|         ), | ||||
|     ] = Path(".") | ||||
| ) -> None: | ||||
|  |  | |||
|  | @ -1,5 +1,11 @@ | |||
| from pathlib import Path | ||||
| 
 | ||||
| from joj3_config_generator.models.common import Memory, Time | ||||
| 
 | ||||
| DEFAULT_CPU_LIMIT = Time("1s") | ||||
| DEFAULT_MEMORY_LIMIT = Memory("128m") | ||||
| 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 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: | ||||
|     args = [ | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  make it a field in repo.toml, if it is unset, then use  make it a field in repo.toml, if it is unset, then use `socket.gethostname`. We set this value to pass the test. 
				
					
						李衍志523370910113
						commented  resolved. resolved. | ||||
|         "/usr/local/bin/joint-teapot", | ||||
|         "joj3-all-env", | ||||
|         "/home/tt/.config/teapot/teapot.env", | ||||
|         str(TEAPOT_CONFIG_ROOT / "teapot.env"), | ||||
|         "--grading-repo-name", | ||||
|         repo_conf.grading_repo_name, | ||||
|         "--max-total-score", | ||||
|  | @ -23,7 +24,7 @@ def get_teapot_stage(repo_conf: repo.Config) -> result.StageDetail: | |||
|             with_=result.ExecutorWith( | ||||
|                 default=result.Cmd( | ||||
|                     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=[], | ||||
|             ), | ||||
|  | @ -58,7 +59,7 @@ def get_debug_args(repo_conf: repo.Config) -> List[str]: | |||
|     return [ | ||||
|         "/usr/local/bin/joint-teapot", | ||||
|         "joj3-check-env", | ||||
|         "/home/tt/.config/teapot/teapot.env", | ||||
|         str(TEAPOT_CONFIG_ROOT / "teapot.env"), | ||||
|         "--grading-repo-name", | ||||
|         repo_conf.grading_repo_name, | ||||
|         "--group-config", | ||||
|  | @ -80,7 +81,7 @@ def get_healthcheck_config(repo_conf: repo.Config) -> result.StageDetail: | |||
|                     ), | ||||
|                     result.OptionalCmd( | ||||
|                         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 joj3_config_generator.models import result, task | ||||
| from joj3_config_generator.models.const import JOJ3_CONFIG_ROOT | ||||
| 
 | ||||
| 
 | ||||
| def get_conf_stage( | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  
 `ParserEnum` | ||||
|  | @ -36,22 +37,9 @@ def get_conf_stage( | |||
| def get_executor_with_config( | ||||
|     task_stage: task.Stage, cached: List[str] | ||||
| ) -> Tuple[result.ExecutorWith, List[str]]: | ||||
|     file_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 [] | ||||
|     ) | ||||
|     file_import = task_stage.files.import_ | ||||
|     copy_in_files = [file for file in file_import if file not in cached] | ||||
|     file_export = ( | ||||
|         task_stage.files.export | ||||
|         if hasattr(task_stage, "files") | ||||
|         and hasattr(task_stage.files, "export") | ||||
|         and (task_stage.files is not None) | ||||
|         else [] | ||||
|     ) | ||||
|     file_export = task_stage.files.export | ||||
|     copy_out_files = ["stdout", "stderr"] | ||||
|     executor_with_config = result.ExecutorWith( | ||||
|         default=result.Cmd( | ||||
|  | @ -61,7 +49,7 @@ def get_executor_with_config( | |||
|                 else [] | ||||
|             ), | ||||
|             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 | ||||
|                 # are there any corner cases | ||||
|                 for file in copy_in_files | ||||
|  | @ -213,7 +201,7 @@ def fix_diff( | |||
|             stage_cases.append( | ||||
|                 result.OptionalCmd( | ||||
|                     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), | ||||
|                     cpu_limit=cpu_limit, | ||||
|  | @ -236,7 +224,9 @@ def fix_diff( | |||
|                             result.DiffOutputConfig( | ||||
|                                 score=diff_output.score, | ||||
|                                 file_name="stdout", | ||||
|                                 answer_path=f"/home/tt/.config/joj/{task_conf.task.type_}/{stdout}", | ||||
|                                 answer_path=str( | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  Just pass  Just pass `conf_stage.executor` to this function rather then the whole `conf_stage`. | ||||
|                                     JOJ3_CONFIG_ROOT / task_conf.task.type_ / stdout | ||||
|                                 ), | ||||
|                                 force_quit_on_diff=diff_output.forcequit, | ||||
|                                 always_hide=diff_output.hide, | ||||
|                                 compare_space=not diff_output.ignorespaces, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	
Make this
Path.home()default to/home/tt. For now, create a const for this dir.fixed