a „oe»ã@sÜddlZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZd d „Zd d „Zd d„Ze jdœdd„Zejdd„ƒZe e¡dd„ƒZe edƒdd„¡ee jdœdd„ƒZdd„ZdS)éNé)Ú OptionError)Ú yield_lines)Ú pass_none)Úmetadata)Ú ensure_unique)Úconsumec CsJz |jWn:tyD}z"d|›d�}t|ƒ|‚WYd}~n d}~00dS)zR Exercise one of the dynamic properties to trigger the pattern match. zProblems to parse zq. Please ensure entry-point follows the spec: https://packaging.python.org/en/latest/specifications/entry-points/N)ÚextrasÚAttributeErrorr)ÚepÚexÚmsg©rú9C:\Program Files\Certbot\pkgs\setuptools\_entry_points.pyÚ ensure_valid s   ÿrcCs*t|ƒ}d|›d�d |¡}tj |¡S)zf Given a value of an entry point or series of entry points, return each as an EntryPoint. ú[ú] Ú )rÚjoinrÚ EntryPointsÚ _from_text)ÚvalueÚgroupÚlinesÚtextrrrÚ load_groupsrcCs |j|jfS©N)rÚname)r rrrÚby_group_and_name'sr©ÚepscCstttt|td�ƒƒ|S)zM Ensure entry points are unique by group and name and validate each. ©Úkey)rÚmaprrrrrrrÚvalidate+sr$cCs(tj dd„| ¡Dƒ¡}tt |¡ƒS)zA Given a Distribution.entry_points, produce EntryPoints. css|]\}}t||ƒVqdSr)r)Ú.0rrrrrÚ 8szload..)Ú itertoolsÚchainÚ from_iterableÚitemsr$rr)r ÚgroupsrrrÚload3s ÿr,cCstt tj |¡¡ƒS)z’ >>> ep, = load('[console_scripts]\nfoo=bar') >>> ep.group 'console_scripts' >>> ep.name 'foo' >>> ep.value 'bar' )r$rrrrrrrÚ_>s r-cCs|Srr)ÚxrrrÚLór/cCs2t d¡}t t||d�|¡}d dd„|Dƒ¡S)Nrr!rcss(|] \}}d|›dt|ƒ›d�VqdS)rrrN)Ú render_items)r%rr*rrrr&Tr0zrender..)ÚoperatorÚ attrgetterr'ÚgroupbyÚsortedr)r Zby_groupr+rrrÚrenderOs r6cCsd dd„t|ƒDƒ¡S)Nrcss |]}|j›d|j›�VqdS)z = N)rr)r%r rrrr&Xr0zrender_items..)rr5rrrrr1Wsr1)Ú functoolsr2r'ÚerrorsrZextern.jaraco.textrZextern.jaraco.functoolsrZ _importlibrÚ _itertoolsrZextern.more_itertoolsrrrrrr$Úsingledispatchr,ÚregisterÚstrr-Útyper6r1rrrrÚs(