§
    ¤”jç  ã                   ól   — d dl mZ d dlmZmZ d dlmZ d dlmZ ddl	m
Z
mZ dgZ G d„ de¦  «        Zd	S )
é    )Úchecks)ÚconnectionsÚrouter)ÚQuery)Úcached_propertyé   )ÚNOT_PROVIDEDÚFieldÚGeneratedFieldc                   ó˜   ‡ — e Zd ZdZdZdZdZddœˆ fd„
Zed„ ¦   «         Z	dˆ fd„	Z
ˆ fd„Zd„ Zˆ fd	„Zd
„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )r   TN)Ú
db_persistc                óâ  •— |                      dd¦  «        rt          d¦  «        ‚|                      dd¦  «        st          d¦  «        ‚|                     dt          ¦  «        t          urt          d¦  «        ‚|                     d	t          ¦  «        t          urt          d
¦  «        ‚|dvrt          d¦  «        ‚|| _        || _        || _         t          ¦   «         j        di |¤Ž d S )NÚeditableFz"GeneratedField cannot be editable.ÚblankTzGeneratedField must be blank.Údefaultz%GeneratedField cannot have a default.Ú
db_defaultz.GeneratedField cannot have a database default.)TFz0GeneratedField.db_persist must be True or False.© )	Ú
setdefaultÚ
ValueErrorÚgetr	   Ú
expressionÚoutput_fieldr   ÚsuperÚ__init__)Úselfr   r   r   ÚkwargsÚ	__class__s        €úp/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/django/db/models/fields/generated.pyr   zGeneratedField.__init__   sõ   ø€ Ø×Ò˜Z¨Ñ/Ô/ð 	CÝÐAÑBÔBÐBØ× Ò  ¨$Ñ/Ô/ð 	>ÝÐ<Ñ=Ô=Ð=Ø�:Š:�i¥Ñ.Ô.µlÐBÐBÝÐDÑEÔEÐEØ�:Š:�l¥LÑ1Ô1½ÐEÐEÝÐMÑNÔNÐNØ˜]Ð*Ð*ÝÐOÑPÔPÐPà$ˆŒØ(ˆÔØ$ˆŒØ�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"ó    c                 óP   — ddl m}  || j        j        j        | | j        ¦  «        S )Nr   )ÚCol)Údjango.db.models.expressionsr!   ÚmodelÚ_metaÚdb_tabler   )r   r!   s     r   Ú
cached_colzGeneratedField.cached_col#   s3   € à4Ð4Ð4Ð4Ð4Ð4àˆs�4”:Ô#Ô,¨d°DÔ4EÑFÔFÐFr   c                 óŒ   •— || j         j        j        k    r|d | fv r| j        }t	          ¦   «                              ||¦  «        S ©N)r#   r$   r%   r   r   Úget_col)r   Úaliasr   r   s      €r   r)   zGeneratedField.get_col)   sD   ø€ Ø�D”JÔ$Ô-Ò-Ð-°,À4ÈÀ,Ð2NÐ2NØÔ,ˆLÝ‰wŒw�Š˜u lÑ3Ô3Ð3r   c                 ó   •—  t          ¦   «         j        |i |¤Ž t          | j        d¬¦  «        | _        | j                             ¦   «                              ¦   «         D ]\  }}|                      ||¬¦  «         Œd S )NF)r#   Ú
alias_cols)Úlookup_name)	r   Úcontribute_to_classr   r#   Ú_queryr   Úget_class_lookupsÚitemsÚregister_lookup)r   Úargsr   r-   Úlookupr   s        €r   r.   z"GeneratedField.contribute_to_class.   sŽ   ø€ Ø#�‰ŒÔ# TÐ4¨VÐ4Ð4Ð4å $¤*¸Ð?Ñ?Ô?ˆŒà#'Ô#4×#FÒ#FÑ#HÔ#H×#NÒ#NÑ#PÔ#Pð 	Bð 	BÑˆK˜Ø× Ò  °[Ð ÑAÔAÐAÐAð	Bð 	Br   c                 ó"  —  |j                              d¦  «        | j        |d ¬¦  «        }| j                             | j        d¬¦  «        }|                     |¦  «        \  }}t          | j        dd¦  «        r|j        j        sd|› d�}||fS )NÚSQLCompiler)Ú
connectionÚusingF)Úallow_joinsÚconditionalz
CASE WHEN z THEN 1 ELSE 0 END)	ÚopsÚcompilerr/   r   Úresolve_expressionÚcompileÚgetattrÚfeaturesÚ&supports_boolean_expr_in_select_clause)r   r7   r<   Úresolved_expressionÚsqlÚparamss         r   Úgenerated_sqlzGeneratedField.generated_sql6   s²   € Ø9�:”>×*Ò*¨=Ñ9Ô9ØŒK J°dð
ñ 
ô 
ˆð #œo×@Ò@ØŒK Uð Añ 
ô 
Ðð ×&Ò&Ð':Ñ;Ô;‰ˆˆVå�D”O ]°EÑ:Ô:ð	7àÔ'ÔNð	7ð 7˜sÐ6Ð6Ð6ˆCØ�Fˆ{Ðr   c                 ó~  •— |                      d¦  «        pg }g  t          ¦   «         j        di |¤Ž¢|                      |¦  «        ¢|                      |¦  «        ¢}| j                             ¦   «         }| j        |_        |                     |¬¦  «        }|r¢d}|                     d„ |D ¦   «         ¦  «        }|r/| 	                    t          j        d|› |› �| d¬¦  «        ¦  «         |                     d„ |D ¦   «         ¦  «        }|r/| 	                    t          j        d	|› |› �| d
¬¦  «        ¦  «         |S )NÚ	databases)rG   z
    c              3   ón   K  — | ]0}t          |t          j        ¦  «        ¯|j        › d |j        › d�V — Œ1dS ©z (ú)N)Ú
