from chess_piece import ChessPiece from move import Move, pawn_move_sets from player import Player class Pawn(ChessPiece): def __init__(self, piece_color: Player): super().__init__(piece_color) def is_valid_move(self, move: Move, board: list[list[ChessPiece]]) -> bool: # run original check and move set checks orig_valid = super().is_valid_move(move, board) pawn_move_set_valid = pawn_move_sets.is_valid_move(move) # run piece specific check about diagonal taking print(f'orig_valid={orig_valid}, pawn_move_set_valid={pawn_move_set_valid}') return orig_valid and pawn_move_set_valid