Skip to content

Commit 52925ec

Browse files
committed
perf: better string building
Signed-off-by: Henry Schreiner <[email protected]>
1 parent 39b0432 commit 52925ec

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/packaging/version.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -255,25 +255,25 @@ def __str__(self) -> str:
255255
>>> str(Version("1.0a5"))
256256
'1.0a5'
257257
"""
258-
parts = [self.base_version]
258+
version = self.base_version
259259

260260
# Pre-release
261-
if self.pre is not None:
262-
parts.append("".join(str(x) for x in self.pre))
261+
if (pre := self.pre) is not None:
262+
version += "".join(map(str, pre))
263263

264264
# Post-release
265-
if self.post is not None:
266-
parts.append(f".post{self.post}")
265+
if (post := self.post) is not None:
266+
version += f".post{post}"
267267

268268
# Development release
269-
if self.dev is not None:
270-
parts.append(f".dev{self.dev}")
269+
if (dev := self.dev) is not None:
270+
version += f".dev{dev}"
271271

272272
# Local version segment
273-
if self.local is not None:
274-
parts.append(f"+{self.local}")
273+
if (local := self.local) is not None:
274+
version += f"+{local}"
275275

276-
return "".join(parts)
276+
return version
277277

278278
@property
279279
def epoch(self) -> int:

0 commit comments

Comments
 (0)