]/\% dZddlZddlZddlZddlZddlZddlZddlmZddlm Z ddlm Z ddlm Z ddlm Z ddlm Z dd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZejeZejdejZedZdddZ GddeZ!GddeZ"GddeZ#GddeZ$GddeZ%dej&d e'd!ee'd"e e'fd#Z(dej&d$e'd%ee'd&ee'd"e%f d'Z)d(e ej*d)e'd*e'd"e e!ddffd+Z+d"e e!ddffd,Z,dej&d"e e!ddffd-Z-d.e e!d/e e'd"dfd0Z.dej&d1e%d"e e!fd2Z/d3ed"e e'e0ffd4Z1d5e!d"e"fd6Z2d.e e!d1e%d"e e"fd7Z3d.e e"d1e%d"e$fd8Z4d.e e!d1e%d"e$fd9Z5dS):z1Functions related to finding and loading plugins.N)Any)Dict) FrozenSet) Generator)Iterable)List) NamedTuple)Optional)Tuple)utils)importlib_metadata)ExecutionError)FailedToLoadPluginz^[A-Z]{1,3}[0-9]{0,3}$)zflake8.extension flake8.reportz5.0z3.7)z flake8-colorszflake8-per-file-ignoresc<eZdZUdZeed<eed<ejed<dS)PluginzA plugin before loading.packageversion entry_pointN)__name__ __module__ __qualname____doc__str__annotations__r EntryPoint/srv/buildsys-work-dir/castor/build_node/builder-2/WGSG1/unpkd_srcs/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/flake8/plugins/finder.pyrr#s9"" LLL LLL#......rrczeZdZUdZeed<eed<eee fed<e defdZ e defdZ dS) LoadedPluginz)Represents a plugin after being imported.pluginobj parametersreturnc$|jjjS)z0Return the name given in the packaging metadata.)r"rnameselfs r entry_namezLoadedPlugin.entry_name2s{&++rc0|jjd|jdS)z8Return the name for use in user-facing / error messages.[])r"rr*r(s r display_namezLoadedPlugin.display_name7s"+%::::::rN) rrrrrrrrrboolpropertyr*r.rrrr!r!+s33 NNN HHHS$Y ,C,,,X,;c;;;X;;;rr!cVeZdZUdZeeed<eeed<eeed<dS)Checkersz'Classified plugins needed for checking.tree logical_line physical_lineN)rrrrrr!rrrrr2r2=sK11 | |$$$$ %%%%%%rr2cxeZdZUdZeed<eeefed<e eed<de eddffdZ defdZ dS) PluginszClassified plugins.checkers reportersdisabledr%Nc#K|jjEd{V|jjEd{V|jjEd{V|jEd{VdS)z3Return an iterator over all :class:`LoadedPlugin`s.N)r8r3r4r5r9valuesr(s r all_pluginszPlugins.all_pluginsLs=%%%%%%%%=--------=........>((***********rc~dtd|DS)z0Return a user-displayed list of plugin versions., c`h|]+}|jjdv|jjd|jj,S)>localflake8z: )r"rr).0loadeds r z'Plugins.versions_str..WsK},4GGG},GG 0EGGGGGr)joinsortedr=r(s r versions_strzPlugins.versions_strSsMyy "&"2"2"4"4     r) rrrrr2rrrr!rrr=rHrrrr7r7EsC%&&&&<    +Y|T4'?@++++  c       rr7creZdZUdZeedfed<eeed<eeed<ed dZ dS) PluginOptionsz"Options related to plugin loading..local_plugin_pathsenable_extensionsrequire_pluginsr%cN|dttS)z2Make a blank PluginOptions, mostly used for tests.rrKrLrM) frozenset)clss rblankzPluginOptions.blankgs.s!'kk%KK    rN)r%rJ) rrrrr rrr classmethodrRrrrrJrJ`sn,,c3h''' ~%%%s^###   [   rrJcfg cfg_opt_nameoptr%c|tj|S||ddfD]2}|d|d}|tj|cS3gS)N_-rBfallback)r parse_comma_separated_listreplaceget)rTrUrVopt_namevals r _parse_optionraqs  /444&|';';C'E'EF  H''(Ht'<>v. i0H"MM M M M M W__  (*:9*Er    w++ + + + +,,rc#8Kt}tjD]}|j}t d|Ds#|j}|d|vr5||d|dtvr4t d|dt|d|ddkr$t||d|dEd{V|D]/}|j tvrt|d|d|V0dS)Nc32K|]}|jtvVdS)N)rtru)rCrxs r z*_find_importlib_plugins..s);;28},;;;;;;rr'z#%s plugin is obsolete in flake8>=%srBr)setr distributions entry_pointsanyrsaddBANNED_PLUGINSLOGwarningryrtrur)seendistrlmetarxs r_find_importlib_pluginsrsW 55D"022@@;;s;;;;;  } <4    HHT&\ " " " <> ) ) KK5V tF|,     &\X % %'sDL$y/JJ J J J J J J J  @ @Bx=((T&\4 ?B????? @;@@rc#KdD]}d|}tj|d|dtjD]l}|d\}}}||}}t j|||}tdd|VmdS) N) extensionreportzflake8.rdrfrZ)regexp=rA) r r\r^rgLOCAL_PLUGIN_LIST_RE partitionr rr)rT plugin_typertplugin_sr'rX entry_strrxs r_find_local_pluginsrs/ / / '+''8 GG*K"G E E K K M M-    / /H"*!3!3C!8!8 D!Y"jjllIOO,=,=)D#.tYFFB'2.. . . . . / / /rpluginsexpectedc 4d|D}d|D}||z }|rxtddt|ddt|ddt|dS)Nc@h|]}tj|jSr)r normalize_pypi_namer)rCr"s rrEz*_check_required_plugins..s26<!&.11rc6h|]}tj|Sr)r r)rCr's rrEz*_check_required_plugins..s#KKK$e/55KKKrz2required plugins were not installed! - installed: r?z - expected: z - missing: )rrFrG)rr plugin_namesexpected_namesmissing_pluginss r_check_required_pluginsrs@GLLK(KKKN$|3O  ? IIf\&:&:;; ? ?99VN%;%;<< ? ?))F?$;$;<< ? ?     roptscgtt|}|t||j|S)z/Discovers all plugins (but does not load them).)rrsortrrM)rTrrets r find_pluginsrsK B # % % A(;C(@(@ ACHHJJJC!5666 Jrfuncctj| }|r|j}dtj|jD}|r|dd|S)aReturn the parameters for the plugin. This will inspect the plugin and return either the function parameters if the plugin is a function or the parameters for ``__init__`` after ``self`` if the plugin is a class. :returns: A dictionary mapping the parameter name to whether or not it is required (a.k.a., is positional only/does not have a default). czi|]8}|jtjju|j|jtjju9Sr)kindinspect ParameterPOSITIONAL_OR_KEYWORDr'defaultempty)rC parameters r z#_parameters_for..sG  >W.D D D  )W->-DD D D Drr)N)r isfunction__init__ signaturer$r<pop)ris_classr$s r_parameters_forr s%d+++H} *400;BBDDJ %vt$$$ rr"c( |j}n'#t$r}t|j|d}~wwxYwt |s$t d}t|j|t||t|S)Nz%expected loaded plugin to be callable) rload Exceptionrrcallable TypeErrorr!r)r"r#eerrs r _load_pluginr&s4 %%'' 444 3334 C==6?@@ 555 _S%9%9 : ::s A;Acbtj|jd|DS)Nc,g|]}t|Sr)r)rCps r z#_import_plugins..8s - - -LOO - - -r)syspathextendrKrrs r_import_pluginsr3s/HOOD+,,, - -W - - --rcg}g}g}i}g}|D]}t|jddr.|jjj|jvr||F|jjjdkr |||j<fd|j vr||d|j vr||d|j vr||td|tj |||D]E}t|js$td|jd tjFt%t'||| || S) Noff_by_defaultFrr3r4r5zwhat plugin type? zplugin code for `z` does not match )r3r4r5)r8r9r:)getattrr#r"rr'rLappendrtr*r$NotImplementedError itertoolschain VALID_CODEmatchrr.patternr7r2)rrr3r4r5r9r:rDs r_classify_pluginsr;s DLMIHEE FJ 0% 8 8 E ).d6LLL OOF # # # # ] & , ? ?+1If' ( ( v( ( ( KK     v0 0 0    ' ' ' '  1 1 1   ( ( ( (%&C6&C&CDD D/$ mDD 122  (F$7((%((   %'      rc>tt|||S)zLoad and classify all flake8 plugins. - first: extends ``sys.path`` with ``paths`` (to import local plugins) - next: converts the ``Plugin``s to ``LoadedPlugins`` - finally: classifies plugins into their specific types )rrrs r load_pluginsrhs _Wd;;T B BBr)6r configparserrrloggingrertypingrrrrrrr r r rBr flake8._compatr flake8.exceptionsrr getLoggerrrcompileASCIIrrPrurrr!r2r7rJRawConfigParserrrarkrryrrrrr/rrrrrrrrrs77 ------,,,,,,000000g!! RZ0"( ; ;  ?@@ $ /////Z///;;;;;:;;;$&&&&&z&&&     j   6     J   "  % # #Y &  %  }  c]   ., $/ 0, ,,vtT!" ,,,,4"@64+=!>"@"@"@"@J /  % /vtT!" / / / / &\ n      &   %    &\    #$sDy/6 ; ;L ; ; ; ;. &\. . ,....* , * * ****Z C &\ C  C  C C C C C Cr