K i+JdZddlmZddlZddlZddlmZGddZdZy)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.) annotationsN)IterableczeZdZdZ d ddZdZy) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : Iterable[string | os.PathLike] iterable of source filenames (except strings, which could be misinterpreted as a single filename), relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Can be any non-string iterable (list, tuple, set, etc.) containing strings or PathLike objects. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. Nc t|ts tdt|tr td tt t j ||_||_|xsg|_ |xsg|_ |xsg|_ |xsg|_ |xsg|_ |xsg|_| xsg|_| xsg|_| xsg|_| xsg|_| xsg|_|xsg|_||_||_t/|dkDrM|Dcgc] }t1|}}dj3t5|}d|}t7j8|yy#t$r tdwxYwcc}w)Nz'name' must be a stringzJ'sources' must be an iterable of strings or PathLike objects, not a stringz<'sources' must be an iterable of strings or PathLike objectsrz, zUnknown Extension options: ) isinstancestr TypeErrorlistmaposfspathsourcesname include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenreprjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwoptionoptionsmsgs e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/setuptools/_distutils/extension.py__init__zExtension.__init__\sw($$56 6 gs #\   BIIw 78DL  (.B*0b(.B(.B"b$8$>B!*0b"4":.4",2"b}"      r7Q;245tF|5G5iiw0G/y9C MM#  - N  .6s(E E-E*c d|jjd|jjd|jdt |dd S)N<.(z) at z#x>) __class__ __module__ __qualname__rid)r%s r*__repr__zExtension.__repr__sJ4>>,,-Qt~~/J/J.K1TYYMY^_abf_ghj^kklmm)NNNNNNNNNNNNNN) rr rz Iterable[str | os.PathLike[str]]rlist[str] | Nonerz#list[tuple[str, str | None]] | Nonerr7rr7rr7rr7rr7rr7rr7rr7rr7rr7rz str | Nonerz bool | None)__name__r2r3__doc__r+r5r6r*rrs@P*.=A)-)-&*15*./3,0+/&*$(# $#::2:' : ; : ' :':$:/:(:-:*:):$:": !:"#:xnr6rc4ddlm}m}m}ddlm}ddlm}||}||ddddd} g} |j} | n|j| r'| d| dcxk(rd k(rnn|jd | d Q|| |} || } | d} t| g} d} | d dD]1}| | j|d} tjj|d }|dd }|d d}|dvr| j j|f|dk(r| j"j||dk(r[|j%d}|dk(r| j&j|df| j&j|d|||d zdf|dk(r| j(j| |dk(r| j*j|+|dk(r| j,j|M|dk(r| j.j|o|dk(r| j0j||dk(r| j0} |dk(r| j2} |dk(r| j*} |dk(r-| j2j||r| j2} |dvr| j4j||jd|d 4|j|  |j7|S#|j7wxYw)z3Reads a Setup file and returns Extension instances.r) _variable_rxexpand_makefile_varsparse_makefile)TextFile) split_quotedT)strip_comments skip_blanks join_lines lstrip_ws rstrip_wsN*'z' lines not handled yet)z.cz.ccz.cppz.cxxz.c++z.mz.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u)z.az.soz.slz.oz.dylibzunrecognized argument ')distutils.sysconfigr<r=r>distutils.text_filer?distutils.utilr@readlinematchr$rappendr pathsplitextrrfindrrrrrrrrclose)filenamer<r=r>r?r@varsfile extensionslinewordsmoduleextappend_next_wordwordsuffixswitchvalueequalss r*read_setup_filerds VV,+ ( #D   DQ ==?D|!!$'Aw$r()c) AdV#:;<'d3D &E1XFFB'C# ab 2 A#/$++D1'+$))$/2aQROOKK&&t,t^$$++E2t^"ZZ_F|))00%?))00%&/5RSCV1WXt^$$++E2t^**11$7t^MM((/t^$$++E2t^,,33E:X%'*'?'?$Z''*':':$\)'*'='=$t^''..t4 +.+>+>(CC %%,,T2II 7vQ?@e2 Ah   c "YV  sI(LALL) r9 __future__rr r#collections.abcrrrdr:r6r*rgs- # $BnBnJfr6