dev #10
|  | @ -1,6 +1,8 @@ | |||
| from typing import Any, Dict, List, Optional | ||||
| 
 | ||||
| import humanfriendly | ||||
| from pydantic import BaseModel, Field | ||||
| from pytimeparse.timeparse import timeparse | ||||
| 
 | ||||
| 
 | ||||
| class CmdFile(BaseModel): | ||||
|  | @ -8,7 +10,7 @@ class CmdFile(BaseModel): | |||
|     content: Optional[str] = None | ||||
|     file_id: Optional[str] = Field(None, serialization_alias="fileId") | ||||
|     name: Optional[str] = None | ||||
|     max: Optional[int] = 400 * 1024 * 1024 | ||||
|     max: Optional[int] = humanfriendly.parse_size("128m") | ||||
|     symlink: Optional[str] = None | ||||
|     stream_in: Optional[bool] = Field(None, serialization_alias="streamIn") | ||||
|     stream_out: Optional[bool] = Field(None, serialization_alias="streamOut") | ||||
|  | @ -19,12 +21,18 @@ class Cmd(BaseModel): | |||
|     args: Optional[List[str]] = None | ||||
|     env: Optional[List[str]] = ["PATH=/usr/bin:/bin:/usr/local/bin"] | ||||
|     stdin: Optional[CmdFile] = CmdFile(content="") | ||||
|     stdout: Optional[CmdFile] = CmdFile(name="stdout", max=4 * 1024) | ||||
|     stderr: Optional[CmdFile] = CmdFile(name="stderr", max=4 * 1024) | ||||
|     cpu_limit: int = Field(4 * 1000000000000, serialization_alias="cpuLimit") | ||||
|     stdout: Optional[CmdFile] = CmdFile( | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 | ||||
|         name="stdout", max=humanfriendly.parse_size("128m") | ||||
|     ) | ||||
|     stderr: Optional[CmdFile] = CmdFile( | ||||
|         name="stderr", max=humanfriendly.parse_size("128m") | ||||
|     ) | ||||
|     cpu_limit: int = Field(timeparse("1s"), serialization_alias="cpuLimit") | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  unit? unit? 
				
					
						李衍志523370910113
						commented  I think  I think `timeparse` and `humanfriendly` would deal wth that? 
				
					
						李衍志523370910113
						commented  resolved. resolved. | ||||
|     real_cpu_limit: int = Field(0, serialization_alias="realCpuLimit") | ||||
|     clock_limit: int = Field(8 * 1000000000000, serialization_alias="clockLimit") | ||||
|     memory_limit: int = Field(800 * 1024 * 1024, serialization_alias="memoryLimit") | ||||
|     clock_limit: int = Field(2 * timeparse("1s"), serialization_alias="clockLimit") | ||||
|     memory_limit: int = Field( | ||||
|         humanfriendly.parse_size("128m"), serialization_alias="memoryLimit" | ||||
|     ) | ||||
|     stack_limit: int = Field(0, serialization_alias="stackLimit") | ||||
|     proc_limit: int = Field(50, serialization_alias="procLimit") | ||||
|     cpu_rate_limit: int = Field(0, serialization_alias="cpuRateLimit") | ||||
|  | @ -49,13 +57,13 @@ class OptionalCmd(BaseModel): | |||
|     stdin: Optional[CmdFile] = None | ||||
|     stdout: Optional[CmdFile] = None | ||||
|     stderr: Optional[CmdFile] = None | ||||
|     cpu_limit: Optional[int] = Field(4 * 1000000000000, serialization_alias="cpuLimit") | ||||
|     cpu_limit: Optional[int] = Field(timeparse("1s"), serialization_alias="cpuLimit") | ||||
|     real_cpu_limit: Optional[int] = Field(None, serialization_alias="realCpuLimit") | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  What is the conclusion? What is the conclusion? 
				
					
						李衍志523370910113
						commented  should be already solved. should be already solved. | ||||
|     clock_limit: Optional[int] = Field( | ||||
|         8 * 1000000000000, serialization_alias="clockLimit" | ||||
|         2 * timeparse("1s"), serialization_alias="clockLimit" | ||||
|     ) | ||||
|     memory_limit: Optional[int] = Field( | ||||
|         800 * 1024 * 1024, serialization_alias="memoryLimit" | ||||
|         humanfriendly.parse_size("128m"), serialization_alias="memoryLimit" | ||||
|     ) | ||||
|     stack_limit: Optional[int] = Field(None, serialization_alias="stackLimit") | ||||
|     proc_limit: Optional[int] = Field(50, serialization_alias="procLimit") | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	
default value too large, should be 1s 128MB
will fix later, we need to hold some test I reckon?
no
@bomingzh fixed