From 69d2e70eac6bc94560ab16b29ed1a83ac94fe828 Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov Date: Tue, 29 Sep 2020 13:30:31 +0300 Subject: [PATCH 01/10] Overload __repr__ for tkinter Font objects --- Lib/tkinter/font.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Lib/tkinter/font.py b/Lib/tkinter/font.py index 15ad7ab4b63a81..65a6ff41368e4a 100644 --- a/Lib/tkinter/font.py +++ b/Lib/tkinter/font.py @@ -100,6 +100,9 @@ def __init__(self, root=None, font=None, name=None, exists=False, def __str__(self): return self.name + def __repr__(self): + return f"{self.__class__.__module__}.{self.__class__.__name__} object '{self.name}'" + def __eq__(self, other): if not isinstance(other, Font): return NotImplemented From 6bea64fc9229c692c4af692259c2ffa9d2cb0f92 Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov Date: Tue, 29 Sep 2020 14:52:26 +0300 Subject: [PATCH 02/10] Use __qualname__ folowing PEP-3155. Fix missing brackets. --- Lib/tkinter/font.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/tkinter/font.py b/Lib/tkinter/font.py index 65a6ff41368e4a..3731178e930693 100644 --- a/Lib/tkinter/font.py +++ b/Lib/tkinter/font.py @@ -101,7 +101,7 @@ def __str__(self): return self.name def __repr__(self): - return f"{self.__class__.__module__}.{self.__class__.__name__} object '{self.name}'" + return f"<{self.__class__.__module__}.{self.__class__.__qualname__} object '{self.name}'>" def __eq__(self, other): if not isinstance(other, Font): From 73ec1d957aa0b43f62c2200ec0ebee259e98d8d5 Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov Date: Tue, 29 Sep 2020 15:33:51 +0300 Subject: [PATCH 03/10] Use !r instead of quotes --- Lib/tkinter/font.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/tkinter/font.py b/Lib/tkinter/font.py index 3731178e930693..7e4d325e3f647a 100644 --- a/Lib/tkinter/font.py +++ b/Lib/tkinter/font.py @@ -101,7 +101,7 @@ def __str__(self): return self.name def __repr__(self): - return f"<{self.__class__.__module__}.{self.__class__.__qualname__} object '{self.name}'>" + return f"<{self.__class__.__module__}.{self.__class__.__qualname__} object {self.name!r}>" def __eq__(self, other): if not isinstance(other, Font): From b53b34e57e6bec59ddb6175b21ce6d4ca6695feb Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov Date: Tue, 29 Sep 2020 16:05:13 +0300 Subject: [PATCH 04/10] Add test for font representation --- Lib/tkinter/test/test_tkinter/test_font.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Lib/tkinter/test/test_tkinter/test_font.py b/Lib/tkinter/test/test_tkinter/test_font.py index a021ea336807bb..f3c9d1900a8e75 100644 --- a/Lib/tkinter/test/test_tkinter/test_font.py +++ b/Lib/tkinter/test/test_tkinter/test_font.py @@ -100,6 +100,10 @@ def test_names(self): self.assertIsInstance(name, str) self.assertTrue(name) self.assertIn(fontname, names) + + def test_repr(self): + assert repr(self.font) == f'<{self.font.__class__.__module__}.{self.__class__.__qualname__} object {fontname!r}>' + tests_gui = (FontTest, ) From 353cf8ceefe312d00be1fa524e1485d65de6836b Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov Date: Tue, 29 Sep 2020 16:05:41 +0300 Subject: [PATCH 05/10] Add myself to ACKS --- Misc/ACKS | 1 + 1 file changed, 1 insertion(+) diff --git a/Misc/ACKS b/Misc/ACKS index 85001daf67d234..f4c98ed82d6d4f 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1351,6 +1351,7 @@ Zero Piraeus Antoine Pitrou Jean-François Piéronne Oleg Plakhotnyuk +Anatoliy Platonov Marcel Plch Remi Pointel Jon Poler From a5b1d0dd007f23fb8ec6d8c934a5d59bc3cb36a3 Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov Date: Tue, 29 Sep 2020 16:26:19 +0300 Subject: [PATCH 06/10] Add news entry --- .../next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst diff --git a/Misc/NEWS.d/next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst b/Misc/NEWS.d/next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst new file mode 100644 index 00000000000000..e18de9f7dc12fd --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst @@ -0,0 +1,2 @@ +Change in :class:`tkinter.font.Font`, now representation of font object contains +font name instead of object address. From 4b1d8e700045f268b79869a8fbf1ab31845e15c6 Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov <31926941+p4m-dev@users.noreply.github.com> Date: Tue, 29 Sep 2020 18:51:33 +0300 Subject: [PATCH 07/10] Update Lib/tkinter/test/test_tkinter/test_font.py Co-authored-by: E-Paine <63801254+E-Paine@users.noreply.github.com> --- Lib/tkinter/test/test_tkinter/test_font.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/tkinter/test/test_tkinter/test_font.py b/Lib/tkinter/test/test_tkinter/test_font.py index f3c9d1900a8e75..93aebee32bebc8 100644 --- a/Lib/tkinter/test/test_tkinter/test_font.py +++ b/Lib/tkinter/test/test_tkinter/test_font.py @@ -102,7 +102,7 @@ def test_names(self): self.assertIn(fontname, names) def test_repr(self): - assert repr(self.font) == f'<{self.font.__class__.__module__}.{self.__class__.__qualname__} object {fontname!r}>' + self.assertEqual(repr(self.font), f'<{self.font.__class__.__module__}.{self.font.__class__.__qualname__} object {fontname!r}>') tests_gui = (FontTest, ) From 3528c7dadc807bee0b2ec7f2f3b4aedae9675729 Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov Date: Tue, 29 Sep 2020 17:14:42 +0100 Subject: [PATCH 08/10] Remove trailing whitespaces --- Lib/tkinter/test/test_tkinter/test_font.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/tkinter/test/test_tkinter/test_font.py b/Lib/tkinter/test/test_tkinter/test_font.py index 93aebee32bebc8..5b27a1608e815f 100644 --- a/Lib/tkinter/test/test_tkinter/test_font.py +++ b/Lib/tkinter/test/test_tkinter/test_font.py @@ -100,10 +100,10 @@ def test_names(self): self.assertIsInstance(name, str) self.assertTrue(name) self.assertIn(fontname, names) - + def test_repr(self): self.assertEqual(repr(self.font), f'<{self.font.__class__.__module__}.{self.font.__class__.__qualname__} object {fontname!r}>') - + tests_gui = (FontTest, ) From e954c2f3cf373f310a86be948b0aea8f1c89b2b4 Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov Date: Wed, 30 Sep 2020 01:51:28 +0300 Subject: [PATCH 09/10] Fix too long lines folowing PEP-8 --- Lib/tkinter/font.py | 3 ++- Lib/tkinter/test/test_tkinter/test_font.py | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Lib/tkinter/font.py b/Lib/tkinter/font.py index 7e4d325e3f647a..a9f79d8e456bb7 100644 --- a/Lib/tkinter/font.py +++ b/Lib/tkinter/font.py @@ -101,7 +101,8 @@ def __str__(self): return self.name def __repr__(self): - return f"<{self.__class__.__module__}.{self.__class__.__qualname__} object {self.name!r}>" + return f"<{self.__class__.__module__}.{self.__class__.__qualname__}" \ + f" object {self.name!r}>" def __eq__(self, other): if not isinstance(other, Font): diff --git a/Lib/tkinter/test/test_tkinter/test_font.py b/Lib/tkinter/test/test_tkinter/test_font.py index 5b27a1608e815f..6d1eea44b4d2f3 100644 --- a/Lib/tkinter/test/test_tkinter/test_font.py +++ b/Lib/tkinter/test/test_tkinter/test_font.py @@ -102,7 +102,9 @@ def test_names(self): self.assertIn(fontname, names) def test_repr(self): - self.assertEqual(repr(self.font), f'<{self.font.__class__.__module__}.{self.font.__class__.__qualname__} object {fontname!r}>') + self.assertEqual( + repr(self.font), f'' + ) tests_gui = (FontTest, ) From 5cd4cf5b41198f56da8d3554b0cc3917a5515e7d Mon Sep 17 00:00:00 2001 From: Anatoliy Platonov Date: Wed, 30 Sep 2020 01:51:59 +0300 Subject: [PATCH 10/10] Make description shorter --- .../next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Misc/NEWS.d/next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst b/Misc/NEWS.d/next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst index e18de9f7dc12fd..d4f5f0a37bf484 100644 --- a/Misc/NEWS.d/next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst +++ b/Misc/NEWS.d/next/Library/2020-09-29-16-23-54.bpo-41876.QicdDU.rst @@ -1,2 +1 @@ -Change in :class:`tkinter.font.Font`, now representation of font object contains -font name instead of object address. +Tkinter font class repr uses font name \ No newline at end of file