    def __init__(self, *directory, recursive=True, in_folder=False, limit_extensions=True, px_size=50, show_progress=True, processes=os.cpu_count(), **kwargs):
        '''
        Parameters
        ----------
        directory : str, list
            Paths of the directories or the files to be searched
        recursive : bool (optional)
            Search recursively within the directories (default is True)
        in_folder : bool (optional)
            If False, searches for matches in the union of directories (default is False)
            If True, searches for matches in separate/isolated directories
        limit_extensions : bool (optional)
            Limit search to known image file extensions (default is True)
        px_size : int (optional)
            Image compression size in pixels (default is 50)
        show_progress : bool (optional)
            Show the difPy progress bar in console (default is True)
        processes : int (optional)
            Number of worker processes for multiprocessing (see https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool)
        '''
        # Validate input parameters
        self.__directory = _validate_param._directory(directory)
        self.__recursive = _validate_param._recursive(recursive)
        self.__in_folder = _validate_param._in_folder(in_folder, recursive)
        self.__limit_extensions = _validate_param._limit_extensions(limit_extensions)
        self.__px_size = _validate_param._px_size(px_size)
        self.__show_progress = _validate_param._show_progress(show_progress)
        self.__processes = _validate_param._processes(processes)
        _validate_param._kwargs(kwargs)

        # Initialize multiprocessing
        _initialize_multiprocessing()

        self._tensor_dictionary, self._id_to_shape_dictionary, self._filename_dictionary, self._id_to_group_dictionary, self._group_to_id_dictionary, self._invalid_files, self.stats = self._main()

        return
Parameters
----------
directory : str, list
Paths of the directories or the files to be searched
recursive : bool (optional)
Search recursively within the directories (default is True)
in_folder : bool (optional)
If False, searches for matches in the union of directories (default is False)
If True, searches for matches in separate/isolated directories
limit_extensions : bool (optional)
Limit search to known image file extensions (default is True)
px_size : int (optional)
Image compression size in pixels (default is 50)
show_progress : bool (optional)
Show the difPy progress bar in console (default is True)
processes : int (optional)
Number of worker processes for multiprocessing (see https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool)
difPy/dif.py