def GenApiConfig(service_class_names, generator=None, hostname=None):
  service_map = {}
  generator = generator or api_config.ApiConfigGenerator()
  for service_class_name in service_class_names:
    module_name, base_service_class_name = service_class_name.rsplit('.', 1)
    module = __import__(module_name, fromlist=base_service_class_name)
    service = getattr(module, base_service_class_name)
    if not (isinstance(service, type) and issubclass(service, remote.Service)):
      raise TypeError('%s is not a ProtoRPC service' % service_class_name)


    hostname = service.api_info.hostname or hostname
    service_map[service_class_name] = generator.pretty_print_config_to_json(
        service, hostname=hostname)

  return service_map
Return the subgraph induced on nodes in nbunch.
dataset/ETHPy150Open AppScale/appscale/AppServer/google/appengine/tools/endpointscfg.py/GenApiConfig--crossover with--dataset/ETHPy150Open networkx/networkx/networkx/classes/tests/timingclasses.py/TimingDiGraph.subgraph