o |¿nhåã@s8dZddlmZmZGdd„deƒZGdd„deƒZdS)zCement core meta functionality.é)ÚAnyÚDictc@s<eZdZdZdeddfdd„Zdeeefddfdd „ZdS) ÚMetazz Container class for meta attributes of a larger class. Keyword arguments are set as attributes of ``self``. ÚkwargsÚreturnNcKs| |¡dS©N)Ú_merge)Úselfr©r úH/usr/local/bin/dhwp/env/lib/python3.10/site-packages/cement/core/meta.pyÚ__init__sz Meta.__init__Údict_objcCs"| ¡D] }t||||ƒqdSr)ÚkeysÚsetattr)r r Úkeyr r r rs ÿz Meta._merge) Ú__name__Ú __module__Ú __qualname__Ú__doc__rr rÚstrrr r r r rsrcs.eZdZdZdededdf‡fdd„ Z‡ZS)Ú MetaMixinz‡ Mixin that provides the meta class support to add settings to instances of objects. Meta keys cannot start with a ``_``. ÚargsrrNcsŠtdd„|j ¡Dƒƒ}i}|D]}| tdd„|j ¡Dƒƒ¡q| ¡D] }||vr3| |¡||<q&t di|¤Ž|_ t t |ƒ  ¡dS)NcSsg|] }t|dƒr|j‘qS)r)Úhasattrr©Ú.0Úxr r r Ú !s ÿz&MetaMixin.__init__..cSsg|] }|d d¡s|‘qS)rÚ_)Ú startswithrr r r r's  ÿr )ÚreversedÚ __class__ÚmroÚupdateÚdictÚ__dict__ÚitemsrÚpoprÚ_metaÚsuperrr )r rrÚmetasÚ final_metaÚmetar©r r r r s  €zMetaMixin.__init__)rrrrrr Ú __classcell__r r r,r rs"rN)rÚtypingrrÚobjectrrr r r r Ús