| @@ -17,11 +17,7 @@ | |||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| # SOFTWARE. | # SOFTWARE. | ||||
| import sys | |||||
| from pathlib import Path | |||||
| sys.path.append(str(Path(__file__).parent.parent)) | |||||
| from collections import defaultdict | from collections import defaultdict | ||||
| from typing import TypedDict | |||||
| import re | import re | ||||
| from ._base import Node | from ._base import Node | ||||
| @@ -35,14 +31,6 @@ __all__ = ["Template"] | |||||
| FLAGS = re.DOTALL | re.UNICODE | FLAGS = re.DOTALL | re.UNICODE | ||||
| # Used to allow None as a valid fallback value | # Used to allow None as a valid fallback value | ||||
| _UNSET = object() | _UNSET = object() | ||||
| class TemplateParam(TypedDict): | |||||
| """TypedDict for template.update() method.""" | |||||
| name: any | |||||
| value: any | |||||
| showkey: bool | None = None | |||||
| before: str | None = None | |||||
| after: str | None = None | |||||
| preserve_spacing: bool = True | |||||
| class Template(Node): | class Template(Node): | ||||
| """Represents a template in wikicode, like ``{{foo}}``.""" | """Represents a template in wikicode, like ``{{foo}}``.""" | ||||
| @@ -247,15 +235,7 @@ class Template(Node): | |||||
| def __getitem__(self, name): | def __getitem__(self, name): | ||||
| return self.get(name) | return self.get(name) | ||||
| def add( | |||||
| self, | |||||
| name: any, | |||||
| value: any, | |||||
| showkey: bool | None = None, | |||||
| before: str | None = None, | |||||
| after: str | None = None, | |||||
| preserve_spacing: bool = True | |||||
| ) -> Parameter: | |||||
| def add(self, name, value, showkey=None, before=None, after=None, preserve_spacing=True): | |||||
| """Add a parameter to the template with a given *name* and *value*. | """Add a parameter to the template with a given *name* and *value*. | ||||
| *name* and *value* can be anything parsable by | *name* and *value* can be anything parsable by | ||||
| @@ -346,7 +326,7 @@ class Template(Node): | |||||
| self.params.append(param) | self.params.append(param) | ||||
| return param | return param | ||||
| def update(self, params: list[TemplateParam]): | |||||
| def update(self, params): | |||||
| """Update the template with multiple parameters at once. | """Update the template with multiple parameters at once. | ||||
| This method accepts a list of parameter dictionaries, each containing | This method accepts a list of parameter dictionaries, each containing | ||||