def walk(self, funcs):
        if self.use_album:
            targetName = "AlbumName"
            albums = [a for a in self.albums if
                      a.get("Album Type", None) == "Regular"]
        else:
            targetName = "RollName"
            albums = self.albums
        i = 0
        for folder in albums:
            i += 1
            if self.use_album:
                folderDate = None
            else:
                folderDate = self.appleDate(folder["RollDateAsTimerInterval"])
            images = folder["KeyList"]

            folderName = folder[targetName]

            #as we process albums/events in the iPhoto library, remove that album
            #from the list of import_albums we'll be importing at the end
            if self.import_albums:
                for ia in self.import_albums:
                    for album_name in ia['album_names']:
                        album_name = unicode(album_name, 'utf-8')
                        if folderName == album_name:
                            self.import_albums.remove(ia)

            if folderDate and self.use_date:
                date = '%(year)d%(delim)s%(month)02d%(delim)s%(day)02d' % {
                    'year': folderDate.year,
                    'month': folderDate.month,
                    'day': folderDate.day,
                    'delim': self.date_delimiter
                }
                if re.match("[A-Z][a-z]{2} [0-9]{1,2}, [0-9]{4}", folderName):
                    outputPath = date
                elif re.match("[0-9]{4}.[0-9]{2}.[0-9]{2} ?.*", folderName):
                    outputPath = folderName
                else:
                    outputPath = date + " " + folderName
                if self.year_dir:
                    outputPath = os.path.join(str(folderDate.year), outputPath)
            else:
                outputPath = folderName

            # Deconflict output directories
            targetFileDir = os.path.join(self.dest_dir, outputPath)
            if self.deconflict:
                j = 1
                while targetFileDir in self.output_dirs:
                    targetFileDir = os.path.join(self.dest_dir, outputPath + " %02d"%j)
                    j += 1
                self.output_dirs.add(targetFileDir)

            self.status("* Processing %i of %i: %s (%i images)...\n" % (
                i,
                len(albums),
                folderName,
                len(images)
            ))
            for imageId in images:
                for func in funcs:
                    func(imageId, targetFileDir, folderDate)
            self.status("\n")

        if self.import_missing: 
            self.status("importing folders:\n")
            for ia in self.import_albums:
                self.status(ia["album_dir"] + "\n")

                #using the "Auto Import" dir in iPhoto was unpredictable with respect to the resulting event name.
                #Using AppleScript to import the event, seams to always result in the event being properly named
                if not self.test:
                    #There is probably a better way to do this. I noticed I had an album with an ' in it that errored...
                    escaped_dir = ia["album_dir"].replace("'", "\\'").replace('"', '\\"')
                    os.system('''osascript -e '
tell application "iPhoto"
    import from "%s"
end tell
' ''' % escaped_dir)
Establish that a if _lookup is invoked without any unique
dataset/ETHPy150Open BMorearty/exportiphoto/exportiphoto.py/iPhotoLibrary.walk--crossover with--dataset/ETHPy150Open ansible/tower-cli/tests/test_models_base.py/ResourceTests.test_lookup_with_unique_field_not_present