def split_filename(filename):
    """
    Received a standard style rpm fullname and returns
    name, version, release, epoch, arch
    Example: foo-1.0-1.i386.rpm returns foo, 1.0, 1, i386
             1:bar-9-123a.ia64.rpm returns bar, 9, 123a, 1, ia64

    This function replaces rpmUtils.miscutils.splitFilename, see
    https://bugzilla.redhat.com/1452801
    """

    # Remove .rpm suffix
    if filename.endswith('.rpm'):
        filename = filename.split('.rpm')[0]

    # is there an epoch?
    components = filename.split(':')
    if len(components) > 1:
        epoch = components[0]
    else:
        epoch = ''

    # Arch is the last item after .
    arch = filename.rsplit('.')[-1]
    remaining = filename.rsplit('.%s' % arch)[0]
    release = remaining.rsplit('-')[-1]
    version = remaining.rsplit('-')[-2]
    name = '-'.join(remaining.rsplit('-')[:-2])

    return name, version, release, epoch, arch
def split_filename ( filename ) : if filename . endswith ( '.rpm' ) : filename = filename . split ( '.rpm' ) [ 0 ] components = filename . split ( ':' ) if len ( components ) > 1 : epoch = components [ 0 ] else : epoch = '' arch = filename . rsplit ( '.' ) [ - 1 ] remaining = filename . rsplit ( '.%s' % arch ) [ 0 ] release = remaining . rsplit ( '-' ) [ - 1 ] version = remaining . rsplit ( '-' ) [ - 2 ] name = '-' . join ( remaining . rsplit ( '-' ) [ : - 2 ] ) return name , version , release , epoch , arch
Received a standard style rpm fullname and returns
    name, version, release, epoch, arch
    Example: foo-1.0-1.i386.rpm returns foo, 1.0, 1, i386
             1:bar-9-123a.ia64.rpm returns bar, 9, 123a, 1, ia64

    This function replaces rpmUtils.miscutils.splitFilename, see
    https://bugzilla.redhat.com/1452801