7h ,SrSSKrSSKr"SS5rg)6Handles caching user and group database info in memoryNc\rSrSrSrS\4SjrS\S\R4Sjr S\S\ R4Sjr S \ S\4S jrS \ S\4S jrS rg)IDCacherrolec0Ul0UlSS0UlSS0UlUS:wa#UR S5 UR S5 gg)NrrootWP3nobodymail)_grps_pwds _uid2name _gid2namegetgrnam)selfrs !/usr/lib/fixperms/fixperms_ids.py__init__IDCache.__init__ sJ  VV 5= MM( # MM& ! namereturncURU$![a Of=f[R"U5nO#![an[SU<S35UeSnAff=fX RU'XRUR 'U$)zLookup and cache a struct_passwd by name Args: name (str): user name Raises: KeyError: user not found in /etc/passwd Returns: pwd.struct_passwd: pwd.getpwnam() result The z user is missingN)rKeyErrorpwdgetpwnamrpw_uidrrvalexcs rrIDCache.getpwnams ::d# #    E,,t$C ET$)9:; D E 4%)szz" ! 9 AAAcURU$![a Of=f[R"U5nO#![an[SU<S35UeSnAff=fX RU'XRUR 'U$)zLookup and cache a struct_group by name Args: name (str): group name Raises: KeyError: group not found in /etc/groups Returns: grp.struct_group: grp.getgrnam() result rz group is missingN)r rgrprrgr_gidrs rrIDCache.getgrnam.s ::d# #    F,,t$C FT$):;<# E F 4%)szz" r#uidcpUS:wdeURU$![a Of=f[R"U5nO7![a* [ U5URU'URUs$f=fUR URU'X R UR 'URU$)zLookup and cache a user name by UID Args: uid (int): user ID Returns: str: user name to display, or string of the uid if it was missing )rrrgetpwuidstrpw_namer)rr(r s r uid_labelIDCache.uid_labelFbyy >>#& &    ',,s#C '"%c(DNN3 >>#& & '"kks"% 3;;~~c"" &&A1A54A5gidcpUS:wdeURU$![a Of=f[R"U5nO7![a* [ U5URU'URUs$f=fUR URU'X R UR 'URU$)zLookup and cache a group name by GID Args: gid (int): group ID Returns: str: group name to display, or string of the gid if it was missing r*)rrr%getgrgidr,gr_namer )rr2r s r gid_labelIDCache.gid_label]r0r1)rr rrN)__name__ __module__ __qualname____firstlineno____doc__r,rr struct_passwdrr% struct_grouprintr.r6__static_attributes__rrrrsi@ "S"SS%6%60SS%5%50#S#S#.#S#S#rr)r<r%rrrArrrBs< k#k#r