Skip to content

Commit

Permalink
Split validators in scholar
Browse files Browse the repository at this point in the history
  • Loading branch information
sesquideus committed Nov 25, 2024
1 parent fd0d152 commit 9273449
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 8 deletions.
2 changes: 0 additions & 2 deletions modules/scholar/builder/contexts/buildable.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@
from .base import ContextScholar
from .hierarchy import ContextCourse, ContextYear
from .i18n import ContextI18n
from .validators import ScholarValidator


class ContextIssueBase(BuildableFileSystemContext, ContextScholar, metaclass=ABCMeta):
_issue_context_class = None
_validator_class = ScholarValidator

def populate(self, course: str, year: int, issue: int):
self.adopt(
Expand Down
2 changes: 2 additions & 0 deletions modules/scholar/builder/contexts/handout.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from .hierarchy import ContextIssue, ContextIssueSub
from .buildable import ContextIssueBase
from .validators import HandoutValidator


class HandoutMixin:
Expand Down Expand Up @@ -33,4 +34,5 @@ class ContextHandoutIssue(HandoutMixin, ContextIssue):

class ContextHandout(HandoutMixin, ContextIssueBase):
_schema = Schema({})
_validator_class = HandoutValidator
_issue_context_class = ContextHandoutIssue
4 changes: 3 additions & 1 deletion modules/scholar/builder/contexts/homework.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from .hierarchy import ContextIssue, ContextIssueSub, ContextIssueSubSub
from .buildable import ContextIssueBase
from .validators import HomeworkValidator


class HomeworkMixin:
Expand Down Expand Up @@ -39,5 +40,6 @@ class ContextHomeworkIssue(HomeworkMixin, ContextIssue):


class ContextHomework(HomeworkMixin, ContextIssueBase):
_issue_context_class = ContextHomeworkIssue
_schema = Schema({})
_validator_class = HomeworkValidator
_issue_context_class = ContextHomeworkIssue
33 changes: 28 additions & 5 deletions modules/scholar/builder/contexts/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,42 @@
from core.builder.validator import FileSystemValidator, File, FileOrLink


class ScholarValidator(FileSystemValidator):
data = Regex(r'[\w-]+\.(png|jpg|svg|gp|py|dat|tsv)')


class HandoutValidator(FileSystemValidator):
_schema = Schema({
Optional(data): FileOrLink,
Optional(Regex(r'[\w-]+')): {
Optional('problem.md'): File,
Optional('solution.md'): File,
Optional('meta.yaml'): File,
Optional(data): FileOrLink,
Optional(Regex(r'[\w-]+')): {
Optional('problem.md'): File,
Optional('solution.md'): File,
'meta.yaml': File,
Optional(data): FileOrLink,
},
},
Optional('text.md'): File,
'meta.yaml': File,
})


class HomeworkValidator(FileSystemValidator):
_schema = Schema({
Optional(Regex(r'[\w-]+\.(png|jpg|svg|gp|py|dat|tsv)')): FileOrLink,
Optional(data): FileOrLink,
Optional(Regex(r'[\w-]+')): {
Optional('problem.md'): File,
Optional('solution.md'): File,
'meta.yaml': File,
Optional(Regex(r'[\w-]+\.(png|jpg|svg|gp|py|dat|tsv)')): FileOrLink,
Optional('meta.yaml'): File,
Optional(data): FileOrLink,
Optional(Regex(r'[\w-]+')): {
Optional('problem.md'): File,
Optional('solution.md'): File,
'meta.yaml': File,
Optional(Regex(r'[\w-]+\.(png|jpg|svg|gp|py|dat|tsv)')): FileOrLink,
Optional(data): FileOrLink,
},
},
Optional('text.md'): File,
Expand Down

0 comments on commit 9273449

Please sign in to comment.