isinstancer   ÚErrorÚmsgÚid©Ú.0Úoutput_checks     r   ú	<genexpr>z'GeneratedField.check.<locals>.<genexpr>Q   s^   è è € ð ,ð ,à Ý˜l­F¬LÑ9Ô9ð,ØÔ#Ð9Ð9 |¤Ð9Ð9Ð9ð,ð ,ð ,ð ,ð ,ð ,r   z'GeneratedField.output_field has errors:zfields.E223©ÚobjrN   c              3   ón   K  — | ]0}t          |t          j        ¦  «        ¯|j        › d |j        › d�V — Œ1dS rI   )rK   r   ÚWarningrM   rN   rO   s     r   rR   z'GeneratedField.check.<locals>.<genexpr>_   s^   è è € ð .ð .à Ý˜l­F¬NÑ;Ô;ð.ØÔ#Ð9Ð9 |¤Ð9Ð9Ð9ð.ð .ð .ð .ð .ð .r   z)GeneratedField.output_field has warnings:zfields.W224r   )r   r   ÚcheckÚ_check_supportedÚ_check_persistencer   Úcloner#   ÚjoinÚappendr   rL   rV   )
r   r   rG   ÚerrorsÚoutput_field_cloneÚoutput_field_checksÚ	separatorÚerror_messagesÚwarning_messagesr   s
            €r   rW   zGeneratedField.checkE   sÂ  ø€ Ø—J’J˜{Ñ+Ô+Ð1¨rˆ	ð
Ø�U‰WŒWŒ]Ð$Ð$˜VÐ$Ð$ð
à×"Ò" 9Ñ-Ô-ð
ð ×$Ò$ YÑ/Ô/ð
ˆð
 "Ô.×4Ò4Ñ6Ô6ÐØ#'¤:ÐÔ Ø0×6Ò6ÀÐ6ÑKÔKÐØð 	Ø ˆIØ&Ÿ^š^ð ,ð ,à$7ð,ñ ,ô ,ñ ô ˆNð
 ð Ø—’Ý”Lð7Ø$ð7Ø&4ð7ð 7à Ø(ð	ñ ô ñô ð ð  )Ÿ~š~ð .ð .à$7ð.ñ .ô .ñ  ô  Ðð
  ð Ø—’Ý”Nð9Ø$ð9Ø&6ð9ð 9à Ø(ð	ñ ô ñô ð ð ˆr   c                 óœ  — g }|D ]Æ}t          j        || j        ¦  «        sŒt          |         }| j        j        j        r| j        j        j        |j        k    rŒV|j        j        sdd| j        j        j	        v sQ|j        j
        sEd| j        j        j	        v s2|                     t          j        |j        › d�| d¬¦  «        ¦  «         ŒÇ|S )NÚ!supports_stored_generated_columnsÚ"supports_virtual_generated_columnsz" does not support GeneratedFields.zfields.E220rS   )r   Úallow_migrate_modelr#   r   r$   Úrequired_db_vendorÚvendorr@   re   Úrequired_db_featuresrd   r\   r   rL   Údisplay_name©r   rG   r]   Údbr7   s        r   rX   zGeneratedField._check_supportedo   sû   € ØˆØð 	ð 	ˆBÝÔ-¨b°$´*Ñ=Ô=ð ØÝ$ RœˆJà”
