id = Column(Integer, primary_key=True)
_uniqueid = Column('uniqueid', String(21), unique=True, nullable=False)

def __init__(self, index, **kwargs):
    game.Player.__init__(self, index)
Base.__init__(self, _uniqueid=super().uniqueid, **kwargs)

@property
def uniqueid(self):
    return self._uniqueid
print(Player(1).uniqueid)
Override a read-only property with a read-only Column that gets the same value