https://github.com/python/cpython/commit/132b6bc98f47a4d897dead8635b5a50a0baee485 commit: 132b6bc98f47a4d897dead8635b5a50a0baee485 branch: main author: Саша Черных <kristin...@users.noreply.github.com> committer: hugovk <1324225+hug...@users.noreply.github.com> date: 2025-04-21T12:05:37+03:00 summary:
gh-132054: Add ``application/yaml`` to ``mimetypes`` (#132056) Co-authored-by: Adam Turner <9087854+aa-tur...@users.noreply.github.com> Co-authored-by: Hugo van Kemenade <1324225+hug...@users.noreply.github.com> files: A Misc/NEWS.d/next/Library/2025-04-03-20-28-54.gh-issue-132054.c1nlOx.rst M Doc/whatsnew/3.14.rst M Lib/mimetypes.py M Lib/test/test_mimetypes.py diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index f02ce6bc1d4f2f..51f4286efd6785 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -910,6 +910,10 @@ mimetypes (Contributed by Hugo van Kemenade in :gh:`129965`.) +* Add :rfc:`9512` ``application/yaml`` MIME type for YAML files (``.yaml`` + and ``.yml``). (Contributed by Sasha "Nelie" Chernykh and Hugo van Kemenade + in :gh:`132056`.) + multiprocessing --------------- diff --git a/Lib/mimetypes.py b/Lib/mimetypes.py index 7c3e9c0d1159ba..de842eabea8093 100644 --- a/Lib/mimetypes.py +++ b/Lib/mimetypes.py @@ -544,6 +544,8 @@ def _default_mime_types(): '.rdf' : 'application/xml', '.wsdl' : 'application/xml', '.xpdl' : 'application/xml', + '.yaml' : 'application/yaml', + '.yml' : 'application/yaml', '.zip' : 'application/zip', '.3gp' : 'audio/3gpp', '.3gpp' : 'audio/3gpp', diff --git a/Lib/test/test_mimetypes.py b/Lib/test/test_mimetypes.py index 261017f832a2af..f2a19c0863570a 100644 --- a/Lib/test/test_mimetypes.py +++ b/Lib/test/test_mimetypes.py @@ -243,6 +243,7 @@ def check_extensions(): ("application/x-texinfo", ".texi"), ("application/x-troff", ".roff"), ("application/xml", ".xsl"), + ("application/yaml", ".yaml"), ("audio/flac", ".flac"), ("audio/matroska", ".mka"), ("audio/mp4", ".m4a"), @@ -285,6 +286,26 @@ def check_extensions(): mimetypes.init() check_extensions() + def test_guess_file_type(self): + def check_file_type(): + for mime_type, ext in ( + ("application/yaml", ".yaml"), + ("application/yaml", ".yml"), + ("audio/mpeg", ".mp2"), + ("audio/mpeg", ".mp3"), + ("video/mpeg", ".m1v"), + ("video/mpeg", ".mpe"), + ("video/mpeg", ".mpeg"), + ("video/mpeg", ".mpg"), + ): + with self.subTest(mime_type=mime_type, ext=ext): + result, _ = mimetypes.guess_file_type(f"filename{ext}") + self.assertEqual(result, mime_type) + + check_file_type() + mimetypes.init() + check_file_type() + def test_init_stability(self): mimetypes.init() diff --git a/Misc/NEWS.d/next/Library/2025-04-03-20-28-54.gh-issue-132054.c1nlOx.rst b/Misc/NEWS.d/next/Library/2025-04-03-20-28-54.gh-issue-132054.c1nlOx.rst new file mode 100644 index 00000000000000..b9602c0b2ca1c6 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-04-03-20-28-54.gh-issue-132054.c1nlOx.rst @@ -0,0 +1,2 @@ +The ``application/yaml`` mime type (:rfc:`9512`) is now supported +by :mod:`mimetypes`. Patch by Sasha "Nelie" Chernykh and Hugo van Kemenade. _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com