Add justfile, add command xml-to-dataclasses, add generated dataclasses
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
__pycache__/
|
||||
|
||||
# Virtual environments (uv default)
|
||||
.venv/
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
default:
|
||||
@just --list
|
||||
|
||||
root := justfile_directory()
|
||||
|
||||
[working-directory: 'src/tasks_to_mdl']
|
||||
xml-to-dataclasses:
|
||||
uv run xsdata generate --package gen --include-header {{ root }}/input/nothing.xml
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
"""This file was generated by xsdata, v26.2, on 2026-09-14 16:00:22
|
||||
|
||||
Generator: DataclassGenerator
|
||||
See: https://xsdata.readthedocs.io/
|
||||
"""
|
||||
|
||||
from gen.quiz import (
|
||||
Display,
|
||||
Expected,
|
||||
Extra,
|
||||
Generalfeedback,
|
||||
Name,
|
||||
Question,
|
||||
Questiontext,
|
||||
Quiz,
|
||||
Stdin,
|
||||
Testcase,
|
||||
Testcases,
|
||||
Testcode,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"Display",
|
||||
"Expected",
|
||||
"Extra",
|
||||
"Generalfeedback",
|
||||
"Name",
|
||||
"Question",
|
||||
"Questiontext",
|
||||
"Quiz",
|
||||
"Stdin",
|
||||
"Testcase",
|
||||
"Testcases",
|
||||
"Testcode",
|
||||
]
|
||||
@@ -0,0 +1,488 @@
|
||||
"""This file was generated by xsdata, v26.2, on 2026-09-14 16:00:22
|
||||
|
||||
Generator: DataclassGenerator
|
||||
See: https://xsdata.readthedocs.io/
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from decimal import Decimal
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Display:
|
||||
class Meta:
|
||||
name = "display"
|
||||
|
||||
text: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Expected:
|
||||
class Meta:
|
||||
name = "expected"
|
||||
|
||||
text: str | Decimal | float = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Extra:
|
||||
class Meta:
|
||||
name = "extra"
|
||||
|
||||
text: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Generalfeedback:
|
||||
class Meta:
|
||||
name = "generalfeedback"
|
||||
|
||||
format: str = field(
|
||||
metadata={
|
||||
"type": "Attribute",
|
||||
}
|
||||
)
|
||||
text: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Name:
|
||||
class Meta:
|
||||
name = "name"
|
||||
|
||||
text: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Questiontext:
|
||||
class Meta:
|
||||
name = "questiontext"
|
||||
|
||||
format: str = field(
|
||||
metadata={
|
||||
"type": "Attribute",
|
||||
}
|
||||
)
|
||||
text: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Stdin:
|
||||
class Meta:
|
||||
name = "stdin"
|
||||
|
||||
text: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Testcode:
|
||||
class Meta:
|
||||
name = "testcode"
|
||||
|
||||
text: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Testcase:
|
||||
class Meta:
|
||||
name = "testcase"
|
||||
|
||||
testtype: int = field(
|
||||
metadata={
|
||||
"type": "Attribute",
|
||||
}
|
||||
)
|
||||
useasexample: int = field(
|
||||
metadata={
|
||||
"type": "Attribute",
|
||||
}
|
||||
)
|
||||
hiderestiffail: int = field(
|
||||
metadata={
|
||||
"type": "Attribute",
|
||||
}
|
||||
)
|
||||
mark: Decimal = field(
|
||||
metadata={
|
||||
"type": "Attribute",
|
||||
}
|
||||
)
|
||||
testcode: Testcode = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
stdin: Stdin = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
expected: Expected = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
extra: Extra = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
display: Display = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Testcases:
|
||||
class Meta:
|
||||
name = "testcases"
|
||||
|
||||
testcase: list[Testcase] = field(
|
||||
default_factory=list,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
"min_occurs": 1,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Question:
|
||||
class Meta:
|
||||
name = "question"
|
||||
|
||||
type_value: str = field(
|
||||
metadata={
|
||||
"name": "type",
|
||||
"type": "Attribute",
|
||||
}
|
||||
)
|
||||
name: Name = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
questiontext: Questiontext = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
generalfeedback: Generalfeedback = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
defaultgrade: Decimal = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
penalty: Decimal = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
hidden: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
idnumber: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
coderunnertype: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
prototypetype: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
allornothing: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
penaltyregime: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
precheck: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
hidecheck: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
showsource: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
answerboxlines: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
answerboxcolumns: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
answerpreload: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
globalextra: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
useace: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
resultcolumns: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
template: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
iscombinatortemplate: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
allowmultiplestdins: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
answer: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
validateonsave: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
testsplitterre: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
language: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
acelang: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
sandbox: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
grader: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
cputimelimitsecs: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
memlimitmb: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
sandboxparams: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
templateparams: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
hoisttemplateparams: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
extractcodefromjson: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
templateparamslang: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
templateparamsevalpertry: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
templateparamsevald: str = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
twigall: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
uiplugin: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
uiparameters: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
attachments: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
attachmentsrequired: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
maxfilesize: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
filenamesregex: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
filenamesexplain: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
displayfeedback: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
giveupallowed: int = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
prototypeextra: None | object = field(
|
||||
default=None,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
},
|
||||
)
|
||||
testcases: Testcases = field(
|
||||
metadata={
|
||||
"type": "Element",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class Quiz:
|
||||
class Meta:
|
||||
name = "quiz"
|
||||
|
||||
question: list[Question] = field(
|
||||
default_factory=list,
|
||||
metadata={
|
||||
"type": "Element",
|
||||
"min_occurs": 1,
|
||||
},
|
||||
)
|
||||
Reference in New Issue
Block a user