
    Dj]                        d Z ddlmZ ddlZddlmZmZ ddlmZm	Z	 ed         Z
	 dddddZ G d de          Zg dZdS )z6Configuration and base models for CloudKit validation.    )annotationsN)Literalcast)	BaseModel
ConfigDict)allowignoreforbidr   )defaultexplicitCloudKitExtraMode | Noner   CloudKitExtraModereturnc                   | | S t          j        d          p|                                                                }|dv rt	          t
          |          S |dv rdS |dv rdS |S )aX  
    Resolve the validation mode for CloudKit wire models.

    ``PYICLOUD_CK_EXTRA`` accepts ``allow``, ``ignore``, or ``forbid``.
    Convenience booleans remain supported for local debugging:
      - ``true/1/on/strict`` -> ``forbid``
      - ``false/0/off/lenient`` -> ``allow``

    ``explicit`` takes precedence over the environment.
    NPYICLOUD_CK_EXTRA>   r   r
   r	   >   1onyestruestrictr
   >   0noofffalselenientr   )osgetenvstriplowerr   r   )r   r   raws      X/home/thesage/.hermes/venv/lib/python3.11/site-packages/pyicloud/common/cloudkit/base.py!resolve_cloudkit_validation_extrar"      s     9())4W
;
;
=
=
C
C
E
EC
+++%s+++
222x
444wN    c                  ,    e Zd ZdZ edd          ZdS )CKModela  
    Shared base model for CloudKit wire payloads.

    Wire models stay permissive by default so unexpected Apple fields are
    preserved. Strict reverse-engineering mode is applied at validation call
    sites via ``model_validate(..., extra="forbid")``.
    r   T)extraarbitrary_types_allowedN)__name__
__module____qualname____doc__r   model_config r#   r!   r%   r%   ,   s6          : $  LLLr#   r%   )r%   r   r"   )N)r   r   r   r   r   r   )r+   
__future__r   r   typingr   r   pydanticr   r   r   r"   r%   __all__r-   r#   r!   <module>r2      s    < < " " " " " " 				                 * * * * * * * *78  *. ")     >    i    P
O
Or#   