code: def cn(shape, dtype=None, impl='numpy', **kwargs):
      
      cn_cls = tensor_space_impl(impl)
  
      if dtype is None:
          dtype = cn_cls.default_dtype(ComplexNumbers())
  
      # Use args by keyword since the constructor may take other arguments
      # by position
      cn = cn_cls(shape=shape, dtype=dtype, **kwargs)
      if not cn.is_complex:
          raise ValueError('data type {!r} not a complex floating-point type.'
                           ''.format(dtype))
      return cn
docs: Return a space of complex tensors.
  
      Parameters
      ----------
      shape : positive int or sequence of positive ints
          Number of entries per axis for elements in this space. A
          single integer results in a space with 1 axis.
      dtype : optional
          Data type of each element. Can be provided in any way the
          `numpy.dtype` function understands, e.g. as built-in type or
          as a string. Only complex floating-point data types are allowed.
          For ``None``, the `TensorSpace.default_dtype` of the
          created space is used in the form
          ``default_dtype(ComplexNumbers())``.
      impl : str, optional
          Impmlementation back-end for the space. See
          `odl.space.entry_points.tensor_space_impl_names` for available
          options.
      kwargs :
          Extra keyword arguments passed to the space constructor.
  
      Returns
      -------
      cn : `TensorSpace`
  
      Examples
      --------
      Space of complex 3-tuples with ``complex64`` entries:
  
      >>> odl.cn(3, dtype='complex64')
      cn(3, dtype='complex64')
  
      Complex 2x3 tensors with ``complex64`` entries:
  
      >>> odl.cn((2, 3), dtype='complex64')
      cn((2, 3), dtype='complex64')
  
      The default data type depends on the implementation. For
      ``impl='numpy'``, it is ``'complex128'``:
  
      >>> space = odl.cn((2, 3))
      >>> space
      cn((2, 3))
      >>> space.dtype
      dtype('complex128')
  
      See Also
      --------
      tensor_space : Space of tensors with arbitrary scalar data type.
      rn : Real tensor space.