def __init__(self, gate: type[eigen_gate.EigenGate]) -> None:
        """Init AnyIntegerPowerGateFamily

        Args:
            gate: A subclass of `cirq.EigenGate` s.t. an instance `g` of `gate` will be
                accepted if `g.exponent` is an integer.

        Raises:
            ValueError: If `gate` is not a subclass of `cirq.EigenGate`.
        """
        if not (isinstance(gate, type) and issubclass(gate, eigen_gate.EigenGate)):
            raise ValueError(f'{gate} must be a subclass of `cirq.EigenGate`.')
        super().__init__(
            gate,
            name=f'AnyIntegerPowerGateFamily: {gate}',
            description=f'Accepts any instance `g` of `{gate}` s.t. `g.exponent` is an integer.',
        )
Init AnyIntegerPowerGateFamily

        Args:
            gate: A subclass of `cirq.EigenGate` s.t. an instance `g` of `gate` will be
                accepted if `g.exponent` is an integer.

        Raises:
            ValueError: If `gate` is not a subclass of `cirq.EigenGate`.
        
cirq-core/cirq/ops/common_gate_families.py