          self._download_model()
          self._unzip_model()
          os.remove(self._model_zip_path)
  
      def _download_model(self):
          """ Download the model zip from github to the cache folder. """
          self.logger.info("Downloading model: '%s' from: %s", self._model_name, self._url_download)
          for attempt in range(self._retries):
              try:
                  downloaded_size = self._url_partial_size
 
</s> remove     def model_path(self):
        """ str: The model path(s) in the cache folder. """
        retval = [os.path.join(self._cache_dir, fname) for fname in self._model_filename]
        retval = retval[0] if len(retval) == 1 else retval
        self.logger.trace(retval)
 </s> add     def model_path(self) -> Union[str, List[str]]:
        """ str or list: The model path(s) in the cache folder. """
        paths = [os.path.join(self._cache_dir, fname) for fname in self._model_filename]
        retval: Union[str, List[str]] = paths[0] if len(paths) == 1 else paths
        self.logger.trace(retval)  # type: ignore </s> remove         self.logger.trace(retval)
 </s> add         self.logger.trace(retval)  # type: ignore </s> remove     def _unzip_model(self):
 </s> add     def _unzip_model(self) -> None: </s> remove     def _get(self):
 </s> add     def _get(self) -> None: </s> remove         self.logger.trace(retval)
 </s> add         self.logger.trace(retval)  # type: ignore
    def _download_model(self) -> None:
          self._download_model()
          self._unzip_model()
          os.remove(self._model_zip_path)
  
    def _download_model(self) -> None:
          """ Download the model zip from github to the cache folder. """
          self.logger.info("Downloading model: '%s' from: %s", self._model_name, self._url_download)
          for attempt in range(self._retries):
              try:
                  downloaded_size = self._url_partial_size
keep keep keep keep replace keep keep keep keep keep
 lib.Utils - add DPI detector 
lib/utils.py