feat: more templates
This commit is contained in:
		
							parent
							
								
									70440382d2
								
							
						
					
					
						commit
						5a13c43f7b
					
				|  | @ -19,7 +19,11 @@ def load_joj3_task_toml_answers() -> answer.Answers: | |||
|     ) | ||||
|     language = cast(Type[answer.LanguageInterface], language) | ||||
|     if inquirer.confirm("Load content from templates?", default=True): | ||||
|         answers = inquirer.prompt(language.get_template_questions()) | ||||
|         questions = language.get_template_questions() | ||||
|         if not questions[0].choices: | ||||
|             logger.warning("No template files found for the selected language. ") | ||||
|             return answer.Answers(name=name, language=language) | ||||
|         answers = inquirer.prompt(questions) | ||||
|         template_file_content: str = answers["template_file_content"] | ||||
|         return answer.Answers( | ||||
|             name=name, language=language, template_file_content=template_file_content | ||||
|  |  | |||
|  | @ -126,10 +126,122 @@ class Rust(LanguageInterface): | |||
|         return [] | ||||
| 
 | ||||
| 
 | ||||
| class C(LanguageInterface): | ||||
|     name = "C" | ||||
| 
 | ||||
|     class Attribute(BaseModel): | ||||
|         pass | ||||
| 
 | ||||
|     stages = [] | ||||
|     attribute = Attribute() | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_attribute_questions(cls) -> List[Any]: | ||||
|         attribute: C.Attribute = cls.attribute | ||||
|         return [] | ||||
| 
 | ||||
| 
 | ||||
| class Java(LanguageInterface): | ||||
|     name = "Java" | ||||
| 
 | ||||
|     class Attribute(BaseModel): | ||||
|         pass | ||||
| 
 | ||||
|     stages = [] | ||||
|     attribute = Attribute() | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_attribute_questions(cls) -> List[Any]: | ||||
|         attribute: Java.Attribute = cls.attribute | ||||
|         return [] | ||||
| 
 | ||||
| 
 | ||||
| class Elm(LanguageInterface): | ||||
|     name = "Elm" | ||||
| 
 | ||||
|     class Attribute(BaseModel): | ||||
|         pass | ||||
| 
 | ||||
|     stages = [] | ||||
|     attribute = Attribute() | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_attribute_questions(cls) -> List[Any]: | ||||
|         attribute: Elm.Attribute = cls.attribute | ||||
|         return [] | ||||
| 
 | ||||
| 
 | ||||
| class Matlab(LanguageInterface): | ||||
|     name = "Matlab" | ||||
| 
 | ||||
|     class Attribute(BaseModel): | ||||
|         pass | ||||
| 
 | ||||
|     stages = [] | ||||
|     attribute = Attribute() | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_attribute_questions(cls) -> List[Any]: | ||||
|         attribute: Matlab.Attribute = cls.attribute | ||||
|         return [] | ||||
| 
 | ||||
| 
 | ||||
| class Octave(LanguageInterface): | ||||
|     name = "Octave" | ||||
| 
 | ||||
|     class Attribute(BaseModel): | ||||
|         pass | ||||
| 
 | ||||
|     stages = [] | ||||
|     attribute = Attribute() | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_attribute_questions(cls) -> List[Any]: | ||||
|         attribute: Octave.Attribute = cls.attribute | ||||
|         return [] | ||||
| 
 | ||||
| 
 | ||||
| class JavaScript(LanguageInterface): | ||||
|     name = "JavaScript" | ||||
| 
 | ||||
|     class Attribute(BaseModel): | ||||
|         pass | ||||
| 
 | ||||
|     stages = [] | ||||
|     attribute = Attribute() | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_attribute_questions(cls) -> List[Any]: | ||||
|         attribute: JavaScript.Attribute = cls.attribute | ||||
|         return [] | ||||
| 
 | ||||
| 
 | ||||
| class Go(LanguageInterface): | ||||
|     name = "Go" | ||||
| 
 | ||||
|     class Attribute(BaseModel): | ||||
|         pass | ||||
| 
 | ||||
|     stages = [] | ||||
|     attribute = Attribute() | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_attribute_questions(cls) -> List[Any]: | ||||
|         attribute: Go.Attribute = cls.attribute | ||||
|         return [] | ||||
| 
 | ||||
| 
 | ||||
| LANGUAGES: List[Type[LanguageInterface]] = [ | ||||
|     C, | ||||
|     Cpp, | ||||
|     Python, | ||||
|     Rust, | ||||
|     Java, | ||||
|     Elm, | ||||
|     Matlab, | ||||
|     Octave, | ||||
|     JavaScript, | ||||
|     Go, | ||||
| ] | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										0
									
								
								joj3_config_generator/templates/C/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								joj3_config_generator/templates/C/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								joj3_config_generator/templates/Elm/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								joj3_config_generator/templates/Elm/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								joj3_config_generator/templates/Go/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								joj3_config_generator/templates/Go/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										152
									
								
								joj3_config_generator/templates/Java/ve472-l1.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										152
									
								
								joj3_config_generator/templates/Java/ve472-l1.toml
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,152 @@ | |||
| [[stages]] | ||||
| name = "Compilation" | ||||
| env = [ "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" ] | ||||
| 
 | ||||
| command = "bash -c 'javac -cp labs/l1/commons-cli-1.4.jar com/ve472/l1/*.java'" | ||||
| 
 | ||||
| files.import = ["labs/l1/commons-cli-1.4.jar"] | ||||
| files.export = ["com/ve472/l1/Cinema.class", "com/ve472/l1/Hall.class", "com/ve472/l1/Main.class"] | ||||
| 
 | ||||
| # compile parsers | ||||
| parsers = [ "result-detail", "dummy", "result-status" ] # list of parsers to run on the output of `command` | ||||
| result-status.comment = "Congratulations! Your code compiled successfully." | ||||
| dummy.comment = "\n\n### Details\n" | ||||
| result-detail.exitstatus = true | ||||
| result-detail.stderr = true | ||||
| result-detail.time = false | ||||
| result-detail.mem = false | ||||
| result-detail.stdout = true | ||||
| limit.cpu = "20s" | ||||
| limit.mem = "500mb" | ||||
| 
 | ||||
| 
 | ||||
| [[stages]] | ||||
| name = "judge" | ||||
| env = [ "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" ] | ||||
| 
 | ||||
| files.import = ["labs/l1/commons-cli-1.4.jar", | ||||
|                 "labs/l1/case10/0.txt", | ||||
|                 "labs/l1/case10/1.txt", | ||||
|                 "labs/l1/case10.txt", | ||||
|                 "labs/l1/case11/0.txt", | ||||
|                 "labs/l1/case11/1.txt", | ||||
|                 "labs/l1/case11/2.txt", | ||||
|                 "labs/l1/case11/3.txt", | ||||
|                 "labs/l1/case11/4.txt", | ||||
|                 "labs/l1/case11.txt", | ||||
|                 "labs/l1/case12.txt", | ||||
|                 "labs/l1/case13.txt", | ||||
|                 "labs/l1/case14/0.txt", | ||||
|                 "labs/l1/case14/1.txt", | ||||
|                 "labs/l1/case14/2.txt", | ||||
|                 "labs/l1/case14/3.txt", | ||||
|                 "labs/l1/case14/4.txt", | ||||
|                 "labs/l1/case14/5.txt", | ||||
|                 "labs/l1/case14/6.txt", | ||||
|                 "labs/l1/case14.txt", | ||||
|                 "labs/l1/case15.txt", | ||||
|                 "labs/l1/case16.txt", | ||||
|                 "labs/l1/case17.txt", | ||||
|                 "labs/l1/case18.txt", | ||||
|                 "labs/l1/case19.txt", | ||||
|                 "labs/l1/case9/1.txt", | ||||
|                 "labs/l1/case9.txt", | ||||
|                 "labs/l1/empty.txt", | ||||
|                 "labs/l1/hall/0.txt", | ||||
|                 "labs/l1/hall/1.txt", | ||||
|                 "labs/l1/hall/2.txt", | ||||
|                 "labs/l1/hall/3.txt", | ||||
|                 "labs/l1/hall/4.txt",] | ||||
| 
 | ||||
| parsers = [ "diff", "result-detail"] # list of parsers to run on the output of `command` | ||||
| 
 | ||||
| result-detail.exitstatus = true | ||||
| result-detail.stderr = true | ||||
| result-detail.time = false | ||||
| result-detail.mem = false | ||||
| result-detail.stdout = true | ||||
| 
 | ||||
| score = 5 | ||||
| comment.pass = "🥳Passed!" | ||||
| comment.fail = "🧐Failed..." | ||||
| 
 | ||||
| 
 | ||||
| case0.diff.output.score = 5 | ||||
| case0.out = "help.out" | ||||
| case0.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main" | ||||
| 
 | ||||
| case1.diff.output.score = 5 | ||||
| case1.out = "help.out" | ||||
| case1.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main -h" | ||||
| 
 | ||||
| case2.diff.output.score = 5 | ||||
| case2.out = "help.out" | ||||
| case2.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --help" | ||||
| 
 | ||||
| case3.diff.output.score = 5 | ||||
| case3.out = "help.out" | ||||
| case3.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall" | ||||
| 
 | ||||
| case4.diff.output.score = 5 | ||||
| case4.out = "help.out" | ||||
| case4.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --query" | ||||
| 
 | ||||
| case5.diff.output.score = 5 | ||||
| case5.out = "help.out" | ||||
| case5.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --test" | ||||
| 
 | ||||
| case6.diff.output.score = 5 | ||||
| case6.out = "help.out" | ||||
| case6.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/hall --query" | ||||
| 
 | ||||
| case7.diff.output.score = 5 | ||||
| case7.out = "help.out" | ||||
| case7.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall --query labs/l1/empty.txt" | ||||
| 
 | ||||
| case8.diff.output.score = 5 | ||||
| case8.out = "case8.out" | ||||
| case8.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/hall --query labs/l1/empty.txt" | ||||
| 
 | ||||
| case9.diff.output.score = 5 | ||||
| case9.out = "case9.out" | ||||
| case9.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case9 --query labs/l1/case9.txt" | ||||
| 
 | ||||
| case10.diff.output.score = 5 | ||||
| case10.out = "case10.out" | ||||
| case10.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case10 --query labs/l1/case10.txt" | ||||
| 
 | ||||
| case11.diff.output.score = 5 | ||||
| case11.out = "case11.out" | ||||
| case11.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case11 --query labs/l1/case11.txt" | ||||
| 
 | ||||
| case12.diff.output.score = 5 | ||||
| case12.out = "case12.out" | ||||
| case12.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case9 --query labs/l1/case12.txt" | ||||
| 
 | ||||
| case13.diff.output.score = 5 | ||||
| case13.out = "case13.out" | ||||
| case13.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case9 --query labs/l1/case13.txt" | ||||
| 
 | ||||
| case14.diff.output.score = 5 | ||||
| case14.out = "case14.out" | ||||
| case14.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case14 --query labs/l1/case14.txt" | ||||
| 
 | ||||
| case15.diff.output.score = 5 | ||||
| case15.out = "case15.out" | ||||
| case15.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case14 --query labs/l1/case15.txt" | ||||
| 
 | ||||
| case16.diff.output.score = 5 | ||||
| case16.out = "case16.out" | ||||
| case16.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case14 --query labs/l1/case16.txt" | ||||
| 
 | ||||
| case17.diff.output.score = 5 | ||||
| case17.out = "case17.out" | ||||
| case17.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case14 --query labs/l1/case17.txt" | ||||
| 
 | ||||
| case18.diff.output.score = 5 | ||||
| case18.out = "case18.out" | ||||
| case18.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case14 --query labs/l1/case18.txt" | ||||
| 
 | ||||
| case19.diff.output.score = 5 | ||||
| case19.out = "case19.out" | ||||
| case19.command = "java -cp labs/l1/commons-cli-1.4.jar:. com.ve472.l1.Main --hall labs/l1/case14 --query labs/l1/case19.txt" | ||||
							
								
								
									
										0
									
								
								joj3_config_generator/templates/JavaScript/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								joj3_config_generator/templates/JavaScript/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								joj3_config_generator/templates/Matlab/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								joj3_config_generator/templates/Matlab/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								joj3_config_generator/templates/Octave/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								joj3_config_generator/templates/Octave/.gitkeep
									
									
									
									
									
										Normal file
									
								
							|  | @ -14,6 +14,8 @@ def get_task_conf_from_answers(answers: answer.Answers) -> task.Config: | |||
|         ) | ||||
|     language = answers.language | ||||
|     transformer_dict = get_transformer_dict() | ||||
|     if language not in transformer_dict: | ||||
|         return task.Config(task=task.Task(name=answers.name), stages=[]) | ||||
|     transformer = transformer_dict[language] | ||||
|     stages = transformer(language) | ||||
|     return task.Config(task=task.Task(name=answers.name), stages=stages) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user