From 413680326f4c1e6fb0e79bda70ec13533903078d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Sun, 26 Feb 2017 17:29:56 +0100 Subject: Some repr and str improvements on the model --- archivist/model.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/archivist/model.py b/archivist/model.py index 656926c..79b0514 100644 --- a/archivist/model.py +++ b/archivist/model.py @@ -51,6 +51,14 @@ class Prefix(BaseModel): def __str__ (self): return self.name + def __repr__ (self): + if self.builtin: + ext = ' (bp)' if self.pseudo else ' (b)' + else: + ext = '' + + return "<%s %s%s>" % (self.__class__.__name__, self.name, ext) + @table class Tag(BaseModel): name = CharField() @@ -59,18 +67,29 @@ class Tag(BaseModel): @hybrid_method def matches(self, prefix, name): - return (self.prefix == prefix) & (self.name == name) + if isinstance(prefix, Prefix): + prefix = prefix.name + + return (self.prefix_id == prefix) & (self.name == name) class Meta: indexes = [ (('name', 'prefix'), True) ] + def prefixed_name(self): + if self.prefix_id: + return "%s:%s" % (self.prefix_id, self.name) + else: + return self.name + def __str__(self): - prefix = self.prefix.name + ':' if self.prefix else '' description = ' -- ' + self.description if self.description else '' - return prefix + self.name + description + return self.prefixed_name() + description + + def __repr__(self): + return "<%s (#%d) %s>" % (self.__class__.__name__, self.id, self.prefixed_name()) @table class DocumentTag(BaseModel): @@ -87,3 +106,6 @@ class TagImplications(BaseModel): class Meta: primary_key = CompositeKey('tag', 'implies_tag') + + def __repr__(self): + return "<%s %d --> %d>" % (self.__class__.__name__, self.tag_id, self.implies_tag_id) -- cgit v1.2.3