def METHOD_NAME(self, data: Any, t8n: Any) -> None:
    """
    Read the block difficulty from the data.
    If `currentDifficulty` is present, it is used. Otherwise,
    the difficulty is calculated from the parent block.
    """
    self.block_difficulty = None
    self.parent_timestamp = None
    self.parent_difficulty = None
    self.parent_ommers_hash = None
    if t8n.is_after_fork("ethereum.paris"):
        return
    elif "currentDifficulty" in data:
        self.block_difficulty = parse_hex_or_int(
            data["currentDifficulty"], Uint
        )
    else:
        self.parent_timestamp = parse_hex_or_int(
            data["parentTimestamp"], U256
        )
        self.parent_difficulty = parse_hex_or_int(
            data["parentDifficulty"], Uint
        )
        args = [
            self.block_number,
            self.block_timestamp,
            self.parent_timestamp,
            self.parent_difficulty,
        ]
        if t8n.is_after_fork("ethereum.byzantium"):
            if "parentUncleHash" in data:
                EMPTY_OMMER_HASH = keccak256(rlp.encode([]))
                self.parent_ommers_hash = Hash32(
                    hex_to_bytes(data["parentUncleHash"])
                )
                parent_has_ommers = (
                    self.parent_ommers_hash != EMPTY_OMMER_HASH
                )
                args.append(parent_has_ommers)
            else:
                args.append(False)
        self.block_difficulty = t8n.fork.calculate_block_difficulty(*args)