https://github.com/python/cpython/commit/1121c80fdad1fc1a175f4691f33272cf28a66e83 commit: 1121c80fdad1fc1a175f4691f33272cf28a66e83 branch: main author: Grigory Bukovsky <32143244+booqoff...@users.noreply.github.com> committer: sobolevn <m...@sobolevn.me> date: 2025-03-14T01:57:38+03:00 summary:
gh-131196: Improve perfomance of `UUID.hex` and `UUID.__str__` by ~10% (#131197) Results before and after the fix: ``` hex before: 0.021755493999989994 after: 0.01465080400066654 str before: 0.06381790500017814 after: 0.05134949700004654 ``` Co-authored-by: Bénédikt Tran <10796600+picn...@users.noreply.github.com> files: A Misc/NEWS.d/next/Library/2025-03-13-19-53-57.gh-issue-131196.3sBFv2.rst M Lib/uuid.py diff --git a/Lib/uuid.py b/Lib/uuid.py index 7a12b48cb008f1..6f7a7a3f42ac11 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -321,9 +321,8 @@ def __setattr__(self, name, value): raise TypeError('UUID objects are immutable') def __str__(self): - hex = '%032x' % self.int - return '%s-%s-%s-%s-%s' % ( - hex[:8], hex[8:12], hex[12:16], hex[16:20], hex[20:]) + x = self.hex + return f'{x[:8]}-{x[8:12]}-{x[12:16]}-{x[16:20]}-{x[20:]}' @property def bytes(self): @@ -387,7 +386,7 @@ def node(self): @property def hex(self): - return '%032x' % self.int + return self.bytes.hex() @property def urn(self): diff --git a/Misc/NEWS.d/next/Library/2025-03-13-19-53-57.gh-issue-131196.3sBFv2.rst b/Misc/NEWS.d/next/Library/2025-03-13-19-53-57.gh-issue-131196.3sBFv2.rst new file mode 100644 index 00000000000000..72c10fe57e8dad --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-03-13-19-53-57.gh-issue-131196.3sBFv2.rst @@ -0,0 +1 @@ +Improve perfomance of :attr:`uuid.UUID.hex` and :meth:`uuid.UUID.__str__ <object.__str__>`. _______________________________________________ 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