X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Fmeta.py;h=9e858a2bc972ffc1ef557bc27c41beb6f37cbf60;hb=a978d2975c3201dbac0c9e43a08337a800438d2f;hp=725bfb00afde57b80d4caf39acb9e1968ca394ab;hpb=c7bfe1ff39adb2eed8d946abbba59f8f9748ca9b;p=mpd-sima.git diff --git a/sima/lib/meta.py b/sima/lib/meta.py index 725bfb0..9e858a2 100644 --- a/sima/lib/meta.py +++ b/sima/lib/meta.py @@ -61,8 +61,8 @@ def serialize(func): def wrapper(*args, **kwargs): ans = func(*args, **kwargs) if isinstance(ans, set): - return {s.replace("'", r"\'") for s in ans} - return ans.replace("'", r"\'") + return {s.replace("'", r"\'").replace('"', r'\"') for s in ans} + return ans.replace("'", r"\'").replace('"', r'\"') return wrapper @@ -136,12 +136,12 @@ class Meta: :param str other: Alias to add, could be any object with ``__str__`` method. """ + if isinstance(other, Meta): + self.__aliases |= other.__aliases + self.__aliases -= {self.name} if getattr(other, '__str__', None): if callable(other.__str__) and other.__str__() != self.name: self.__aliases |= {other.__str__()} - elif isinstance(other, Meta): - if other.name != self.name: - self.__aliases |= other.__aliases else: raise MetaException('No __str__ method found in {!r}'.format(other))