File: //usr/lib/python3/dist-packages/django/core/checks/__pycache__/urls.cpython-310.pyc
o
ʎ�_� � @ s� d dl mZ d dlmZ ddlmZmZmZmZ eej �dd� �Z
dd� Zeej �d d
� �Zddd
�Z
dd� Zeej �dd� �Zdd� ZdS )� )�Counter)�settings� )�Error�Tags�Warning�registerc K s* t tdd �rddlm} |� }t|�S g S )N�ROOT_URLCONFr ��get_resolver)�getattrr �django.urlsr �check_resolver)�app_configs�kwargsr �resolver� r �9/usr/lib/python3/dist-packages/django/core/checks/urls.py�check_url_config s
r c C s0 t | dd�}|dur
|� S t| d�st| �S g S )z)
Recursively check the resolver.
�checkN�resolve)r �hasattr�get_warning_for_invalid_pattern)r �check_methodr r r r s
r c K sn t tdd�sg S ddlm} |� }t|�}t|�}dd� |�� D �}g }|D ]}|�td� |�dd �� q&|S )
zD
Warn if URL namespaces used in applications aren't unique.
r Nr r
c S s g | ]
\}}|d kr|�qS )r r )�.0�n�countr r r �
<listcomp>* s z/check_url_namespaces_unique.<locals>.<listcomp>zZURL namespace '{}' isn't unique. You may not be able to reverse all URLs in this namespacez urls.W005��id)
r r r
r �_load_all_namespacesr �items�appendr �format) r r r r �all_namespaces�counter�non_unique_namespaces�errors� namespacer r r �check_url_namespaces_unique s
�r) r c s^ t | dg �}� fdd�|D �}|D ]}t |dd�}� }|dur$||f7 }|�t||�� q|S )z<
Recursively load all namespaces from URL patterns.
�url_patternsc s. g | ]}t |d d�durd�� |jf ��qS )r( N�:)r �joinr( )r �url��parentsr r r : s
�z(_load_all_namespaces.<locals>.<listcomp>r( N)r �extendr )r r/ r* �
namespaces�patternr( �currentr r. r r 5 s
�
r c C s@ t | t�rd�| �}n
t | t�rd}nd}td�| �|dd�gS )z�
Return a list containing a warning that the pattern is invalid.
describe_pattern() cannot be used here, because we cannot rely on the
urlpattern having regex or name attributes.
zkTry removing the string '{}'. The list of urlpatterns should not have a prefix string as the first element.z$Try using path() instead of a tuple.NziYour URL pattern {!r} is invalid. Ensure that urlpatterns is a list of path() and/or re_path() instances.z urls.E004)�hintr )�
isinstance�strr# �tupler )r2 r4 r r r r G s
�
�r c K s8 g }dD ]}t t|�}|r|�d�s|�t|�� q|S )N)�
STATIC_URL� MEDIA_URL�/)r r �endswithr"