human
Complete this python program:
def build_from_document(service, base, future=None, http=None, developerKey=None, model=None, requestBuilder=HttpRequest):
assistant
#Here is the Python program you requested.

    """Create a Resource for interacting with an API.
    Same as `build()`, but constructs the Resource object
    from a discovery document that is it given, as opposed to
    retrieving one over HTTP.
    Args:
    service: string, discovery document
    base: string, base URI for all HTTP requests, usually the discovery URI
    future: string, discovery document with future capabilities
    auth_discovery: dict, information about the authentication the API supports
    http: httplib2.Http, An instance of httplib2.Http or something that acts
    like it that HTTP requests will be made through.
    developerKey: string, Key for controlling API usage, generated
    from the API Console.
    model: Model class instance that serializes and
    de-serializes requests and responses.
    requestBuilder: Takes an http request and packages it up to be executed.
    Returns:
    A Resource object with methods for interacting with
    the service.
    """
    service = simplejson.loads(service)
    base = urlparse.urljoin(base, service['basePath'])
    if future:
        future = simplejson.loads(future)
        auth_discovery = future.get('auth', {})
    else:
        future = {}
        auth_discovery = {}
    schema = Schemas(service)
    if (model is None):
        features = service.get('features', [])
        model = JsonModel(('dataWrapper' in features))
    resource = createResource(http, base, model, requestBuilder, developerKey, service, future, schema)
    def auth_method():
        'Discovery    information    about    the    authentication    the    API    uses.'
        return auth_discovery
    setattr(resource, 'auth_discovery', auth_method)
    return resource