From 6cbdd7930d52d09cdfc75ae2218cc5f76ab43d6d Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Thu, 26 Jan 2023 11:43:55 -0800 Subject: [PATCH] add name_and_set --- masque/library.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/masque/library.py b/masque/library.py index 1536852..70d6772 100644 --- a/masque/library.py +++ b/masque/library.py @@ -432,6 +432,26 @@ class MutableLibrary(Library, MutableMapping[str, 'Pattern'], metaclass=ABCMeta) def _merge(self, other: Mapping[str, 'Pattern'], key: str) -> None: pass + def name_and_set( + self, + base_name: str + value: Union['Pattern', Callable[[], 'Pattern']], + ) -> str: + """ + Convenience method which finds a suitable name for the provided + pattern, adds it with that name, and returns the name. + + Args: + base_name: Prefix used when naming the pattern + value: The pattern (or callable used to generate it) + + Returns: + The name of the pattern. + """ + name = self.get_name(base_name) + self[name] = value + return name + def add( self: ML, other: Mapping[str, 'Pattern'],