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
@@ -160,7 +160,6 @@ def _get_info_from_metadata(self, link: Link) -> PackageInfo | None:
160
160
try :
161
161
assert link .metadata_url is not None
162
162
response = self .session .get (link .metadata_url )
163
- distribution = pkginfo .Distribution ()
164
163
if link .metadata_hashes and (
165
164
hash_name := get_highest_priority_hash_type (
166
165
set (link .metadata_hashes .keys ()), f"{ link .filename } .metadata"
@@ -178,14 +177,8 @@ def _get_info_from_metadata(self, link: Link) -> PackageInfo | None:
178
177
)
179
178
return None
180
179
181
- distribution .parse (response .content )
182
- return PackageInfo (
183
- name = distribution .name ,
184
- version = distribution .version ,
185
- summary = distribution .summary ,
186
- requires_dist = list (distribution .requires_dist ),
187
- requires_python = distribution .requires_python ,
188
- )
180
+ metadata , _ = parse_email (response .content )
181
+ return PackageInfo .from_metadata (metadata )
189
182
190
183
except requests .HTTPError :
191
184
self ._log (
0 commit comments