code: def noisy_operation(self, operation: 'cirq.Operation') -> 'cirq.OP_TREE':
          
          if not hasattr(self.noisy_moments, '_not_overridden'):
              return self.noisy_moments([ops.Moment([operation])],
                                        operation.qubits)
  
          if not hasattr(self.noisy_moment, '_not_overridden'):
              return self.noisy_moment(ops.Moment([operation]), operation.qubits)
  
          assert False, 'Should be unreachable.'
docs: Adds noise to an individual operation.
  
          Args:
              operation: The operation to make noisy.
  
          Returns:
              An OP_TREE corresponding to the noisy operations implementing the
              noisy version of the given operation.