ó
    ýËâfS7  ã                   óT  • S SK Jr  S SKJrJrJrJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  \R6                  r\R8                  r\R:                  r\R<                  r\R>                  r\R@                  r \RB                  r!\RD                  r" " S S\#5      r$S r%g)é   )Ú_gi)Ú	TYPE_NONEÚTYPE_INTERFACEÚ	TYPE_CHARÚ
TYPE_UCHARÚTYPE_BOOLEANÚTYPE_INTÚ	TYPE_UINTÚ	TYPE_LONGÚ
TYPE_ULONGÚ
TYPE_INT64ÚTYPE_UINT64Ú	TYPE_ENUMÚ
TYPE_FLAGSÚ
TYPE_FLOATÚTYPE_DOUBLEÚTYPE_STRINGÚTYPE_POINTERÚ
TYPE_BOXEDÚ
TYPE_PARAMÚTYPE_OBJECTÚTYPE_PYOBJECTÚ
TYPE_GTYPEÚ	TYPE_STRVÚTYPE_VARIANTc                   óJ  • \ rS rSrSr\\\\\	\
\\\\0r\S\S\S\\* \
\* \\\\\S0r\\\\\S\S\\\
\\\\\0r\S\S\S\S\S\S\S\S\
S0	r  " S	 S
\!5      r"SSSSSS\#RH                  SS4	S jr%S r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S r0S r1S r2S r3S r4S r5Sr6g)ÚPropertyé'   a  Creates a new Property which when used in conjunction with
GObject subclass will create a Python property accessor for the
GObject ParamSpec.

:param callable getter:
    getter to get the value of the property
:param callable setter:
    setter to set the value of the property
:param type type:
    type of property
:param default:
    default value, must match the property type.
:param str nick:
    short description
:param str blurb:
    long description
:param GObject.ParamFlags flags:
    parameter flags
:keyword minimum:
    minimum allowed value (int, float, long only)
:keyword maximum:
    maximum allowed value (int, float, long only)

.. code-block:: python

     class MyObject(GObject.Object):
         prop = GObject.Property(type=str)

     obj = MyObject()
     obj.prop = 'value'

     obj.prop  # now is 'value'

The API is similar to the builtin :py:func:`property`:

.. code-block:: python

    class AnotherObject(GObject.Object):
        value = 0

        @GObject.Property
        def prop(self):
            'Read only property.'
            return 1

        @GObject.Property(type=int)
        def propInt(self):
            'Read-write integer property.'
            return self.value

        @propInt.setter
        def propInt(self, value):
            self.value = value
