def scroll(self, up):
        """Scroll paths on path objects.

        up (boolean)
            indicates whether the orientation of the
            scrolling is up or not.
        """
        ### according to value of the 'up' argument

        ## scroll up

        if up:

            ## if the first path is on the first path obj,
            ## then there's no further item above, so we
            ## return earlier to avoid scrolling
            if self.path_objs[0].path == self.paths[0]:
                return

            ## otherwise we define the rotation amount
            ## to rotating the paths up one path
            else:
                rotation_amount = 1

        ## scroll down

        else:

            ## reference the path in the last path obj
            last_path = self.path_objs[-1].path

            ## if such path is last path available or None,
            ## then there's no further item below, so we
            ## return earlier to avoid scrolling
            if last_path == self.paths[-1] or last_path is None:
                return

            ## otherwise we define the rotation amount
            ## to rotating the paths down one path
            else:
                rotation_amount = -1

        ### we then perform the rotation using the defined
        ### amount
        self.paths_deque.rotate(rotation_amount)

        ### reassign the rotated paths to the path objects
        self.update_path_objects_paths()

        ### update appearance of all paths
        self.update_path_objs_appearance()

        ### update outline rect attribute
        self.update_outline_rect()
Scroll paths on path objects.

        up (boolean)
            indicates whether the orientation of the
            scrolling is up or not.
        
nodezator/fileman/dirpanel/extraop.py