add NamedPattern
This commit is contained in:
parent
1a9116cdbe
commit
ab8fd9b351
3 changed files with 57 additions and 7 deletions
|
|
@ -25,7 +25,7 @@ from .label import Label
|
|||
from .abstract import Abstract
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .pattern import Pattern
|
||||
from .pattern import Pattern, NamedPattern
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -447,7 +447,7 @@ class MutableLibrary(Library, MutableMapping[str, 'Pattern'], metaclass=ABCMeta)
|
|||
del self[old_name]
|
||||
return self
|
||||
|
||||
def create(self, base_name: str) -> Tuple[str, 'Pattern']:
|
||||
def create(self, base_name: str) -> NamedPattern:
|
||||
"""
|
||||
Convenience method to create an empty pattern, choose a name
|
||||
for it, add it with that name, and return both the pattern and name.
|
||||
|
|
@ -460,8 +460,9 @@ class MutableLibrary(Library, MutableMapping[str, 'Pattern'], metaclass=ABCMeta)
|
|||
"""
|
||||
from .pattern import Pattern
|
||||
name = self.get_name(base_name)
|
||||
pat = Pattern()
|
||||
self[name] = value
|
||||
npat = NamedPattern(name)
|
||||
self[name] = npat
|
||||
return npat
|
||||
|
||||
def name_and_set(
|
||||
self,
|
||||
|
|
@ -748,6 +749,8 @@ class WrapLibrary(MutableLibrary):
|
|||
|
||||
if callable(value):
|
||||
value = value()
|
||||
elif hasattr(value, 'as_pattern'):
|
||||
value = cast('NamedPattern', value).as_pattern() # don't want to carry along NamedPattern instances
|
||||
else:
|
||||
value = value
|
||||
self.mapping[key] = value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue