@@ -807,9 +807,16 @@ def open_url(self, url, warning=None): # noqa: C901 # is too complex (12)
807807 else :
808808 raise DistutilsError (f"Download error for { url } : { v } " ) from v
809809
810- def _download_url (self , url , tmpdir ):
811- # Determine download filename
812- #
810+ @staticmethod
811+ def _resolve_download_filename (url , tmpdir ):
812+ """
813+ >>> du = PackageIndex._resolve_download_filename
814+ >>> root = getfixture('tmp_path')
815+ >>> url = 'https://files.pythonhosted.org/packages/a9/5a/0db.../setuptools-78.1.0.tar.gz'
816+ >>> import pathlib
817+ >>> str(pathlib.Path(du(url, root)).relative_to(root))
818+ 'setuptools-78.1.0.tar.gz'
819+ """
813820 name , _fragment = egg_info_for_url (url )
814821 if name :
815822 while '..' in name :
@@ -820,8 +827,13 @@ def _download_url(self, url, tmpdir):
820827 if name .endswith ('.egg.zip' ):
821828 name = name [:- 4 ] # strip the extra .zip before download
822829
823- filename = os .path .join (tmpdir , name )
830+ return os .path .join (tmpdir , name )
824831
832+ def _download_url (self , url , tmpdir ):
833+ """
834+ Determine the download filename.
835+ """
836+ filename = self ._resolve_download_filename (url , tmpdir )
825837 return self ._download_vcs (url , filename ) or self ._download_other (url , filename )
826838
827839 @staticmethod
0 commit comments