'Recursively iterate over a directory and sort the files in
alphabetical order. Do not iterate pass the set depth.
The default depth is unlimited.'

def _traverse_dir_depth(self):

    current_depth = 0
    sorted_walk = list(walk(self.source_dir))
    sorted_walk.sort(key=(lambda x: x[0]))
    for (current_root, current_dir, current_files) in sorted_walk:
        current_depth += 1
        if ((current_depth <= self.depth) or (self.depth == 0)):
            current_files.sort()
            (yield (current_root, current_files))
        else:
            break
