code: def _shape_repr(shape):
      
      if len(shape) == 0:
          return "()"
      joined = ", ".join("%d" % e for e in shape)
      if len(shape) == 1:
          # special notation for singleton tuples
          joined += ','
      return "(%s)" % joined
docs: Return a platform independent reprensentation of an array shape
      Under Python 2, the `long` type introduces an 'L' suffix when using the
      default %r format for tuples of integers (typically used to store the shape
      of an array).
      Under Windows 64 bit (and Python 2), the `long` type is used by default
      in numpy shapes even when the integer dimensions are well below 32 bit.
      The platform specific type causes string messages or doctests to change
      from one platform to another which is not desirable.
      Under Python 3, there is no more `long` type so the `L` suffix is never
      introduced in string representation.
      >>> _shape_repr((1, 2))
      '(1, 2)'
      >>> one = 2 ** 64 / 2 ** 64  # force an upcast to `long` under Python 2
      >>> _shape_repr((one, 2 * one))
      '(1, 2)'
      >>> _shape_repr((1,))
      '(1,)'
      >>> _shape_repr(())
      '()'