B
    ó±ô`_  ã               @   s.   d Z ddlmZmZmZ eZG dd„ dƒZdS )z@Cache for commonly shared data that is intended to be immutable.é    )Úabsolute_importÚdivisionÚprint_functionc               @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚCommonCachezCommon cache.c             C   s
   || _ dS )z+
        :param args: CommonConfig
        N)Úargs)Úselfr   © r   úK/home/dcms/DCMS/lib/python3.7/site-packages/ansible_test/_internal/cache.pyÚ__init__   s    zCommonCache.__init__c             C   s&   || j jkr|ƒ | j j|< | j j| S )zW
        :param key: str
        :param factory: () -> any
        :rtype: any
        )r   Úcache)r   ÚkeyÚfactoryr   r   r	   Úget   s    zCommonCache.getc             C   s*   || j jkr|| j ƒ| j j|< | j j| S )zc
        :param key: str
        :param factory: (CommonConfig) -> any
        :rtype: any
        )r   r   )r   r   r   r   r   r	   Úget_with_args   s    zCommonCache.get_with_argsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   r   r   r   r   r	   r      s   r   N)r   Ú
__future__r   r   r   ÚtypeÚ__metaclass__r   r   r   r   r	   Ú<module>   s   