a f¥_Étc@s’ddlZddlZddlZddlmZmZddlmZddlm Z m Z m Z m Z ddl mZmZmZddlmZmZedƒZgZdd lmZee d ¡dd lmZdd lmZeZejZejZejZejZd d„Z dd„Z!dd„Z"de_#de_$ejj%e_%e!e_&e'e"ƒe_(egd¢7ZGdd„de)ƒZ*ddddddddd d!d"d"d"d#œ Z+Gd$d%„d%ej,ƒZ,d&d"„Z-e.e,d"e-ƒe d%¡dld(d)„Z/e d)¡d*D]>Z0d+e0Z1ede1d,e0ƒe2ej3d-e0ƒe4ƒe1<e e1¡qŒd.D]*Z0e2ej5e0ƒe4ƒd/e0<e d/e0¡qÐd0D]:Z0d1e0Z1ede1d2e0ƒe2ej6e0ƒe4ƒe1<e e1¡qej6j7Z8edd3d4ƒe d3¡d5D]:Z0d6e0Z1e2ej9e0ƒe4ƒe1<ede1d7e0ƒe e1¡q^d8D]:Z0d9e0Z1e2ej:e0ƒe4ƒe1<ede1d:e0ƒe e1¡qžd;D]:Z0dD]:Z0d?e0Z1ede1d@e0ƒe2ejdBdC¡d'Z1e2ee=ƒe4ƒe1<e e1¡q^GdDdE„dEej?ƒZ?ee?ƒZ?e dE¡GdFdG„dGej@ƒZ@ee@ƒZ@e dG¡GdHdI„dIejAƒZAeeAƒZAe dI¡GdJdK„dKeAƒZBe dK¡GdLdM„dMeAƒZCe dM¡dNdO„ZDe dO¡dPdQ„ZEe dQ¡dRdS„ZFe dS¡dTdU„ZGe dU¡dVdW„ZHe dW¡GdXdY„dYejIƒZIeeIƒZIe dY¡GdZd[„d[ejJƒZJeeJƒZJe d[¡d\d]„ZKe d]¡d^d_„ZLe d_¡d`da„ZMeeMdbƒZMe da¡dmdcdd„ZNe dd¡eOedeƒrNejPZQe df¡eddfdgƒejRejSejTfZUe dh¡eddhdiƒeZVe dj¡eddjdkƒdS)néNé)Úwakeup_on_signalÚregister_sigint_fallback)Úget_introspection_module)Úvariant_type_from_stringÚ source_newÚsource_set_callbackÚio_channel_read)ÚoverrideÚ deprecatedÚdeprecated_attr)ÚPyGIDeprecationWarningÚ version_infoÚGLib)Ú_optionÚoption)Ú_gi)ÚGErrorcCstjdtdddS)NzmSince version 3.11, calling threads_init is no longer needed. See: https://wiki.gnome.org/PyGObject/Threadingr)Z stacklevel)ÚwarningsÚwarnr ©rrú5/usr/lib/python3.9/site-packages/gi/overrides/GLib.pyÚ threads_init5sþrcCs2t|jtƒrt |j¡}n|j}||jf||fkS©N)Ú isinstanceÚdomainZstrrZquark_from_stringÚcode)ÚselfrrZself_domain_quarkrrrÚgerror_matches;s rcCst |¡}t|||ƒSr)rZquark_to_stringr)rZmessagerZ domain_quarkrrrÚgerror_new_literalEs rÚErrorzgi.repository.GLib)rrÚ OptionContextÚ OptionGroupÚPidÚ spawn_asyncrc@sneZdZejjejjejjejjejj ejj ejj ejj ejj ejjejjejjejjejjdœZdd„ZdS)Ú_VariantCreator)ÚbÚyÚnÚqÚiÚuÚxÚtÚhÚdÚsÚoÚgÚvc Cs|t |¡}||jvr"|j||ƒStj |¡}|dur>| ¡S| ¡rh| | |  ¡  ¡|¡¡| ¡Sz t |ƒWn"t y–t d||fƒ‚Yn0|  ¡rÀ| ¡t|ƒkrÀt d||fƒ‚| ¡rät|ƒdkrät d||fƒ‚| ¡r.|  ¡  ¡}t|tƒr| ¡}|D]}| | ||¡¡qnF|dd…}|D]4}t|ƒ  ¡}| | ||¡¡|t|ƒd…}q>| ¡S)aBCreate a GVariant object from given format and a value that matches the format. This method recursively calls itself for complex structures (arrays, dictionaries, boxed). Returns the generated GVariant. If value is None it will generate an empty GVariant container type. NzOCould not create array, tuple or dictionary entry from non iterable value %s %sz1Tuple mismatches value's number of elements %s %srz/Dictionary entries must have two elements %s %sé)rÚ VariantTypeÚ_LEAF_CONSTRUCTORSZVariantBuilderÚnewZendZis_maybeZ add_valueÚ_createZelementZ dup_stringZiterÚ TypeErrorZis_tupleZn_itemsÚlenZ is_dict_entryZis_arrayrZdictZitemsr) rZformatÚvalueZgvtypeZbuilderZ element_typer)Zremainer_formatZduprrrr7is>     ÿ      z_VariantCreator._createN)Ú__name__Ú __module__Ú __qualname__rÚVariantZ new_booleanZnew_byteZ new_int16Z new_uint16Z new_int32Z new_uint32Z new_int64Z new_uint64Z new_handleZ new_doubleZ new_stringZnew_object_pathZ new_signatureZ new_variantr5r7rrrrr$Vs òr$Ú get_booleanZget_byteZ get_int16Z get_uint16Z get_int32Z get_uint32Z get_int64Z get_uint64Z get_handleZ get_doubleÚ get_string) r%r&r'r(r)r*r+r,r-r.r/r0r1c@sŒeZdZdd„Zedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z e dd„ƒZdd„Zdd„Zdd„Zdd„Zdd„ZdS) r>cCs2tj |¡std|ƒ‚tƒ}| ||¡}||_|S)a´Create a GVariant from a native Python object. format_string is a standard GVariant type signature, value is a Python object whose structure has to match the signature. Examples: GLib.Variant('i', 1) GLib.Variant('(is)', (1, 'hello')) GLib.Variant('(asa{sv})', ([], {'foo': GLib.Variant('b', True), 'bar': GLib.Variant('i', 2)})) z#Invalid GVariant format string '%s')rr4Zstring_is_validr8r$r7Ú format_string)ÚclsrAr:Zcreatorr2rrrÚ__new__®s   zVariant.__new__cGs tj |¡Sr)rr>Ú new_tuple)ZelementsrrrrDÁszVariant.new_tuplecCs$z | ¡WntyYn0dSr)ZunrefZ ImportError©rrrrÚ__del__Ås  zVariant.__del__cCs | d¡S©NT)Úprint_rErrrÚ__str__ÑszVariant.__str__cCs,t|dƒr|j}n| ¡}d|| d¡fS)NrAzGLib.Variant('%s', %s)F)ÚhasattrrAÚget_type_stringrH)rZfrrrÚ__repr__Ôs zVariant.__repr__cCs&z | |¡WSty YdS0dS©NF©Zequalr8©rZotherrrrÚ__eq__Ûs  zVariant.__eq__cCs(z| |¡ WSty"YdS0dSrGrNrOrrrÚ__ne__ás zVariant.__ne__cCst| ¡| ¡fƒSr)ZhashrKÚunpackrErrrÚ__hash__çszVariant.__hash__csˆ ¡}t |¡}|r"tˆ|ƒƒS| d¡rJt‡fdd„tˆ ¡ƒDƒƒS| d¡r”i}tˆ ¡ƒD]*}ˆ |¡}| d¡  ¡|| d¡  ¡<qd|S| d¡r¸‡fdd „tˆ ¡ƒDƒS| d ¡rΈ  ¡  ¡S| d ¡ròˆ ¡säd Sˆ d¡  ¡St d |ƒ‚d S)z1Decompose a GVariant into a native Python object.ú(c3s|]}ˆ |¡ ¡VqdSr©Úget_child_valuerR©Z.0r)rErrZ ùsÿz!Variant.unpack..úa{r3rÚacsg|]}ˆ |¡ ¡‘qSrrUrWrErrZ sÿz"Variant.unpack..r2ÚmNzunsupported GVariant type ) rKÚLEAF_ACCESSORSÚgetÚgetattrÚ startswithZtupleÚrangeÚ n_childrenrVrRZ get_variantZNotImplementedError)rZ type_stringZlaÚresr)r2rrErrRís2     ÿ     ÿ   zVariant.unpackc CsØ|dkr gS| d¡s|gSg}d}|dd…}|rÔ|d}||7}|dd…}|dvrZq0|d vrÄd}|}|dkrxd }nd }|dkrÄ|d}||7}|dd…}||kr²|d7}q|||kr||d8}q|| |¡d}q0|S) a[Return a list of the element signatures of the topmost signature tuple. If the signature is not a tuple, it returns one element with the entire signature. If the signature is an empty tuple, the result is []. This is useful for e. g. iterating over method parameters which are passed as a single Variant. z()rTÚr3éÿÿÿÿrN)rZrY)rTz{z)z})r^Úappend) ZklassZ signatureZresultZheadZtailZcZlevelZupZdownrrrÚsplit_signatures<        zVariant.split_signaturecCsP| ¡dvrt| ¡ƒS| ¡ d¡s4| ¡ d¡r<| ¡Std| ¡ƒ‚dS)N©r/r0r1rYrTz'GVariant type %s does not have a length)rKr9r@r^r`r8rErrrÚ__len__Ks   zVariant.__len__cCs*| ¡ d¡r˜z*| |tdƒ¡}|dur0t|ƒ‚| ¡WSty–t| ¡ƒD]6}|  |¡}|  d¡ ¡|krR|  d¡ ¡YSqRt|ƒ‚Yn0| ¡ d¡s´| ¡ d¡rút |ƒ}|dkrÐ| ¡|}|dksä|| ¡krìt dƒ‚|  |¡ ¡S| ¡dvr|  ¡  |¡Std | ¡ƒ‚dS) NrXZ*rr3rYrTzlist index out of rangerfz#GVariant type %s is not a container)rKr^Z lookup_valuerÚKeyErrorrRr8r_r`rVÚintZ IndexErrorr@Ú __getitem__)rZkeyZvalr)r2rrrrjSs,    zVariant.__getitem__cCs| ¡Sr)Ú__bool__rErrrÚ __nonzero__xszVariant.__nonzero__cCs|| ¡dvr| ¡dkS| ¡dvr,| ¡S| ¡dvrHt| ¡ƒdkS| ¡ d¡sd| ¡ d¡rp| ¡dkSt| ¡ƒS)N) r&r'r(r)r*r+r,r-r.r)r%rfrYrT)rKrRr?r9r@r^r`ZboolrErrrrk{s     zVariant.__bool__cCsV| ¡ d¡std| ¡ƒ‚g}t| ¡ƒD]"}| |¡}| | d¡ ¡¡q.|S)NrXz$GVariant type %s is not a dictionaryr)rKr^r8r_r`rVrdrR)rrar)r2rrrÚkeysˆs z Variant.keysN)r;r<r=rCÚ staticmethodrDrFrIrLrPrQrSrRZ classmethodrergrjrlrkrmrrrrr>­s"  ( 5% r>cCstj |¡\}}|Sr)rr>r@)rr:Úlengthrrrr@“srccCs,t|tƒrt | d¡|¡St ||¡SdS)NúUTF-8)rÚbytesrÚmarkup_escape_textZdecode)Ztextrorrrrrs rr)ZDESKTOPZ DOCUMENTSZDOWNLOADZMUSICZPICTURESZ PUBLIC_SHAREZ TEMPLATESZVIDEOSZUSER_DIRECTORY_zGLib.UserDirectory.DIRECTORY_Z DIRECTORY_)ZERRZHUPZINZNVALZOUTZPRIZIO_)ZAPPENDZGET_MASKZ IS_READABLEZ IS_SEEKABLEZMASKZNONBLOCKZSET_MASKZIO_FLAG_z GLib.IOFlags.ÚIO_FLAG_IS_WRITEABLEzGLib.IOFlags.IS_WRITABLE)ZAGAINZEOFZERRORÚNORMALZ IO_STATUS_zGLib.IOStatus.)ZCHILD_INHERITS_STDINZDO_NOT_REAP_CHILDZFILE_AND_ARGV_ZEROZLEAVE_DESCRIPTORS_OPENZ SEARCH_PATHZSTDERR_TO_DEV_NULLZSTDOUT_TO_DEV_NULLZSPAWN_zGLib.SpawnFlags.)ZHIDDENZIN_MAINZREVERSEZNO_ARGZFILENAMEZ OPTIONAL_ARGZNOALIASZ OPTION_FLAG_zGLib.OptionFlags.)ZUNKNOWN_OPTIONZ BAD_VALUEZFAILEDZ OPTION_ERROR_zGLib.OptionError.)Z G_MINFLOATZ G_MAXFLOATZ G_MINDOUBLEZ G_MAXDOUBLEZ G_MINSHORTZ G_MAXSHORTZ G_MAXUSHORTZG_MININTZG_MAXINTZ G_MAXUINTZ G_MINLONGZ G_MAXLONGZ G_MAXULONGZ G_MAXSIZEZ G_MINSSIZEZ G_MAXSSIZEZ G_MINOFFSETZ G_MAXOFFSETÚ_r3cs0eZdZddd„Zd dd„Z‡fdd„Z‡ZS) ÚMainLoopNcCstj |d¡SrM)rrvr6)rBÚcontextrrrrCèszMainLoop.__new__cCsdSrr)rrwrrrÚ__init__ëszMainLoop.__init__c sbt|jƒDtƒtt|ƒ ¡Wdƒn1s60YWdƒn1sT0YdSr)rZquitrÚsuperrvÚrunrE©Ú __class__rrrzîs z MainLoop.run)N)N)r;r<r=rCrxrzÚ __classcell__rrr{rrvæs  rvcseZdZd‡fdd„ Z‡ZS)Ú MainContextTcstt|ƒ |¡Sr)ryr~Ú iteration)rZ may_blockr{rrrúszMainContext.iteration)T)r;r<r=rr}rrr{rr~øsr~cs€eZdZdd„Z‡fdd„Zdd„Zd‡fdd „ Zd d „Zeed ƒZd d„Z dd„Z e e e ƒZ dd„Z dd„Ze e eƒZ‡ZS)ÚSourcecOstƒ}||_t|ddƒ|S)NÚ__pygi_custom_sourceT)rr|Úsetattr)rBÚargsÚkwargsÚsourcerrrrCs zSource.__new__cstt|ƒ ¡Sr)ryr€rx©rrƒr„r{rrrx szSource.__init__cCst|dƒr| ¡| ¡dS©Nr)rJZdestroyZ _clear_boxedrErrrrFs zSource.__del__Ncs.t|dƒrt|||ƒntt|ƒ ||¡dSr‡)rJrryr€Ú set_callback)rZfnÚ user_datar{rrrˆs zSource.set_callbackcCs t ¡dS©Ngíµ ÷ư>©rZ get_real_timerErrrÚget_current_timeszSource.get_current_timez.GLib.Source.get_time() or GLib.get_real_time()cCs| ¡Sr)Z get_priorityrErrrZ__get_priority'szSource.__get_prioritycCs| |¡dSr)Ú set_priority©rr:rrrZ__set_priority*szSource.__set_prioritycCs| ¡Sr)Zget_can_recurserErrrZ__get_can_recurse/szSource.__get_can_recursecCs| |¡dSr)Zset_can_recurserŽrrrZ__set_can_recurse2szSource.__set_can_recurse)N)r;r<r=rCrxrFrˆrŒr Z_Source__get_priorityZ_Source__set_priorityZpropertyÚpriorityZ_Source__get_can_recurseZ_Source__set_can_recurseZ can_recurser}rrr{rr€s  ÿ r€cs0eZdZejfdd„Zejf‡fdd„ Z‡ZS)ÚIdlecCst ¡}||_|Sr)rZidle_source_newr|)rBrr…rrrrC=sz Idle.__new__cs&tt|ƒ ¡|tjkr"| |¡dSr)ryr€rxrÚPRIORITY_DEFAULTr)rrr{rrrxBs z Idle.__init__)r;r<r=rr‘rCrxr}rrr{rr<src@s,eZdZdejfdd„Zdejfdd„ZdS)ÚTimeoutrcCst |¡}||_|Sr)rZtimeout_source_newr|)rBÚintervalrr…rrrrCLs zTimeout.__new__cCs|tjkr| |¡dSr)rr‘r)rr“rrrrrxQs zTimeout.__init__N)r;r<r=rr‘rCrxrrrrr’Ksr’cOs"| dtj¡}tj||g|¢RŽS©Nr)r\rZPRIORITY_DEFAULT_IDLEÚidle_add)Úfunctionr‰r„rrrrr•Zsr•cOs$| dtj¡}tj|||g|¢RŽSr”)r\rr‘Ú timeout_add©r“r–r‰r„rrrrr—bsr—cOs$| dtj¡}tj|||g|¢RŽSr”)r\rr‘Útimeout_add_secondsr˜rrrr™jsr™cs6t|tƒrt|tjƒrdt dt¡|}|‰|}tˆƒs>tdƒ‚d|vr\t dt¡|d}q˜tj }n4t |ƒdks|t|dƒs„tdƒ‚|d‰|dd…}tˆtƒr¾‡‡fdd „}tj   ˆ¡}njtˆt j ƒrôtjd krô‡‡fd d „}tj  ˆ ¡¡}n4tˆd ƒr ‡‡fd d „}tj   ˆ ¡¡}nˆ}ˆ}|||||fS)NzFCalling io_add_watch without priority as second argument is deprecatedzthird argument must be callablerzgCalling io_add_watch with priority keyword argument is deprecated, put it as second positional argumentr3rz%expecting callback as fourth argumentcsˆˆ|g|¢RŽSrr©ruZcondÚdata©ÚcallbackÚchannelrrÚ˜óz(_io_add_watch_get_args..Zwin32csˆˆ|g|¢RŽSrrršrœrrrŸ›r Úfilenocsˆˆ|g|¢RŽSrrršrœrrrŸŸr )rrirÚ IOConditionrrr Úcallabler8r‘r9Ú IOChannelÚunix_newÚsocketÚsysZplatformZwin32_new_socketr¡rJ)ržZ priority_Ú conditionZcb_and_user_datar„r‰Zfunc_fdtransformZ real_channelrrœrÚ_io_add_watch_get_args~s>ÿÿ    r©cOs0t|i|¤Ž\}}}}}tj||||g|¢RŽS)zOio_add_watch(channel, priority, condition, func, *user_data) -> event_source_id)r©rÚ io_add_watch)rƒr„ržrr¨Zfuncr‰rrrrª¬srªcsžeZdZddd„Z‡fdd„Zddd„Zdd d „Zdd d „Zd d d„Zdd„Z e j j e j j e j jdœZd!dd„Zdd„ZeedƒZdd„Zdd„ZeZ‡ZS)"r¤NcCsN|durtj |¡S|dur.tj ||p*d¡S|durBtj |¡Stdƒ‚dS)NZrzLeither a valid file descriptor, file name, or window handle must be supplied)rr¤r¥Znew_fileZ win32_new_fdr8)rBZfiledesZfilenameZmodeZhwndrrrrC·s  zIOChannel.__new__cstt|ƒ ¡Sr)ryr¤rxr†r{rrrxÀszIOChannel.__init__rccCs t||ƒSr)r)rZ max_countrrrÚreadÃszIOChannel.readcCs | ¡\}}}}|durdS|S©Nrb)Ú read_line)rÚ size_hintÚstatusÚbufroÚterminator_posrrrÚreadlineÆszIOChannel.readlinecCsDg}tjj}|tjjkr@| ¡\}}}}|dur4d}| |¡q |Sr¬)rÚIOStatusrtr­rd)rr®Úlinesr¯r°ror±rrrÚ readlinesÎs  zIOChannel.readlinescCs8t|tƒs| d¡}|dkr$t|ƒ}| ||¡\}}|S)Nrprc)rrqZencoder9Z write_chars)rr°Zbuflenr¯ZwrittenrrrÚwriteÜs   zIOChannel.writecCs|D]}| |¡qdSr)r¶)rr´ZlinerrrÚ writelinesäszIOChannel.writelines)rr3rrcCs6z|j|}Wnty(tdƒ‚Yn0| ||¡S)Nzinvalid 'whence' value)Ú _whence_maprhZ ValueErrorZ seek_position)rZoffsetZwhenceZwrrrÚseekês  zIOChannel.seekcOs$| dtj¡}t||||g|¢RŽSr”)r\rr‘rª)rr¨rr‰r„rrrrÚ add_watchñszIOChannel.add_watchzGLib.io_add_watch()cCs|SrrrErrrÚ__iter__÷szIOChannel.__iter__cCs(| ¡\}}}}|tjjkr |St‚dSr)r­rr³rtZ StopIteration)rr¯r°ror±rrrÚ__next__ús zIOChannel.__next__)NNNN)rc)rc)rc)rc)r)r;r<r=rCrxr«r²rµr¶r·rZSeekTypeZSETZCURZENDr¸r¹rºr r»r¼Znextr}rrr{rr¤¶s       r¤c@seZdZdd„Zdd„ZdS)ÚPollFDcCst ¡}||_|Sr)rr½r|)rBÚfdÚeventsZpollfdrrrrC szPollFD.__new__cCs||_||_dSr)r¾r¿)rr¾r¿rrrrxszPollFD.__init__N)r;r<r=rCrxrrrrr½sr½cOsg}t|ƒr†t dt¡|}|}t|ƒdkr<| dtj¡}qÚt|ƒdkr\|}| dtj¡}qÚt|ƒdkr||dg}|d}qÚtdƒ‚nT|}|}d|vr¤|d}|}n6t|ƒdkrÒt|dƒrÒ|d}|dd…}ntdƒ‚d |vrø|rîtd ƒ‚|d f}||||fS) NzHCalling child_watch_add without priority as first argument is deprecatedrrr3rz'expected at most 4 positional argumentsr–z#expected callback as third argumentr›z'got multiple values for "data" argument) r£rrr r9r\rr‘r8)Zpriority_or_pidZpid_or_callbackrƒr„r‰ÚpidrrrrrÚ_child_watch_add_get_argss<ÿ       rÁcOs,t|i|¤Ž\}}}}tj|||g|¢RŽS)z/child_watch_add(priority, pid, function, *data))rÁrÚchild_watch_add)rƒr„rrÀr–r›rrrrÂGsrÂcCs t ¡dSrŠr‹rrrrrŒPsrŒzGLib.get_real_time()cCst ||¡dS)Nr)rÚfilename_from_utf8)Z utf8stringr9rrrrÃ[srÃÚunix_signal_addÚunix_signal_add_fullzGLib.unix_signal_addÚ glib_versionz<(GLib.MAJOR_VERSION, GLib.MINOR_VERSION, GLib.MICRO_VERSION)Úpyglib_versionzgi.version_info)rc)rc)Wrr§r¦Z _ossighelperrrZmodulerrrrrrZ overridesr r r Zgir r rZ__all__rrrdZ gi._errorrrr r!r"r#rrrr;r<Z __gtype__ZmatchesrnZ new_literalZobjectr$r[r>r@r‚rrr'Zattrr]Z UserDirectoryZglobalsr¢ZIOFlagsZ IS_WRITABLErsr³Z SpawnFlagsZ OptionFlagsZ OptionErrorZnameZsplitrvr~r€rr’r•r—r™r©rªr¤r½rÁrÂrŒrÃrJrÄrÅZ MAJOR_VERSIONZ MINOR_VERSIONZ MICRO_VERSIONrÆrÇrrrrZs         Góg        6      +  N   '          ÿ