class Bumper:
- def __init__(self, package: Package, *, bump_level: str | BumpLevel):
+ def __init__(self, package: Package, *, bump_level: str | BumpLevel | None):
self.package = package
- self.bump_level = BumpLevel(bump_level)
+ self.bump_level = BumpLevel(bump_level) if bump_level else None
self._version_regex = re.compile(
r"""(?ix)
current = self.current_version
parts = [current.major, current.minor, current.micro, current.dev or 0]
+ if not self.bump_level:
+ return self.current_version
+
match self.bump_level:
case BumpLevel.MAJOR:
# 1.2.3 -> 2.0.0
def main() -> int | None:
opt = parse_cmdline()
logger.setLevel(opt.loglevel)
- bumper = Bumper(packages[opt.package], bump_level=opt.level)
+ if opt.actions is None or Action.UPDATE in opt.actions:
+ bump_level = opt.level
+ else:
+ bump_level = None
+ bumper = Bumper(packages[opt.package], bump_level=bump_level)
logger.info("current version: %s", bumper.current_version)
logger.info("bumping to version: %s", bumper.want_version)