code: def _name_in_services(name, services):
      '''
      Checks to see if the given service is in the given services.
  
      :param str name: Service label, file name, or full path
  
      :param dict services: The currently available services.
  
      :return: The service information for the service, otherwise
      an empty dictionary
  
      :rtype: dict
      '''
      if name in services:
          # Match on label
          return services[name]
  
      for service in six.itervalues(services):
          if service['file_path'].lower() == name:
              # Match on full path
              return service
          basename, ext = os.path.splitext(service['file_name'])
          if basename.lower() == name:
              # Match on basename
              return service
  
      return dict(f _name_in_services(name, services):
      '''
      Checks to see if the given service is in the given services.
  
      :param str name: Service label, file name, or full path
  
      :param dict services: The currently available services.
  
      :return: The service information for the service, otherwise
      an empty dictionary
  
      :rtype: dict
      '''
      if name in services:
          # Match on label
          return services[name]
  
      for service in six.itervalues(services):
          if service['file_path'].lower() == name:
              # Match on full path
              return service
          basename, ext = os.path.splitext(service['file_name'])
          if basename.lower() == name:
              # Match on basename
              return service
  
      return dict()
docs: Checks to see if the given service is in the given services.
  
      :param str name: Service label, file name, or full path
  
      :param dict services: The currently available services.
  
      :return: The service information for the service, otherwise
      an empty dictionary
  
      :rtype: dict