def extra_symlinked_files(self, potential_symlinks):
        """
        Find any symlinkd folders and yield SymlinkdPath objects for each file
        that is found under the symlink.
        """
        for key in list(potential_symlinks):
            location = os.path.join(self.root_folder, key.path)
            real_location = os.path.realpath(location)

            if os.path.islink(location) and os.path.isdir(real_location):
                for root, dirs, files in os.walk(real_location, followlinks=True):
                    for name in files:
                        # So this is joining the name of the symlink
                        # With the name of the file, relative to the real location of the symlink
                        full_path = os.path.join(root, name)
                        rel_location = os.path.relpath(full_path, real_location)
                        symlinkd_path = os.path.join(key.path, rel_location)

                        # We then get that relative to the parent dir
                        dir_part = os.path.relpath(root, real_location)
                        symlinkd_relpath = os.path.normpath(os.path.join(key.relpath, dir_part, name))

                        # And we need the original file location so we can get a commit time for the symlinkd path
                        real_path = os.path.realpath(full_path)
                        real_root_folder = os.path.realpath(self.root_folder)
                        real_relpath = os.path.relpath(real_path, real_root_folder)

                        # So that's path relative to root_folder, path relative to parent_folder
                        # and path relative to root for the target
                        yield SymlinkdPath(symlinkd_path, symlinkd_relpath, real_relpath)
def extra_symlinked_files ( self , potential_symlinks ) : for key in list ( potential_symlinks ) : location = os . path . join ( self . root_folder , key . path ) real_location = os . path . realpath ( location ) if os . path . islink ( location ) and os . path . isdir ( real_location ) : for root , dirs , files in os . walk ( real_location , followlinks = True ) : for name in files : full_path = os . path . join ( root , name ) rel_location = os . path . relpath ( full_path , real_location ) symlinkd_path = os . path . join ( key . path , rel_location ) dir_part = os . path . relpath ( root , real_location ) symlinkd_relpath = os . path . normpath ( os . path . join ( key . relpath , dir_part , name ) ) real_path = os . path . realpath ( full_path ) real_root_folder = os . path . realpath ( self . root_folder ) real_relpath = os . path . relpath ( real_path , real_root_folder ) yield SymlinkdPath ( symlinkd_path , symlinkd_relpath , real_relpath )
Find any symlinkd folders and yield SymlinkdPath objects for each file
        that is found under the symlink.