0iATddlmZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl m Z ddl mZddlZddlmZddlmZddlmZdd lmZdd lmZej6d Zej:ej<ej>Z d Z!ge!d Z"dsdZ#dtdZ$dudZ%ddddZ&dvdZ'ejPejRddejTdej<ejVdejXej<gZ-dwdZ.GddeZ/Gdde/Z0Gdd eZ1Gd!d"eZ2dxd$Z3Gd%d&eZ4Gd'd(e4Z5ejRddejVd)ej:ej<e%d*ejTdej<ejTd#ej<ejTd+ej<e5d,ejleejVd-ej<d.ejVd/e d.ejVd0e d1ejVd2ejXe#d3gejVd4ejXe#gejVd5ejXe#gejVd6ejXej<gejVd7ejXej<gejVd8ejnd9ejVd:ejnd9ejVd;ejnd<ejVd=ej<d.ejVd>ej<ejpejVd?ej<d.ejVd@ejnd9e0dgejVdAejnd9Z9ejPe9Z:GdBdCeZ;dydDZ<ejzej|e:ez parse_version..4s.AQs.)tuplesplit)ss r parse_versionr#2s .. ..rct|ttjkDr*tjd|dtjdy)Nzpre-commit version z is required but version z? is installed. Perhaps run `pip install --upgrade pre-commit`.)r#CVERSIONrr)versions rcheck_min_versionr(7sMW aii 88""!'*Cyyk> ?  9rr rr)commitz merge-commitpushc.tj||Sr)_STAGESget)stages rtransform_stager/Gs ;;ue $$rHookidstagesrepoc  tjtjj |t j ttt}i}|D]'}|jddD]}|tvs d||<)|rBtjd|ddj |dtj|d yy#t$rYywxYw) Nschema load_strategyexc_tpr2Tzrepo `` uses deprecated stage names (, zX) which will be removed in a future version. Hint: often `pre-commit autoupdate --repo zM` will fix this. if it does not -- consider reporting an issue to that repo.)rload_from_filenameospathjoinr% MANIFEST_FILEMINIMAL_MANIFEST_SCHEMAr InvalidManifestErrorr-r,loggerwarningshlexquote)r3 directorymanifest legacy_stageshookr.s rwarn_for_stages_on_repo_initrKTs** GGLLAOO 4*#'  MXXh+E'+ e$, TF -()*99>T9J8KLJ K  sAC CCc:eZdZUded<ded<d dZd dZd dZy) StagesMigrationNoDefaultstrkey Sequence[str]defaultc|j|vrytjd|j5||j}tjtj||Dcgc] }t |}}tjtj t|dddycc}w#1swYyxYwNzAt key: )rOrvalidate_context check_array check_anyr/ check_one_ofSTAGES)selfdctvalvs rcheckzStagesMigrationNoDefault.checkts 883    " "XdhhZ#8 9dhh-C ,D  T^^ ,S 1/23s!?1%sC3 7D  T..v6 7 < : 94 : 9s=C/B>4C>CC c|j|vry||jDcgc] }t|c}||j<ycc}wr)rOr/)rYrZr\s r apply_defaultz&StagesMigrationNoDefault.apply_defaults= 883  58]C]+]CDHH CsActrNotImplementedErrorrYrZs rremove_defaultz'StagesMigrationNoDefault.remove_default!!rNrZzdict[str, Any]returnNone__name__ __module__ __qualname____annotations__r]r_rdr9rrrMrMps H  =D "rrMc eZdZdfd ZxZS)StagesMigrationcp|j|j|jt||yr) setdefaultrOrQsuperr_rYrZ __class__s rr_zStagesMigration.apply_defaults& txx. c"rrf)rjrkrlr_ __classcell__rts@rroros ##rroc0eZdZUded<ddZddZddZy)DeprecatedStagesWarningrNrOc.|j|vry||j}tjtj||Dcgc] }|tvs |}}|r/t j d|dddj|dyycc}w)Nz hook id `r1r:r;i) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this.rOrrUrVr,rCrDr?rYrZr[r.rIs rr]zDeprecatedStagesWarning.checks 883  $((m((-,/DC55G3CC D  NNCI;'IIm,-.NO  Es BBcyrr9rcs rr_z%DeprecatedStagesWarning.apply_default rctrrarcs rrdz&DeprecatedStagesWarning.remove_defaultrerNrfrir9rrrxrx H  "rrxc0eZdZUded<ddZddZddZy)DeprecatedDefaultStagesWarningrNrOc"|j|vry||j}tjtj||Dcgc] }|tvs |}}|r)t j ddj|dyycc}w)Nz8top-level `default_stages` uses deprecated stage names (r;rzr{r|s rr]z$DeprecatedDefaultStagesWarning.checks 883  $((m((-,/DC55G3CC D  NNIIm,-.NO  Es B B cyrr9rcs rr_z,DeprecatedDefaultStagesWarning.apply_defaultr~rctrrarcs rrdz-DeprecatedDefaultStagesWarning.remove_defaultrerNrfrir9rrrrrrrnamec,dddj||S)N unsupportedunsupported_script)systemscript)r-)rs r_translate_languagers&  c$orc:eZdZUded<ded<d dZd dZd dZy) LanguageMigrationrNrOzCallable[[object], None]check_fnc|j|vrytjd|j5|jt ||jdddy#1swYyxYwrS)rOrrTrrrcs rr]zLanguageMigration.checksP 883    " "XdhhZ#8 9 MM-c$((m< =: 9 9s (A##A,cl|j|vryt||j||j<yr)rOrrcs rr_zLanguageMigration.apply_defaults+ 883  +CM:DHH rctrrarcs rrdz LanguageMigration.remove_defaultrerNrfrir9rrrrs H&&>; "rrc eZdZdfd ZxZS)LanguageMigrationRequiredc|j|vr"tjd|jt||y)NzMissing required key: )rOrrrrr]rss rr]zLanguageMigrationRequired.checks8 883 &&)?z'JK K  crrfrjrkrlr]rurvs@rrrs rrminimum_pre_commit_version0entrylanguagealiasfilesexcludez^$typesfiletypes_or exclude_typesadditional_dependenciesargs always_runF fail_fastpass_filenamesT descriptionlanguage_versionlog_filerequire_serialverbosec eZdZy)rBNrjrkrlr9rrrBrB rrBcht|}t|trtdt d|S)N5 unreachable)r isinstancedictr(AssertionError)contentsobjs r_load_manifest_forward_compatrs. H C#t#]++ rr5localmetac eZdZdfd ZxZS)WarnMutableRevct|||j|vrU||j}d|vrAtjd|s*t j d|jd|ddyyyy)Nrz^[a-fA-F0-9]+$The z field of repo r3a appears to be a mutable reference (moving tag / branch). Mutable references are never updated after first install and are not supported. See https://pre-commit.com/#using-the-latest-version-for-a-repository for more details. Hint: `pre-commit autoupdate` often fixes this.)rrr]rOrematchrCrD)rYrZrevrts rr]zWarnMutableRev.check'sw  c 88s?dhh-C#~bhh/@#&F488,oc&k_EFG'G~ rrfrrvs@rrr& rrc eZdZdfd ZxZS)OptionalSensibleRegexAtHookc t||d|j|jdvr5tj d|jd|jdddD]X}||j|jdvs"tj d|jd|jdd |Zy) N/*rrz field in hook r1zJ is a regex, not a glob -- matching '/*' probably isn't what you want herez[\\/]z[\/]z[/\\]z%pre-commit normalizes slashes in the z1 to forward slashes, so you can use / instead of rrr]r-rOrCrDrYrZ fwd_slash_rerts rr]z!OptionalSensibleRegexAtHook.check:s  c 377488R( ( NNtxxl/#''$-1BC  :Lswwtxx44C:rrfrrvs@rrr9rrrc eZdZdfd ZxZS)OptionalSensibleRegexAtTopc<t||d|j|jdvr#tj d|jddD]F}||j|jdvs"tj d|jd|Hy)NrrzThe top-level zP field is a regex, not a glob -- matching '/*' probably isn't what you want hererz3pre-commit normalizes the slashes in the top-level z7 field to forward slashes, so you can use / instead of rrs rr]z OptionalSensibleRegexAtTop.checkMs  c 377488R( ( NN  -BC :Lswwtxx44J|$--9N<:rrfrrvs@rrrLs rrcRtjtjd|S)zthe hook `entry` is passed through `shlex.split()` by the command runner, so to prevent issues with spaces and backslashes (on Windows) it must be quoted here. z -m pre_commit.meta_hooks.)rErFsys executable)modnames r_entryr^s$ kk#..) **DWI NNrcRtjddj|y)Nz#Unexpected key(s) present at root: r;rCrDr?extra orig_keysrZs rwarn_unknown_keys_rootrfs"  NN859I8JKLrc^tjd|dddj|y)NzUnexpected key(s) present on r3z: r;rrs rwarn_unknown_keys_reporns.  NN 'F }Btyy7G6HIrzcheck-hooks-apply)rz#Check hooks apply to the repository^$check_hooks_applyzcheck-useless-excludes)rzCheck for useless excludescheck_useless_excludesidentity)rr)rTceZdZddZy) NotAllowedcd|j|vr"tj|jdy)Nz cannot be overridden)rOrrrcs rr]zNotAllowed.checks/ 88s?&&$((5J'KL L rNrf)rjrkrlr]r9rrrrsMrrc#&K|] \}}| ywrr9)rk_s rrrs/Dedaesrc #K|]8\}}|D].\}}tj|tj|d|0:yw)r1N)rConditionalOptionalrV)rhook_idvaluesrOvalues rrrsG %OGV JC   dnneT7K  L$s>Ac#K|]>}|jdvr*tj|j|jn|@yw)>rrrNrOrOptionalNoDefaultrritems rrrsJ -D 884 4 txx7  -sAAc#K|][}|jdk7rJ|jdk7r;|jdk7r,tj|j|j]yw)r1r2rNrrs rrrsQ,D 88t  88x  88z ! txx7,sA!A# Repositoryhooksr) condition_keycondition_value ensure_absent)r3rrDefaultLanguageVersionc#K|]7}tj|tjtj9ywr)rOptional check_stringr%DEFAULT)rxs rrrs(MndmmAt((!))4ns=?Configreposdefault_install_hook_typesdefault_language_versiondefault_stages) rrrrrrrrcirc eZdZy)InvalidConfigErrorNrr9rrrrrrr)rrNrgrh)r"rNrgztuple[int, ...])r'rNrgrh)r.rNrgrN)r3rNrGrNrgrh)rrNrgrN)rrNrgobject)rrNrgrN)rrPrrPrZzdict[str, str]rgrh)b __future__r functoolsloggingos.pathr=rrErcollections.abcrrtypingrrridentify.identifyrpre_commit.constants constantsr%pre_commit.all_languagesr pre_commit.errorsr pre_commit.yamlr getLoggerrC check_andr check_regexcheck_string_regex HOOK_TYPESrXrr#r(r,r/ArrayMapRequiredrrUrArKrMrorxrrrrrW check_boolrMANIFEST_HOOK_DICTMANIFEST_SCHEMArBrpartialr< load_manifestLOCALMETA Conditionalrrrrrrrescape CONFIG_FILE_metar_COMMON_HOOK_WARNINGSr rVitemsMETA_HOOK_DICTCONFIG_HOOK_DICTLOCAL_HOOK_DICTConditionalRecurseNotInWarnAdditionalKeysCONFIG_REPO_DICTNoAdditionalKeysDEFAULT_LANGUAGE_VERSIONRequiredRecurseOptionalRecurse check_typer CONFIG_SCHEMAr load_configr9rrr4s " $$ & 3(%   < (#T^^D$5$5t7G7GH   !: x  /  &  %%$** DHH dD--. h 0 0 01B1B CRH 8"z"0#.# "j"4"Z"4" "* 1TXX DDMM$t((*;<  DMM$))*DMM&$++,DMM'4,,-j*;$*;*;N*KLDMM'4,,b1DMM'-r2DMM)/6DMM'+4++N;fXFDMM*.d..~>CDMM/#34#3#3N#CRHDMM!#34#3#3D4E4E#FDMM&*$**4+<+<=rBDMM,7DMM+t6DMM"DOOT:DMM-!2!2B7DMM$d&7&7CDMM*d//4DMM"DOOU;Hb!DMM)T__e4E#H$**/0 : " !! /     T%%&$"8"8&!7!7$OMM MM M    ; )"))AMM2315 6 f01 2  ! 2 )"))AMM2315 6 f56 7#    fZ( )  2M''M ):):; 4+<+<=H%  DDMM$))*DMM$)))%/De/D*DEFDMM%D%%}o6 w' %  ',, !014488 DDMM$))*&,, Xr*!"j"3$"3"3N"CD#$%($(( D  488&DMM&$++,D,-  5$'DO,DN+  t  " 5$/  D46LM14$488dD.)NnM  dDMM$t((*;<  D*$**-=">?DMM$***:67  D"$