1212# See the License for the specific language governing permissions and
1313# limitations under the License.
1414from functools import cached_property
15- from typing import Optional , Protocol , runtime_checkable , Tuple , Union
15+ from typing import Optional , Tuple , Union
1616
1717import attrs
1818import cirq
2727from qualtran .symbolics import SymbolicFloat
2828
2929
30- @runtime_checkable
31- class _HasEps (Protocol ):
32- """Protocol for typing `RotationBloq` base class mixin that has accuracy specified as eps."""
33-
34- eps : float
35-
36-
3730@frozen
3831class ZPowGate (CirqGateAsBloqBase ):
3932 r"""A gate that rotates around the Z axis of the Bloch sphere.
@@ -115,7 +108,7 @@ def _z_pow() -> ZPowGate:
115108class CZPowGate (CirqGateAsBloqBase ):
116109 exponent : float = 1.0
117110 global_shift : float = 0.0
118- eps : float = 1e-11
111+ eps : SymbolicFloat = 1e-11
119112
120113 def decompose_bloq (self ) -> 'CompositeBloq' :
121114 raise DecomposeTypeError (f"{ self } is atomic" )
@@ -183,7 +176,7 @@ class XPowGate(CirqGateAsBloqBase):
183176 """
184177 exponent : Union [sympy .Expr , float ] = 1.0
185178 global_shift : float = 0.0
186- eps : float = 1e-11
179+ eps : SymbolicFloat = 1e-11
187180
188181 def decompose_bloq (self ) -> 'CompositeBloq' :
189182 raise DecomposeTypeError (f"{ self } is atomic" )
@@ -253,7 +246,7 @@ class YPowGate(CirqGateAsBloqBase):
253246 """
254247 exponent : Union [sympy .Expr , float ] = 1.0
255248 global_shift : float = 0.0
256- eps : float = 1e-11
249+ eps : SymbolicFloat = 1e-11
257250
258251 def decompose_bloq (self ) -> 'CompositeBloq' :
259252 raise DecomposeTypeError (f"{ self } is atomic" )
@@ -321,7 +314,7 @@ def wire_symbol(self, reg: Optional[Register], idx: Tuple[int, ...] = tuple()) -
321314@frozen
322315class Rx (CirqGateAsBloqBase ):
323316 angle : Union [sympy .Expr , float ]
324- eps : float = 1e-11
317+ eps : SymbolicFloat = 1e-11
325318
326319 def decompose_bloq (self ) -> 'CompositeBloq' :
327320 raise DecomposeTypeError (f"{ self } is atomic" )
@@ -342,7 +335,7 @@ def wire_symbol(self, reg: Optional[Register], idx: Tuple[int, ...] = tuple()) -
342335@frozen
343336class Ry (CirqGateAsBloqBase ):
344337 angle : Union [sympy .Expr , float ]
345- eps : float = 1e-11
338+ eps : SymbolicFloat = 1e-11
346339
347340 def decompose_bloq (self ) -> 'CompositeBloq' :
348341 raise DecomposeTypeError (f"{ self } is atomic" )
0 commit comments