efddlZddlmZmZmZddlmZddlm Z ej dkrddlm Z nerddl m Z nddl mZ hd ZGd d eZGd d e ZdS)N) TYPE_CHECKINGListDict)build)SetuptoolsDeprecationWarning))Protocol)ABC>build_py build_ext build_clib build_scriptsc<eZdZejddZfdZxZS)rNcdtjD}|tz r)tjddddtj|_t S)Nch|] }|d S)r).0cmds x/builddir/build/BUILD/imunify360-venv-2.3.5/opt/imunify360/venv/lib/python3.11/site-packages/setuptools/command/build.py z)build.get_sub_commands..s===#s1v===z$Direct usage of `distutils` commandsz It seems that you are using `distutils.command.build` to add new subcommands. Using `distutils` directly is considered deprecated, please use `setuptools.command.build`. )i z!https://peps.python.org/pep-0632/)due_datesee_url)_build sub_commands_ORIGINAL_SUBCOMMANDSremitsuperget_sub_commands)self subcommands __class__s rr#zbuild.get_sub_commandsst==)<=== . . 4 ( -6 (;    !' 3D ww'')))r)__name__ __module__ __qualname__rrr# __classcell__)r&s@rrrsI&qqq)L*********rrceZdZUdZdZeed< eed< dZdZ dZ de efd Z de efd Z deeeffd Zd S) SubCommanda.In order to support editable installations (see :pep:`660`) all build subcommands **SHOULD** implement this protocol. They also **MUST** inherit from ``setuptools.Command``. When creating an :pep:`editable wheel <660>`, ``setuptools`` will try to evaluate custom ``build`` subcommands using the following procedure: 1. ``setuptools`` will set the ``editable_mode`` attribute to ``True`` 2. ``setuptools`` will execute the ``run()`` command. .. important:: Subcommands **SHOULD** take advantage of ``editable_mode=True`` to adequate its behaviour or perform optimisations. For example, if a subcommand doesn't need to generate an extra file and all it does is to copy a source file into the build directory, ``run()`` **SHOULD** simply "early return". Similarly, if the subcommand creates files that would be placed alongside Python files in the final distribution, during an editable install the command **SHOULD** generate these files "in place" (i.e. write them to the original source directory, instead of using the build directory). Note that ``get_output_mapping()`` should reflect that and include mappings for "in place" builds accordingly. 3. ``setuptools`` use any knowledge it can derive from the return values of ``get_outputs()`` and ``get_output_mapping()`` to create an editable wheel. When relevant ``setuptools`` **MAY** attempt to use file links based on the value of ``get_output_mapping()``. Alternatively, ``setuptools`` **MAY** attempt to use :doc:`import hooks ` to redirect any attempt to import to the directory with the original source code and other files built in place. Please note that custom sub-commands **SHOULD NOT** rely on ``run()`` being executed (or not) to provide correct return values for ``get_outputs()``, ``get_output_mapping()`` or ``get_source_files()``. The ``get_*`` methods should work independently of ``run()``. F editable_mode build_libcdSz@(Required by the original :class:`setuptools.Command` interface)Nrr$s rinitialize_optionszSubCommand.initialize_optionslrcdSr0rr1s rfinalize_optionszSubCommand.finalize_optionsor3rcdSr0rr1s rrunzSubCommand.runrr3rreturncdS)a Return a list of all files that are used by the command to create the expected outputs. For example, if your build command transpiles Java files into Python, you should list here all the Java files. The primary purpose of this function is to help populating the ``sdist`` with all the files necessary to build the distribution. All files should be strings relative to the project root directory. Nrr1s rget_source_fileszSubCommand.get_source_filesur3rcdS)a Return a list of files intended for distribution as they would have been produced by the build. These files should be strings in the form of ``"{build_lib}/destination/file/path"``. .. note:: The return value of ``get_output()`` should include all files used as keys in ``get_output_mapping()`` plus files that are generated during the build and don't correspond to any source file already present in the project. Nrr1s r get_outputszSubCommand.get_outputsr3rcdS)a Return a mapping between destination files as they would be produced by the build (dict keys) into the respective existing (source) files (dict values). Existing (source) files should be represented as strings relative to the project root directory. Destination files should be strings in the form of ``"{build_lib}/destination/file/path"``. Nrr1s rget_output_mappingzSubCommand.get_output_mappingr3rN)r'r(r)__doc__r-bool__annotations__strr2r5r7rr:r<rr>rrrr,r,'s$$L M4NNN(OOOOOOOOO  $s)       T#Y      DcN      rr,)systypingrrrdistutils.command.buildrrwarningsr version_infor typing_extensionsabcr r r,rrrrJs ,,,,,,,,,,333333333333v$*******######QPP*****F****n n n n n n n n n n r