def getter(self):
        """Returns an instance of proper PackageGetter subclass. Always
        returns the same instance.

        Returns:
            Instance of the proper PackageGetter subclass according to
            provided argument.
        Raises:
            NoSuchSourceException if source to get the package from is unknown
            NoSuchPackageException if the package is unknown on PyPI
        """
        if not hasattr(self, '_getter'):
            if not self.pypi:
                self._getter = package_getters.LocalFileGetter(
                    self.package,
                    self.save_dir)
            else:
                logger.debug(
                    '{0} does not exist as local file trying PyPI.'.format(
                        self.package))
                self._getter = package_getters.PypiDownloader(
                    self.client,
                    self.package,
                    self.version,
                    self.save_dir)

        return self._getter
Returns an instance of proper PackageGetter subclass. Always
        returns the same instance.

        Returns:
            Instance of the proper PackageGetter subclass according to
            provided argument.
        Raises:
            NoSuchSourceException if source to get the package from is unknown
            NoSuchPackageException if the package is unknown on PyPI