The object may be a cirq object or have data members that are cirq
objects which implement the SupportsJSON protocol.
An object which can be serialized to a JSON representation.
A filename (if a string or pathlib.Path) to write to, or
an IO object (such as a file or buffer) to write to, or None to
indicate that the method should return the JSON text as its result.
Defaults to None.
Pretty-print the resulting file with this indent level.
Passed to json.dump.
Passed to json.dump; key-value pairs delimiters defined as
(item_separator, key_separators) tuple. Note that any non-standard
operators (':', ',') will cause read_json to fail.
Passed to json.dump; the default value of CirqEncoder
enables the serialization of Cirq objects which implement
the SupportsJSON protocol. To support serialization of 3rd
party classes, prefer adding the _jsondict magic method
to your classes rather than overriding this default.