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

Reply via email to