a '¡Dg”ã@sbddlZddlZddlmZddlmZddlmZdd„Zdd„Z ed ƒZ Gd d „d ej ƒZ dS) éN)ÚOptional)Ú NetworkState)Úgenerate_udev_rulecs ‡fdd„S)Ncs ˆ|dkS)NÚtype©©Úiface©Z match_typerú:/usr/lib/python3.9/site-packages/cloudinit/net/renderer.pyÚóz filter_by_type..rr rr r Úfilter_by_typesr cs ‡fdd„S)Ncsˆ|vo|ˆS©Nrr©Z match_namerr r r z filter_by_attr..rrrrr Úfilter_by_attrsrZphysicalc@sFeZdZd dd„Zeedœdd„ƒZejd ee e ddœdd „ƒZ dS) ÚRendererNcCsdSrr)ÚselfZconfigrrr Ú__init__szRenderer.__init__)Ú network_statecCsZt ¡}| t¡D]>}d|vr| d¡r| dd¡}| t|d|d|d�¡q| ¡S)z2Given state, emit udev rules to map mac to ifname.ÚnameZ mac_addressÚdriverN)r)ÚioÚStringIOZiter_interfacesÚfilter_by_physicalÚgetÚwriterÚgetvalue)rZcontentrrrrr Ú_render_persistent_nets ÿÿzRenderer._render_persistent_net)rÚ templatesÚreturncCsdS)zRender network state.Nr)rrrÚtargetrrr Úrender_network_state0szRenderer.render_network_state)N)NN) Ú__name__Ú __module__Ú __qualname__rÚ staticmethodrrÚabcÚabstractmethodrÚdictr!rrrr rs üûr) r&rÚtypingrZcloudinit.net.network_staterZcloudinit.net.udevrr rrÚABCrrrrr Ús