9
9
from typing import Any
10
10
from typing import Iterator
11
11
12
- import pkginfo
13
12
import requests
14
13
import requests .adapters
15
14
15
+ from packaging .metadata import parse_email
16
16
from poetry .core .constraints .version import parse_constraint
17
17
from poetry .core .packages .dependency import Dependency
18
18
from poetry .core .utils .helpers import temporary_directory
@@ -159,7 +159,6 @@ def _get_info_from_metadata(self, link: Link) -> PackageInfo | None:
159
159
try :
160
160
assert link .metadata_url is not None
161
161
response = self .session .get (link .metadata_url )
162
- distribution = pkginfo .Distribution ()
163
162
if link .metadata_hashes and (
164
163
hash_name := get_highest_priority_hash_type (
165
164
set (link .metadata_hashes .keys ()), f"{ link .filename } .metadata"
@@ -177,14 +176,8 @@ def _get_info_from_metadata(self, link: Link) -> PackageInfo | None:
177
176
)
178
177
return None
179
178
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 )
188
181
189
182
except requests .HTTPError :
190
183
self ._log (
0 commit comments