B u `! ã@sGdd„deƒZdS)c@sTeZdZdZddd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z ddd„Z dS)ÚFactoryzr A class that is used to define a factory for objects. Factory objects may be cached for future use. NcCs||_i|_i|_dS)N)Ú _descriptionÚ_clsÚ_doc)ÚselfÚ description©rú8/tmp/pip-unpacked-wheel-n62dbgi3/pyomo/common/factory.pyÚ__init__szFactory.__init__cKsnd|kr|d}|d=nd}t|ƒ}||jkr^|s6dS|jdkrLtd|ƒ‚td|j|fƒ‚|j|f|ŽS)NÚ exceptionFz!Unknown factory object type: '%s'zUnknown %s: '%s')ÚstrrrÚ ValueError)rÚnameÚkwdsr rrrÚ__call__s   zFactory.__call__ccsx|jD] }|VqWdS)N)r)rr rrrÚ__iter__.s zFactory.__iter__cCst|ƒ|jkS)N)r r)rr rrrÚ __contains__2szFactory.__contains__cCs |j|S)N)r)rr rrrÚ get_class5szFactory.get_classcCs |j|S)N)r)rr rrrÚdoc8sz Factory.doccCs&t|ƒ}||jkr"|j|=|j|=dS)N)r rr)rr rrrÚ unregister;s zFactory.unregistercs‡‡‡fdd„}|S)Ncs|ˆjˆ<ˆˆjˆ<|S)N)rr)Úcls)rr rrrÚfnBs  zFactory.register..fnr)rr rrr)rr rrÚregisterAszFactory.register)N)N) Ú__name__Ú __module__Ú __qualname__Ú__doc__r rrrrrrrrrrrrs rN)ÚobjectrrrrrÚ