| 328 | return "<Version({0})>".format(repr(str(self))) |
| 329 | |
| 330 | def __str__(self): |
| 331 | parts = [] |
| 332 | |
| 333 | # Epoch |
| 334 | if self._version.epoch != 0: |
| 335 | parts.append("{0}!".format(self._version.epoch)) |
| 336 | |
| 337 | # Release segment |
| 338 | parts.append(".".join(str(x) for x in self._version.release)) |
| 339 | |
| 340 | # Pre-release |
| 341 | if self._version.pre is not None: |
| 342 | parts.append("".join(str(x) for x in self._version.pre)) |
| 343 | |
| 344 | # Post-release |
| 345 | if self._version.post is not None: |
| 346 | parts.append(".post{0}".format(self._version.post[1])) |
| 347 | |
| 348 | # Development release |
| 349 | if self._version.dev is not None: |
| 350 | parts.append(".dev{0}".format(self._version.dev[1])) |
| 351 | |
| 352 | # Local version segment |
| 353 | if self._version.local is not None: |
| 354 | parts.append( |
| 355 | "+{0}".format(".".join(str(x) for x in self._version.local)) |
| 356 | ) |
| 357 | |
| 358 | return "".join(parts) |
| 359 | |
| 360 | @property |
| 361 | def public(self): |