-
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Overrides: NoteModel name, Deck desc (#16)
* Notes Override * Small bugfixes * Remove ToRead pattern * Deck Description as HTML * Media saving maintains subfolder status of existing files when 'recurring' is enabled
- Loading branch information
Showing
20 changed files
with
206 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
58 changes: 58 additions & 0 deletions
58
brain_brew/build_tasks/deck_parts/headers_from_yaml_part.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
from dataclasses import dataclass | ||
from typing import Union | ||
|
||
from brain_brew.build_tasks.deck_parts.from_yaml_part import FromYamlPartBase | ||
from brain_brew.build_tasks.overrides.headers_override import HeadersOverride | ||
from brain_brew.configuration.build_config.build_task import BuildPartTask | ||
from brain_brew.configuration.part_holder import PartHolder | ||
from brain_brew.configuration.representation_base import RepresentationBase | ||
from brain_brew.representation.yaml.headers import Headers | ||
|
||
|
||
@dataclass | ||
class HeadersFromYamlPart(BuildPartTask): | ||
@classmethod | ||
def yamale_schema(cls) -> str: | ||
return f'''\ | ||
part_id: str() | ||
file: str() | ||
override: include('{HeadersOverride.task_name()}', required=False) | ||
''' | ||
|
||
@classmethod | ||
def yamale_dependencies(cls) -> set: | ||
return {HeadersOverride} | ||
|
||
@classmethod | ||
def task_name(cls) -> str: | ||
return r'headers_from_yaml_part' | ||
|
||
@classmethod | ||
def task_regex(cls) -> str: | ||
return r'header[s]?_from_yaml_part' | ||
|
||
@dataclass | ||
class Representation(RepresentationBase): | ||
part_id: str | ||
file: str | ||
override: dict | ||
|
||
@classmethod | ||
def from_repr(cls, data: Union[Representation, dict]): | ||
rep: cls.Representation = data if isinstance(data, cls.Representation) else cls.Representation.from_dict(data) | ||
|
||
return cls( | ||
headers=PartHolder.override_or_create( | ||
part_id=rep.part_id, | ||
save_to_file=None, | ||
part=Headers.from_yaml_file(rep.file) | ||
).part, | ||
override=HeadersOverride.from_repr(rep.override) | ||
) | ||
|
||
headers: Headers | ||
override: HeadersOverride | ||
|
||
def execute(self): | ||
if self.override: | ||
self.headers = self.override.override(self.headers) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
from dataclasses import dataclass | ||
from typing import Optional, Union | ||
|
||
from brain_brew.configuration.representation_base import RepresentationBase | ||
from brain_brew.interfaces.yamale_verifyable import YamlRepr | ||
from brain_brew.representation.generic.html_file import HTMLFile | ||
from brain_brew.representation.yaml.headers import Headers | ||
|
||
|
||
@dataclass | ||
class HeadersOverride(YamlRepr): | ||
@classmethod | ||
def task_name(cls) -> str: | ||
return r"headers_override" | ||
|
||
@classmethod | ||
def yamale_schema(cls) -> str: | ||
return f'''\ | ||
deck_description_html_file: str(required=False) | ||
''' | ||
|
||
@dataclass | ||
class Representation(RepresentationBase): | ||
deck_description_html_file: Optional[str] | ||
|
||
@classmethod | ||
def from_repr(cls, data: Union[Representation, dict]): | ||
rep: cls.Representation = data if isinstance(data, cls.Representation) else cls.Representation.from_dict(data) | ||
return cls( | ||
deck_desc_html_file=HTMLFile.create_or_get(rep.deck_description_html_file) | ||
) | ||
|
||
deck_desc_html_file: Optional[HTMLFile] | ||
|
||
def override(self, header: Headers): | ||
if self.deck_desc_html_file: | ||
header.description = self.deck_desc_html_file.get_data(deep_copy=True) | ||
|
||
return header |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
from dataclasses import dataclass | ||
from typing import Optional, Union | ||
|
||
from brain_brew.configuration.representation_base import RepresentationBase | ||
from brain_brew.interfaces.yamale_verifyable import YamlRepr | ||
from brain_brew.representation.yaml.notes import Notes, Note | ||
|
||
|
||
@dataclass | ||
class NotesOverride(YamlRepr): | ||
@classmethod | ||
def task_name(cls) -> str: | ||
return r"notes_override" | ||
|
||
@classmethod | ||
def yamale_schema(cls) -> str: | ||
return f'''\ | ||
note_model: str(required=False) | ||
''' | ||
|
||
@dataclass | ||
class Representation(RepresentationBase): | ||
note_model: Optional[str] | ||
|
||
@classmethod | ||
def from_repr(cls, data: Union[Representation, dict]): | ||
rep: cls.Representation = data if isinstance(data, cls.Representation) else cls.Representation.from_dict(data) | ||
return cls( | ||
note_model=rep.note_model | ||
) | ||
|
||
note_model: Optional[str] | ||
|
||
def override(self, note: Note): | ||
if self.note_model: | ||
note.note_model = self.note_model | ||
|
||
return note |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.