def _period(self) -> float | None:
        """Determines how the exponent parameter is canonicalized when equating.

        Returns:
            None if the exponent should not be canonicalized. Otherwise a float
            indicating the period of the exponent. If the period is p, then a
            given exponent will be shifted by p until it is in the range
            (-p/2, p/2] during initialization.
        """
        exponents = {e + self._global_shift for e in self._eigen_shifts()}
        real_periods = [abs(2 / e) for e in exponents if e != 0]
        return _approximate_common_period(real_periods)
Determines how the exponent parameter is canonicalized when equating.

        Returns:
            None if the exponent should not be canonicalized. Otherwise a float
            indicating the period of the exponent. If the period is p, then a
            given exponent will be shifted by p until it is in the range
            (-p/2, p/2] during initialization.
        
cirq-core/cirq/ops/eigen_gate.py