def format_version(version, how):
    """
    Version string formatter for loosening version requirements.

    :version: [str] the version strings.
    :how: [str|bool] how to format the version. 

    :returns: [str] formatted version string
    """
    _how = str(how).lower()
    allowed = 'full', 'major', 'minor', 'none'
    if _how not in allowed:
        raise ValueError('Argument `how` only accepts the following values: {}'
            .format(allowed))
    n = version.count('.')
    if n == 0 or _how == 'full':
        return version
    if n == 1:
        major, minor = version.split('.')
        subs = ''
    if n >= 2:
        major, minor, subs = version.split('.', 2)
    if _how == 'major':
        return major + '.*'
    if _how == 'minor':
        if not subs:
            return '{0}.{1}'.format(major, minor)
        return '{0}.{1}.*'.format(major, minor)
    return version
