@@ -162,7 +162,7 @@ def parse_metadata(project, version, distribution):
162162 return package
163163
164164
165- def get_project_metadata_from_artifact (filename , artifact ):
165+ def get_project_metadata_from_file (filename ):
166166 """
167167 Gets the metadata of a Python Package.
168168
@@ -173,30 +173,31 @@ def get_project_metadata_from_artifact(filename, artifact):
173173 # If no supported extension is found, ValueError is raised here
174174 pkg_type_index = [filename .endswith (ext ) for ext in extensions ].index (True )
175175 packagetype = DIST_EXTENSIONS [extensions [pkg_type_index ]]
176- # Copy file to a temp directory under the user provided filename, we do this
177- # because pkginfo validates that the filename has a valid extension before
178- # reading it
179- with tempfile .NamedTemporaryFile ("wb" , dir = "." , suffix = filename ) as temp_file :
180- shutil .copyfileobj (artifact .file , temp_file )
181- temp_file .flush ()
182- metadata = DIST_TYPES [packagetype ](temp_file .name )
183- metadata .packagetype = packagetype
184- if packagetype == "sdist" :
185- metadata .python_version = "source"
186- else :
187- pyver = ""
188- regex = DIST_REGEXES [extensions [pkg_type_index ]]
189- if bdist_name := regex .match (filename ):
190- pyver = bdist_name .group ("pyver" ) or ""
191- metadata .python_version = pyver
192- return metadata
176+
177+ metadata = DIST_TYPES [packagetype ](filename )
178+ metadata .packagetype = packagetype
179+ if packagetype == "sdist" :
180+ metadata .python_version = "source"
181+ else :
182+ pyver = ""
183+ regex = DIST_REGEXES [extensions [pkg_type_index ]]
184+ if bdist_name := regex .match (filename ):
185+ pyver = bdist_name .group ("pyver" ) or ""
186+ metadata .python_version = pyver
187+ return metadata
193188
194189
195190def artifact_to_python_content_data (filename , artifact , domain = None ):
196191 """
197192 Takes the artifact/filename and returns the metadata needed to create a PythonPackageContent.
198193 """
199- metadata = get_project_metadata_from_artifact (filename , artifact )
194+ # Copy file to a temp directory under the user provided filename, we do this
195+ # because pkginfo validates that the filename has a valid extension before
196+ # reading it
197+ with tempfile .NamedTemporaryFile ("wb" , dir = "." , suffix = filename ) as temp_file :
198+ shutil .copyfileobj (artifact .file , temp_file )
199+ temp_file .flush ()
200+ metadata = get_project_metadata_from_file (temp_file .name )
200201 data = parse_project_metadata (vars (metadata ))
201202 data ["sha256" ] = artifact .sha256
202203 data ["filename" ] = filename
0 commit comments