def __init__(
        self,
        path,
        grandparent_path=None,
        width=200,
        padding=3,
    ):
        """Store arguments and perform setups.

        Parameters
        ==========
        path (pathlib.Path or None)
            if it is a pathlib.Path, it will be the path
            this PathObject represents. If None, it causes
            this object to not blit itself anymore,
            appearing as if invisible.
        grandparent_path (pathlib.Path or None)
            used to determine whether we'll use special
            text indicating that this path object
            actually gives access to the grandparent
            directory of the 'path' argument.
        width (integer)
            fixed width to be assumed by this path object.
        padding (integer)
            padding used for various calculations within
            this object. The padding doesn't affect the
            final width of the path object, defined by
            the 'width' argument described above.
        """
        ### store arguments

        self.path = path
        self.width = width
        self.padding = padding

        ### prepare objects and values for display
        self.prepare_visuals()

        ### we use the rect of one of the background
        ### surfaces created as the rect for the whole
        ### path object
        self.rect = self.normal_bg.get_rect()

        ##
        self.update_path(path, grandparent_path)
Store arguments and perform setups.

        Parameters
        ==========
        path (pathlib.Path or None)
            if it is a pathlib.Path, it will be the path
            this PathObject represents. If None, it causes
            this object to not blit itself anymore,
            appearing as if invisible.
        grandparent_path (pathlib.Path or None)
            used to determine whether we'll use special
            text indicating that this path object
            actually gives access to the grandparent
            directory of the 'path' argument.
        width (integer)
            fixed width to be assumed by this path object.
        padding (integer)
            padding used for various calculations within
            this object. The padding doesn't affect the
            final width of the path object, defined by
            the 'width' argument described above.
        
nodezator/fileman/pathobj.py