99from typing import Any
1010from typing import Iterator
1111
12- import pkginfo
1312import requests
1413import requests .adapters
1514
15+ from packaging .metadata import parse_email
1616from poetry .core .constraints .version import parse_constraint
1717from poetry .core .packages .dependency import Dependency
1818from poetry .core .utils .helpers import temporary_directory
@@ -159,7 +159,6 @@ def _get_info_from_metadata(self, link: Link) -> PackageInfo | None:
159159 try :
160160 assert link .metadata_url is not None
161161 response = self .session .get (link .metadata_url )
162- distribution = pkginfo .Distribution ()
163162 if link .metadata_hashes and (
164163 hash_name := get_highest_priority_hash_type (
165164 set (link .metadata_hashes .keys ()), f"{ link .filename } .metadata"
@@ -177,14 +176,8 @@ def _get_info_from_metadata(self, link: Link) -> PackageInfo | None:
177176 )
178177 return None
179178
180- distribution .parse (response .content )
181- return PackageInfo (
182- name = distribution .name ,
183- version = distribution .version ,
184- summary = distribution .summary ,
185- requires_dist = list (distribution .requires_dist ),
186- requires_python = distribution .requires_python ,
187- )
179+ metadata , _ = parse_email (response .content )
180+ return PackageInfo .from_metadata (metadata )
188181
189182 except requests .HTTPError :
190183 self ._log (
0 commit comments