def parseInfo(self, attributes, line=None):

        # remove comments
        attributes = attributes.split("#")[0]
        # separate into fields
        fields = map(lambda x: x.strip(), attributes.split(";"))
        self.attributes = {}

        for f in fields:

            d = map(lambda x: x.strip(), f.split("="))

            n, v = d[0], d[1]
            if len(d) > 2:
                v = d[1:]

            if v[0] == '"' and v[-1] == '"':
                v = v[1:-1]
            else:
                # try to convert to a value
                try:
                    v = float(v)
                    v = int(v)
                except ValueError:
                    pass
                except TypeError:
                    pass

            # The reversed Parent attribute can contain multiple, "," sepearted
            # values
            if n == "Parent":
                v = v.split(",")

            self.attributes[n] = v
Parse the attributes line of an entry,
dataset/ETHPy150Open CGATOxford/cgat/CGAT/GFF3.py/Entry.parseInfo