@util.memoized_property
    def _column_tokens(self):

        m = self._get_colspec().split('.')
        if m is None:
            raise exc.ArgumentError(
                "Invalid foreign key column specification: %s" %
                self._colspec)
        if (len(m) == 1):
            tname = m.pop()
            colname = None
        else:
            colname = m.pop()
            tname = m.pop()

        # A FK between column 'bar' and table 'foo' can be
        # specified as 'foo', 'foo.bar', 'dbo.foo.bar',
        # 'otherdb.dbo.foo.bar'. Once we have the column name and
        # the table name, treat everything else as the schema
        # name. Some databases (e.g. Sybase) support
        # inter-database foreign keys. See tickets#1341 and --
        # indirectly related -- Ticket #594. This assumes that '.'
        # will never appear *within* any component of the FK.

        if (len(m) > 0):
            schema = '.'.join(m)
        else:
            schema = None
        return schema, tname, colname
iterate over the contents of a gtf file.
dataset/ETHPy150Open RoseOu/flasky/venv/lib/python2.7/site-packages/sqlalchemy/sql/schema.py/ForeignKey._column_tokens--crossover with--dataset/ETHPy150Open CGATOxford/cgat/CGAT/GTF.py/flat_gene_iterator