@@ -126,6 +126,7 @@ API references for stable versions are kept on the [stim github wiki](https://gi
126126 - [`stim.CliffordString.__setitem__`](#stim.CliffordString.__setitem__)
127127 - [`stim.CliffordString.__str__`](#stim.CliffordString.__str__)
128128 - [`stim.CliffordString.all_cliffords_string`](#stim.CliffordString.all_cliffords_string)
129+ - [`stim.CliffordString.copy`](#stim.CliffordString.copy)
129130 - [`stim.CliffordString.random`](#stim.CliffordString.random)
130131 - [`stim.CliffordString.x_outputs`](#stim.CliffordString.x_outputs)
131132 - [`stim.CliffordString.y_outputs`](#stim.CliffordString.y_outputs)
@@ -5227,7 +5228,7 @@ def __imul__(
52275228# (in class stim.CliffordString)
52285229def __init__(
52295230 self,
5230- arg: Union[int, str, stim.CliffordString, stim.PauliString],
5231+ arg: Union[int, str, stim.CliffordString, stim.PauliString, stim.Circuit ],
52315232 /,
52325233) -> None:
52335234 """Initializes a stim.CliffordString from the given argument.
@@ -5239,6 +5240,9 @@ def __init__(
52395240 stim.CliffordString: initializes by copying the given Clifford string.
52405241 stim.PauliString: initializes by copying from the given Pauli string
52415242 (ignores the sign of the Pauli string).
5243+ stim.Circuit: initializes a CliffordString equivalent to the action
5244+ of the circuit (as long as the circuit only contains single qubit
5245+ unitary operations and annotations).
52425246 Iterable: initializes by interpreting each item as a Clifford.
52435247 Each item can be a single-qubit Clifford gate name (like "SQRT_X")
52445248 or stim.GateData instance.
@@ -5260,6 +5264,15 @@ def __init__(
52605264
52615265 >>> stim.CliffordString(stim.CliffordString("X,Y,Z"))
52625266 stim.CliffordString("X,Y,Z")
5267+
5268+ >>> stim.CliffordString(stim.Circuit('''
5269+ ... H 0 1 2
5270+ ... S 2 3
5271+ ... TICK
5272+ ... S 3
5273+ ... I 6
5274+ ... '''))
5275+ stim.CliffordString("H,H,C_ZYX,Z,I,I,I")
52635276 """
52645277```
52655278
@@ -5452,7 +5465,7 @@ def __rmul__(
54525465def __setitem__(
54535466 self,
54545467 index_or_slice: Union[int, slice],
5455- new_value: Union[str, stim.GateData, stim.CliffordString],
5468+ new_value: Union[str, stim.GateData, stim.CliffordString, stim.PauliString, stim.Tableau ],
54565469) -> None:
54575470 """Overwrites an indexed Clifford, or slice of Cliffords, with the given value.
54585471
@@ -5465,7 +5478,10 @@ def __setitem__(
54655478 broadcast over the slice.
54665479 - stim.GateData: The single qubit Clifford gate to write to the index
54675480 or broadcast over the slice.
5468- - stim.CliffordString: Values to write into the slice.
5481+ - stim.Tableau: Must be a single qubit tableau. Specifies the single
5482+ qubit Clifford gate to write to the index or broadcast over the
5483+ slice.
5484+ - stim.CliffordString: String of Cliffords to write into the slice.
54695485
54705486 Examples:
54715487 >>> import stim
@@ -5490,6 +5506,18 @@ def __setitem__(
54905506 >>> s[::2] = stim.CliffordString("X,Y,Z")
54915507 >>> s
54925508 stim.CliffordString("X,I,Y,I,Z")
5509+
5510+ >>> s[0] = stim.Tableau.from_named_gate("H")
5511+ >>> s
5512+ stim.CliffordString("H,I,Y,I,Z")
5513+
5514+ >>> s[:] = stim.Tableau.from_named_gate("S")
5515+ >>> s
5516+ stim.CliffordString("S,S,S,S,S")
5517+
5518+ >>> s[:4] = stim.PauliString("IXYZ")
5519+ >>> s
5520+ stim.CliffordString("I,X,Y,Z,S")
54935521 """
54945522```
54955523
@@ -5534,6 +5562,32 @@ def all_cliffords_string(
55345562 """
55355563```
55365564
5565+ <a name="stim.CliffordString.copy"></a>
5566+ ```python
5567+ # stim.CliffordString.copy
5568+
5569+ # (in class stim.CliffordString)
5570+ def copy(
5571+ self,
5572+ ) -> stim.CliffordString:
5573+ """Returns a copy of the CliffordString.
5574+
5575+ Returns:
5576+ The copy.
5577+
5578+ Examples:
5579+ >>> import stim
5580+ >>> c = stim.CliffordString("H,X")
5581+ >>> alias = c
5582+ >>> copy = c.copy()
5583+ >>> c *= 5
5584+ >>> alias
5585+ stim.CliffordString("H,X,H,X,H,X,H,X,H,X")
5586+ >>> copy
5587+ stim.CliffordString("H,X")
5588+ """
5589+ ```
5590+
55375591<a name="stim.CliffordString.random"></a>
55385592```python
55395593# stim.CliffordString.random
0 commit comments