View source on GitHub |
Base Class for transformer logging infrastructure. Defaults to text-based logging.
cirq.TransformerLogger() -> None Used in the notebooks
| Used in the tutorials |
|---|
The logger implementation should be stateful, s.t.:
- Each call to `register_initial` registers a new transformer stage and initial circuit. - Each subsequent call to `log` should store additional logs corresponding to the stage. - Each call to `register_final` should register the end of the currently active stage. The logger assumes that
- Transformers are run sequentially. - Nested transformers are allowed, in which case the behavior would be similar to doing a depth-first search on the graph of transformers -- i.e. the top level transformer would end (i.e. receive a `register_final` call) once all nested transformers (i.e. all `register_initial` calls received while the top level transformer was active) have finished (i.e. corresponding `register_final` calls have also been received). - This behavior can be simulated by maintaining a stack of currently active stages and adding data from `log` calls to the stage at the top of the stack. The LogLevels can be used to control the input processing and output resolution of the logs.
Methods
log
log( *args, level: LogLevel = LogLevel.INFO ) -> None Log additional metadata corresponding to the currently active transformer stage.
| Args | |
|---|---|
*args | The additional metadata to log. |
level | Logging level to control the amount of metadata that gets put into the context. |
| Raises | |
|---|---|
ValueError | If there's no active transformer on the stack. |
register_final
register_final( circuit: cirq.AbstractCircuit, transformer_name: str ) -> None Register the end of the currently active transformer stage.
| Args | |
|---|---|
circuit | Final transformed output circuit from the transformer stage. |
transformer_name | Name of the (currently active) transformer stage which ends. |
| Raises | |
|---|---|
ValueError | If transformer_name is different from currently active transformer name. |
register_initial
register_initial( circuit: cirq.AbstractCircuit, transformer_name: str ) -> None Register the beginning of a new transformer stage.
| Args | |
|---|---|
circuit | Input circuit to the new transformer stage. |
transformer_name | Name of the new transformer stage. |
show
show( level: LogLevel = LogLevel.INFO ) -> None Show the stored logs >= level in the desired format.
| Args | |
|---|---|
level | The logging level to filter the logs with. The method shows all logs with a LogLevel >= level. |
View source on GitHub