Ô Ô3ðà”JÔ$Ô7¸:Ô;LÒLÐLààÔ#ÔFðà6Ø”:Ô#Ô8ð9ð 9ð Ô#ÔEð9ð 8Ø”:Ô#Ô8ð9ð 9ð —’Ý”LØ%Ô2ÐVÐVÐVØ Ø(ðñ ô ñô ð øð ˆr   c           	      ó$  — g }|D �]	}t          j        || j        ¦  «        sŒt          |         }| j        j        j        r| j        j        j        |j        k    rŒW| j        sR|j        j	        sFd| j        j        j
        v s3|                     t          j        |j        › d�| dd¬¦  «        ¦  «         | j        rR|j        j        sFd| j        j        j
        v s3|                     t          j        |j        › d�| dd	¬¦  «        ¦  «         �Œ|S )
Nre   z0 does not support non-persisted GeneratedFields.zfields.E221z!Set db_persist=True on the field.)rT   rN   Úhintrd   z, does not support persisted GeneratedFields.zfields.E222z"Set db_persist=False on the field.)r   rf   r#   r   r$   rg   rh   r   r@   re   ri   r\   r   rL   rj   rd   rk   s        r   rY   z!GeneratedField._check_persistenceŒ   s`  € ØˆØð $	ñ $	ˆBÝÔ-¨b°$´*Ñ=Ô=ð ØÝ$ RœˆJà”
Ô Ô3ðà”JÔ$Ô7¸:Ô;LÒLÐLàØ”?ð ØÔ#ÔFðà7Ø”:Ô#Ô8ð9ð 9ð —’Ý”LØ%Ô2ð +ð +ð +à Ø(Ø@ðñ ô ñô ð ð Œð ØÔ#ÔEðà6Ø”:Ô#Ô8ð9ð 9ð —’Ý”LØ%Ô2ð +ð +ð +à Ø(ØAðñ ô ñô ð ùð ˆr   c                 ó¢   •— t          ¦   «                              ¦   «         \  }}}}|d= |d= | j        |d<   | j        |d<   | j        |d<   ||||fS )Nr   r   r   r   r   )r   Údeconstructr   r   r   )r   ÚnameÚpathr3   r   r   s        €r   rp   zGeneratedField.deconstructµ   sd   ø€ Ý#(¡7¤7×#6Ò#6Ñ#8Ô#8Ñ ˆˆd�D˜&Ø�7ˆOØ�:ÐØ#œˆˆ|ÑØ#œˆˆ|ÑØ!%Ô!2ˆˆ~ÑØ�T˜4 Ð'Ð'r   c                 ó4   — | j                              ¦   «         S r(   )r   Úget_internal_type)r   s    r   rt   z GeneratedField.get_internal_type¾   s   € ØÔ ×2Ò2Ñ4Ô4Ð4r   c                 ó6   — | j                              |¦  «        S r(   )r   Údb_parameters©r   r7   s     r   rv   zGeneratedField.db_parametersÁ   s   € ØÔ ×.Ò.¨zÑ:Ô:Ð:r   c                 ó6   — | j                              |¦  «        S r(   )r   Údb_type_parametersrw   s     r   ry   z!GeneratedField.db_type_parametersÄ   s   € ØÔ ×3Ò3°JÑ?Ô?Ð?r   r(   )Ú__name__Ú
__module__Ú__qualname__Ú	generatedÚdb_returningr/   r   r   r   r&   r)   r.   rE   rW   rX   rY   rp   rt   rv   ry   Ú__classcell__)r   s   @r   r   r      sH  ø€ € € € € Ø€IØ€Là€FØ€Là?Cð #ð #ð #ð #ð #ð #ð #ð" ðGð Gñ „_ðGð
4ð 4ð 4ð 4ð 4ð 4ð
Bð Bð Bð Bð Bðð ð ð(ð (ð (ð (ð (ðTð ð ð:'ð 'ð 'ðR(ð (ð (ð (ð (ð5ð 5ð 5ð;ð ;ð ;ð@ð @ð @ð @ð @ð @ð @r   N)Údjango.corer   Ú	django.dbr   r   Údjango.db.models.sqlr   Údjango.utils.functionalr   Ú r	   r
   Ú__all__r   r   r   r   ú<module>r†      s»   ðØ Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø &Ð &Ð &Ð &Ð &Ð &Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !àÐ
€ðz@ð z@ð z@ð z@ð z@�Uñ z@ô z@ð z@ð z@ð z@r   