o
    ËÉhí  ã                   @   s6  U d dl Z d dlmZ d dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z# d dl$m%Z%m&Z& d dl'm(Z( d dl)m*Z*m+Z+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5 dgZ6edƒZ7e8e9e9f Z:G dd„ dee7 ƒZ;e;eƒe;e0ƒe;e3ƒe;e2ƒe;e5ƒe;eƒe;eƒe;eƒe;e(ƒe;e*ƒe;e+ƒe;e,ƒe;eƒe;eƒe;eƒe;eƒe;e!ƒe;e.ƒe;eƒe;eƒe;e%dƒe;e#dƒe;edƒe;e&ƒgZ<e=e;e  e>d< d%d!eee?  d"e@d#dfd$d„ZAdS )&é    N)ÚIterable)ÚAnyÚGenericÚOptionalÚTypeVar)ÚVERSION)Ú
ModelAdmin)ÚBaseModelAdmin)ÚSuccessMessageMixin)ÚSitemap)ÚFeed)ÚFileProxyMixin)Ú	Paginator)ÚExpressionWrapper)ÚField)Ú
ForeignKey)ÚReverseManyToOneDescriptor)ÚLookup)ÚBaseManager)ÚQuerySetÚRawQuerySet)ÚBaseFormSet)ÚBaseModelFormÚBaseModelFormSetÚModelChoiceField)ÚBaseConnectionHandler)ÚSingleObjectMixin)ÚDeletionMixinÚ	FormMixin)ÚMultipleObjectMixinÚmonkeypatchÚ_Tc                   @   s>   e Zd ZdZd
dee dee ddfdd„Zde	fdd	„Z
dS )Ú	MPGenerica`  Create a data class to hold metadata about the generic classes needing monkeypatching.

    The `version` param is optional, and a value of `None` means that the monkeypatch is
    version-independent.

    This is slightly overkill for our purposes, but useful for future-proofing against any
    possible issues we may run into with this method.
    NÚclsÚversionÚreturnc                 C   s   || _ || _dS )z'Set the data fields, basic constructor.N)r$   r#   )Úselfr#   r$   © r'   úV/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/django_stubs_ext/patch.pyÚ__init__+   s   
zMPGeneric.__init__c                 C   s   d  | j| jpd¡S )z)Better representation in tests and debug.z<MPGeneric: {}, versions={}>Úall)Úformatr#   r$   )r&   r'   r'   r(   Ú__repr__0   s   zMPGeneric.__repr__©N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Útyper!   r   Ú_VersionSpecr)   Ústrr,   r'   r'   r'   r(   r"   !   s     	r"   )é   é   )é   r6   Ú_need_genericTÚextra_classesÚinclude_builtinsr%   c                 C   sd   t dd„ tƒ}|D ]
}tdd„ ƒ|j_q	| r"| D ]	}tdd„ ƒ|_q|r0dd„ t_dd„ t_dS dS )z<Monkey patch django as necessary to work properly with mypy.c                 S   s   | j d u ptd d… | j kS )Né   )r$   r   )Úspecr'   r'   r(   Ú<lambda>[   s    zmonkeypatch.<locals>.<lambda>c                 _   ó   | S r-   r'   ©r#   ÚargsÚkwargsr'   r'   r(   r=   _   ó    c                 _   r>   r-   r'   r?   r'   r'   r(   r=   b   rB   c                 S   ó   d S r-   r'   )Ú_r'   r'   r(   r=   f   rB   c                   S   rC   r-   r'   r'   r'   r'   r(   r=   g   rB   N)Úfilterr8   Úclassmethodr#   Ú__class_getitem__ÚbuiltinsÚreveal_typeÚreveal_locals)r9   r:   Úsuited_for_this_versionÚelr#   r'   r'   r(   r    V   s   þ
þ)NT)BrH   Úcollections.abcr   Útypingr   r   r   r   Údjangor   Údjango.contrib.adminr   Údjango.contrib.admin.optionsr	   Údjango.contrib.messages.viewsr
   Údjango.contrib.sitemapsr   Ú django.contrib.syndication.viewsr   Údjango.core.files.utilsr   Údjango.core.paginatorr   Údjango.db.models.expressionsr   Údjango.db.models.fieldsr   Údjango.db.models.fields.relatedr   Ú+django.db.models.fields.related_descriptorsr   Údjango.db.models.lookupsr   Údjango.db.models.managerr   Údjango.db.models.queryr   r   Údjango.forms.formsetsr   Údjango.forms.modelsr   r   r   Údjango.utils.connectionr   Údjango.views.generic.detailr   Údjango.views.generic.editr   r   Údjango.views.generic.listr   Ú__all__r!   ÚtupleÚintr3   r"   r8   ÚlistÚ__annotations__r2   Úboolr    r'   r'   r'   r(   Ú<module>   sl   
 æ$