Source code for tag.comment

#!/usr/bin/env python
#
# ------------------------------------------------------------------------------
# Copyright (C) 2015 Daniel Standage <daniel.standage@gmail.com>
#
# This file is part of tag (http://github.com/standage/tag) and is licensed
# under the BSD 3-clause license: see LICENSE.
# ------------------------------------------------------------------------------


[docs]class Comment(object): """ Represents a comment in an annotation (GFF3) file. Any GFF3 entry starting with >= 1 '#' characters is treated as a comment, with two exceptions: - the separator directive, a line containing '###' and nothing more - any entry beginning with just two '#' characters is treated as a directive. """ def __init__(self, data): assert data.startswith('#') self._rawdata = data def __repr__(self): return self._rawdata def __str__(self): i = 0 while self._rawdata[i] in '# ': i += 1 return self._rawdata[i:] def __lt__(self, other): from .directive import Directive from .feature import Feature if isinstance(other, Directive): return False if isinstance(other, Feature): return True return self._rawdata < other._rawdata def __gt__(self, other): from .directive import Directive from .feature import Feature if isinstance(other, Directive): return True if isinstance(other, Feature): return False return self._rawdata > other._rawdata