Visitar URL original
refactor: remove JSON output option · pypa/packaging@1774407 · GitHub
Skip to content

Commit 1774407

Browse files
committed
refactor: remove JSON output option
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
1 parent 4cd9acd commit 1774407

2 files changed

Lines changed: 1 addition & 75 deletions

File tree

‎src/packaging/metadata.py‎

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__ import annotations
22

33
import builtins
4-
import dataclasses
54
import email.feedparser
65
import email.header
76
import email.message
@@ -274,34 +273,6 @@ def _get_payload(msg: email.message.Message, source: bytes | str) -> str:
274273
_MULTI_FIELDS = {_RAW_TO_EMAIL_MAPPING[x] for x in _LIST_FIELDS | _DICT_FIELDS}
275274

276275

277-
@dataclasses.dataclass
278-
class _JSonMessageSetter:
279-
"""
280-
This provides an API to build a JSON message output in the same way as the
281-
classic Message. Line breaks are preserved this way.
282-
"""
283-
284-
data: dict[str, str | list[str]]
285-
286-
def __setitem__(self, name: str, value: str | None) -> None:
287-
key = name.replace("-", "_")
288-
if value is None:
289-
return
290-
291-
if name == "keywords":
292-
values = (x.strip() for x in value.split(","))
293-
self.data[key] = [x for x in values if x]
294-
elif name in _MULTI_FIELDS:
295-
entry = self.data.setdefault(key, [])
296-
assert isinstance(entry, list)
297-
entry.append(value)
298-
else:
299-
self.data[key] = value
300-
301-
def set_payload(self, payload: str) -> None:
302-
self["description"] = payload
303-
304-
305276
# This class is for writing RFC822 messages
306277
class RFC822Policy(email.policy.EmailPolicy):
307278
"""
@@ -883,16 +854,7 @@ def as_rfc822(self) -> RFC822Message:
883854
self._write_metadata(message)
884855
return message
885856

886-
def as_json(self) -> dict[str, str | list[str]]:
887-
"""
888-
Return a JSON message with the metadata.
889-
"""
890-
message: dict[str, str | list[str]] = {}
891-
smart_message = _JSonMessageSetter(message)
892-
self._write_metadata(smart_message)
893-
return message
894-
895-
def _write_metadata(self, message: RFC822Message | _JSonMessageSetter) -> None:
857+
def _write_metadata(self, message: RFC822Message) -> None:
896858
"""
897859
Return an RFC822 message with the metadata.
898860
"""

‎tests/test_metadata.py‎

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -715,42 +715,6 @@ def test_large(self):
715715
}
716716
)
717717

718-
assert meta.as_json() == {
719-
"author": "Example!",
720-
"author_email": "Unknown <example@example.com>",
721-
"classifier": [
722-
"Development Status :: 4 - Beta",
723-
"Programming Language :: Python",
724-
],
725-
"description": "some readme 👋\n",
726-
"description_content_type": "text/markdown",
727-
"keywords": ["trampolim", "is", "interesting"],
728-
"license": "some license text",
729-
"maintainer_email": "Other Example <other@example.com>",
730-
"metadata_version": "2.1",
731-
"name": "full_metadata",
732-
"project_url": [
733-
"homepage, example.com",
734-
"documentation, readthedocs.org",
735-
"repository, github.com/some/repo",
736-
"changelog, github.com/some/repo/blob/master/CHANGELOG.rst",
737-
],
738-
"provides_extra": ["test"],
739-
"requires_dist": [
740-
"dependency1",
741-
"dependency2>1.0.0",
742-
"dependency3[extra]",
743-
'dependency4; os_name != "nt"',
744-
'dependency5[other-extra]>1.0; os_name == "nt"',
745-
'test_dependency; extra == "test"',
746-
'test_dependency[test_extra]; extra == "test"',
747-
'test_dependency[test_extra2]>3.0; os_name == "nt" and extra == "test"',
748-
],
749-
"requires_python": ">=3.8",
750-
"summary": "A package with all the metadata :)",
751-
"version": "3.2.1",
752-
}
753-
754718
core_metadata = meta.as_rfc822()
755719
assert core_metadata.items() == [
756720
("metadata-version", "2.1"),

0 commit comments

Comments
 (0)