def resolve_data_objects(objects, project=None, folder=None, batchsize=1000):
    """
    :param objects: Data object specifications, each with fields "name"
                    (required), "folder", and "project"
    :type objects: list of dictionaries
    :param project: ID of project context; a data object's project defaults
                    to this if not specified for that object
    :type project: string
    :param folder: Folder path within the project; a data object's folder
                   path defaults to this if not specified for that object
    :type folder: string
    :param batchsize: Number of objects to resolve in each batch call to
                      system_resolve_data_objects; defaults to 1000 and is
                      only used for testing (must be a positive integer not
                      exceeding 1000)
    :type batchsize: int
    :returns: List of results parallel to input objects, where each
              entry is a list containing 0 or more dicts, each corresponding
              to a resolved object
    :rtype: List of lists of dictionaries

    Each returned element is a list of dictionaries with keys "project" and
    "id". The number of dictionaries for each element may be 0, 1, or more.
    """
    if not isinstance(batchsize, int) or batchsize <= 0 or batchsize > 1000:
        raise ValueError("batchsize for resolve_data_objects must be a positive integer not exceeding 1000")
    args = {}
    if project:
        args.update({'project': project})
    if folder:
        args.update({'folder': folder})

    results = []

    # Call API method /system/resolveDataObjects in groups of size batchsize
    for i in range(0, len(objects), batchsize):
        args.update({'objects': objects[i:(i+batchsize)]})
        results.extend(dxpy.api.system_resolve_data_objects(args)['results'])
    return results
:param objects: Data object specifications, each with fields "name"
                    (required), "folder", and "project"
    :type objects: list of dictionaries
    :param project: ID of project context; a data object's project defaults
                    to this if not specified for that object
    :type project: string
    :param folder: Folder path within the project; a data object's folder
                   path defaults to this if not specified for that object
    :type folder: string
    :param batchsize: Number of objects to resolve in each batch call to
                      system_resolve_data_objects; defaults to 1000 and is
                      only used for testing (must be a positive integer not
                      exceeding 1000)
    :type batchsize: int
    :returns: List of results parallel to input objects, where each
              entry is a list containing 0 or more dicts, each corresponding
              to a resolved object
    :rtype: List of lists of dictionaries

    Each returned element is a list of dictionaries with keys "project" and
    "id". The number of dictionaries for each element may be 0, 1, or more.