Skip to content

Instantly share code, notes, and snippets.

@become-iron
Created January 4, 2017 21:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save become-iron/61eff7874af0a6c6211810348185f17f to your computer and use it in GitHub Desktop.
Save become-iron/61eff7874af0a6c6211810348185f17f to your computer and use it in GitHub Desktop.
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