def create_piece(piece, color=Piece.white): if isinstance(piece, str): variants = {cls.short_name: cls for cls in pieces} if piece.upper() in variants: color = Piece.white if piece.isupper() else Piece.black piece = variants[piece.upper()] return piece(color) raise exceptions.ChessError("invalid piece name: '{}'".format(piece))
def create_piece(piece, color='white'): if isinstance(piece, str): if piece.upper() in SHORT_NAME.keys(): color = "white" if piece.isupper() else "black" piece = SHORT_NAME[piece.upper()] piece = piece.capitalize() if piece in SHORT_NAME.values(): return eval("{classname}(color)".format(classname=piece)) raise exceptions.ChessError("invalid piece name: '{}'".format(piece))