コード例 #1
0
ファイル: pypi_dist.py プロジェクト: patrickayoup/pypi-dist
def get_next_version(previous_version: semver.VersionInfo,
                     release_type: str) -> semver.VersionInfo:
    if previous_version:
        if not release_type:
            # Prompt the user if it was not added as a CLI argument.
            release_type = click.prompt('Release type',
                                        type=RELEASE_TYPE_CHOICES)

        release_type = release_type.upper()

        if release_type == 'MAJOR':
            return previous_version.bump_major()
        elif release_type == 'MINOR':
            return previous_version.bump_minor()
        else:
            return previous_version.bump_patch()
    else:
        return semver.VersionInfo.parse('0.1.0')
コード例 #2
0
def version_bump(version: semver.VersionInfo):
    """ Bump the version number

    Args:
        version (semver.VersionInfo): parsed value

    Returns:
        bumped (semver.VersionInfo):  parsed value with bump
    """
    choices = [
        {
            'name': 'Patch: {} ==> {}'.format(version, version.bump_patch()),
            'value': version.bump_patch()
        },
        {
            'name': 'Minor: {} ==> {}'.format(version, version.bump_minor()),
            'value': version.bump_minor()
        },
        {
            'name': 'Major: {} ==> {}'.format(version, version.bump_major()),
            'value': version.bump_major()
        },
        {
            'name': 'Build: {} ==> {}'.format(version, version.bump_build()),
            'value': version.bump_build()
        },
        {
            'name':
            'Prerelease: {} ==> {}'.format(version, version.bump_prerelease()),
            'value':
            version.bump_prerelease()
        },
        Separator(),
        {
            'name': 'Manual type version',
            'value': 'manual'
        },
        Separator(),
        {
            'name': 'Quit',
            'value': 'quit'
        },
    ]
    # PyInquirer has a mouse-click problem (yes you read that correctly)
    # https://github.com/CITGuru/PyInquirer/issues/41
    # Until that's fixed we need to handle menus carefully
    response = None
    while response is None:
        answers = prompt([{
            'type': 'list',
            'name': 'verbump',
            'message': 'What bump do you want?',
            'choices': choices
        }])
        if 'verbump' in answers:
            response = answers['verbump']

    if type(response) is str and response == 'manual':
        return get_manual()
    elif type(response) is str and response == 'quit':
        exit(0)
    else:
        return response