bg(UddlmZddlZddlZddlZddlZddlZddlZddlm Z m Z m Z ddl m Z ddlmZddlmZmZmZddlmZmZddlmZmZdd lmZmZdd lmZd d lm Z m!Z!m"Z#d d l$m%Z%d dl&m'Z'd dl!m(Z(d dl)m*Z*m+Z+d dl,m-Z-d dl.m/Z/d dl0m1Z1m2Z2ddl3Z4ddl5Z4ddl6Z4ddl7Z4ddl8Z4ddl9m:Z:ddl;mm?Z?ddl@mAZAer ddlBmCZCddlDmEZFdgZGeHeIfZJ eeHeKdfeIeKfZLdeMd<dZNeeKeOeKefe eKfZPdeMd< d8d$ZQd%ZRd9d)ZSd*ZTd+ZUd,ZVd-ZWd.ZXd/ZYd:d0ZZd1Z[d2Z\d3Z]d4Z^erddl6mEZ_ne/e4j`jEZ_Gd5de_ZEGd6d7e2ZadS);) annotationsN)IterableMutableMappingSequence)iglob)Path) TYPE_CHECKINGAnyUnion) partitionunique_everseen) InvalidMarkerMarker)InvalidSpecifier SpecifierSet)Version) _entry_points_reqscommand)metadata)StrPath) _StrOrIter) pyprojecttomlsetupcfg)ConfigDiscovery) get_unpatched)InformationOnlySetuptoolsDeprecationWarning)DEBUG)DistutilsOptionErrorDistutilsSetupErrortranslate_longopt) strtobool) TypeAlias) Distributionr'.r& _Sequenceztuple[str, ...] | list[str]_OrderedStrSequencenamestrreturnr c~|dkrtjdddtStdtd|)Nsequencez@`setuptools.dist.sequence` is an internal implementation detail.z8Please define your own `sequence = tuple, list` instead.))due_datezmodule z has no attribute )remit _sequenceAttributeError__name__r*s F/opt/cloudlinux/venv/lib64/python3.11/site-packages/setuptools/dist.py __getattr__r9GsW z$) N F"     I8IIII J JJc tj|dd}|jrJdS#ttt t f$r}t|d|d|d}~wwxYw)N)valuer*groupz/ must be importable 'module:attrs' string (got ))r EntryPointextras TypeError ValueErrorr5AssertionErrorr")distattrr<epes r8check_importablerHRs~  u4t D D D9} z>> B!FJddEEE R   s $AAArEr<Nonec  t|tsJd||ksJdS#ttt t f$r#}t|dtd|d|d}~wwxYw)z"Verify that value is a string listz must be of type <> (got r>N) isinstancer4joinrArBr5rCr"_sequence_type_reprrDrEr<rGs r8assert_string_listrQ\s %+++++wwu~~&&&&&& z>> B! O O)< O OU O O O   s26A6A11A6c8|}t||||D]}||stdd|zz|d\}}}|r%||vr!tjd||tjdddd S) z(Verify that namespace packages are validz1Distribution contains no modules or packages for znamespace package %r.z^WARNING: %r is declared as a package namespace, but %r is not: please correct this in setup.pyz/The namespace_packages parameter is deprecated.z 2! &    s9=A)A$$A)c|d\}}} t|n'#t$rd|d|d}t|dwxYwt t j|dS)N:zInvalid environment marker: z (r>)r _check_markerrr"rarparse)extrareqs_namer]markermsgs r8rdrds//#..E41f 111AVAAuAAA!#&&D01 T  s +$AcT|sdSt|}|dSN)revaluate)rnms r8riris+ vAJJLLLLLr:cVt||krt|d|ddS)z)Verify that value is True, False, 0, or 1z must be a boolean value (got r>N)boolr"rDrEr<s r8 assert_boolrws: E{{e!T"U"U5"U"U"UVVVr:ch|st|ddSt|d)Nz is ignored.z is invalid.)DistDeprecationWarningr3r"rvs r8invalid_unless_falserzsC ##t$9$9$9::: 333 4 44r:c ttj|t|trt ddS#t t f$r}|d|}t||d}~wwxYw)z9Verify that install_requires is a valid requirements listzUnordered types are not allowedzb must be a string or iterable of strings containing valid project/version requirement specifiers; N)rarrjrMsetrArBr"rDrEr<errorros r8check_requirementsrs 2 U[     eS ! ! ?=>> > ? ? z "222 P PHM P P "#&&E1 2sAA A6A11A6c t|dS#ttf$r}|d|}t||d}~wwxYw)z.Verify that value is a valid version specifierz7 must be a string containing valid version specifiers; N)rrr5r"r}s r8check_specifierrsc2U n -222WWPUWW!#&&E12sA;Act tj|dS#t$r}t||d}~wwxYw)z)Verify that entry_points map is parseableN)rload Exceptionr"rPs r8check_entry_pointsrsM,5!!!!! ,,,!!$$!+,s 727c`t|ts"td||D]a\}}t|t s#td||t |d||bdS)z@Verify that value is a dictionary of package names to glob listszT{!r} must be a dictionary mapping package names to lists of string wildcard patternsz,keys of {!r} dict must be strings (got {!r})zvalues of {!r} dictN)rMdictr"formatrer+rQ)rDrEr<kvs r8check_package_datars eT " " ! ''-vd||    HH1!S!! %>EEdANN  4!6!=!=d!C!CQGGGG HHr:cz|D]7}tjd|s tjd|8dS)Nz \w+(\.\w+)*z[WARNING: %r not a valid package name; please use only .-separated package names in setup.py)rematchrWrXrY)rDrEr<pkgnames r8check_packagesrsRx00  M  8   r:czeZdZUdZdeeddeedZded<dDdEd ZdZ dZ e dZ dZ dZdFdZe dZdDdZdGdZdZdGdZdDdZdHdZ dIdJd#ZdKd'ZdFd(Ze d)Zd*Zd+Zd,ZdLd/Zd0Zd1Z dFd2Z!dMd4Z"dNd5Z#dOd9Z$dOd:Z%dFd;Z&dPd=Z'd>Z(dQd@Z)dAZ*dBZ+dFfdC Z,xZ-S)Rr'a Distribution with support for tests and package data This is an enhanced version of 'distutils.dist.Distribution' that effectively adds the following new optional keyword arguments to 'setup()': 'install_requires' -- a string or sequence of strings specifying project versions that the distribution requires when installed, in the format used by 'pkg_resources.require()'. They will be installed automatically when the package is installed. If you wish to use packages that are not available in PyPI, or want to give your users an alternate download location, you can add a 'find_links' option to the '[easy_install]' section of your project's 'setup.cfg' file, and then setuptools will scan the listed web pages for links that satisfy the requirements. 'extras_require' -- a dictionary mapping names of optional "extras" to the additional requirement(s) that using those extras incurs. For example, this:: extras_require = dict(reST = ["docutils>=0.3", "reSTedit"]) indicates that the distribution can optionally provide an extra capability called "reST", but it can only be used if docutils and reSTedit are installed. If the user installs your package using EasyInstall and requests one of your extras, the corresponding additional requirements will be installed if needed. 'package_data' -- a dictionary mapping package names to lists of filenames or globs to use to find data files contained in the named packages. If the dictionary has filenames or globs listed under '""' (the empty string), those names will be searched for in every package, in addition to any names for the specific package. Data files found using these names/globs will be installed along with the package, in the same location as the package. Note that globs are allowed to reference the contents of non-package subdirectories, as long as you use '/' as a path separator. (Globs are automatically converted to platform-specific paths at runtime.) In addition to these new keywords, this class also has several new methods for manipulating the distribution's contents. For example, the 'include()' and 'exclude()' methods can be thought of as in-place add and subtract commands that add or remove packages, modules, extensions, and so on from the distribution. cdSrqrr:r8zDistribution. sr:cdSrqrrr:r8rzDistribution.#sr:cdSrqrrr:r8rzDistribution.$sr:)long_description_content_type project_urlsprovides_extras license_file license_filesinstall_requiresextras_requirez list[str]namespace_packagesNattrsMutableMapping[str, Any] | Noner,rIc t|d}|si|_|pi}g|_d|_d|_|dd|_|dg|_|dg|_tj dD]*}t| |j d+t|jddhzfd |D}t#j||t|_t)||_||||j j|j _|dS) N package_datasrc_rootdependency_linkssetup_requiresdistutils.setup_keywordsr=rrc$i|] \}}|v || Srr).0rr metadata_onlys r8 z)Distribution.__init__..>s)OOOtq!8N8Na8N8N8Nr:)hasattrr dist_filesinclude_package_dataexclude_package_datapoprrrr entry_pointsvars setdefaultr*r|_DISTUTILS_UNSUPPORTED_METADATAre _Distribution__init___referenced_filesr set_defaults_set_metadata_defaults_normalize_versionversion_finalize_requires)selfrhave_package_datarF dist_attrsrs @r8rzDistribution.__init__-s#D.99  968D  6815!AE!$)IIj$$?$? +0995G+L+L).3CR)H)H'.HIII 1 1B JJ ! !"'4 0 0 0 0D@AA ,.>?? OOOOu{{}}OOO tZ000 ,/55+D11 ##E*** $ 7 7 8M N N  !!!!!r:cdh}fdtjD}||z }|rd|}t|dS)Nr*c@h|]}tj|d|Srq)getattrr)rkeyrs r8 z2Distribution._validate_metadata..Os7   t}c400< << &'+': $   D,1133 D D C((+DM1<.sK   8<1AtCU[b112233   r:) rrarr+rrjrrer)rrrs r8rz Distribution._normalize_requiress"4);TBBHb '7>>D" $Sek:J.K.K%L%L M M  @N@T@T@V@V   r:c|jj}|r|ng}|jj}|r||vr||||gd}t t |||j_dS)z>> list(Distribution._expand_patterns(['LICENSE'])) ['LICENSE'] >>> list(Distribution._expand_patterns(['pyproject.toml', 'LIC*'])) ['pyproject.toml', 'LICENSE'] c3K|]Y}tt|D]:}|dtj|6|V;ZdS)~N)sortedrendswithospathisfile)rpatternrs r8 z0Distribution._expand_patterns..s  uW~~..  ==%%  +-'..*>*>         r:r)rs r8rzDistribution._expand_patternss#  #    r:c ddlm}tjtjkrgngd}t |}||}tr|d|}t|_ |D]"}t|d5}tr,|dj d it||dddn #1swxYwY|D]}||}||} |D]V} | d ks| |vr ||| } || |} || |} || f| | <W|$d |jvrdS|jd D]~\} \} } |j| } | rt3|  } n| d vrt3| } t5|| p| | ]#t6$r}t9||d}~wwxYwdS) z Adapted from distutils.dist.Distribution.parse_config_files, this method provides the same functionality in subtly-improved ways. r) ConfigParser) z install-basezinstall-platbasez install-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptsz install-dataprefixz exec-prefixhomeuserrootNz"Distribution.parse_config_files():utf-8encodingz reading {filename}r6global)verbosedry_runr) configparserrsysr base_prefix frozensetfind_config_filesr announcer+ optionxformopenrlocals read_filesectionsoptionsget_option_dictrwarn_dash_deprecationmake_option_lowercasercommand_optionsre negative_optr%setattrrBr!)r filenamesrignore_optionsparserfilenamereadersectionropt_dictoptvalsrcaliasrGs r8_parse_config_filesz Distribution._parse_config_filess .----- zS_,, B (#>22  ..00I  @ MM> ? ? ? !  Hh111 )VMMM"?"8"?"K"K&(("K"KLLL  ((( ) ) ) ) ) ) ) ) ) ) ) ) ) ) )"??,, 4 4 ..11//88"44Cj((C>,A,A  **Wc22C44S'BBC44S'BBC%-sOHSMM4 OO     4/ / / F $3H=CCEE 5 5OC#s%))#..E %#C..(...nn 5elsC0000 5 5 5*1--14 5 5 5s+A C))C- 0C- H++ I 5II rr+r cL|dvr|S|dd}ttjtjj|}|ds |dkr||vr|Sd|vrtj dd|d|d d d |S) N)zoptions.extras_requirezoptions.data_files-_rrzInvalid dash-separated optionsz) Usage of dash-separated zZ will not be supported in future versions. Please use the underscore name z instead. !userguide/declarative_config.htmlr/rrTr2) replacerarbchainrWr__all___setuptools_commands startswithrr3)rrr underscore_optcommandss r8rz"Distribution.warn_dash_deprecations    JS#.. O!)))++    ""9-- ":%%x''! ! #:: ( -0),:H=%    r:c| tjdj}d|DS#tj$rgcYSwxYw)N setuptoolsch|] }|j Srr7)rrFs r8rz4Distribution._setuptools_commands..'s333BG333r:)r distributionrPackageNotFoundError)rrs r8rz!Distribution._setuptools_commands$sU #0>>KL33l333 3,   III s $';;c |dks|r|S|}tjdd|d|d|ddd |S) NrzInvalid uppercase configurationz$ Usage of uppercase key z in zL will not be supported in future versions. Please use lowercase z instead. rrr)islowerlowerrr3)rrr  lowercase_opts r8rz"Distribution.make_option_lowercase,s j CKKMM J $) - $'  /6  3@   9! r:c ,|}|||}tr|d|z|D]3\}\}}tr|d|d|d|d d|jD}n#t $rg}YnwxYw |j}n#t $ri}YnwxYw t|t} ||vr(| r&t|||t| n`||vr!| rt||t|n;t||rt|||ntd|d |d |d #t$r} t| | d} ~ wwxYwdS) a Set the options for 'command_obj' from 'option_dict'. Basically this means copying elements of a dictionary ('option_dict') to attributes of an instance ('command'). 'command_obj' must be a Command instance. If 'option_dict' is not supplied, uses the standard option dictionary for this command (from 'self.command_options'). (Adopted from distutils.dist.Distribution._set_command_options) Nz# setting options for '%s' command:z z = z (from r>c,g|]}t|Srr#)ros r8 z5Distribution._set_command_options..Ts!WWWa.q11WWWr:z error in z : command 'z' has no such option 'r)get_command_namerr rreboolean_optionsr5rrMr+rr%rr!rB) r command_obj option_dict command_namersourcer< bool_optsneg_opt is_stringrGs r8_set_command_optionsz!Distribution._set_command_options>s#3355  ..|<N>N:NOOOOy((Y(K51A1ABBBB[&11K7777..!66<<<9 5 5 5*1--14 53 5 5s=B!! B0/B04B<< C  C B!E22 F<F  FrIterable[StrPath] | Nonecg}t|jp tjd}|.qsQ'(Ar:rr)rrrcurdirr raexists)rr tomlfilesstandard_project_metadatapartss r8_get_project_config_filesz&Distribution._get_project_config_filesls $()C")EU$V$V!  AA9MMEU1XIU1XII & - - / / 423I)##r:Fignore_option_errorsruc ||\}}||tj||j||D]}t j|||||dS)zXParses configuration files from various levels and loads configuration. )r)rDN) rCrrparse_configurationrrapply_configurationrr)rrrDinifilesr@r s r8parse_config_fileszDistribution.parse_config_filesxs#<R S S S S !!! $$&&&&&r:requiresr!list[_pkg_resources_Distribution]c&ddlm}|||S)zResolve pre-setup requirementsr)_fetch_build_eggs) installerrM)rrJrMs r8fetch_build_eggszDistribution.fetch_build_eggss) 100000  x000r:cd}d}tj|}tj|j|}t d|}t ||D] }||dS)z Allow plugins to apply arbitrary operations to the distribution. Each hook may optionally define a 'order' to influence the order of execution. Smaller numbers go first and the default is 0. z(setuptools.finalize_distribution_optionsc$t|ddS)Norderr)r)hooks r8by_orderz/Distribution.finalize_options..by_orders4!,, ,r:rc*|Srq)r)rGs r8rz/Distribution.finalize_options..sqvvxxr:)rN)rrrb filterfalse_removedrr)rr=rTdefinedfilteredloadedrFs r8finalize_optionszDistribution.finalize_optionss; - - -'e444(@@''22X...  B BtHHHH  r:cdh}|j|vS)z When removing an entry point, if metadata is loaded from an older version of Setuptools, that removed entry point will attempt to be loaded and will fail. See #2765 for more details. 2to3_doctestsr7)rFremoveds r8rWzDistribution._removeds  w'!!r:ctjdD]>}t||jd}|$|||j|?dS)Nrr)rrrr*r)rrFr<s r8_finalize_setup_keywordsz%Distribution._finalize_setup_keywordssb'.HIII 0 0BD"'400E  $/// 0 0r:cddlm}tjtjd}tj|stj|||tj|d}t|dd5}| d| d | d dddn #1swxYwY|S) Nr)windows_supportz.eggsz README.txtwrrzcThis directory contains eggs that were downloaded by setuptools to build, test, and run plug-ins. zAThis directory caches those eggs to prevent repeated downloads. z/However, it is safe to delete this directory. ) rKrbrrrNr>r?mkdir hide_filerwrite)rrb egg_cache_dirreadme_txt_filenamer=s r8get_egg_cache_dirzDistribution.get_egg_cache_dirsJ%%%%%% RY88 w~~m,, M H] # # #  % %m 4 4 4"$',,}l"K"K )3AAA MQJ.KLLL M M M M M M M M M M M M M M Ms+AC77C;>C;c&ddlm}|||S)z Fetch an egg needed for buildingr)fetch_build_egg)rNrk)rreqrks r8rkzDistribution.fetch_build_eggs&......tS)))r:rtype[distutils.cmd.Command]c||jvr |j|S|dkrddlm}|Stjd|}|D]#}|x|j|<}|cSt j||S)z(Pluggable version of get_command_class() bdist_wheelr)rodistutils.commands)r=r*)cmdclasscommand.bdist_wheelrorrrrget_command_class)rrroepsrFrqs r8rszDistribution.get_command_classs dm # #=) ) m # # 8 8 8 8 8 8 #*>WMMM B BB02 9DM' "XOOO 24AA Ar:ctjdD]3}|j|jvr#|}||j|j<4t j|SNrpr)rrr*rqrrprint_commandsrrFrqs r8rwzDistribution.print_commandss\'.BCCC 2 2Bwdm++7799)1 bg&+D111r:ctjdD]3}|j|jvr#|}||j|j<4t j|Srv)rrr*rqrrget_command_listrxs r8rzzDistribution.get_command_lists\'.BCCC 2 2Bwdm++7799)1 bg&-d333r:c |D]=\}}t|d|zd}|r ||'|||>dS)aAdd items to distribution that are named in keyword arguments For example, 'dist.include(py_modules=["x"])' would add 'x' to the distribution's 'py_modules' attribute, if it was not already there. Currently, this method only supports inclusion for attributes that are lists or tuples. If you need to add support for adding to other attributes in this or a subclass, you can add an '_include_X' method, where 'X' is the name of the attribute. The method will be called with the value passed to 'include()'. So, 'dist.include(foo={"bar":"baz"})' will try to call 'dist._include_foo({"bar":"baz"})', which can then handle whatever special inclusion logic is needed. _include_N)rer _include_misc)rrrrincludes r8r~zDistribution.includesnKKMM ) )DAqdK!OT::G ) ""1a((((  ) )r:packagecdz|jrfd|jD|_|jrfd|jD|_|jrfd|jD|_dSdS)z9Remove packages, modules, and extensions in named packagerScJg|]}|k|| Srrrprpfxs r8r.z0Distribution.exclude_package..s5ALLcARARLLLLr:cJg|]}|k|| Srrrs r8r.z0Distribution.exclude_package..s6a7ll1<.sE   6W$$QV->->s-C-C$$$$r:N)packages py_modules ext_modules)rrrs `@r8exclude_packagezDistribution.exclude_package sm = =DM ? ?DO        )   D     r:cz|dz}|D] }||ks||rdS!dS)z %s: No such distribution settingN4: this setting cannot be changed via include/excludecg|]}|v| Srr)ritemr<s r8r.z.Distribution._exclude_misc..;s# K K K$U9J9J9J9J9Jr:)rMr4r"rOrr5r)rr*r<oldrGs ` r8 _exclude_misczDistribution._exclude_misc,s%++ %ZZ4GZZPUZZZ  X$%%CC X X X%&H4&OPPVW W X ?:c9#=#=?%MM  M D$ K K K K# K K K L L L L L M MA A(A##A(ct|tst|dtd|d t ||n%#t $r}td|z|d}~wwxYwt |||dSttst|dzfd|D}t ||t|zdS)zAHandle 'include()' for list/tuple attrs without a special handlerrrLr>rNrcg|]}|v| Srr)rrrs r8r.z.Distribution._include_misc..Os===DT__4___r:)rMr4r"rOrr5rra)rr*r<rGnewrs @r8r}zDistribution._include_misc=s%++ %ZZ4GZZPUZZZ  X$%%CC X X X%&H4&OPPVW W X ; D$ & & & & &C++ 1%MM >===E===C D$S C 0 0 0 0 0rc |D]=\}}t|d|zd}|r ||'|||>dS)aRemove items from distribution that are named in keyword arguments For example, 'dist.exclude(py_modules=["x"])' would remove 'x' from the distribution's 'py_modules' attribute. Excluding packages uses the 'exclude_package()' method, so all of the package's contained packages, modules, and extensions are also excluded. Currently, this method only supports exclusion from attributes that are lists or tuples. If you need to add support for excluding from other attributes in this or a subclass, you can add an '_exclude_X' method, where 'X' is the name of the attribute. The method will be called with the value passed to 'exclude()'. So, 'dist.exclude(foo={"bar":"baz"})' will try to call 'dist._exclude_foo({"bar":"baz"})', which can then handle whatever special exclusion logic is needed. _exclude_N)rerr)rrrrexcludes r8rzDistribution.excludeRsn KKMM ) )DAqdK!OT::G ) ""1a((((  ) )r:rct|tstdtd|dt t |j|dS)Nz#packages: setting must be of type )rMr4r"rOrarr)rrs r8_exclude_packageszDistribution._exclude_packagesisa(I.. %_6I__RZ___  S%x 0 011111r:c|jj|_|jj|_|d}|d}||vr9||\}}||=ddl}||d|dd<|d}||v9t j|||}||} t| ddrd|f||d<|gS|S)NraliasesTrcommand_consumes_arguments command lineargs) __class__global_optionsrrshlexrr_parse_command_optsrsr) rr rrr_srcrrnargs cmd_classs r8rz Distribution._parse_command_optsps"n; N7q'&&y11  !'*KD% LLL{{5$//D!H1gG   1$EE**733 9:D A A 5CU4KD  ) )& 1   r: dict[str, dict[str, str | None]]c i}|jD]\}}|D]\}\}}|dkr|dd}|dkr||}|j}|t|di|D]\} } | |kr| }d}ntdn|dkrd}|| |i|<Ռ|S) ahReturn a '{cmd: {opt:val}}' map of all command-line options Option names are all long, but do not include the leading '--', and contain dashes rather than underscores. If the option doesn't take an argument (e.g. '--quiet'), the 'val' is 'None'. Note that options provided by config files are intentionally excluded. rrrrrNzShouldn't be able to get herer) rrerget_command_objrcopyupdaterrCr) rdcmdoptsrrrcmdobjr6negposs r8get_cmdline_optionsz Distribution.get_cmdline_optionss@/1-3355 1 1IC#'::<< 1 1Zc3.((kk#s++!88!11#66F"/4466GNN76>2#F#FGGG$+MMOONNS#::"%C"&C!E& --LMMM"AXXC-0 S"%%c**+ 1.r:c#K|jpdEd{V|jpdEd{V|jpdD]G}t|tr|\}}n|j}|dr |dd}|VHdS)z@Yield all packages, modules, and extension names in distributionrNmodulei)rrrrMtupler*r)rextr* _buildinfos r8rz$Distribution.iter_distribution_namess=&B&&&&&&&?(b(((((((#)r  C#u%% #& jjx}}X&& !CRCyJJJJ  r:cddl}|jrtj||St |jt jstj||S|jj dvrtj||S|jj}|j d tj|||j |S#|j |wxYw)zIf there were any non-global "display-only" options (--help-commands or the metadata display options) on the command line, display the requested info and return true; else return false. rN)rutf8rr) r help_commandsrhandle_display_optionsrMstdoutio TextIOWrapperrr) reconfigure)r option_orderrrs r8rz#Distribution.handle_display_optionss    L 7lKK K#*b&677 L 7lKK K :  $ $ & &*; ; ; 7lKK K:& 000 6 7lKK J " "H " 5 5 5 5CJ " "H " 5 5 5 5s 2C""C?cr|t|dSrq)rsuper run_command)rrrs r8rzDistribution.run_commands5  G$$$$$r:rq)rrr,rI)r,rI)rr+r r+r,r+)rr9)NF)rr9rDrur,rI)rJrr,rK)rr+r,rm)rr+r,rI)rr+r,ru)r*r+r<r(r,rI)rr(r,rI)r,r).r6 __module__ __qualname____doc__rrar__annotations__rrr staticmethodrrrrrrrrrr8rCrIrOr[rWr`rirkrsrwrzr~rrUrr}rrrrrrr __classcell__)rs@r8r'r's;++\*6$ % ''#"!!!"""""@ + + +QQQ  \ DDD&       &   \  M5M5M5M5^    D$,5,5,5,5\ $ $ $ $/3%*'''''*1111$ " "\ "000 **** BBBB$222444)))),*    MMMM"1111*)))).22226%%%%N 6668%%%%%%%%%%r:ceZdZdZdS)ryzrClass for warning about deprecations in dist in setuptools. Not ignored by default, unlike DeprecationWarning.N)r6rrrrr:r8ryrys"FFFFr:ry)r*r+r,r )rEr+r<r(r,rI)rEr+r<r)r,rI)b __future__rrrbrrrrcollections.abcrrrglobrpathlibrtypingr r r more_itertoolsr r packaging.markersrrpackaging.specifiersrrpackaging.versionrrKrrrr _importlibr_pathrrconfigrr discoveryrmonkeyrwarningsrr distutils.cmdrWdistutils.commanddistutils.coredistutils.dist distutils.logdistutils.debugr distutils.errorsr!r"distutils.fancy_getoptr$distutils.utilr%typing_extensionsr& pkg_resourcesr'_pkg_resources_Distributionrrrar4r+r(rrOrr)r9rHrQr_rfrdrirwrzrrrrrrcoreryrr:r8rs"""""""  >>>>>>>>>>,,,,,,,,,,5555555533333333????????%%%%%% ! ++++++++&&&&&&!!!!!!CCCCCCCC!!!!!!FFFFFFFF444444$$$$$$J++++++IIIIII   4K U38_d3i78 88883!&sDcNHSM'I!JJJJJKKKK       :   WWW 555 2 2 2 2222,,, H H H?<<<<<<<!M)."=>>Mr %r %r %r %r %=r %r %r %jFFFFF9FFFFFr: