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

Reply via email to