(
package: str,
version: str,
bump_type_selector: t.Optional[str] = None,
)
| 61 | |
| 62 | |
| 63 | def _get_version_update( |
| 64 | package: str, |
| 65 | version: str, |
| 66 | bump_type_selector: t.Optional[str] = None, |
| 67 | ) -> t.Optional[str]: |
| 68 | pre = None |
| 69 | if "-" in version: |
| 70 | version, pre = version.split("-", maxsplit=1) |
| 71 | |
| 72 | if "rc" in version: |
| 73 | version, marker, number = version.partition("rc") |
| 74 | pre = f"{marker}{number}" |
| 75 | |
| 76 | # TODO: Add support for post builds |
| 77 | current_version = VersionInfo.parse(version=version) |
| 78 | current_version._prerelease = pre |
| 79 | bump_type_selector = t.cast( |
| 80 | str, |
| 81 | bump_type_selector |
| 82 | or click.prompt(f"* Bump {package}@{version} -> {BumpTypesPrompt}"), |
| 83 | ) |
| 84 | if bump_type_selector == "s": |
| 85 | return None |
| 86 | |
| 87 | try: |
| 88 | _bump_type = BumpType(BumpTypes[bump_type_selector]) |
| 89 | except (ValueError, KeyError) as e: |
| 90 | raise click.ClickException(f"Invalid bump type: {e}") |
| 91 | |
| 92 | return str(_get_bumped_version(current=current_version, bump_type=_bump_type)) |
| 93 | |
| 94 | |
| 95 | def _bump_setup_py(file: Path, bump_type: t.Optional[str] = None): |
no test coverage detected
searching dependent graphs…