é    lûÿÿÿ         l   ÿÿÿÿ l   ÿÿÿÿ Ú g        c                   ó   • \ rS rSrS rSrg)ÚProperty.__metaclass__é‰   c                 ó   • g)Nz<class 'GObject.Property'>© ©Úselfs    Ú4/usr/lib/python3/dist-packages/gi/_propertyhelper.pyÚ__repr__ÚProperty.__metaclass__.__repr__Š   s   € Ø/ó    r%   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r)   Ú__static_attributes__r%   r+   r(   Ú__metaclass__r"   ‰   s   † õ	0r+   r1   Nc
                 ó”  • S U l         Uc  [        nU R                  U5      U l        U R	                  U5      U l        U R                  5         [        U[        5      (       d  [        S5      eXPl
        [        U[        5      (       d  [        S5      eX`l        X`l        Xpl        U(       a  U(       d  U R                  nOAU(       a  U(       d  U R                  nO&U(       d  U(       d  U R                   nU R"                  nU R%                  U5        X l        Ub<  X€R)                  5       :  a(  [        SU R                  U R)                  5       4-  5      eOU R)                  5       nX€l        U	b<  X�R-                  5       :”  a(  [        SU R                  U R-                  5       4-  5      eOU R-                  5       n	X�l        S U l        g )Nznick must be a stringzblurb must be a stringz+Minimum for type %s cannot be lower than %dz,Maximum for type %s cannot be higher than %d)ÚnameÚobjectÚ_type_from_pythonÚtypeÚ_get_defaultÚdefaultÚ_check_defaultÚ
isinstanceÚstrÚ	TypeErrorÚnickÚblurbÚ__doc__ÚflagsÚ_readonly_setterÚ_writeonly_getterÚ_default_getterÚ_default_setterÚgetterÚfsetÚ_get_minimumÚminimumÚ_get_maximumÚmaximumÚ_exc)
r'   rE   Úsetterr6   r8   r=   r>   r@   rH   rJ   s
             r(   Ú__init__ÚProperty.__init__�   s–  € ð ˆŒ	à‰<ÜˆDØ×*Ñ*¨4Ó0ˆŒ	Ø×(Ñ(¨Ó1ˆŒØ×ÑÔä˜$¤×$Ñ$ÜÐ3Ó4Ð4ØŒ	ä˜%¤×%Ñ%ÜÐ4Ó5Ð5ØŒ
ð ŒØŒ
ö ž&Ø×*Ñ*‰FÞžFØ×+Ñ+‰FÞ¦Ø×)Ñ)ˆFØ×)Ñ)ˆFØ�‰�FÔð Œ	àÑØ×*Ñ*Ó,Ó,ÜØAØ—Y‘Y × 1Ñ 1Ó 3Ð4ñ5ó6ð 6ð -ð
 ×'Ñ'Ó)ˆGØŒØÑØ×*Ñ*Ó,Ó,ÜØBØ—Y‘Y × 1Ñ 1Ó 3Ð4ñ5ó6ð 6ð -ð
 ×'Ñ'Ó)ˆGØŒàˆ�	r+   c                 óf   • SU R                   =(       d    S< SU R                  R                   < S3$ )Nz<GObject Property z(uninitialized)z (z)>)r3   r6   r&   s    r(   r)   ÚProperty.__repr__Å   s'   � à�I‰I×*Ð*Ò*Ø�I‰I�NŒNðð 	r+   c                 óŒ   • Uc  U $ S U l         U R                  U5      nU R                   (       a  U R                   nS U l         UeU$ ©N)rK   Úfget)r'   ÚinstanceÚklassÚvalueÚexcs        r(   Ú__get__ÚProperty.__get__Ê   sC   € ØÑØˆKàˆŒ	Ø—	‘	˜(Ó#ˆØ�9�9Ø—)‘)ˆCØˆDŒIØˆIàˆr+   c                 ó¨   • Uc  [         eS U l        UR                  U R                  U5        U R                  (       a  U R                  nS U l        Ueg rR   )r<   rK   Úset_propertyr3   )r'   rT   rV   rW   s       r(   Ú__set__ÚProperty.__set__×   sI   € ØÑÜˆOàˆŒ	Ø×Ñ˜dŸi™i¨Ô/Ø�9�9Ø—)‘)ˆCØˆDŒIØˆIð r+   c                 ó$   • U R                  U5      $ )z;Allows application of the getter along with init arguments.)rE   ©r'   rS   s     r(   Ú__call__ÚProperty.__call__â   s   € à�{‰{˜4Ó Ð r+   c                 óx   • UR                   (       a"  UR                   U l        UR                   U l         Xl        U $ )z8Set the getter function to fget. For use as a decorator.)r?   r>   rS   r_   s     r(   rE   ÚProperty.getteræ   s)   € à�<�<àŸ™ˆDŒJØŸ<™<ˆDŒLØŒ	Øˆr+   c                 ój   • Xl         U R                  (       d  U R                  R                  U l        U $ )z8Set the setter function to fset. For use as a decorator.)rF   r3   rS   r,   )r'   rF   s     r(   rL   ÚProperty.setterï   s&   € àŒ	ð �y�yØŸ	™	×*Ñ*ˆDŒIØˆr+   c                 óB  • XR                   ;   a  U R                   U   $ [        U[        5      (       ah  [        U[        R
                  [        R                  [        R                  [        R                  [        R                  45      (       a  UR                  $ U[        [        [        [        [        [         ["        [$        [&        [(        [*        [,        [.        [0        [2        [4        [6        [8        [:        [<        [>        [@        4;   a  U$ [C        SU< 35      e)NzUnsupported type: )"Ú_type_from_pytype_lookupr:   r6   Ú
issubclassr   ÚGObjectÚGEnumÚGFlagsÚGBoxedÚ
GInterfaceÚ	__gtype__r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   )r'   Útype_s     r(   r5   ÚProperty._type_from_pythonù   sÃ   € Ø×1Ñ1Ó1Ø×0Ñ0°Ñ7Ð7Ü˜¤×%Ñ%Ü˜¤§¡Ü!$§¡Ü!$§¡Ü!$§¡Ü!$§¡ð	!1÷ 2ñ 2ð
 —?‘?Ð"Ø”y¤.´)¼ZÜ¤¬L¼)Ü!¤:¬{Ü!¤;´Ü!¤:¬{¼KÜ$¤j´)¼\ðKó Kð ˆLå²eÐ=Ó>Ð>r+   c                 óX   • Ub  U$ U R                   R                  U R                  S 5      $ rR   )Ú_default_lookupÚgetr6   )r'   r8   s     r(   r7   ÚProperty._get_default  s*   € ØÑØˆNØ×#Ñ#×'Ñ'¨¯	©	°4Ó8Ð8r+   c                 ó:  • U R                   nU R                  nU[        :X  a  US;  a  [        SU< 35      eU[        :X  a  Ub  [        S5      eg U[
        :X  a  Ub  [        S5      eg UR                  [        5      (       aL  Uc  [        S5      e[        R                  " U5      R                  U5      (       d  [        SU< SU< 35      eg UR                  [        5      (       a>  [        R                  " U5      R                  U5      (       d  [        SU< SU< 35      eg UR                  [        5      (       ai  Ubf  [        U[        5      (       d  [        S	[        U5      -  5      eU H3  n[        U5      [        [         4;  d  M  [        S
[        U5      -  5      e   g UR                  ["        5      (       aW  UbS  [%        US5      (       a.  [        R                  " U5      R                  ["        5      (       d  [        SU< SU< 35      eg g g )N)TFz#default must be True or False, not z)object types does not have default valuesz(GType types does not have default valuesz%enum properties needs a default valuezenum value z must be an instance of zflags value zStrv value %s must be a listz'Strv value %s must contain only stringsrn   zvariant value )r6   r8   r   r<   r   r   Úis_ar   r   ÚGTyper   r   r:   ÚlistÚreprr;   Úbytesr   Úhasattr)r'   Úptyper8   Úvals       r(   r9   ÚProperty._check_default  sß  € Ø—	‘	ˆØ—,‘,ˆØ”\Ó! w°mÓ'CÝÚ;BÐDóFð Fà”mÓ#ØÑ"ÜÐ KÓLÐLð #à”jÓ ØÑ"ÜÐ JÓKÐKð #à�Z‰Zœ	×"Ñ"Ø‰ÜÐ GÓHÐHÜ—Y’Y˜wÓ'×,Ñ,¨U×3Ñ3ÝÛ!(ª%ð!1ó 2ð 2ð 4ð �Z‰Zœ
×#Ñ#Ü—9’9˜WÓ%×*Ñ*¨5×1Ñ1ÝÛ!(ª%ð!1ó 2ð 2ð 2ð �Z‰Zœ	×"Ñ" wÑ':Ü˜g¤t×,Ñ,ÜÐ >ÄÀgÃÑ NÓOÐOÛ�Ü˜“9¤S¬% LÕ0Ü#Ð$MÔPSÐT[ÓP\Ñ$\Ó]Ð]ò ð �Z‰Zœ×%Ñ%¨'Ñ*=Ü˜7 K×0Ñ0¼¿	º	À'Ó8J×8OÑ8OÔP\×8]Ñ8]ÝÛ!(ª%ð!1ó 2ð 2ð 9^ð +>Ð%r+   c                 óN   • U R                   R                  U R                  S 5      $ rR   )Ú_min_value_lookuprs   r6   r&   s    r(   rG   ÚProperty._get_minimum3  ó   € Ø×%Ñ%×)Ñ)¨$¯)©)°TÓ:Ð:r+   c                 óN   • U R                   R                  U R                  S 5      $ rR   )Ú_max_value_lookuprs   r6   r&   s    r(   rI   ÚProperty._get_maximum6  r‚   r+   c                 ó8   • [        USU R                  -   U5        g ©NÚ_property_helper_)Úsetattrr3   ©r'   rT   rV   s      r(   rD   ÚProperty._default_setter=  s   € Ü�Ð-°·	±	Ñ9¸5ÕAr+   c                 óJ   • [        USU R                  -   U R                  5      $ r‡   )Úgetattrr3   r8   ©r'   rT   s     r(   rC   ÚProperty._default_getter@  s   € Ü�xÐ!4°t·y±yÑ!@À$Ç,Á,ÓOÐOr+   c                 ón   • [        U R                  < S[        U5      R                  < S35      U l        g )Nú property of z is read-only©r<   r3   r6   r,   rK   rŠ   s      r(   rA   ÚProperty._readonly_setterC  ó&   € ÜØ�IŒI”t˜H“~×.Ô.ð0ó 1ˆ�	r+   c                 ón   • [        U R                  < S[        U5      R                  < S35      U l        g )Nr‘   z is write-onlyr’   rŽ   s     r(   rB   ÚProperty._writeonly_getterG  r”   r+   c           	      ó°  • U R                   nU[        [        [        [        [
        [        [        [        4;   a$  U R                  U R                  U R                  4nOÅU[        :X  dX  U[        :X  dN  UR                  [        5      (       d4  UR                  [         5      (       d  UR                  ["        5      (       a  U R                  4nOUU[$        [&        4;   a  SnOBUR                  [(        5      (       d  UR                  [*        5      (       a  SnO[-        U5      eU R                   U R.                  U R0                  4U-   U R2                  4-   $ )Nr%   )r6   r	   r
   r   r   r   r   r   r   rH   rJ   r8   r   r   rv   r   r   r   r   r   r   r   ÚNotImplementedErrorr=   r>   r@   )r'   r|   Úargss      r(   Úget_pspec_argsÚProperty.get_pspec_argsO  sñ   € Ø—	‘	ˆØ”Xœy¬)´ZÜ¤¬j¼+ðGó Gà—<‘< §¡¨t¯|©|Ð;‰DØ”{Ó" e¬|Ó&;Ø�j‰jœ×#Ñ# u§z¡z´*×'=Ñ'=Ø�j‰jœ×&Ñ&Ø—L‘L�?‰DØ”}¤jÐ1Ó1Ø‰DØ�Z‰Zœ×$Ñ$¨¯
©
´:×(>Ñ(>Ø‰Dä% eÓ,Ð,à—	‘	˜4Ÿ9™9 d§j¡jÐ1°DÑ8¸D¿J¹J¸=ÑHÐHr+   )r?   rK   r>   r8   rS   r@   rF   rJ   rH   r3   r=   r6   )7r,   r-   r.   r/   r?   Úintr	   Úboolr   Úfloatr   r;   r   r4   r   rg   r
   r   r   r   Ú
G_MAXFLOATÚG_MAXDOUBLEÚG_MININTr   Ú	G_MINLONGr   r€   Ú	G_MAXUINTÚ
G_MAXULONGÚG_MAXINTÚ	G_MAXLONGr„   rr   r6   r1   r   ÚPARAM_READWRITErM   r)   rX   r\   r`   rE   rL   r5   r7   r9   rG   rI   rD   rC   rA   rB   rš   r0   r%   r+   r(   r   r   '   sL  † ñ5ðn 	ˆXØˆlØˆ{Øˆ[Ø�ð Ðð 	�1Ø�AØ�Qà�Z�KØ�k�\Ø�(Ø�9Ø�Hð
Ðð 	�9Ø�JØ�KØ�[Ø�JØ�[Ø�(Ø�9ð	Ðð 	�!Ø�1Ø�1Ø�AØ�AØ�QØ�RØ�CØ�Sð
€Oô0˜ô 0ð #¨4°dÀDØ ¨#×*=Ñ*=Ø tô6òpò
ò	ò!òòò?ò(9ò
2òB;ò;òBòPò1ò1õIr+   r   c                 ó  ^ • T R                   R                  S0 5      n/ nT R                   R                  5        Hª  u  p4[        U[        5      (       d  M  UR
                  (       d  X4l        UR
                  U;   a:  XR
                     UR                  5       :X  a  Me  [        SUR
                  -  5      eUR                  5       XR
                  '   UR                  U5        M¬     U(       d  gUT l	        ST R                   ;   d  ST R                   ;   aW  U HQ  nUR                  UR                  :w  d  UR                  UR                  :w  d  M9  [        ST R                  < S35      e   S nUT l        U 4S	 jnUT l        g)
z‡
Scans the given class for instances of Property and merges them
into the classes __gproperties__ dict if it exists or adds it if not.
Ú__gproperties__z0Property %s was already found in __gproperties__NÚdo_get_propertyÚdo_set_propertyzGObject subclass zl defines do_get/set_property and it also uses a property with a custom setter or getter. This is not allowedc                 óR   • UR                   R                  SS5      n[        XS 5      $ ©NÚ-Ú_)r3   Úreplacer�   )r'   Úpspecr3   s      r(   Úobj_get_propertyÚ,install_properties.<locals>.obj_get_propertyˆ  s%   € Ø�z‰z×!Ñ! # sÓ+ˆÜ�t 4Ó(Ð(r+   c                 óŠ   >• UR                   R                  SS5      n[        TUS 5      nU(       a  UR                  X5        g g r­   )r3   r°   r�   rF   )r'   r±   rV   r3   ÚpropÚclss        €r(   Úobj_set_propertyÚ,install_properties.<locals>.obj_set_property�  s;   ø€ Ø�z‰z×!Ñ! # sÓ+ˆÜ�s˜D $Ó'ˆÞØ�I‰I�dÕ"ð r+   )Ú__dict__rs   Úitemsr:   r   r3   rš   Ú
ValueErrorÚappendr©   rS   rC   rF   rD   r<   r,   rª   r«   )r¶   ÚgpropertiesÚpropsr3   rµ   r²   r·   s   `      r(   Úinstall_propertiesr¿   b  sE  ø€ ð
 —,‘,×"Ñ"Ð#4°bÓ9€Kà€EØ—l‘l×(Ñ(Ö*‰
ˆÜ�dœH×%Ó%ð —9—9Ø ”	ð �y‰y˜KÓ'ØŸy™yÑ)¨T×-@Ñ-@Ó-BÓBÙÜ Ð!SÐVZ×V_ÑV_Ñ!_Ó`Ð`Ø%)×%8Ñ%8Ó%:ˆKŸ	™	Ñ"Ø�L‰L˜Öñ +ö  Øà%€CÔà˜CŸL™LÓ(Ð,=ÀÇÁÓ,MÛˆDØ�y‰y˜D×0Ñ0Ó0°D·I±IÀ×AUÑAUÕ4UÝð —\”\ð$ó%ð %ñ ò)ð +€CÔõ#ð
 +€CÕr+   N)&r    r   Ú
_constantsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rŸ   r    r¡   r¥   r£   r¢   r¦   r¤   r4   r   r¿   r%   r+   r(   Ú<module>rÁ      s�   ðõ( ÷7÷ 7÷ 7÷ 7÷ 7÷ 7ó 7ð �^‰^€
Ø�o‰o€Ø�<‰<€Ø�<‰<€Ø�M‰M€	Ø�M‰M€	Ø�M‰M€	Ø�^‰^€
ôxIˆvô xIóv	0+r+   