-
-
Save become-iron/61eff7874af0a6c6211810348185f17f to your computer and use it in GitHub Desktop.
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
class Trp: | |
def __init__(self, prefix, name, value='', comment=None): | |
# TODO проверка префикса и имени | |
self.__prefix = prefix | |
self.__name = name | |
self.__value = value | |
self.__comment = comment | |
@property | |
def prefix(self): | |
return self.__prefix | |
@property | |
def name(self): | |
return self.__name | |
@property | |
def value(self): | |
return self.__value | |
@value.setter | |
def value(self, value): | |
# TODO проверка | |
self.__value = value | |
@property | |
def comment(self): | |
return self.__comment | |
@comment.setter | |
def comment(self, comment): | |
# TODO проверка | |
self.__comment = comment | |
def __str__(self): | |
_ = '$' + self.prefix + '.' + self.name + '=' | |
if isinstance(self.value, str): | |
if self.value == BIND: | |
_ += self.value | |
else: | |
_ += "'" + self.value + "'" | |
else: | |
_ += str(self.value) | |
if self.comment is not None: | |
_ += '"' + self.comment + '"' | |
_ += ';' | |
return _ | |
def __repr__(self): | |
return self.__str__() | |
def __eq__(self, other): | |
return isinstance(other, Trp) \ | |
and self.name == other.name \ | |
and self.name == other.name \ | |
and self.value == self.value | |
def __hash__(self): | |
return hash((self.prefix, self.name)) | |
class TrpStr: | |
def __init__(self, *trps): | |
self.trps = set(trps) | |
def __add__(self, other): | |
if isinstance(other, Trp): | |
return set((other,) + tuple(self.trps)) | |
elif isinstance(other, TrpStr): | |
return set(tuple(other.trps) + tuple(self.trps)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment