U o‰^;ã@s,ddlZGdd„deƒZGdd„deƒZdS)éNcs,eZdZdZ‡fdd„Z‡fdd„Z‡ZS)Ú Singletonz› Singleton metaclass Based on Python Cookbook 3rd Edition Recipe 9.13 Only one instance of a class can exist. Does not work with __slots__ cstt|ƒj||Žd|_dS©N)ÚsuperrÚ__init__Ú_Singleton__instance©ÚselfÚargsÚkw©Ú __class__©ús/private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/openpyxl/openpyxl/compat/singleton.pyr szSingleton.__init__cs$|jdkrtt|ƒj||Ž|_|jSr)rrrÚ__call__rr r rrs zSingleton.__call__©Ú__name__Ú __module__Ú __qualname__Ú__doc__rrÚ __classcell__r r r rrs rcs,eZdZdZ‡fdd„Z‡fdd„Z‡ZS)ÚCachedz™ Caching metaclass Child classes will only create new instances of themselves if one doesn't already exist. Does not work with __slots__ cs tt|ƒj||Žt ¡|_dSr)rrrÚweakrefÚWeakValueDictionaryÚ_Cached__cacherr r rrszCached.__init__cs2||jkr|j|Stt|ƒj|Ž}||j|<|Sr)rrrr)rr Úobjr r rr"s    zCached.__call__rr r r rrs r)rÚtyperrr r r rÚs