(acl)
return (target, perm, owner)
Parse ACL entry.

    >>> parse_acl('user=rwx/owner')
    ('user', 'rwx', 'owner')
    >>> parse_acl('" ""user"=rwx/" ""owner"')
    (' "user', 'rwx', ' "owner')
    >>> parse_acl('user=rwx')
    ('user', 'rwx', None)
    >>> parse_acl('=/f')
    (None, '', 'f')
Parse ACL entry.
Parse ACL entry .
def parse_acl(acl):
    """Parse ACL entry.

    >>> parse_acl('user=rwx/owner')
    ('user', 'rwx', 'owner')
    >>> parse_acl('" ""user"=rwx/" ""owner"')
    (' "user', 'rwx', ' "owner')
    >>> parse_acl('user=rwx')
    ('user', 'rwx', None)
    >>> parse_acl('=/f')
    (None, '', 'f')
    """
    global _acl_rc
    if not _acl_rc:
        _acl_rc = re.compile(_acl_re, re.I | re.X)

    m = _acl_rc.match(acl)
    if not m:
        return None

    target = m.group('tgt')
    perm = m.group('perm')
    owner = m.group('owner')

    if target:
        target = skytools.unquote_ident(target)
    if perm:
        perm = perm[1:]
    if owner:
        owner = skytools.unquote_ident(owner[1:])

    return (target, perm, owner)
def parse_acl ( acl ) : global _acl_rc if not _acl_rc : _acl_rc = re . compile ( _acl_re , re . I | re . X ) m = _acl_rc . match ( acl ) if not m : return None target = m . group ( 'tgt' ) perm = m . group ( 'perm' ) owner = m . group ( 'owner' ) if target : target = skytools . unquote_ident ( target ) if perm : perm = perm [ 1 : ] if owner : owner = skytools . unquote_ident ( owner [ 1 : ] ) return ( target , perm , owner )