/opt/cloudlinux/venv/lib/python3.11/site-packages/git/__pycache__
NameSizeModeActions
cmd.cpython-311.pyc594240644editdlrm
compat.cpython-311.pyc36940644editdlrm
config.cpython-311.pyc458610644editdlrm
db.cpython-311.pyc37390644editdlrm
diff.cpython-311.pyc264700644editdlrm
exc.cpython-311.pyc114790644editdlrm
remote.cpython-311.pyc510140644editdlrm
types.cpython-311.pyc41550644editdlrm
util.cpython-311.pyc554660644editdlrm
__init__.cpython-311.pyc32820644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/git/__pycache__/cmd.cpython-311.pyc (59424B)
§ àZH»³îãó2—ddlmZddlZddlmZddlZddlZddlZddlZddl m Z m Z m Z m Z ddl Z ddlZddlmZddlmZmZmZmZmZddlmZddlmZmZmZmZd d lmZm Z m!Z!m"Z"d d l#m$Z$m%Z%dd l&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6dd l7m8Z8m9Z9m:Z:e1r ddl;mZ>hd£Z?ej@eA¦«ZBeB CejD¦«¦«dZE d3d4d!„ZFd5d$„ZGd6d7d+„ZHd6d8d/„ZId0ZJer eJe jKzndZLGd1„d2e$¦«ZMdS)9é)Ú annotationsN)Úcontextmanager)ÚcallÚPopenÚPIPEÚDEVNULL)Údedent)ÚdefencÚ force_bytesÚ safe_decodeÚis_posixÚis_win)Ú CommandError)Ú is_cygwin_gitÚcygpathÚ expand_pathÚremove_password_if_presenté)ÚGitCommandErrorÚGitCommandNotFoundÚUnsafeOptionErrorÚUnsafeProtocolError)Ú LazyMixinÚ stream_copy)ÚAnyÚAnyStrÚBinaryIOÚCallableÚDictÚIOÚIteratorÚListÚMappingÚSequenceÚ TYPE_CHECKINGÚTextIOÚTupleÚUnionÚcastÚoverload)ÚPathLikeÚLiteralÚTBD)ÚRepo)Ú DiffIndex> ÚenvÚshellÚistreamÚ as_processÚ with_stdoutÚ output_streamÚmax_chunk_sizeÚwith_exceptionsÚstdout_as_stringÚkill_after_timeoutÚuniversal_newlinesÚwith_extended_outputÚstrip_newline_in_stdout)ÚGitTÚprocessú'Git.AutoInterrupt' | PopenÚstdout_handlerúsUnion[None, Callable[[AnyStr], None], Callable[[List[AnyStr]], None], Callable[[bytes, 'Repo', 'DiffIndex'], None]]Ústderr_handlerúEUnion[None, Callable[[AnyStr], None], Callable[[List[AnyStr]], None]]Ú finalizerúKUnion[None, Callable[[Union[subprocess.Popen, 'Git.AutoInterrupt']], None]]Údecode_streamsÚboolr9úUnion[None, float]ÚreturnÚNonec óR—dd „}t|d¦«rQtd|¦«}t|jdd¦«}|jr |jjnd}|jr |jjnd} n4tt |¦«}t|dd¦«}|j}|j} t|ttf¦«s|  ¦«}g} |r|   d||f¦«| r|   d| |f¦«g} | D]Q\} } }tj ||| | ||f¬¦«}d|_| ¦«|   |¦«ŒR| D]Á}| |¬¦«| ¦«r•t|t$j¦«r| ¦«nt+d|›d�¦«‚|rQd|›d�}|s>t| t,¦«r)tt.|¦«}| ¦«}||¦«ŒÂ|r ||¦«SdS)aŽRegisters for notifications to learn that process output is ready to read, and dispatches lines to the respective line handlers. This function returns once the finalizer returns :return: result of finalizer :param process: subprocess.Popen instance :param stdout_handler: f(stdout_line_string), or None :param stderr_handler: f(stderr_line_string), or None :param finalizer: f(proc) - wait for proc to finish :param decode_streams: Assume stdout/stderr streams are binary and decode them before pushing their contents to handlers. Set it to False if `universal_newline == True` (then streams are in text-mode) or if decoding must happen later (i.e. for Diffs). :param kill_after_timeout: float or None, Default = None To specify a timeout in seconds for the git command, after which the process should be killed. Úcmdlineú List[str]ÚnameÚstrÚstreamúUnion[BinaryIO, TextIO]Ú is_decoderGÚhandlerú0Union[None, Callable[[Union[bytes, str]], None]]rIrJc ó— |D]N}|rJ|r=t|t¦«sJ‚| t¦«}||¦«ŒC||¦«ŒOn~#t$rq}t  d|›dt|¦«›d|›�¦«dt|¦«vr&td|›d�gt|¦«z|¦«|‚Yd}~nd}~wwxYw|  ¦«dS#|  ¦«wxYw)NzPumping z of cmd(z) failed due to: zI/O operation on closed fileú) Ú isinstanceÚbytesÚdecoder Ú ExceptionÚlogÚerrorrrOrÚclose)rLrNrPrRrSÚlineÚline_strÚexs úY/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/git/cmd.pyÚ pump_streamz*handle_process_output..pump_stream~sF€ð Øð &ð &�Øð&Ø ð&Ý)¨$µÑ6Ô6Ð6Ð6Ð6Ø#'§;¢;­vÑ#6Ô#6˜Ø˜ Ñ)Ô)Ð)Ð)à˜ ™ œ ˜ øð &øõð ið ið iÝ �IŠIÐm ÐmÐmÕ1KÈGÑ1TÔ1TÐmÐmÐgiÐmÐmÑ nÔ nÐ nØ-µS¸±W´WÐ<Ð<å"Ð$4¨Ð$4Ð$4Ð$4Ð#5Õ8RÐSZÑ8[Ô8[Ñ#[Ð]_Ñ`Ô`ÐfhÐhð=Ð<Ð<Ð<Ð<øøøøð iøøøð �LŠL‰NŒNˆNˆNˆNøˆF�LŠL‰NŒNˆNˆNøøøs1‚AAÁC(Á CÁA'C ÃC(à CÃC(Ã(C>ÚprocúGit.AutoInterruptÚargsÚNÚstdoutÚstderr)ÚtargetreT)ÚtimeoutzKThread join() timed out in cmd.handle_process_output(). kill_after_timeout=z secondsz?error: process killed because it timed out. kill_after_timeout=) rLrMrNrOrPrQrRrGrSrTrIrJ)Úhasattrr)ÚgetattrrcrgrhrrWÚtupleÚlistÚsplitÚappendÚ threadingÚThreadÚdaemonÚstartÚjoinÚis_aliver=Ú AutoInterruptÚ _terminateÚ RuntimeErrorrrOÚencode)r>r@rBrDrFr9rbrLÚp_stdoutÚp_stderrÚpumpsÚthreadsrNrPrSÚtÚ error_strs raÚhandle_process_outputr�]s�€ðBðððõ2ˆw˜ÑÔð "ÝÐ*¨GÑ4Ô4ˆÝ5<¸W¼\È6ÐSUÑ5VÔ5VˆØ*1¬,Ð@�7”<Ô&Ð&¸DˆØ*1¬,Ð@�7”<Ô&Ð&¸Dˆˆå•u˜gÑ&Ô&ˆÝ˜' 6¨2Ñ.Ô.ˆØ”>ˆØ”>ˆå �g¥¥t˜}Ñ -Ô -ð"Ø—-’-‘/”/ˆà>@€EØð;Ø � Š �h ¨.Ð9Ñ:Ô:Ð:Øð;Ø � Š �h ¨.Ð9Ñ:Ô:Ð:à&(€Gà!&ððшˆf�gÝ Ô  K°wÀÀfÈnÐ^eÐ6fÐ gÑ gÔ gˆØˆŒØ �Љ Œ ˆ Ø�Š�qÑÔÐÐðð*ð*ˆØ �ŠÐ)ˆÑ*Ô*Ð*Ø �:Š:‰<Œ<ð *ݘ'¥3Ô#4Ñ5Ô5ð Ø×"Ò"Ñ$Ô$Ð$Ð$å"ðHØ+=ðHðHðHñôððð *àuÐYkÐuÐuÐuðð&ð3­*°X½xÑ*HÔ*Hð3å $¥S¨)Ñ 4Ô 4�IØ )× 0Ò 0Ñ 2Ô 2�Ið�˜yÑ)Ô)Ð)øàð؈y˜Ñ!Ô!Ð!àˆtóÚstringrOcó.—| dd¦«S)NÚ_ú-)Úreplace)rƒs raÚdashifyrˆÑs€Ø �>Š>˜#˜sÑ #Ô #Ð#r‚©ÚselfÚobjectÚexcludeú Sequence[str]úDict[str, Any]có.‡‡—ˆˆfd„‰jD¦«S)Ncó:•—i|]}|‰v¯|t‰|¦«“ŒSr‰)rl)Ú.0ÚsrŒrŠs €€raú z!slots_to_dict..Ös/ø€Ð LÐ LÐ L A¸1ÀGÐ;KÐ;KˆA�w�t˜QÑÔÐ;KÐ;KÐ;Kr‚)Ú __slots__)rŠrŒs``raÚ slots_to_dictr•Õs#øø€Ø LÐ LÐ LÐ LÐ L¨¬Ð LÑ LÔ LÐLr‚ÚdúMapping[str, Any]Úexcludedcóˆ—| ¦«D]\}}t|||¦«Œ|D]}t||d¦«ŒdS©N)ÚitemsÚsetattr)rŠr–r˜ÚkÚvs raÚ$dict_to_slots_and__excluded_are_nonerŸÙs`€Ø—’‘ ” ðð‰ˆˆ1Ý��a˜ÑÔÐÐØ ððˆÝ��a˜ÑÔÐÐððr‚ic 󚇗eZdZdZdZdZejd¦«Zd€d„Z d�d „Z d Z e j  d d ¦«Zd ZdZdZdZed‚dƒd„¦«Zed„d„¦«Zeed…d†d„¦«¦«Zeed‚d‡d„¦«¦«Zed‚dˆd„¦«Zed‰d „¦«ZedŠd$„¦«ZGd%„d&e¦«ZGd'„d(e¦«Zd‚d‹ˆfd*„ ZdŒd-„Zd�d/„Z dŽˆfd1„ Z!e"d�d2„¦«Z#e"d�d4„¦«Z$ed‘d:„¦«Z%ed d;œd’d>„¦«Z%ed d d?œd“dA„¦«Z%ed”dC„¦«Z%ed•dE„¦«Z%dd dFd ddFddFd dde&j'dFf d–dW„Z%d—dY„Z(d˜d[„Z)e*d™d]„¦«Z+dšd`„Z,d›dœda„Z-ed�dd„¦«Z.dždf„Z/edŸdi„¦«Z0ed dk„¦«Z0ed¡dm„¦«Z0d¡dn„Z0d¢dq„Z1d£dt„Z2d¤dw„Z3d¥dy„Z4d¦dz„Z5d§d|„Z6d¨d~„Z7d©d„Z8ˆxZ9S)ªr=að The Git class manages communication with the Git binary. It provides a convenient interface to calling the Git binary, such as in:: g = Git( git_dir ) g.init() # calls 'git init' program rval = g.ls_files() # calls 'git ls-files' program ``Debugging`` Set the GIT_PYTHON_TRACE environment variable print each invocation of the command to stdout. Set its value to 'full' to see details about the returned values. )Ú _working_dirÚ cat_file_allÚcat_file_headerÚ _version_infoÚ _git_optionsÚ_persistent_git_optionsÚ _environment)r¢r£r¤z(.+)::.+rIrŽcó.—t||j¬¦«S)N)rŒ)r•Ú _excluded_©rŠs raÚ __getstate__zGit.__getstate__ s€Ý˜T¨4¬?Ð;Ñ;Ô;Ð;r‚r–rJcó4—t|||j¬¦«dS)N)r˜)rŸr©)rŠr–s raÚ __setstate__zGit.__setstate__s€Ý,¨T°1¸t¼ÐOÑOÔOÐOÐOÐOr‚ÚgitÚGIT_PYTHON_TRACEFÚGIT_PYTHON_GIT_EXECUTABLEÚGIT_PYTHON_REFRESHNÚpathúUnion[None, PathLike]rGc ób—|�?tj |¦«}tj |¦«}n*tj |j|j¦«}|j}||_d} |¦«  ¦«d}n#ttf$rYnwxYw|�sytd¦«|jz}||_|�€Htj |j d¦« ¦«}gd¢}gd¢}gd¢} ||vrnó||vs|| vrˆtd ¦«||j d  |¦«d  |¦«d  | ¦«|j |d fz}||vrt!d |z¦«nrt#|¦«‚td ¦«|j d  |¦«d  |¦«d  | ¦«fz}t#|¦«‚|j|_ntd|¦«‚|S)zWThis gets called by the refresh function (see the top level __init__). NFTa Bad git executable. The git executable must be specified in one of the following ways: - be included in your $PATH - be set via $%s - explicitly set via git.refresh() Úraise)ÚquietÚqÚsilencer’ÚnoneÚnÚ0)ÚwarnÚwÚwarningÚ1)r\ÚerµÚrÚ2a6 %s All git commands will error until this is rectified. This initial warning can be silenced or aggravated in the future by setting the $%s environment variable. Use one of the following values: - %s: for no warning or exception - %s: for a printed warning - %s: for a raised exception Example: export %s=%s ú|rz WARNING: %sag %s environment variable has been set but it has been set with an invalid value. Use only the following values: - %s: for no warning or exception - %s: for a printed warning - %s: for a raised exception r®)Úosr²Ú expanduserÚabspathÚenvironÚgetÚ_git_exec_env_varÚ git_exec_namer°ÚversionrÚPermissionErrorr Ú_refresh_env_varÚlowerruÚprintÚ ImportError) Úclsr²Únew_gitÚold_gitÚhas_gitÚerrÚmoder¶r¼r\s raÚrefreshz Git.refresh&sf€ð Ð Ý”g×(Ò(¨Ñ.Ô.ˆGÝ”g—o’o gÑ.Ô.ˆGˆGå”j—n’n SÔ%:¸CÔÔ>ˆC؈ r‚cóŽ—|j |¦«}|r(| d¦«}td|›d�¦«‚dS)a‚ Check for unsafe protocols. Apart from the usual protocols (http, git, ssh), Git allows "remote helpers" that have the form `::
`, one of these helpers (`ext::`) can be used to invoke any arbitrary command. See: - https://git-scm.com/docs/gitremote-helpers - https://git-scm.com/docs/git-remote-ext rzThe `zM::` protocol looks suspicious, use `allow_unsafe_protocols=True` to allow it.N)Úre_unsafe_protocolÚmatchÚgroupr)rÑrÚrêÚprotocols raÚcheck_unsafe_protocolszGit.check_unsafe_protocolsÌs[€ðÔ&×,Ò,¨SÑ1Ô1ˆØ ð Ø—{’{ 1‘~”~ˆHÝ%Øo˜ÐoÐoÐoñôð ð ð r‚ÚoptionsrMÚunsafe_optionscó®—d„|D¦«}|D]E}t||¦«D]2\}}| |¦«s||krt|›d�¦«‚Œ3ŒFdS)z´ Check for unsafe options. Some options that are passed to `git ` can be used to execute arbitrary commands, this are blocked by default. có8—g|]}| d¦«‘ŒS)r†)Úlstrip)r‘Úoptions raú z,Git.check_unsafe_options..ës4€ð ð ð àð �MŠM˜#Ñ Ô ð ð ð r‚z= is not allowed, use `allow_unsafe_options=True` to allow it.N)Úziprçr)rÑrîrïÚbare_unsafe_optionsróÚ unsafe_optionÚ bare_options raÚcheck_unsafe_optionszGit.check_unsafe_optionsás¤€ð ð à(ð ñ ô Ððð ð ˆFÝ.1°.ÐBUÑ.VÔ.Vð ð Ñ*� ˜{Ø×$Ò$ ]Ñ3Ô3ð°vÀÒ7LÐ7LÝ+Ø(ÐgÐgÐgñôðð8Mð ð ð r‚cóP—eZdZUdZdZdZded<dd „Zdd „Zdd„Z dd„Z ddd„Z dS)rdabKill/Interrupt the stored process instance once this instance goes out of scope. It is used to prevent processes piling up in case iterators stop reading. Besides all attributes are wired through to the contained process object. The wait method was overridden to perform automatic status code checking and possibly raise.©rcreÚstatusrÚintÚ_status_code_if_terminatercúUnion[None, subprocess.Popen]rerrIrJcó0—||_||_d|_dSršrû)rŠrcres raÚ__init__zGit.AutoInterrupt.__init__s€ØˆDŒI؈DŒIØ,0ˆDŒKˆKˆKr‚cóR—|j€dS|j}d|_|jr|j ¦«|jr|j ¦«|jr|j ¦« | ¦«�"|jp| ¦«|_dSn2#t$r%}t  d|¦«Yd}~nd}~wwxYwt�ttdd¦«€dS |  ¦«| ¦«}|jp||_dS#t$r&}t  d|¦«Yd}~dSd}~wt$r4t r)t#dt%|j¦«zd¬¦«YdSYdSwxYw)z Terminate the underlying processNz(Ignored error after process had died: %rÚkillz"TASKKILL /F /T /PID %s 2>nul 1>nulT)r1)rcÚstdinr]rgrhÚpollrþrüÚOSErrorr[ÚinforÄrlÚ terminateÚwaitÚAttributeErrorrrrOÚpid)rŠrcr`rüs rarxzGit.AutoInterrupt._terminate sô€àŒyÐ Ø�à”9ˆD؈DŒIØŒzð #Ø” × Ò Ñ"Ô"Ð"ØŒ{ð $Ø” ×!Ò!Ñ#Ô#Ð#ØŒ{ð $Ø” ×!Ò!Ñ#Ô#Ð#ð IØ—9’9‘;”;Ð*Ø"&Ô"@Ð"OÀDÇIÂIÁKÄK�D”Kؘ4ð+øõð Ið Ið IÝ—’ÐCÀRÑHÔHÐHÐHÐHÐHÐHÐHøøøøð Iøøøõˆz�W¥R¨°Ñ6Ô6Ð>Ø�tð Ø—’Ñ Ô Ð ØŸš™œ�à"Ô<ÐFÀ�” � � øÝð Ið Ið IÝ—’ÐCÀRÑHÔHÐHÐHÐHÐHÐHÐHÐHøøøøÝ!ð ð ð õ ðÝØ=ÅÀDÄHÁ Ä ÑMØ"ðñôðððððððð øøøs6Á94B0Â0 CÂ:CÃCÄ6D:Ä: F&ÅE%Å%:F&Æ%F&có.—| ¦«dSrš)rxrªs raÚ__del__zGit.AutoInterrupt.__del__6s€Ø �OŠOÑ Ô Ð Ð Ð r‚ÚattrrOcó,—t|j|¦«Srš)rlrc)rŠrs raÚ __getattr__zGit.AutoInterrupt.__getattr__9s€Ý˜4œ9 dÑ+Ô+Ð +r‚r‚rhúUnion[None, str, bytes]cóL‡—|€dŠt|d¬¦«Š|j�&|j ¦«}|jj}n |j}d}d ˆfd „ }|d krK||¦«}t  d |›�¦«tt|j ¦«||¦«‚|S) a/Wait for the process and return its status code. :param stderr: Previously read value of stderr, in case stderr is already closed. :warn: may deadlock if output or error pipes are used and not handled separately. :raise GitCommandError: if the return status is not 0Nr‚zutf-8)ÚdataÚencodingrPúUnion[IO[bytes], None]rIrXcó�•—|r@ ‰t| ¦«¦«zS#ttf$r‰pdcYSwxYw‰pdS)Nr‚)r ÚreadrÚ ValueError)rPÚstderr_bs €raÚ$read_all_from_possibly_closed_streamzDGit.AutoInterrupt.wait..read_all_from_possibly_closed_streamNsgø€Øð+ð/Ø'­+°f·k²k±m´mÑ*DÔ*DÑDÐDøÝ#¥ZÐ0ð/ð/ð/Ø'˜¨3Ð.Ð.Ð.ð/øøøð$˜? sÐ*s…#)©AÁArzAutoInterrupt wait stderr: )rPrrIrX) r rcr rhrür[Údebugrrre)rŠrhrür|rÚerrstrrs @rar zGit.AutoInterrupt.wait=sÇø€ð ˆ~Ø�Ý"¨¸ÐAÑAÔAˆHàŒyÐ$ØœŸšÑ)Ô)�Øœ9Ô+��àœ�Ø�ð +ð +ð +ð +ð +ð +ð˜Š{ˆ{Ø=Ð=¸hÑGÔG�Ý— ’ � ¸V¸VÐEÑFÔFÐFÝ%Õ&@ÀÄÑ&KÔ&KÈVÐU[Ñ\Ô\Ð\؈Mr‚N)rcrÿrerrIrJ©rIrJ)rrOrIr)r‚)rhrrIrý) Ú__name__Ú __module__Ú __qualname__Ú__doc__r”rþÚ__annotations__rrxr rr r‰r‚rarwzGit.AutoInterruptös¥€€€€€€ð ð ð/ˆ ð*+Ð!Ð*Ð*Ð*Ñ*ð 1ð 1ð 1ð 1ð * ð* ð* ð* ðZ ð ð ð ð ,ð ,ð ,ð ,ð ð ð ð ð ð ð r‚rwcód—eZdZUdZdZded<dd „Zddd„Zddd„Zddd„Z dd„Z dd„Z e Z dd„Z dS)úGit.CatFileContentStreamasObject representing a sized read-only stream returning the contents of an object. It behaves like a stream, but counts the data read and simulates an empty stream once our sized content region is empty. If not all data is read to the end of the objects's lifetime, we read the rest to assure the underlying stream continues to work)Ú_streamÚ_nbrÚ_sizezTuple[str, ...]r”ÚsizerýrPú IO[bytes]rIrJcój—||_||_d|_|dkr| d¦«dSdS)Nrr)r%r'r&r)rŠr(rPs rarz!Git.CatFileContentStream.__init__ls<€Ø!ˆDŒL؈DŒJ؈DŒIð�qŠyˆyØ— ’ ˜A‘”���ðˆyr‚éÿÿÿÿrXcó.—|j|jz }|dkrdS|dkrt||¦«}n|}|j |¦«}|xjt |¦«z c_|j|jz dkr|j d¦«|S)Nrr‚r+r)r'r&Úminr%rÚlen©rŠr(Ú bytes_leftrs rarzGit.CatFileContentStream.readws›€Øœ d¤iÑ/ˆJؘQŠˆØ�sØ�bŠyˆyå˜: tÑ,Ô,��ð"�à”<×$Ò$ TÑ*Ô*ˆDØ ˆIŒI�˜T™œÑ "ˆIŒIðŒz˜DœIÑ%¨Ò*Ð*Ø” ×!Ò! !Ñ$Ô$Ð$àˆKr‚cóB—|j|jkrdS|j|jz }|dkrt||¦«}n|}|j |¦«}|xjt |¦«z c_|j|jz dkr|j d¦«|S)Nr‚r+rr)r&r'r-r%Úreadliner.rr/s rar2z!Git.CatFileContentStream.readline‹s¥€ØŒy˜DœJÒ&Ð&Ø�sðœ d¤iÑ/ˆJØ�bŠyˆyݘ: tÑ,Ô,��à!�ð”<×(Ò(¨Ñ.Ô.ˆDØ ˆIŒI�˜T™œÑ "ˆIŒIðŒz˜DœIÑ%¨Ò*Ð*Ø” ×!Ò! !Ñ$Ô$Ð$ðˆKr‚ú List[bytes]cóÌ—|j|jkrgSg}d} | ¦«}|sn5| |¦«|dkr|t |¦«z }||krnŒL|S)NrTr+)r&r'r2rpr.)rŠr(ÚoutÚnbrr^s raÚ readlinesz"Git.CatFileContentStream.readlines¡s‚€ØŒy˜DœJÒ&Ð&Ø� ðˆC؈Cð Ø—}’}‘”�ØðØØ— ’ ˜4Ñ Ô Ð Ø˜"’9�9Ø�3˜t™9œ9Ñ$�CؘT’z�zØð ðˆJr‚ú'Git.CatFileContentStream'có—|Sršr‰rªs raÚ__iter__z!Git.CatFileContentStream.__iter__¶s€ØˆKr‚có@—| ¦«}|st‚|Srš)r2Ú StopIteration)rŠr^s raÚ__next__z!Git.CatFileContentStream.__next__¹s"€Ø—=’=‘?”?ˆDØð $Ý#Ð#àˆKr‚cóf—|j|jz }|r|j |dz¦«dSdS)Nr)r'r&r%r)rŠr0s rar z Git.CatFileContentStream.__del__ÂsD€Øœ d¤iÑ/ˆJØð 2ð” ×!Ò! *¨q¡.Ñ1Ô1Ð1Ð1Ð1ð 2ð 2r‚N)r(rýrPr)rIrJ)r+)r(rýrIrX)r(rýrIr3)rIr8)rIrXr)rrr r!r”r"rrr2r7r:r=Únextr r‰r‚raÚCatFileContentStreamr$asØ€€€€€€ð Bð Bð&Bˆ ÐAÐAÐAÑAð ð ð ð ð ð ð ð ð ð( ð ð ð ð ð, ð ð ð ð ð* ð ð ð ð ð ð ð ðˆð 2ð 2ð 2ð 2ð 2ð 2r‚r@Ú working_dircóÄ•—tt|¦« ¦«t|¦«|_d|_g|_i|_d|_d|_ dS)aDInitialize this instance with: :param working_dir: Git directory we should work in. If None, we always work in the current directory as returned by os.getcwd(). It is meant to be the working tree directory if available, or the .git directory in case of bare repositories.r‰N) Úsuperr=rrr¡r¥r¦r§r£r¢)rŠrAÚ __class__s €rarz Git.__init__Êscø€õ �c�4ÑÔ×!Ò!Ñ#Ô#Ð#Ý'¨ Ñ4Ô4ˆÔØ?AˆÔØ24ˆÔ$ð-/ˆÔð26ˆÔØ.2ˆÔÐÐr‚rNrcóT‡‡—‰ddkrtj‰‰¦«Sˆˆfd„S)z±A convenience method as it allows to call the command as if it was an object. :return: Callable object that will execute call _call_process with your arguments.rr…có&•—‰j‰g|¢Ri|¤ŽSrš)Ú _call_process)reÚkwargsrNrŠs €€raúz!Git.__getattr__..ås%ø€Ð'9 tÔ'9¸$Ð'PÀÐ'PÐ'PÐ'PÈÐ'PÐ'P€r‚)rr)rŠrNs``rarzGit.__getattr__Þs8øø€ð �Œ7�cŠ>ˆ>ÝÔ(¨¨tÑ4Ô4Ð 4ØPÐPÐPÐPÐPÐPr‚rHc ó.—|jdddi|¤Ž|_dS)a<Specify command line options to the git executable for subsequent subcommand calls :param kwargs: is a dict of keyword arguments. these arguments are passed as in _call_process but will be passed to the git command rather than the subcommand. Úsplit_single_char_optionsTNr‰)Útransform_kwargsr¦©rŠrHs raÚset_persistent_git_optionszGit.set_persistent_git_optionsçs,€ð(= tÔ'<Ð'fÐ'fÐW[Ð'fÐ_eÐ'fÐ'fˆÔ$Ð$Ð$r‚rc 󜕗|dkrœ| d¦«}| d¦«d}ttttttft d„| d¦«dd…D¦«¦«¦«|_dStt|¦«  |¦«dS)Nr¤rËú éc3ó\K—|]'}| ¦«¯t|¦«V—Œ(dSrš)Úisdigitrý)r‘rºs raú z"Git._set_cache_..üs5èè€ÐTÐT ÈÏ Ê É Ì ÐT•c˜!‘f”fÐTÐTÐTÐTÐTÐTr‚ú.é) rGror)r'rýrmr¤rCr=Ú _set_cache_)rŠrÚprocess_versionÚversion_numbersrDs €rarWzGit._set_cache_ôs¹ø€Ø �?Ò "Ð "à"×0Ò0°Ñ;Ô;ˆOØ-×3Ò3°CÑ8Ô8¸Ô;ˆOå!%Ý•c�3¥¥SÐ(Ô)ÝÐTÐT o×&;Ò&;¸CÑ&@Ô&@ÀÀ!ÀÔ&DÐTÑTÔTÑTÔTñ"ô"ˆDÔ Ð Ð õ •#�tÑ Ô × (Ò (¨Ñ .Ô .Ð .Ð .Ð .r‚có—|jS)z(:return: Git directory we are working on)r¡rªs rarAzGit.working_dirs €ðÔ Ð r‚úTuple[int, int, int, int]có—|jS)zà :return: tuple(int, int, int, int) tuple with integers representing the major, minor and additional version numbers as parsed from git version. This value is generated on demand and is cached)r¤rªs raÚ version_infozGit.version_infos €ð Ô!Ð!r‚ÚcommandúUnion[str, Sequence[Any]]r3ú Literal[True]ú'AutoInterrupt'có—dSršr‰)rŠr^r3s raÚexecutez Git.executeó€à ˆr‚)r3r8ú Union[str, Tuple[int, str, str]]có—dSršr‰©rŠr^r3r8s rarcz Git.executeó €ð ˆr‚)r3r8ú$Union[bytes, Tuple[int, bytes, str]]có—dSršr‰rgs rarcz Git.executerhr‚r;có—dSršr‰©rŠr^r;r3r8s rarcz Git.execute'ó €ð ˆr‚rXcó—dSršr‰rls rarcz Git.execute2rmr‚Tr2úUnion[None, BinaryIO]r7r5r9rHr4r:r1r0úUnion[None, Mapping[str, str]]r6rýr<Úsubprocess_kwargsúDUnion[str, bytes, Tuple[int, Union[str, bytes], str], AutoInterrupt]c óœ ‡‡ —t|¦«}|jr:|jdks|r-t d |¦«¦« |jpt j¦«}t jt|¦«t j ¦«sd}n#t$rd}YnwxYw| }t j   ¦«} d| d<d| d<|  |j¦«|�|  |¦«t rt"}|�t%|d¦«‚nt}| rt&n/t)t*dd¦«pt-t jd ¦«}d }|rd }t d ||| | |¦« t3|f| |d |pt4t&|| dur| p|jt8| t:dœ |¤Ž}t=t>|j ¦«|_ t=t>|j!¦«|_!n#|$r}tE||¦«|‚d}~wwxYw|r| #||¦«Sd ˆ fd„ }|�0tIj%¦«Š tIj&|||j'f¬¦«}d}d}d}| rdnd} ‰€Õ|�| (¦«| )¦«\}}|�^| *¦«‰  +¦«r6dd |¦«|fz}| s| ,tZ¦«}| .|¦«r |r |dd …}| .|¦«r |dd …}|j/}n‘| r| dkr| n t`j1} te|j ‰| ¦«|j  3¦«}|j! 3¦«}| .|¦«r |dd …}| 4¦«}|j  5¦«|j! 5¦«n7#|j  5¦«|j! 5¦«wxYw|jdkr—d |¦«}d!ˆfd„ }|r5t d||||¦«tm|¦«¦«nE|r't d||||¦«¦«nt d||¦«|r|dkrt%||||¦«‚to|tp¦«r|rtm|¦«}|r||tm|¦«fS|S)"aÒHandles executing the command on the shell and consumes and returns the returned information (stdout) :param command: The command argument list to execute. It should be a string, or a sequence of program arguments. The program to execute is the first item in the args sequence or string. :param istream: Standard input filehandle passed to subprocess.Popen. :param with_extended_output: Whether to return a (status, stdout, stderr) tuple. :param with_exceptions: Whether to raise an exception when git returns a non-zero status. :param as_process: Whether to return the created process instance directly from which streams can be read on demand. This will render with_extended_output and with_exceptions ineffective - the caller will have to deal with the details himself. It is important to note that the process will be placed into an AutoInterrupt wrapper that will interrupt the process once it goes out of scope. If you use the command in iterators, you should pass the whole process instance instead of a single stream. :param output_stream: If set to a file-like object, data produced by the git command will be output to the given stream directly. This feature only has any effect if as_process is False. Processes will always be created with a pipe due to issues with subprocess. This merely is a workaround as data will be copied from the output pipe to the given output stream directly. Judging from the implementation, you shouldn't use this flag ! :param stdout_as_string: if False, the commands standard output will be bytes. Otherwise, it will be decoded into a string using the default encoding (usually utf-8). The latter can fail, if the output contains binary data. :param env: A dictionary of environment variables to be passed to `subprocess.Popen`. :param max_chunk_size: Maximum number of bytes in one chunk of data passed to the output_stream in one invocation of write() method. If the given number is not positive then the default value is used. :param subprocess_kwargs: Keyword arguments to be passed to subprocess.Popen. Please note that some of the valid kwargs are already set by this method, the ones you specify may not be the same ones. :param with_stdout: If True, default True, we open stdout on the created process :param universal_newlines: if True, pipes will be opened as text, and lines are split at all known line endings. :param shell: Whether to invoke commands through a shell (see `Popen(..., shell=True)`). It overrides :attr:`USE_SHELL` if it is not `None`. :param kill_after_timeout: To specify a timeout in seconds for the git command, after which the process should be killed. This will have no effect if as_process is set to True. It is set to None by default and will let the process run until the timeout is explicitly specified. This feature is not supported on Windows. It's also worth noting that kill_after_timeout uses SIGKILL, which can have negative side effects on a repository. For example, stale locks in case of git gc could render the repository incapable of accepting changes until the lock is manually removed. :param strip_newline_in_stdout: Whether to strip the trailing ``\n`` of the command stdout. :return: * str(output) if extended_output = False (Default) * tuple(int(status), str(stdout), str(stderr)) if extended_output = True if output_stream is True, the stdout value will be your output stream: * output_stream if extended_output = False * tuple(int(status), output_stream, str(stderr)) if extended_output = True Note git is executed with LC_MESSAGES="C" to ensure consistent output regardless of system language. :raise GitCommandError: :note: If you add additional keyword arguments to the signature of this method, you must update the execute_kwargs tuple housed in this module.ÚfullrPNÚCÚLANGUAGEÚLC_ALLz9"kill_after_timeout" feature is not supported on Windows.rÚwbrJzz>Popen(%s, cwd=%s, universal_newlines=%s, shell=%s, istream=%s)r+) r0ÚcwdÚbufsizerrhrgr1Ú close_fdsr:Ú creationflagsr rýrIcó|•—tddt|¦«gtt¬¦«}g}|j�|jD]w}t | ¦«¦«dkrP| ¦«d}| ¦«r"| t|¦«¦«Œx ttdtj ¦«}tj||¦«|D](} tj||¦«Œ#t$rYŒ%wxYw‰ ¦«n#t$rYnwxYwdS)z"Callback method to kill a process.Úpsz--ppid)rgr|NrÚSIGKILL)rrOrÚPROC_CREATIONFLAGSrgr.rorSrprýrlÚsignalÚSIGTERMrÄrrÚset)r ÚpÚ child_pidsr^Ú local_pidÚsigÚ child_pidÚ kill_checks €raÚ _kill_processz"Git.execute.._kill_processòsXø€åØ�x¥ S¡¤Ð*ÝÝ0ðñôˆAð ˆJØŒxÐ#ØœHð>ð>�Dݘ4Ÿ:š:™<œ<Ñ(Ô(¨1Ò,Ð,Ø%)§Z¢Z¡\¤\°1Ô$5˜ Ø$×,Ò,Ñ.Ô.ð>Ø&×-Ò-­c°)©n¬nÑ=Ô=Ð=øð å�f iµ´Ñ@Ô@�Ý”˜˜SÑ!Ô!Ð!Ø!+ðð�IðÝœ  ¨3Ñ/Ô/Ð/Ð/øÝ"ðððØ˜ðøøøà—’Ñ Ô Ð Ð øÝð ð ð ð�ð øøøð ˆFs6Â79D,Ã1DÄD,Ä DÄD,ÄDÄD,Ä, D9Ä8D9)rerr‚ú ó z6Timeout: the command "%s" did not complete in %d secs.Ú stdout_valueúUnion[bytes, str]rOcó,•—‰ rt|¦«pdS)Nz)r )r�r5s €raÚas_textzGit.execute..as_textAsø€Ø(Ð(ÐF­[¸Ñ-FÔ-FÐ[ÐJ[Ð[r‚z$%s -> %d; stdout: '%s'; stderr: '%s'z%s -> %d; stdout: '%s'z%s -> %d)r rýrIrJ)r�rŽrIrO)9rr¯r[rrur¡rÄÚgetcwdÚaccessrOÚX_OKÚFileNotFoundErrorrÇÚcopyÚupdater§rrrrrlÚ subprocessÚopenÚdevnullrrrÚ USE_SHELLr r€r)rrgrhrrwrqÚEventÚTimerr rtÚ communicateÚcancelÚis_setrzr ÚendswithÚ returncodeÚioÚDEFAULT_BUFFER_SIZErrr r]r rWrX)!rŠr^r2r;r7r3r5r8r9r4r:r1r0r6r<rqÚredacted_commandryÚ inline_envÚcmd_not_found_exceptionÚ stdout_sinkÚ istream_okrcrÕrŠÚwatchdogrür�Ú stderr_valueÚnewlineÚcmdstrr�r‰s! ` @rarcz Git.execute=s#øø€õV6°gÑ>Ô>ÐØ Ô ð 1 dÔ&;¸vÒ&EÐ&EÈÐ&EÝ �HŠH�S—X’XÐ.Ñ/Ô/Ñ 0Ô 0Ð 0ð ØÔ#Ð2¥r¤y¡{¤{ˆCÝ”9�S ™XœX¥r¤wÑ/Ô/ð Ø�øøÝ ð ð ð ØˆCˆCˆCð øøøðˆ ÝŒj�oŠoÑԈ𠈈J‰ØˆˆH‰ Ø � Š �4Ô$Ñ%Ô%Ð%Ø Ð !Ø �JŠJ�zÑ "Ô "Ð "å ð 8Ý&-Ð #Ø!Ð-Ý%Ø$ØOñôðð.õ '8Ð #ð*Ðm•d�d­wµzÀ9ÈdÑ/SÔ/SÐ/mÕW[Õ\^Ô\fÐhlÑWmÔWmˆ ؈ Ø ð *Ø)ˆJÝ � Š Ø LØ Ø Ø Ø Ø ñ  ô ð ð 6ÝØð àØØØÐ(¥ÝØ"Ø 4Ð'Ð1¨EÐC°T´^Ý"Ø#5Ý0ð ð ð$ð ð ˆDõ&�x¨¬Ñ5Ô5ˆDŒKÝ�x¨¬Ñ5Ô5ˆDŒKˆKøð 'ð Eð Eð EÝ$Ð%5°sÑ;Ô;ÀÐ Døøøøð Eøøøð ð 5Ø×%Ò% d¨GÑ4Ô4Ð 4ð ð ð ð ð ð ð@ Ð )Ý"œÑ*Ô*ˆJÝ ”Ð'9¸=ÐPTÔPXÈ{Ð[Ñ[Ô[ˆHðˆØ*-ˆ Ø*-ˆ Ø,Ð7�$�$°%ˆð! ØÐ$Ø%Ð1Ø—N’NÑ$Ô$Ð$Ø-1×-=Ò-=Ñ-?Ô-?Ñ*� ˜lØ%Ð1Ø—O’OÑ%Ô%Ð%Ø!×(Ò(Ñ*Ô*ðGØ'bØŸHšHÐ%5Ñ6Ô6Ø.ðfñ(˜ ð 2ðGØ+7×+>Ò+>½vÑ+FÔ+F˜Là×(Ò(¨Ñ1Ô1ð5Ð6Mð5Ø#/°°°Ô#4�LØ×(Ò(¨Ñ1Ô1ð5Ø#/°°°Ô#4�Làœ��à3AÐ!tÀnÐWXÒFXÐFX  Õ^`Ô^t�ݘDœK¨¸ÑGÔGÐGØ#œ{×/Ò/Ñ1Ô1� Ø#œ{×/Ò/Ñ1Ô1� à×(Ò(¨Ñ1Ô1ð5Ø#/°°°Ô#4�LØŸš™œ�ð ŒK× Ò Ñ Ô Ð Ø ŒK× Ò Ñ Ô Ð Ð øð ŒK× Ò Ñ Ô Ð Ø ŒK× Ò Ñ Ô Ð Ð øøøà Ô  FÒ *Ð *Ø—X’XÐ.Ñ/Ô/ˆFð \ð \ð \ð \ð \ð \ð ð 5Ý—’Ø:ØØØ�G˜LÑ)Ô)Ý  Ñ-Ô-ñ ôðððð 5Ý—’Ð1°6¸6À7À7È<ÑCXÔCXÑYÔYÐYÐYå—’˜ V¨VÑ4Ô4Ð4ð ð X˜v¨š{˜{Ý!Ð"2°F¸LÈ,ÑWÔWÐ Wå �l¥EÑ *Ô *ð 5Ð/?ð 5Ý& |Ñ4Ô4ˆLð ð Ø˜L­+°lÑ*CÔ*CÐDÐ DàÐ s8ÁAB B,Â+B,Æ9H È H$ÈHÈH$ÊE(PÐ4QúDict[str, str]có—|jSrš)r§rªs raÚ environmentzGit.environment`s €ØÔ Ð r‚úDict[str, Union[str, None]]c óÔ—i}| ¦«D]P\}}|�(|j |¦«||<||j|<Œ/||jvr|j|||<|j|=ŒQ|S)aÒ Set environment variables for future git invocations. Return all changed values in a format that can be passed back into this function to revert the changes: ``Examples``:: old_env = self.update_environment(PWD='/tmp') self.update_environment(**old_env) :param kwargs: environment variables to use for git processes :return: dict that maps environment variables to their old values )r›r§rÈ)rŠrHÚold_envÚkeyÚvalues raÚupdate_environmentzGit.update_environmentcs„€ðˆØ Ÿ,š,™.œ.ð +ð +‰JˆC�àÐ Ø#Ô0×4Ò4°SÑ9Ô9�˜‘ Ø).�Ô! #Ñ&Ð&à˜Ô)Ð)Ð)Ø#Ô0°Ô5�˜‘ ØÔ% cÐ*øØˆr‚úIterator[None]c+ólK—|jdi|¤Ž} dV—|jdi|¤ŽdS#|jdi|¤ŽwxYw)a[ A context manager around the above ``update_environment`` method to restore the environment back to its previous state after operation. ``Examples``:: with self.custom_environment(GIT_SSH='/bin/ssh_wrapper'): repo.remotes.origin.fetch() :param kwargs: see update_environment Nr‰)rµ)rŠrHr²s raÚcustom_environmentzGit.custom_environment}smèè€ð*�$Ô)Ð3Ð3¨FÐ3Ð3ˆð /Ø ˆEˆEˆEà #ˆDÔ #Ð .Ð . gÐ .Ð .Ð .Ð .Ð .øÐ #ˆDÔ #Ð .Ð . gÐ .Ð .Ð .Ð .øøøs‘$¤3r´rKcóØ—t|¦«dkr#|durd|zgS|dvr|r d|zd|zgSd|›|›�gSn3|durdt|¦«zgS|dur|�d t|¦«›d |›�gSgS) NrTz-%s)FNz%sr†z--%sFz--ú=)r.rˆ)rŠrNr´rKs raÚtransform_kwargzGit.transform_kwarg�s»€Ý ˆt‰9Œ9˜Š>ˆ>ؘˆ}ˆ}Ø ™ �~Ð%ؘmÐ+Ð+Ø,ð5Ø! D™L¨$°©,Ð7Ð7ð5ð(, t¨U¨UÐ3Ð4Ð4ð ,𠘈}ˆ}Ø¥¨¡¤Ñ.Ð/Ð/ؘeÐ#Ð#¨Ð(9Ð(9Ý%,¨T¡]¤] ] ]°E°EÐ:Ð;Ð;؈ r‚c óê—g}| ¦«D][\}}t|ttf¦«r |D]}|| |||¦«z }ŒŒA|| |||¦«z }Œ\|S)z=Transforms Python style kwargs into git command line options.)r›rWrnrmr»)rŠrKrHrer�ržr´s rarLzGit.transform_kwargs s—€àˆØ—L’L‘N”Nð Nð N‰DˆAˆqݘ!�d¥E˜]Ñ+Ô+ð NØðVðV�EؘD×0Ò0°°EÐ;TÑUÔUÑU�D�DðVð˜×,Ò,¨Q°Ð3LÑMÔMÑM��؈ r‚Úarg_listr�cóâ—g}t|ttf¦«r.|D]*}| | |¦«¦«Œ+n"| t |¦«¦«|Srš)rWrnrmÚextendÚ _unpack_argsrprO)rÑr½ÚoutlistÚargs rarÀzGit._unpack_args«su€ðˆÝ �h¥¥u  Ñ .Ô .ð *Øð 6ð 6�Ø—’˜s×/Ò/°Ñ4Ô4Ñ5Ô5Ð5Ð5ð 6ð �NŠN�3˜x™=œ=Ñ )Ô )Ð )àˆr‚ú'Git'c ó.—|jdddi|¤Ž|_|S)anSpecify command line options to the git executable for a subcommand call :param kwargs: is a dict of keyword arguments. these arguments are passed as in _call_process but will be passed to the git command rather than the subcommand. ``Examples``:: git(work_tree='/tmp').difftool()rKTr‰)rLr¥rMs raÚ__call__z Git.__call__·s*€ð2˜DÔ1Ð[Ð[ÈDÐ[ÐTZÐ[Ð[ˆÔ؈ r‚Úmethodrecó—dSršr‰©rŠrÆrerHs rarGzGit._call_processÆrdr‚ú'Git.AutoInterrupt'có—dSršr‰)rŠrÆr2r3rerHs rarGzGit._call_processÊrmr‚úJUnion[str, bytes, Tuple[int, Union[str, bytes], str], 'Git.AutoInterrupt']có—dSršr‰rÈs rarGzGit._call_processÕs €ð ˆr‚c óÌ—d„| ¦«D¦«}d„| ¦«D¦«}| dd¦«}|jd i|¤Ž}| d„|D¦«¦«}|€||z} nk | |¦«} n6#t $r)} t d|›dt |¦«›d�¦«| ‚d} ~ wwxYw|d| d z…|z|| d zd…z} |jg} | j|j ¦«| j|j ¦«d |_ | j t|¦«¦«| j| ¦«|j | fi|¤ŽS) a´Run the given git command with the specified arguments and return the result as a String :param method: is the command. Contained "_" characters will be converted to dashes, such as in 'ls_files' to call 'ls-files'. :param args: is the list of arguments. If None is included, it will be pruned. This allows your commands to call git more conveniently as None is realized as non-existent :param kwargs: It contains key-values for the following: - the :meth:`execute()` kwds, as listed in :var:`execute_kwargs`; - "command options" to be converted by :meth:`transform_kwargs()`; - the `'insert_kwargs_after'` key which its value must match one of ``*args`` and any cmd-options will be appended after the matched arg. Examples:: git.rev_list('master', max_count=10, header=True) turns into:: git rev-list max-count 10 --header master :return: Same as ``execute`` if no args given used execute default (esp. as_process = False, stdout_as_string = True) and return strcó,—i|]\}}|tv¯||“ŒSr‰©Úexecute_kwargs©r‘r�ržs rar“z%Git._call_process..þs(€ÐNÐNÐN¡  1¸!½~Ð:MÐ:M�q˜!Ð:MÐ:MÐ:Mr‚có,—i|]\}}|tv¯||“ŒSr‰rÏrÑs rar“z%Git._call_process..ÿs(€ÐRÐRÐR¡  1¸!Å>Ð:QÐ:Q�q˜!Ð:QÐ:QÐ:Qr‚Úinsert_kwargs_afterNcó—g|]}|®|‘ŒSršr‰)r‘Úas rarôz%Git._call_process..s€Ð%GÐ%GÐ%G¨A¸¸ a¸¸¸r‚zCouldn't find argument 'z ' in args z to insert cmd options afterrr‰)r›ÚpoprLrÀÚindexrrOr°r¿r¦r¥rprˆrc) rŠrÆrerHÚ exec_kwargsÚ opts_kwargsÚinsert_after_this_argÚopt_argsÚext_argsÚ args_listr×rÕrs rarGzGit._call_processÛs¼€ðFOÐN¨¯ ª ©¬ÐNÑNÔNˆ ØRÐR¨¯ ª ©¬ÐRÑRÔRˆ à +§¢Ð0EÀtÑ LÔ LÐð)�4Ô(Ð7Ð7¨;Ð7Ð7ˆØ×$Ò$Ð%GÐ%G°Ð%GÑ%GÔ%GÑHÔHˆà Ð (Ø  8Ñ+ˆIˆIð Ø ŸšÐ'<Ñ=Ô=��øÝð ð ð Ý �jà,Ð,Ð,­c°(©m¬m¨m¨mð=ñôððøøøøð øøøð !  5¨1¡9 Ô-°Ñ8¸8ÀEÈAÁIÀKÀKÔ;PÑPˆIðÔ.Ð/ˆð ˆŒ �DÔ0Ñ1Ô1Ð1𠈌 �DÔ%Ñ&Ô&Ð&؈ÔàˆŒ •G˜F‘O”OÑ$Ô$Ð$؈Œ �IÑÔÐàˆtŒ|˜DÐ0Ð0 KÐ0Ð0Ð0sÂB CÂ($C à CÚ header_lineúTuple[str, str, int]có”—| ¦«}t|¦«dkrS|s$td| ¦«z¦«‚td|d›d| ¦«›�¦«‚t|d¦«dkrtd|z¦«‚|d|dt |d ¦«fS) zò :param header_line: type_string size_as_int :return: (hex_sha, type_string, size_as_int) :raise ValueError: if the header contains indication for an error due to incorrect input shaéz+SHA could not be resolved, git returned: %rzSHA rz& could not be resolved, git returned: é(zFailed to parse header: %rrrQ)ror.rÚstriprý)rŠrÞÚtokenss raÚ_parse_object_headerzGit._parse_object_header%sÌ€ð×"Ò"Ñ$Ô$ˆÝ ˆv‰;Œ;˜!Ò Ð Øð vÝ Ð!NÐR]×RcÒRcÑReÔReÑ!fÑgÔgÐgå �jÐU[Ð\]ÔU^ÐU^ÐU^Ð`k×`qÒ`qÑ`sÔ`sÐ`sÐ!tÑuÔuÐuõ ˆv�aŒy‰>Œ>˜RÒ Ð ÝÐ9¸KÑGÑHÔHÐ HØ�q” ˜6 !œ9¥c¨&°¬)¡n¤nÐ5Ð5r‚Úrefrcó—t|t¦«r| d¦«}n't|t¦«st|¦«}n|}| d¦«s|dz }| t ¦«S)NÚasciir‹)rWrXrYrOr rzr )rŠræÚrefstrs raÚ _prepare_refzGit._prepare_ref;sz€å �c�5Ñ !Ô !ð àŸ*š* WÑ-Ô-ˆFˆFݘC¥Ñ%Ô%ð ݘ‘X”XˆFˆFàˆFà�Š˜tÑ$Ô$ð Ø �d‰NˆFØ�}Š}�VÑ$Ô$Ð$r‚Ú attr_nameÚcmd_namecóЗt||¦«}|�|Stddœ}| |¦«|j|g|¢Ri|¤Ž}t |||¦«t d|¦«}|S)NT)r2r3rd)rlrr–rGrœr))rŠrërìrerHÚcur_valrîÚcmds raÚ_get_persistent_cmdzGit._get_persistent_cmdIs„€Ý˜$  Ñ*Ô*ˆØ Р؈Nå"°$Ð7Ð7ˆØ�Š�vÑÔÐà ˆdÔ  Ð<¨DÐ<Ð<Ð<°GÐ<Ð<ˆÝ��i Ñ%Ô%Ð%ÝÐ&¨Ñ,Ô,ˆØˆ r‚rïcó —|jry|jrr|j | |¦«¦«|j ¦«| |j ¦«¦«Std¦«‚)Nzcmd stdin was empty)rrgÚwriterêÚflushrår2r)rŠrïræs raÚ__get_object_headerzGit.__get_object_headerVsz€Ø Œ9ð 4˜œð 4Ø ŒI�OŠO˜D×-Ò-¨cÑ2Ô2Ñ 3Ô 3Ð 3Ø ŒI�OŠOÑ Ô Ð Ø×,Ò,¨S¬Z×-@Ò-@Ñ-BÔ-BÑCÔCÐ CåÐ2Ñ3Ô3Ð 3r‚có^—| ddd¬¦«}| ||¦«S)a#Use this method to quickly examine the type and size of the object behind the given ref. :note: The method will only suffer from the costs of command invocation once and reuses the command in subsequent calls. :return: (hexsha, type_string, size_as_int)r£Úcat_fileT)Ú batch_check)rðÚ_Git__get_object_header)rŠrærïs raÚget_object_headerzGit.get_object_header^s6€ð×&Ò&Ð'8¸*ÐRVÐ&ÑWÔWˆØ×'Ò'¨¨SÑ1Ô1Ð1r‚úTuple[str, str, int, bytes]cón—| |¦«\}}}}| |¦«}~||||fS)z•As get_object_header, but returns object data as well :return: (hexsha, type_string, size_as_int, data_string) :note: not threadsafe)Ústream_object_datar)rŠræÚhexshaÚtypenamer(rPrs raÚget_object_datazGit.get_object_dataisC€ð *.×)@Ò)@ÀÑ)EÔ)EÑ&ˆ�˜$ Ø�{Š{˜4Ñ Ô ˆØ ؘ $¨Ð-Ð-r‚ú0Tuple[str, str, int, 'Git.CatFileContentStream']cóÜ—| ddd¬¦«}| ||¦«\}}}|j�|jntj¦«}|||| ||¦«fS)zãAs get_object_header, but returns the data as a stream :return: (hexsha, type_string, size_as_int, stream) :note: This method is not threadsafe, you need one independent Command instance per thread to be safe !r¢röT)Úbatch)rðrørgr¢ÚBytesIOr@)rŠrærïrýrþr(Ú cmd_stdouts rarüzGit.stream_object_datassq€ð ×&Ò& ~°zÈÐ&ÑNÔNˆØ!%×!9Ò!9¸#¸sÑ!CÔ!Cш�˜$Ø#&¤:Ð#9�S”Z�Z½r¼z¹|¼|ˆ ؘ $¨×(AÒ(AÀ$È Ñ(SÔ(SÐTÐTr‚cóp—|j|jfD]}|r| ¦«Œd|_d|_|S)z‹Clear all kinds of internal caches to release resources. Currently persistent commands will be interrupted. :return: selfN)r¢r£r )rŠrïs raÚ clear_cachezGit.clear_cache}sI€ð Ô% tÔ';Ð<ð ð ˆCØð Ø— ’ ‘ ” � øà ˆÔØ#ˆÔ؈ r‚)rIrŽ)r–rŽrIrJrš)r²r³rIrG)rIrG).)rÚrOrÙrÛrIrO)rÚrOrÙràrIrO)rÚrOrÙràrIr+)rÚrOrIrJ)rîrMrïrMrIrJ)rAr³)rNrOrIr)rHrrIrJ)rrOrIrJ)rIr³)rIr[)r^r_r3r`rIra)r^r_r3rÛr8r`rIre)r^r_r3rÛr8rÛrIri) r^r_r;rÛr3rÛr8r`rIrO) r^r_r;rÛr3rÛr8rÛrIrX) r^r_r2ror;rGr7rGr3rGr5ror8rGr9rHr4rGr:rGr1ràr0rpr6rýr<rGrqrrIrr)rIr­)rHrrIr°)rHrrIr¶)rNrOr´rrKrGrIrM)T)rKrGrHrrIrM)r½r�rIrM)rHrrIrÃ)rÆrOrerJrHrJrIrO) rÆrOr2rýr3r`rerrHrrIrÉ)rÆrOrerrHrrIrË)rÞrOrIrß)rærrIrX) rërOrìrOrerrHrrIrÉ)rïrÉrærrIrß)rærOrIrß)rærOrIrú)rærOrIr)rIrÃ):rrr r!r”r©ÚreÚcompilerér«r­rÊrÄrÇrÈr¯ršrÉrÍr°Ú classmethodr×rÙr*rÞrírùr‹rwr@rrrNrWÚpropertyrAr]rcr¢r£r¯rµrr¸r»rLrÀrÅrGrårêrðrørùrÿrürÚ __classcell__)rDs@rar=r=ís¨ø€€€€€ð ð ð€IðF€Jà#˜œ JÑ/Ô/Ðð<ð<ð<ð<ðPðPðPðPð €Mð”z—~’~Ð&8¸%Ñ@Ô@Ðð €Ið4ÐØ+ÐØ $ÐððAðAðAðAñ„[ðAðFð<ð<ð<ñ„[ð<ðØð ð ð ð ñ„[ñ„Xð ðØð ð ð ð ñ„[ñ„Xð ðððððñ„[ðð&ðððñ„[ðð(ðððñ„[ðð(gðgðgðgðg˜ñgôgðgðVf2ðf2ðf2ðf2ðf2˜vñf2ôf2ðf2ðR3ð3ð3ð3ð3ð3ð3ð(QðQðQðQð gð gð gð gð /ð /ð /ð /ð /ð /ðð!ð!ð!ñ„Xð!ðð"ð"ð"ñ„Xð"ðð ð ð ñ„Xð ðð &+ð  ð ð ð ð ñ„Xð ðð &+Ø+0ð  ð ð ð ð ñ„Xð ðð ð ð ñ„Xð ðð ð ð ñ„Xð ð*.Ø%*Ø $Ø Ø/3Ø!%Ø15Ø Ø#(Ø#'Ø.2Ø Ô4Ø(,ða ða ða ða ða ðF !ð!ð!ð!ððððð4ð/ð/ð/ñ„^ð/ð$ðððð ð ð ð ð ðð ð ð ñ„[ð ð ð ð ð ðð ð ð ñ„Xð ðð ð ð ñ„Xð ðð ð ð ñ„Xð ð H1ðH1ðH1ðH1ðT6ð6ð6ð6ð, %ð %ð %ð %ð ð ð ð ð4ð4ð4ð4ð 2ð 2ð 2ð 2ð.ð.ð.ð.ðUðUðUðUð ð ð ð ð ð ð ð r‚r=)NTN)r>r?r@rArBrCrDrErFrGr9rHrIrJ)rƒrOrIrO)r‰)rŠr‹rŒr�rIrŽ)rŠr‹r–r—r˜r�rIrJ)NÚ __future__rrÚ contextlibrr¢ÚloggingrÄr�r—rrrrrqÚtextwrapr Ú git.compatr r r r rÚgit.excrÚgit.utilrrrrÚexcrrrrÚutilrrÚtypingrrrrrr r!r"r#r$r%r&r'r(r)r*Ú git.typesr+r,r-Ú git.repo.baser.Úgit.diffr/rÐÚ getLoggerrr[Ú addHandlerÚ NullHandlerÚ__all__r�rˆr•rŸÚCREATE_NO_WINDOWÚCREATE_NEW_PROCESS_GROUPr€r=r‰r‚raúrs“ðð #Ð"Ð"Ð"Ð"Ð"Ø € € € Ø%Ð%Ð%Ð%Ð%Ð%Ø € € € Ø€€€Ø € € € Ø € € € Ø1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ØÐÐÐØÐÐÐØÐÐÐÐÐððððððððððððððð!Ð Ð Ð Ð Ð ØTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTà\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\ððððððððððððððððððððððððððððððððððððððððððððð&-Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,àð#Ø"Ð"Ð"Ð"Ð"Ð"Ø"Ð"Ð"Ð"Ð"Ð"ð ðð€ð €gÔ˜Ñ!Ô!€Ø‡‚Ð"ˆwÔ"Ñ$Ô$Ñ%Ô%Ð%à €ð&^bØØ-1ðqðqðqðqðqðh$ð$ð$ð$ðMðMðMðMðMððððððÐð ?EÐKÐ�zÔ:Ñ:Ð:È!ðð \ð\ð\ð\ð\ˆ)ñ\ô\ð\ð\ð\r‚