code: def Create(cls, discovery_doc,
                 scope_ls, client_id, client_secret, user_agent, names, api_key):
          
          scopes = set(
              discovery_doc.get('auth', {}).get('oauth2', {}).get('scopes', {}))
          scopes.update(scope_ls)
          package = discovery_doc['name']
          url_version = discovery_doc['version']
          base_url, base_path = _ComputePaths(package, url_version,
                                              discovery_doc)
  
          client_info = {
              'package': package,
              'version': NormalizeVersion(discovery_doc['version']),
              'url_version': url_version,
              'scopes': sorted(list(scopes)),
              'client_id': client_id,
              'client_secret': client_secret,
              'user_agent': user_agent,
              'api_key': api_key,
              'base_url': base_url,
              'base_path': base_path,
          }
          client_class_name = '%s%s' % (
              names.ClassName(client_info['package']),
              names.ClassName(client_info['version']))
          client_info['client_class_name'] = client_class_name
          return cls(**client_info)
docs: Create a new ClientInfo object from a discovery document.