Skip to content

Commit ebfed9f

Browse files
committed
refactor: remove JSON output option
Signed-off-by: Henry Schreiner <[email protected]>
1 parent f72e95a commit ebfed9f

File tree

2 files changed

+1
-75
lines changed

2 files changed

+1
-75
lines changed

src/packaging/metadata.py

+1-39
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
@@ -273,34 +272,6 @@ def _get_payload(msg: email.message.Message, source: bytes | str) -> str:
273272
_MULTI_FIELDS = {_RAW_TO_EMAIL_MAPPING[x] for x in _LIST_FIELDS | _DICT_FIELDS}
274273

275274

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

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

tests/test_metadata.py

-36
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 <[email protected]>",
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 <[email protected]>",
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)