'Remove an attribute listener (observer) that was previously added using :py:func:`add_attribute_listener`.
For example, the following line would remove a previously added vehicle \'global_frame\'
observer called ``location_callback``:
.. code:: python
vehicle.remove_attribute_listener(\'global_frame\', location_callback)
See :ref:`vehicle_state_observe_attributes` for more information.
:param String attr_name: The attribute name that is to have an observer removed (or \'*\' to remove an \'all attribute\' observer).
:param observer: The callback function to remove.'

def remove_attribute_listener(self, attr_name, observer):

    l = self._attribute_listeners.get(attr_name)
    if (l is not None):
        l.remove(observer)
        if (len(l) == 0):
            del self._attribute_listeners[attr_name]
