<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_cimobject_header(obj):
 """ Return the value for the CIM-XML extension header field 'CIMObject', using the given object. This function implements the rules defined in DSP0200 section 6.3.7 "CIMObject". The format of the CIMObject value is similar but not identical to a local WBEM URI (one without namespace type and authority), as defined in DSP0207. One difference is that DSP0207 requires a leading slash for a local WBEM URI, e.g. '/root/cimv2:CIM_Class.k=1', while the CIMObject value has no leading slash, e.g. 'root/cimv2:CIM_Class.k=1'. Another difference is that the CIMObject value for instance paths has provisions for an instance path without keys, while WBEM URIs do not have that. Pywbem does not support that. """


    # Local namespace path
    if isinstance(obj, six.string_types):
        return obj

    # Local class path
    if isinstance(obj, CIMClassName):
        return obj.to_wbem_uri(format='cimobject')

    # Local instance path
    if isinstance(obj, CIMInstanceName):
        return obj.to_wbem_uri(format='cimobject')

    raise TypeError(
        _format("Invalid object type {0} to generate CIMObject header value "
                "from", type(obj)))