
    vKgv(                     2    S r SSKrSSKr " S S5      rS rg)zmdistutils.extension

Provides the Extension class, used to describe C/C++ extension
modules in setup scripts.    Nc                   D    \ rS rSrSr              SS jrS rSrg)	Extension   a  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 : [string | os.PathLike]
    list of source filenames, relative to the distribution root
    (where the setup script lives), in Unix form (slash-separated)
    for portability.  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                 p   [        U[        5      (       d  [        S5      e[        U[        5      (       a  [	        S U 5       5      (       d  [        S5      eXl        [        [        [        R                  U5      5      U l	        U=(       d    / U l
        U=(       d    / U l        U=(       d    / U l        U=(       d    / U l        U=(       d    / U l        U=(       d    / U l        U	=(       d    / U l        U
=(       d    / U l        U=(       d    / U l        U=(       d    / U l        U=(       d    / U l        U=(       d    / U l        Xl        UU l        [1        U5      S:  aP  U Vs/ sH  n[3        U5      PM     nnSR5                  [7        U5      5      nSU 3n[8        R:                  " U5        g g s  snf )Nz'name' must be a stringc              3   `   #    U H%  n[        U[        [        R                  45      v   M'     g 7f)N)
isinstancestrosPathLike).0vs     _/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/setuptools/_distutils/extension.py	<genexpr>%Extension.__init__.<locals>.<genexpr>o   s#     Gw!Jq3"455ws   ,.z8'sources' must be a list of strings or PathLike objects.r   z, zUnknown Extension options: )r   r	   AssertionErrorlistallnamemapr
   fspathsourcesinclude_dirsdefine_macrosundef_macroslibrary_dirs	librariesruntime_library_dirsextra_objectsextra_compile_argsextra_link_argsexport_symbols	swig_optsdependslanguageoptionallenreprjoinsortedwarningswarn)selfr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   kwoptionoptionsmsgs                        r   __init__Extension.__init__W   sb   ( $$$ !:;;w%%GwGGG J  	C		734(.B*0b(.B(.B"b$8$>B!*0b"4":.4",2"b}"   r7Q;245"tF|"G5iiw0G/y9CMM#	 5s   &F3c           
          SU R                   R                   SU R                   R                   SU R                  < S[	        U 5      S S3	$ )N<.(z) at z#x>)	__class__
__module____qualname__r   id)r,   s    r   __repr__Extension.__repr__   sJ    4>>,,-Qt~~/J/J.K1TYYMY^_abf_ghj^kklmm    )r   r#   r!   r   r    r   r   r$   r   r   r   r%   r   r   r"   r   )NNNNNNNNNNNNNN)__name__r9   r:   __firstlineno____doc__r1   r<   __static_attributes__ r>   r   r   r      s@    >L !#4lnr>   r   c           	         SSK JnJnJn  SSKJn  SSKJn  U" U 5      nU" U SSSSSS9n / n UR                  5       n	U	c  GOUR                  U	5      (       a  M.  U	S   U	S   s=:X  a  S	:X  a  O  OUR                  S
U	 S35        M[  U" X5      n	U" U	5      n
U
S   n[        U/ 5      nSnU
SS  GHX  nUb  UR                  U5        SnM  [        R                  R                  U5      S   nUSS nUSS nUS;   a  UR                   R                  U5        Mk  US:X  a  UR"                  R                  U5        M  US:X  a^  UR%                  S5      nUS:X  a  UR&                  R                  US45        M  UR&                  R                  USU UUS-   S 45        M  US:X  a  UR(                  R                  U5        GM  US:X  a  UR*                  R                  U5        GM:  US:X  a  UR,                  R                  U5        GM^  US:X  a  UR.                  R                  U5        GM  US:X  a  UR0                  R                  U5        GM  US:X  a  UR0                  nGM  US:X  a  UR2                  nGM  US:X  a  UR*                  nGM  US:X  a4  UR2                  R                  U5        U(       d  UR2                  nGM  GM  US;   a  UR4                  R                  U5        GMC  UR                  SU S
35        GM[     UR                  U5        GM  UR7                  5         U$ ! UR7                  5         f = f)z3Reads a Setup file and returns Extension instances.r   )_variable_rxexpand_makefile_varsparse_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.dylibzunrecognized argument ')distutils.sysconfigrE   rF   rG   distutils.text_filerH   distutils.utilrI   readlinematchr+   r   appendr
   pathsplitextr   r   findr   r   r   r   r   r   r    r   close)filenamerE   rF   rG   rH   rI   varsfile
extensionslinewordsmoduleextappend_next_wordwordsuffixswitchvalueequalss                      r   read_setup_filerm      s   VV,+ (#D DQ
==?D|!!$''Aw$r()c)		AdV#:;<'3D &E 1XFFB'C#ab	#/$++D1'+$))$/2aQROO KK&&t,t^$$++E2t^"ZZ_F|))00%?))00%&/5RSCV1WXt^$$++E2t^**11$7t^MM((/t^$$++E2t^,,33E:X%'*'?'?$Z''*':':$\)'*'='=$t^''..t4 +.+>+>( !CC
 %%,,T2II 7vQ?@e "h c"Y \ 	

 	

s   K6L3 3M)rA   r
   r*   r   rm   rC   r>   r   <module>rn      s'   
 
 zn znzfr>   