Parse an RPM version string to get name, version, and arch

    Splits most (all tested) RPM version strings into name, epoch,
    version, release, and architecture. Epoch (also called serial) is
    an optional component of RPM versioning and is also optional in
    version strings provided to this function. RPM assumes the epoch
    to be 0 if it is not provided, so that behavior is mirrored here.

    **Deprecated** since version 0.2.0. Use :any:`rpm.package` instead.

    :param str package_string: an RPM version string of the form
        returned by the ``rpm -q`` command
    :param bool arch_included: default True - version strings may
        optionally be provided without the trailing architecture. If
        providing such strings, set this option to False
    :return: a dictionary with all parsed package information
    :rtype: dict

def parse_package(package_string, arch_included=True):
    """Parse an RPM version string to get name, version, and arch

    Splits most (all tested) RPM version strings into name, epoch,
    version, release, and architecture. Epoch (also called serial) is
    an optional component of RPM versioning and is also optional in
    version strings provided to this function. RPM assumes the epoch
    to be 0 if it is not provided, so that behavior is mirrored here.

    **Deprecated** since version 0.2.0. Use :any:`rpm.package` instead.

    :param str package_string: an RPM version string of the form
        returned by the ``rpm -q`` command
    :param bool arch_included: default True - version strings may
        optionally be provided without the trailing architecture. If
        providing such strings, set this option to False
    :return: a dictionary with all parsed package information
    :rtype: dict
    """
    # Yum sets epoch values to 0 if they are not specified
    logger.debug('parse_package(%s, %s)', package_string, arch_included)
    default_epoch = '0'
    arch = None
    if arch_included:
        char_list = list(package_string)
        arch = _pop_arch(char_list)
        package_string = ''.join(char_list)
        logger.debug('updated version_string: %s', package_string)
    try:
        name, epoch, version, release = _rpm_re.match(package_string).groups()
    except AttributeError:
        raise RpmError('Could not parse package string: %s' % package_string)
    if epoch == '' or epoch is None:
        epoch = default_epoch
    info = {
        'name': name,
        'EVR': (epoch, version, release),
        'arch': arch
    }
    logger.debug('parsed information: %s', info)
    return info