Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Löst diesen Kommentar:
Fälle wie in tests/questionpy/test_attempt.py und tests/questionpy/test_qtype.py hatten bisher für einen Fehler gesorgt, weil wir die Type-Hints in
__init_subclass__
resolven, was während der Klassen-Erstellung, also dort, wo die Subklasse definiert ist, aufgerufen wird. Zu dem Zeitpunkt könnten forward references a laoptions: "MyFormModel"
aber noch ins leere zeigen, wennMyFormModel
erst darunter definiert wird.Stattdessen habe ich die
*_class
-Attribute zu Klassen-Properties gemacht, sodass die forward references erst aufgelöst werden müssen, wenn sie das erste mal gebraucht werden.Aus dem gleichen Grund kann ich auch
validate_form
nicht mehr inQuestion.__init_subclass__
verorten und habe es nach etwas hin- und herüberlegen nachQuestionTypeWrapper.__init__
geschoben.