JdLdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z mZmZmZmZddlZddlZddlmZddlmZddlmZdd lmZdd lmZgd Zejd d  Z!de!"ddvZ#Gdde$Z%Gddej&j'Z'ej(dZ)dZ*dZ+dZ,ej(dZ-ee e.ee.ee.dffZ/ GddZ0Gdde0Z1Gdde1Z2e1Z3e3j4Z4e3j5Z5e3j6Z6e3j7Z7e3j8Z8e#se3j9Z9e3j:Z:e3j;Z;e2Zz+no_install_setup_requires..estr$N) setuptools_install_setup_requires)r3s r"no_install_setup_requiresr>\sK  -D););J&2 -1 ***T *1111s/=cDfdtjDS)Ncg|]A}tjtj|?|BSr()ospathisdirjoin).0namea_dirs r" z1_get_immediate_subdirectories..msK 9 9 9Tw}}RW\\%6677 9D 9 9 9r$)rAlistdir)rGs`r"_get_immediate_subdirectoriesrJls7 9 9 9 9RZ.. 9 9 99r$cfdtj|D} |\}n#t$rtdwxYw|S)Nc3FK|]}||VdSrendswith)rEf extensions r" z'_file_with_extension..rsI ::i  r$z[No distribution was found. Ensure that `setup.py` is not empty and that it calls `setup()`.)rArI ValueError) directoryrPmatchingfiles ` r"_file_with_extensionrVqs|:i((H9 999 899 99 Ks (Actj|stjdSt t dt|S)Nz%from setuptools import setup; setup()open)rArBexistsioStringIOgetattrtokenizerX setup_scripts r"_open_setup_scriptr`sF 7>>, ' 'E{CDDD *78VT * *< 8 88r$c#Ktj5tjdddVddddS#1swxYwYdS)Nignorezsetup.py install is deprecated)warningscatch_warningsfilterwarningsr(r$r"suppress_known_deprecationrfs  " "*JKKK s=AAceZdZdZdededeefdZdZdede efdZ dede efdZ dede efd Z dede efd Z d S) _ConfigSettingsTranslatorzTranslate ``config_settings`` into distutils-style command arguments. Only a limited number of options is currently supported. keyconfig_settingsreturnc|pi}||pg}t|trtj|n|S)aA Get the value of a specific key in ``config_settings`` as a list of strings. >>> fn = _ConfigSettingsTranslator()._get_config >>> fn("--global-option", None) [] >>> fn("--global-option", {}) [] >>> fn("--global-option", {'--global-option': 'foo'}) ['foo'] >>> fn("--global-option", {'--global-option': ['foo']}) ['foo'] >>> fn("--global-option", {'--global-option': 'foo'}) ['foo'] >>> fn("--global-option", {'--global-option': 'foo bar'}) ['foo', 'bar'] )get isinstancestrshlexsplit)r!rirjcfgoptss r" _get_configz%_ConfigSettingsTranslator._get_configsF$#wws||!r$.tS$9$9Cu{4   tCr$cZdtjjjD}d|DS)z>Global options accepted by setuptools (e.g. quiet or verbose).c3*K|]}|ddVdS)Nr()rEopts r"rQzB_ConfigSettingsTranslator._valid_global_options..s*RRs3rr7RRRRRRr$c h|] }|D]}|| Sr(r()rElong_and_shortflags r" zB_ConfigSettingsTranslator._valid_global_options..s+VVV~VVtQUVVVVVr$)r<distr*global_options)r!optionss r"_valid_global_optionsz/_ConfigSettingsTranslator._valid_global_optionss1RRjo&B&QRRRVV7VVVVr$c# K|pi}hd}d|vsd|vrUt|dp|dpd}||vrdndVd|vsd|vrUt|dp|dpd}||vrdndV||d |}fd |DEd {Vd S) a Let the user specify ``verbose`` or ``quiet`` + escape hatch via ``--global-option``. Note: ``-v``, ``-vv``, ``-vvv`` have similar effects in setuptools, so we just have to cover the basic scenario ``-v``. >>> fn = _ConfigSettingsTranslator()._global_args >>> list(fn(None)) [] >>> list(fn({"verbose": "False"})) ['-q'] >>> list(fn({"verbose": "1"})) ['-v'] >>> list(fn({"--verbose": None})) ['-v'] >>> list(fn({"verbose": "true", "--global-option": "-q --no-user-cfg"})) ['-v', '-q', '--no-user-cfg'] >>> list(fn({"--quiet": None})) ['-q'] >0noofffalseverbosez --verbose1z-qz-vquietz--quiet--global-optionc3JK|]}|dv|VdS)rN)strip)rEargvalids r"rQz9_ConfigSettingsTranslator._global_args..s7CCC399S>>U+B+BC+B+B+B+BCCr$N)rormlowerrrt)r!rjrrfalseylevelargsrs @r" _global_argsz&_ConfigSettingsTranslator._global_argssA*#,,,   {c11 **Icggk.B.BIcJJE ;;==F2244 = = = c>>Y#--((ECGGI,>,>E#FFE ;;==F2244 = = =**,, 1?CCCCCC4CCCCCCCCCCCCr$c#K|pi}d|vr,tt|dpd}|rdndVd|vrdt|dgEd{VdSdS)a The ``dist_info`` command accepts ``tag-date`` and ``tag-build``. .. warning:: We cannot use this yet as it requires the ``sdist`` and ``bdist_wheel`` commands run in ``build_sdist`` and ``build_wheel`` to re-use the egg-info directory created in ``prepare_metadata_for_build_wheel``. >>> fn = _ConfigSettingsTranslator()._ConfigSettingsTranslator__dist_info_args >>> list(fn(None)) [] >>> list(fn({"tag-date": "False"})) ['--no-date'] >>> list(fn({"tag-date": None})) ['--no-date'] >>> list(fn({"tag-date": "true", "tag-build": ".a"})) ['--tag-date', '--tag-build', '.a'] ztag-daterz --tag-datez --no-datez tag-buildz --tag-buildN)rro)r!rjrrvals r"__dist_info_argsz*_ConfigSettingsTranslator.__dist_info_argss&#   CJ :7;;<>> fn = _ConfigSettingsTranslator()._editable_args >>> list(fn(None)) [] >>> list(fn({"editable-mode": "strict"})) ['--mode', 'strict'] z editable-mode editable_modeNz--mode)rmro)r!rjrrmodes r"_editable_argsz(_ConfigSettingsTranslator._editable_argssj#ww''C377?+C+C  Fc$ii((((((((((r$c#LK|d|}|}g}|D]2}|d|vr|||V3|d|Ed{V|r"d|d}t j|t dSdS)aV Users may expect to pass arbitrary lists of arguments to a command via "--global-option" (example provided in PEP 517 of a "escape hatch"). >>> fn = _ConfigSettingsTranslator()._arbitrary_args >>> list(fn(None)) [] >>> list(fn({})) [] >>> list(fn({'--build-option': 'foo'})) ['foo'] >>> list(fn({'--build-option': ['foo']})) ['foo'] >>> list(fn({'--build-option': 'foo'})) ['foo'] >>> list(fn({'--build-option': 'foo bar'})) ['foo', 'bar'] >>> warnings.simplefilter('error', SetuptoolsDeprecationWarning) >>> list(fn({'--global-option': 'foo'})) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): SetuptoolsDeprecationWarning: ...arguments given via `--global-option`... rrz--build-optionNz The arguments z were given via `--global-option`. Please use `--build-option` instead, `--global-option` is reserved to flags like `--verbose` or `--quiet`. )rtrrappendrcwarnr )r!rjr global_optsbad_argsrmsgs r"_arbitrary_argsz)_ConfigSettingsTranslator._arbitrary_args s. 1?CC0022   Cyy~~[00$$$ ##$4oFFFFFFFFF  =#C M#; < < < < <  = =r$N)r%r&r'__doc__ro_ConfigSettingsrrtrrr)_ConfigSettingsTranslator__dist_info_argsrrr(r$r"rhrhs DsD_DcDDDD,WWW DO D D D D DD>>HSM>>>>4)o)(3-)))) (=(=8C=(=(=(=(=(=(=r$rhceZdZdZddZddZddZdeded efd Zdeded e fd Z dd Z d Z ddZ ddZdeed eefdZes ddZddZ ddZdSdS)_BuildMetaBackendcngtjdd||d||t_ t5|dddn #1swxYwYn!#t$r}||jz }Yd}~nd}~wwxYw|S)Nr egg_info) sysargvrrr*r4 run_setuprr )r!rj requirementses r"_get_build_requiresz%_BuildMetaBackend._get_build_requires7s Xbqb\    / /    ! !/ 2 2    )##%% ! !    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !% ) ) ) AL (LLLLLL )s<B'B< BB  BB B B2 B--B2setup.pyc|}d}t|5}|dd}dddn #1swxYwYt|t dS)N__main__z\r\nz\n)r`readreplaceexeclocals)r!r___file__r%rOcodes r"rz_BuildMetaBackend.run_setupFs   ) ) 4Q6688##GU33D 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 T688s)A  A A Nc2||dgS)Nwheelrrr!rjs r"rz._BuildMetaBackend.get_requires_for_build_wheelQs''wi'PPPr$c0||gS)Nrrrs r"rz._BuildMetaBackend.get_requires_for_build_sdistTs''b'IIIr$metadata_directorysuffixrkc|||}t|j|s"tjt |||jS)z PEP 517 requires that the .dist-info directory be placed in the metadata_directory. To comply, we MUST copy the directory to the root. Returns the basename of the info directory, e.g. `proj-0.0.0.dist-info`. )_find_info_directoryr parentshutilmoverorF)r!rrinfo_dirs r"_bubble_up_info_directoryz+_BuildMetaBackend._bubble_up_info_directoryWsP,,-?HH*<== ; KH '9 : : :}r$c tj|D]R\}}}fd|D}t|dkst|dkrt||dcSSdd|}t j|)Nc>g|]}||Sr(rM)rErOrs r"rHz:_BuildMetaBackend._find_info_directory..fs*@@@QZZ-?-?@!@@@r$rr zNo z directory found in )rAwalklenrr InternalError)r!rrrdirsr candidatesrs ` r"rz&_BuildMetaBackend._find_info_directoryds!w'9:: 3 3OFD!@@@@T@@@J:!##s4yyA~~FJqM22222(6EFDD0BDD"3'''r$cHgtjdd||dd|dt_t5|dddn #1swxYwY||d||dS)Nr dist_infoz --output-dirz--keep-egg-infoz .egg-infoz .dist-info)rrrr>rrr!rrjs r"rz2_BuildMetaBackend.prepare_metadata_for_build_wheelos Xbqb\    / /      /    ' ( (   NN                   &&'9;GGG--.@,OOOs A--A14A1c tj|}tj|dd|d}t jdi|5}gt jdd|||d|| |t _t5| dddn #1swxYwYt||}tj ||}tj|rtj|tjtj |||dddn #1swxYwY|S)NT)exist_okz.tmp-)prefixdirr z --dist-dirr()rArBabspathmakedirstempfileTemporaryDirectoryrrrrr>rrVrDrYremoverename) r! setup_commandresult_extensionresult_directoryrj temp_opts tmp_dist_dirresult_basename result_paths r"_build_with_temp_dirz&_BuildMetaBackend._build_with_temp_dir~s 7??+;<< $t4444&/?@@  ( 5 59 5 5 P"1"""?33 +  %%o66 CH+,, ! !    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !3.00O',,'7IIKw~~k** ' +&&& Ibgll<AA; O O O# P P P P P P P P P P P P P P P&s8 AE9+C  E9 C E9C BE99E=E=ct5|dgd||cdddS#1swxYwYdS)N bdist_wheel.whl)rfr)r!wheel_directoryrjrs r"rz_BuildMetaBackend.build_wheels ' ) ) O O,,m_f- P P P P8<@'+OOOO :::: NXc]NxPS}NNNN MQ     F F F FAE      +r$rc$eZdZdZdfd ZxZS)_BuildMetaLegacyBackendaOCompatibility backend for setuptools This is a version of setuptools.build_meta that endeavors to maintain backwards compatibility with pre-PEP 517 modes of invocation. It exists as a temporary bridge between the old packaging mechanism and the new packaging mechanism, and will eventually be removed. rc.ttj}tjtj|}|tjvr tjd|tjd}|tjd< tt| ||tjdd<|tjd<dS#|tjdd<|tjd<wxYw)Nrr^) r,rrBrAdirnamerinsertrsuperrr)r!r_sys_path script_dir sys_argv_0 __class__s r"rz!_BuildMetaLegacyBackend.run_setups>>W__RW__\%B%BCC SX % % HOOAz * * * Xa[ "  % )  ! | <<<#CHQQQK$CHQKKK#CHQQQK$CHQK $ $ $ $s ')C22"Dr)r%r&r'rr __classcell__)rs@r"rrsG  %%%%%%%%%%r$r)=rrZrArprr]rr6rrcpathlibrtypingrrrrrr<r0rr _pathr _reqsr _deprecation_warningr distutils.utilr__all__getenvrrrr BaseExceptionrr}r*r7r>rJrVr`rfrorrhrr_BACKENDrrrrrrrrrr(r$r"r sS8  88888888888888 >>>>>>$$$$$$ % % %'RY'CRHHNNPP#'A'I'I#s'S'SS%%%%%]%%% /////:?////,  2 2 2999   999  4U3S 4+?%@ @AB U=U=U=U=U=U=U=U=pOOOOO1OOOd%%%%%%%%%%/%%%%%%R    'D'D#+#L " " -&.&N#*2*V',N% $ & & r$