29
29
)
30
30
31
31
32
- @singledispatch
33
32
def from_braket_instruction (instruction ) -> GateOperation :
34
33
""" Instantiates the concrete `GateOperation` object from the specified braket instruction.
35
34
@@ -43,6 +42,11 @@ def from_braket_instruction(instruction) -> GateOperation:
43
42
ValueError: If no concrete `GateOperation` class has been registered
44
43
for the instruction type.
45
44
"""
45
+ return _from_braket_instruction (instruction )
46
+
47
+
48
+ @singledispatch
49
+ def _from_braket_instruction (instruction ):
46
50
raise ValueError (f"Instruction { instruction } not recognized" )
47
51
48
52
@@ -61,7 +65,7 @@ def targets(self) -> Tuple[int, ...]:
61
65
return self ._targets
62
66
63
67
64
- @from_braket_instruction .register (braket_instruction .I )
68
+ @_from_braket_instruction .register (braket_instruction .I )
65
69
def _i (instruction ) -> Identity :
66
70
return Identity ([instruction .target ])
67
71
@@ -81,7 +85,7 @@ def targets(self) -> Tuple[int, ...]:
81
85
return self ._targets
82
86
83
87
84
- @from_braket_instruction .register (braket_instruction .H )
88
+ @_from_braket_instruction .register (braket_instruction .H )
85
89
def _hadamard (instruction ) -> Hadamard :
86
90
return Hadamard ([instruction .target ])
87
91
@@ -101,7 +105,7 @@ def targets(self) -> Tuple[int, ...]:
101
105
return self ._targets
102
106
103
107
104
- @from_braket_instruction .register (braket_instruction .X )
108
+ @_from_braket_instruction .register (braket_instruction .X )
105
109
def _pauli_x (instruction ) -> PauliX :
106
110
return PauliX ([instruction .target ])
107
111
@@ -121,7 +125,7 @@ def targets(self) -> Tuple[int, ...]:
121
125
return self ._targets
122
126
123
127
124
- @from_braket_instruction .register (braket_instruction .Y )
128
+ @_from_braket_instruction .register (braket_instruction .Y )
125
129
def _pauli_y (instruction ) -> PauliY :
126
130
return PauliY ([instruction .target ])
127
131
@@ -141,7 +145,7 @@ def targets(self) -> Tuple[int, ...]:
141
145
return self ._targets
142
146
143
147
144
- @from_braket_instruction .register (braket_instruction .Z )
148
+ @_from_braket_instruction .register (braket_instruction .Z )
145
149
def _pauli_z (instruction ) -> PauliZ :
146
150
return PauliZ ([instruction .target ])
147
151
@@ -161,7 +165,7 @@ def targets(self) -> Tuple[int, ...]:
161
165
return self ._targets
162
166
163
167
164
- @from_braket_instruction .register (braket_instruction .CNot )
168
+ @_from_braket_instruction .register (braket_instruction .CNot )
165
169
def _cx (instruction ) -> CX :
166
170
return CX ([instruction .control , instruction .target ])
167
171
@@ -181,7 +185,7 @@ def targets(self) -> Tuple[int, ...]:
181
185
return self ._targets
182
186
183
187
184
- @from_braket_instruction .register (braket_instruction .CY )
188
+ @_from_braket_instruction .register (braket_instruction .CY )
185
189
def _cy (instruction ) -> CY :
186
190
return CY ([instruction .control , instruction .target ])
187
191
@@ -201,7 +205,7 @@ def targets(self) -> Tuple[int, ...]:
201
205
return self ._targets
202
206
203
207
204
- @from_braket_instruction .register (braket_instruction .CZ )
208
+ @_from_braket_instruction .register (braket_instruction .CZ )
205
209
def _cz (instruction ) -> CZ :
206
210
return CZ ([instruction .control , instruction .target ])
207
211
@@ -221,7 +225,7 @@ def targets(self) -> Tuple[int, ...]:
221
225
return self ._targets
222
226
223
227
224
- @from_braket_instruction .register (braket_instruction .S )
228
+ @_from_braket_instruction .register (braket_instruction .S )
225
229
def _s (instruction ) -> S :
226
230
return S ([instruction .target ])
227
231
@@ -241,7 +245,7 @@ def targets(self) -> Tuple[int, ...]:
241
245
return self ._targets
242
246
243
247
244
- @from_braket_instruction .register (braket_instruction .Si )
248
+ @_from_braket_instruction .register (braket_instruction .Si )
245
249
def _si (instruction ) -> Si :
246
250
return Si ([instruction .target ])
247
251
@@ -261,7 +265,7 @@ def targets(self) -> Tuple[int, ...]:
261
265
return self ._targets
262
266
263
267
264
- @from_braket_instruction .register (braket_instruction .T )
268
+ @_from_braket_instruction .register (braket_instruction .T )
265
269
def _t (instruction ) -> T :
266
270
return T ([instruction .target ])
267
271
@@ -281,7 +285,7 @@ def targets(self) -> Tuple[int, ...]:
281
285
return self ._targets
282
286
283
287
284
- @from_braket_instruction .register (braket_instruction .Ti )
288
+ @_from_braket_instruction .register (braket_instruction .Ti )
285
289
def _ti (instruction ) -> Ti :
286
290
return Ti ([instruction .target ])
287
291
@@ -301,7 +305,7 @@ def targets(self) -> Tuple[int, ...]:
301
305
return self ._targets
302
306
303
307
304
- @from_braket_instruction .register (braket_instruction .V )
308
+ @_from_braket_instruction .register (braket_instruction .V )
305
309
def _v (instruction ) -> V :
306
310
return V ([instruction .target ])
307
311
@@ -321,7 +325,7 @@ def targets(self) -> Tuple[int, ...]:
321
325
return self ._targets
322
326
323
327
324
- @from_braket_instruction .register (braket_instruction .Vi )
328
+ @_from_braket_instruction .register (braket_instruction .Vi )
325
329
def _vi (instruction ) -> Vi :
326
330
return Vi ([instruction .target ])
327
331
@@ -342,7 +346,7 @@ def targets(self) -> Tuple[int, ...]:
342
346
return self ._targets
343
347
344
348
345
- @from_braket_instruction .register (braket_instruction .PhaseShift )
349
+ @_from_braket_instruction .register (braket_instruction .PhaseShift )
346
350
def _phase_shift (instruction ) -> PhaseShift :
347
351
return PhaseShift ([instruction .target ], instruction .angle )
348
352
@@ -363,7 +367,7 @@ def targets(self) -> Tuple[int, ...]:
363
367
return self ._targets
364
368
365
369
366
- @from_braket_instruction .register (braket_instruction .CPhaseShift )
370
+ @_from_braket_instruction .register (braket_instruction .CPhaseShift )
367
371
def _c_phase_shift (instruction ) -> CPhaseShift :
368
372
return CPhaseShift ([instruction .control , instruction .target ], instruction .angle )
369
373
@@ -384,7 +388,7 @@ def targets(self) -> Tuple[int, ...]:
384
388
return self ._targets
385
389
386
390
387
- @from_braket_instruction .register (braket_instruction .CPhaseShift00 )
391
+ @_from_braket_instruction .register (braket_instruction .CPhaseShift00 )
388
392
def _c_phase_shift_00 (instruction ) -> CPhaseShift00 :
389
393
return CPhaseShift00 ([instruction .control , instruction .target ], instruction .angle )
390
394
@@ -405,7 +409,7 @@ def targets(self) -> Tuple[int, ...]:
405
409
return self ._targets
406
410
407
411
408
- @from_braket_instruction .register (braket_instruction .CPhaseShift01 )
412
+ @_from_braket_instruction .register (braket_instruction .CPhaseShift01 )
409
413
def _c_phase_shift_01 (instruction ) -> CPhaseShift01 :
410
414
return CPhaseShift01 ([instruction .control , instruction .target ], instruction .angle )
411
415
@@ -426,7 +430,7 @@ def targets(self) -> Tuple[int, ...]:
426
430
return self ._targets
427
431
428
432
429
- @from_braket_instruction .register (braket_instruction .CPhaseShift10 )
433
+ @_from_braket_instruction .register (braket_instruction .CPhaseShift10 )
430
434
def _c_phase_shift_10 (instruction ) -> CPhaseShift10 :
431
435
return CPhaseShift10 ([instruction .control , instruction .target ], instruction .angle )
432
436
@@ -449,7 +453,7 @@ def targets(self) -> Tuple[int, ...]:
449
453
return self ._targets
450
454
451
455
452
- @from_braket_instruction .register (braket_instruction .Rx )
456
+ @_from_braket_instruction .register (braket_instruction .Rx )
453
457
def _rot_x (instruction ) -> RotX :
454
458
return RotX ([instruction .target ], instruction .angle )
455
459
@@ -472,7 +476,7 @@ def targets(self) -> Tuple[int, ...]:
472
476
return self ._targets
473
477
474
478
475
- @from_braket_instruction .register (braket_instruction .Ry )
479
+ @_from_braket_instruction .register (braket_instruction .Ry )
476
480
def _rot_y (instruction ) -> RotY :
477
481
return RotY ([instruction .target ], instruction .angle )
478
482
@@ -495,7 +499,7 @@ def targets(self) -> Tuple[int, ...]:
495
499
return self ._targets
496
500
497
501
498
- @from_braket_instruction .register (braket_instruction .Rz )
502
+ @_from_braket_instruction .register (braket_instruction .Rz )
499
503
def _rot_z (instruction ) -> RotZ :
500
504
return RotZ ([instruction .target ], instruction .angle )
501
505
@@ -515,7 +519,7 @@ def targets(self) -> Tuple[int, ...]:
515
519
return self ._targets
516
520
517
521
518
- @from_braket_instruction .register (braket_instruction .Swap )
522
+ @_from_braket_instruction .register (braket_instruction .Swap )
519
523
def _swap (instruction ) -> Swap :
520
524
return Swap (instruction .targets )
521
525
@@ -543,7 +547,7 @@ def targets(self) -> Tuple[int, ...]:
543
547
return self ._targets
544
548
545
549
546
- @from_braket_instruction .register (braket_instruction .ISwap )
550
+ @_from_braket_instruction .register (braket_instruction .ISwap )
547
551
def _iswap (instruction ) -> ISwap :
548
552
return ISwap (instruction .targets )
549
553
@@ -572,7 +576,7 @@ def targets(self) -> Tuple[int, ...]:
572
576
return self ._targets
573
577
574
578
575
- @from_braket_instruction .register (braket_instruction .PSwap )
579
+ @_from_braket_instruction .register (braket_instruction .PSwap )
576
580
def _pswap (instruction ) -> PSwap :
577
581
return PSwap (instruction .targets , instruction .angle )
578
582
@@ -606,7 +610,7 @@ def targets(self) -> Tuple[int, ...]:
606
610
return self ._targets
607
611
608
612
609
- @from_braket_instruction .register (braket_instruction .XY )
613
+ @_from_braket_instruction .register (braket_instruction .XY )
610
614
def _xy (instruction ) -> XY :
611
615
return XY (instruction .targets , instruction .angle )
612
616
@@ -639,7 +643,7 @@ def targets(self) -> Tuple[int, ...]:
639
643
return self ._targets
640
644
641
645
642
- @from_braket_instruction .register (braket_instruction .XX )
646
+ @_from_braket_instruction .register (braket_instruction .XX )
643
647
def _xx (instruction ) -> XX :
644
648
return XX (instruction .targets , instruction .angle )
645
649
@@ -672,7 +676,7 @@ def targets(self) -> Tuple[int, ...]:
672
676
return self ._targets
673
677
674
678
675
- @from_braket_instruction .register (braket_instruction .YY )
679
+ @_from_braket_instruction .register (braket_instruction .YY )
676
680
def _yy (instruction ) -> YY :
677
681
return YY (instruction .targets , instruction .angle )
678
682
@@ -705,7 +709,7 @@ def targets(self) -> Tuple[int, ...]:
705
709
return self ._targets
706
710
707
711
708
- @from_braket_instruction .register (braket_instruction .ZZ )
712
+ @_from_braket_instruction .register (braket_instruction .ZZ )
709
713
def _zz (instruction ) -> ZZ :
710
714
return ZZ (instruction .targets , instruction .angle )
711
715
@@ -737,7 +741,7 @@ def targets(self) -> Tuple[int, ...]:
737
741
return self ._targets
738
742
739
743
740
- @from_braket_instruction .register (braket_instruction .CCNot )
744
+ @_from_braket_instruction .register (braket_instruction .CCNot )
741
745
def _ccnot (instruction ) -> CCNot :
742
746
return CCNot ([* instruction .controls , instruction .target ])
743
747
@@ -769,7 +773,7 @@ def targets(self) -> Tuple[int, ...]:
769
773
return self ._targets
770
774
771
775
772
- @from_braket_instruction .register (braket_instruction .CSwap )
776
+ @_from_braket_instruction .register (braket_instruction .CSwap )
773
777
def _cswap (instruction ) -> CSwap :
774
778
return CSwap ([instruction .control , * instruction .targets ])
775
779
@@ -793,6 +797,6 @@ def targets(self) -> Tuple[int, ...]:
793
797
return self ._targets
794
798
795
799
796
- @from_braket_instruction .register (braket_instruction .Unitary )
800
+ @_from_braket_instruction .register (braket_instruction .Unitary )
797
801
def _unitary (instruction ) -> Unitary :
798
802
return Unitary (instruction .targets , ir_matrix_to_ndarray (instruction .matrix ))
0 commit comments