code: def remove_observing_method(self, prop_names, method):
          
          for prop_name in prop_names:
              if prop_name in self.__PROP_TO_METHS:
                  # exact match
                  self.__PROP_TO_METHS[prop_name].remove(method)
                  del self.__PAT_METH_TO_KWARGS[(prop_name, method)]
              elif method in self.__METH_TO_PAT:
                  # found a pattern matching
                  pat = self.__METH_TO_PAT[method]
                  if fnmatch.fnmatch(prop_name, pat):
                      del self.__METH_TO_PAT[method]
                      self.__PAT_TO_METHS[pat].remove(method)
  
                  del self.__PAT_METH_TO_KWARGS[(pat, method)]
docs: Remove dynamic notifications.
  
          *method* a callable that was registered with :meth:`observe`.
  
          *prop_names* a sequence of strings. This need not correspond to any
          one `observe` call.
  
          .. note::
  
             This can revert even the effects of decorator `observe` at
             runtime. Don't.