
    (phs                         S SK r S rS rSrg)    Nc                  >     SSK Jn   SnU$ ! [         a    Sn U$ f = f)Nr   )_messageTF)google._upbr   ImportError)r   has_upbs     >/var/www/html/venv/lib/python3.13/site-packages/proto/utils.pyr   r      s1    ( N  Ns    c                 X   ^  [         R                  " T 5      U 4S j5       n[        U5      $ )zMake the callable into a cached property.

Similar to @property, but the function will only be called once per
object.

Args:
    fx (Callable[]): The property function.

Returns:
    Callable[]: The wrapped function.
c                    > [        U S5      (       d  [        R                  U S0 5        TR                  U R                  ;  a  T" U 5      U R                  TR                  '   U R                  TR                     $ )N_cached_values)hasattrobject__setattr____name__r   )selffxs    r   innercached_property.<locals>.inner)   si     t-..t%5r: ;;d111/1$xD, ""2;;//    )	functoolswrapsproperty)r   r   s   ` r   cached_propertyr      s,     __R0 0 E?r   )r   )r   r   r   __all__ r   r   <module>r      s    < r   