code: def class_name_for_data_type(data_type, ns=None):
      
      assert is_user_defined_type(data_type) or is_alias(data_type), \
          'Expected composite type, got %r' % type(data_type)
      name = fmt_class(data_type.name)
      if ns:
          return prefix_with_ns_if_necessary(name, data_type.namespace, ns)
      return name
docs: Returns the name of the Python class that maps to a user-defined type.
      The name is identical to the name in the spec.
  
      If ``ns`` is set to a Namespace and the namespace of `data_type` does
      not match, then a namespace prefix is added to the returned name.
      For example, ``foreign_ns.TypeName``.