U
    gda                     @   st   d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZ ddd	Zdd
dZeee
dZeee	dZdS )zFunctions for use in URLsconfs.    )partial)import_module)ImproperlyConfigured   )LocalePrefixPatternRegexPatternRoutePattern
URLPatternURLResolverNc                 C   s   d }t | trNz| \}}W qR tk
rJ   |r6tdtdt|  Y qRX n| }t |trdt|}t|d|}t|d|}|r|std|p|}t |ttfr|D ]"}t|dd }t |t	rtdq|||fS )NzMCannot override the namespace for a dynamic module that provides a namespace.zPassing a %d-tuple to include() is not supported. Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead.Zurlpatternsapp_namezSpecifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead.patternz:Using i18n_patterns in an included URLconf is not allowed.)

isinstancetuple
ValueErrorr   lenstrr   getattrlistr   )arg	namespacer   urlconf_modulepatternsZurl_patternr    r   4/tmp/pip-unpacked-wheel-_p7c4jiu/django/urls/conf.pyinclude   s@    


r   c                 C   s   ddl m} |d k	r2t|ts2td|jj dt|ttfrh|| dd}|\}}}	t	|||||	dS t
|r|| |dd	}t||||S t||r|jj}
td
|
 d|
 dntdd S )Nr   )Viewz(kwargs argument must be a dict, but got .F)is_endpoint)r   r   T)namer   zview must be a callable, pass z.as_view(), not z().zAview must be a callable or a list/tuple in the case of include().)Zdjango.viewsr   r   dict	TypeError	__class____name__r   r   r
   callabler	   )Zrouteviewkwargsr   Patternr   r   r   r   r   Zview_cls_namer   r   r   _path=   s4    

r'   )r&   )N)NNN)__doc__	functoolsr   	importlibr   Zdjango.core.exceptionsr   Z	resolversr   r   r   r	   r
   r   r'   pathZre_pathr   r   r   r   <module>   s   	
-
!