2020class TestEntry (BaseModel ):
2121 model_config = ConfigDict (frozen = True )
2222
23- codeunitID : int
23+ codeunitID : Annotated [ int , Field ( gt = 0 )]
2424 functionName : Annotated [frozenset [str ], Field (min_length = 1 )]
2525
2626
2727class EntryMetadata (BaseModel ):
2828 model_config = ConfigDict (frozen = True )
2929
3030 area : str | None = None
31- image_count : int | None = None
31+ image_count : Annotated [ int , Field ( ge = 0 )] | None = None
3232 persona : str | None = None
3333
3434
@@ -44,8 +44,8 @@ class BaseDatasetEntry(BaseModel):
4444 base_commit : str = Field (pattern = r"^[a-fA-F0-9]{40}$" )
4545 created_at : Annotated [str , Field (min_length = 1 )]
4646 environment_setup_version : str = Field (pattern = r"^[0-9]{2}\.[0-9]{1}$" )
47- project_paths : list [str ] = []
48- patch : Annotated [str , Field (min_length = 1 )]
47+ project_paths : list [Annotated [ str , Field ( pattern = r"^[A-Za-z0-9][A-Za-z0-9 \\/-]*$" )] ] = []
48+ patch : Annotated [str , Field (min_length = 1 , pattern = r"^[^\x00]*$" )]
4949
5050 @classmethod
5151 def load (cls , dataset_path : Path , entry_id : str | None = None , random : int | None = None ) -> list [Self ]:
@@ -112,7 +112,7 @@ class _BugFixTestGenBase(BaseDatasetEntry):
112112
113113 fail_to_pass : Annotated [list [TestEntry ], Field (alias = "FAIL_TO_PASS" , min_length = 1 )]
114114 pass_to_pass : Annotated [list [TestEntry ], Field (alias = "PASS_TO_PASS" )] = []
115- test_patch : Annotated [str , Field (min_length = 1 )]
115+ test_patch : Annotated [str , Field (min_length = 1 , pattern = r"^[^\x00]*$" )]
116116
117117 @property
118118 def problem_statement_dir (self ) -> Path :
@@ -158,9 +158,9 @@ class NL2ALEntry(BaseDatasetEntry):
158158 """Dataset entry for NL2AL category — generate AL code from natural language."""
159159
160160 base_commit : str | None = None
161- nl_prompt : Annotated [str , Field (min_length = 1 )]
161+ nl_prompt : Annotated [str , Field (min_length = 1 , pattern = r"^[^\x00]*$" )]
162162 expected : Annotated [list [ChecklistAssertion ], Field (min_length = 1 )]
163- page : str
163+ page : Annotated [ str , Field ( pattern = r"^[A-Za-z0-9][A-Za-z0-9 ./]*$" )]
164164 audience : Literal ["Business" , "Technical" , "Both" ]
165165
166166 def get_task (self ) -> str :
0 commit comments