3
›(ƒh­  ã               @   s4   d dl mZmZ G dd„ deƒZG dd„ deƒZdS )é    )ÚRegexURLResolverÚResolver404c               @   s   e Zd ZdZdS )ÚModuleMatchNamezgDump str wrapper.

    Just to keep module reference over django url resolve calling
    hierarhy.
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r	   r	   úF/tmp/pip-install-q3hcpn_q/django-material/material/frontend/urlconf.pyr      s   r   c                   s,   e Zd ZdZ‡ fdd„Z‡ fdd„Z‡  ZS )ÚModuleURLResolverav  Module URL Resolver.

    A wrapper around RegexURLResolver that check the module installed
    state. And allows access to the resolved current module at runtime.

    Django reads url config once at the start. Installation and
    deisntallation the module at runtime don't produce change in the
    django url-conf.

    Url access check happens at the resolve time.
    c                s"   |j dƒ| _tt| ƒj||Ž d S )NÚmodule)ÚpopÚ_moduleÚsuperr   Ú__init__)ÚselfÚargsÚkwargs)Ú	__class__r	   r
   r      s    zModuleURLResolver.__init__c                sL   t t| ƒj||Ž}|r2t| jddƒ r2tddiƒ‚t|jƒ|_| j|j_|S )NÚ	installedTÚmessagezModule not installed)	r   r   ÚresolveÚgetattrr   r   r   Zurl_namer   )r   r   r   Úresult)r   r	   r
   r      s    
zModuleURLResolver.resolve)r   r   r   r   r   r   Ú__classcell__r	   r	   )r   r
   r      s   r   N)Zdjango.core.urlresolversr   r   Ústrr   r   r	   r	   r	   r
   Ú<module>   s   