§ y<ˆj±žãóÒ—dZgd¢ZddlZddlZddlZddlmZddlmZddl m Z ddl m Z m Z mZmZmZddlmZmZdd lmZmZdd lmZdd lmZmZmZmZmZdd lm Z dd lm!Z!ddl"m#Z#e$Z%gd¢Z&Gd„de'¦«Z(d„Z)d„Z*d„Z+Gd„de¦«Z,dZ-da.da/d„Z0 d*d„Z1d+d„Z2 d*d„Z3e4¦«a5 d,d„Z6d-d„Z7d „Z8ej9d!ej:¦«j;Z<ej9d"ej:¦«j;Z=ej9d#ej:¦«j;Z>ej9d$ej:¦«j?Z@d%„ZAd&„ZBej9d'ej:¦«ZCd(„ZDeEd)kr e7¦«dSdS).aénumpy.distutils.fcompiler Contains FCompiler, an abstract base class that defines the interface for the numpy.distutils Fortran compiler abstraction model. Terminology: To be consistent, where the term 'executable' is used, it means the single file, like 'gcc', that is executed, and should be a string. In contrast, 'command' means the entire command line, like ['gcc', '-c', 'file.c'], and should be a list. But note that FCompiler.executables is actually a dictionary of commands. )Ú FCompilerÚ new_fcompilerÚshow_fcompilersÚdummy_fortran_fileéN)ÚPath)Úget_python_lib)Ú FancyGetopt)ÚDistutilsModuleErrorÚDistutilsExecErrorÚ CompileErrorÚ LinkErrorÚDistutilsPlatformError)Ú split_quotedÚ strtobool)Ú CCompilerÚgen_lib_options)Úlog)Ú is_stringÚ all_stringsÚ is_sequenceÚmake_temp_fileÚget_shared_lib_extension©Úfind_executable)Ú _shell_utilsé)ÚEnvironmentConfig)ú.forú.ftnú.f77ú.fcó—eZdZdS)ÚCompilerNotFoundN)Ú__name__Ú __module__Ú __qualname__©óúv/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/numpy/distutils/fcompiler/__init__.pyr#r#-s€€€€€Ø€Dr(r#cóB—t|¦«rt|¦«S|S©N)rr©Úss r)Úflaglistr.0s!€Ý��|„|ðݘA‰ŒÐàˆr(có\—t|¦«rt|¦«St|¦«Sr+)rrÚboolr,s r)Ústr2boolr16s'€Ý��|„|ðݘ‰|Œ|ÐÝ �‰7Œ7€Nr(có>—t|¦«ot|¦«Sr+)rr)Úseqs r)Úis_sequence_of_stringsr4;s€Ý �sÑ Ô Ð 0¥ ¨CÑ 0Ô 0Ð0r(c ó —eZdZdZeddddedfdddedfdddedfdddedf¬ ¦«Zedd d d d dddd¬¦ « ZedGidd“ddddedf“ddddedf“dddd edf“d!d"ddedf“d#d$d%d#edf“d&d'ddedf“d(d)ddedf“d*d+d,d*edf“d-d.ddedf“d/d0ddedf“dd1d2d3edf“d4d5ddedf“d6d7ddedf“d8d9d:d;edf“dd?edf“d@dAd>d?edf“dBdCdDdEedf“ŽZ dddddddddFœZ ddgZ dZ dGZ dZgZddHgdgdgddIgddJgdgdBdKgddLœZdZdMZdNZdNZdZdOZgZgdP¢ZdQZe¦«ZdRZdSZdTZdUZiZ gdL¢Z!dZ"gZ#gZ$dV„Z%dW„Z&dX„Z'dY„Z(e(dZ¦«Z)e(d[¦«Z*e(d\¦«Z+e(d]¦«Z,e(d<¦«Z-e(d@¦«Z.e(d^¦«Z/e(d_¦«Z0d`„Z1da„Z2db„Z3dc„Z4dd„Z5de„Z6df„Z7dg„Z8dh„Z9di„Z:dj„Z;dk„Zdn„Z?do„Z@dp„ZAe?xZBZCe@xZDZEeAxZFZGdq„ZHdr„ZIddsgfdt„ZJddu„ZKdv„ZLdw„ZMdx„ZNdy„ZOdz„ZP d€d{„ZQd|„ZRd}„ZSd~„ZTdS)�ra0Abstract base class to define the interface that must be implemented by real Fortran compiler classes. Methods that subclasses may redefine: update_executables(), find_executables(), get_version() get_flags(), get_flags_opt(), get_flags_arch(), get_flags_debug() get_flags_f77(), get_flags_opt_f77(), get_flags_arch_f77(), get_flags_debug_f77(), get_flags_f90(), get_flags_opt_f90(), get_flags_arch_f90(), get_flags_debug_f90(), get_flags_fix(), get_flags_linker_so() DON'T call these methods (except get_version) after constructing a compiler instance or inside any other method. All methods, except update_executables() and find_executables(), may call the get_version() method. After constructing a compiler instance, always call customize(dist=None) method that finalizes compiler construction and makes the following attributes available: compiler_f77 compiler_f90 compiler_fix linker_so archiver ranlib libraries library_dirs Ú config_fcNÚnooptFÚnoarchÚdebugÚverbose)Údistutils_sectionr7r8r9r:)zexe.compiler_f77ÚF77Úf77execNF)zexe.compiler_f90ÚF90Úf90execNF)zexe.compiler_fixr>r?NF)zexe.version_cmdNNNF)z exe.linker_soÚLDSHAREDÚldsharedNF)zexe.linker_exeÚLDÚldNF)NÚARÚarNF)NÚRANLIBÚranlibNF) r;Ú compiler_f77Ú compiler_f90Ú compiler_fixÚ version_cmdÚ linker_soÚ linker_exeÚarchiverrGr;Úf77z flags.f77ÚF77FLAGSÚf77flagsTÚf90z flags.f90ÚF90FLAGSÚf90flagsÚfreez flags.freeÚ FREEFLAGSÚ freeflagsÚfixz flags.fixÚoptz flags.optÚFOPTÚopt_f77z flags.opt_f77Úopt_f90z flags.opt_f90Úarchz flags.archÚFARCHÚarch_f77zflags.arch_f77Úarch_f90zflags.arch_f90z flags.debugÚFDEBUGÚfdebugÚ debug_f77zflags.debug_f77Ú debug_f90zflags.debug_f90Úflagszself.get_flagsÚFFLAGSÚfflagsrLzflags.linker_soÚLDFLAGSÚldflagsrMzflags.linker_exerEzflags.arÚARFLAGSÚarflags)r!rú.Frr ú.f90ú.F90ú.f95r'z-vz-fixedz-sharedz-cr)rKrHrIrJrLrMrNrGz-cz-o z-I) rrr r!rmrorlrnz.FORz.oz.azlib%s%sz%s%sÚcóŒ—tj|g|¢Ri|¤Ž|j |j¦«|_|j |j¦«|_|j |j¦«|_|j ¦«|_|j D]}||jvr d|j|<Œd|_ dS)NF) rÚ__init__Údistutils_varsÚcloneÚ_environment_hookÚ command_varsÚ flag_varsÚ executablesÚcopyÚ_executable_keysÚ_is_customised)ÚselfÚargsÚkwÚes r)rrzFCompiler.__init__ÛsÊ€ÝÔ˜4Ð- $Ð-Ð-Ð-¨"Ð-Ð-Ð-Ø"Ô1×7Ò7¸Ô8NÑOÔOˆÔØ Ô-×3Ò3°DÔ4JÑKÔKˆÔØœ×-Ò-¨dÔ.DÑEÔEˆŒØÔ+×0Ò0Ñ2Ô2ˆÔØÔ&ð +ð +ˆAؘÔ(Ð(Ð(Ø&*�Ô  Ñ#øð$ˆÔÐÐr(cóŒ—| |j¦«}|j |j¦«|j |j¦«|_|j |j¦«|_|j |j¦«|_|j   ¦«|_ |Sr+) Ú__new__Ú __class__Ú__dict__Úupdatersrtrurvrwrxry)r|Úobjs r)Ú__copy__zFCompiler.__copy__és™€Ø�lŠl˜4œ>Ñ*Ô*ˆØ Œ ×Ò˜DœMÑ*Ô*Ð*Ø Ô/×5Ò5°cÔ6KÑLÔLˆÔØÔ+×1Ò1°#Ô2GÑHÔHˆÔØœ ×+Ò+¨CÔ,AÑBÔBˆŒ Øœ/×.Ò.Ñ0Ô0ˆŒØˆ r(có*—| ¦«Sr+)r†©r|s r)ryzFCompiler.copyòs€Ø�}Š}‰ŒÐr(có.‡—ˆfd„}t|¬¦«S)Ncó0•—|jsJ‚|j‰Sr+)r{rx)r|Úkeys €r)Úfgetz)FCompiler._command_property..fgetùs ø€ØÔ&Ð &Ð &Ð&ØÔ# CÔ(Ð (r()rŒ)Úproperty)r‹rŒs` r)Ú_command_propertyzFCompiler._command_propertyøs/ø€ð )ð )ð )ð )ð )õ˜TÐ"Ñ"Ô"Ð"r(rKrHrIrJrNrGcó2—| ||¦«dSr+)Ú set_command©r|r‹Úvalues r)Úset_executablezFCompiler.set_executables€Ø ×Ò˜˜eÑ$Ô$Ð$Ð$Ð$r(c óf—| ¦«D]\}}| ||¦«ŒdSr+)Úitemsr�)r|r~ÚkÚvs r)Ú set_commandszFCompiler.set_commands s@€Ø—H’H‘J”Jð #ð #‰DˆAˆqØ × Ò ˜Q Ñ "Ô "Ð "Ð "ð #ð #r(cóð—||jvrtd|›d|jj›�¦«‚t |¦«rt |¦«}|�#t |dd…¦«s J||f¦«‚||j|<dS)Nzunknown executable 'z ' for class r)rzÚ ValueErrorr‚r$rrr4rxr‘s r)r�zFCompiler.set_commands•€Ø�dÔ+Ð+Ð+Ý�*à���d”nÔ-Ð-ð/ñ0ô0ð 0õ �UÑ Ô ð (Ý  Ñ'Ô'ˆE؈}Õ 6°u¸Q¸R¸R´yÑ AÔ Aˆ}ˆ}ÀCÈÀ<‰}Œ}ÐAØ %ˆÔ˜ÑÐÐr(cóʇ‡‡—‰jsJ‚‰jŠˆfd„Šˆfd„}dˆˆfd„ }‰j}|d¦«}|s7|d¦«}|rtjd|z¦«nEt d|z¦«‚|d|¬ ¦«}|stjd |z¦«|d |¬ ¦«|d ||¬ ¦«|d||¬ ¦«|d||¬ ¦«|d¦«|d¦«dS)a3Go through the self.executables dictionary, and attempt to find and assign appropriate executables. Executable names are looked for in the environment (environment variables, the distutils.cfg, and command line), the 0th-element of the command list, and the self.possible_executables list. Also, if the 0th element is "" or "", the Fortran 77 or the Fortran 90 compiler executable is used, unless overridden by an environment setting. Subclasses should call this if overridden. cóR•—|‰vr‰|St|¦«}|x‰|<‰|<|Sr+r)ÚexeÚfc_exeÚ exe_caches €r)Úcached_find_executablez:FCompiler.find_executables..cached_find_executable-s=ø€Ø�iÐÐØ  ”~Ð%Ý$ SÑ)Ô)ˆFØ17Ð 7ˆI�c‰N˜Y vÑ.؈Mr(cóp•—|�0t|¦«s#t|›d|›d‰jj›�¦«‚dSdS)Nz value z is invalid in class )r4ršr‚r$)Únamer’r|s €r)Úverify_command_formz7FCompiler.find_executables..verify_command_form3sSø€ØÐ Õ)?ÀÑ)FÔ)FÐ Ý à�T�T˜5˜5˜5 $¤.Ô"9Ð"9ð;ñ<ô<ð<ð!Ð Ð Ð r(Ncó´•—‰ j |d¦«}|sdSt‰ j|¦«}|s ||g‰ jz}n |g‰ jz}t ¦«}g}|D]D}|dkr|}n|dkr|}|r||vrŒ| |¦«| |¦«ŒE|D]} ‰ | ¦«} | r | |d<| cSŒ‰  |d¦«dS)Nzzr) rxÚgetÚgetattrrvÚpossible_executablesÚsetÚaddÚappendr�) Úexe_keyrOrRÚcmdÚexe_from_environÚ possiblesÚseenÚunique_possiblesrr�ržr r|s €€r)Úset_exez+FCompiler.find_executables..set_exe8s9ø€ØÔ"×&Ò& w°Ñ5Ô5ˆCØð Ø�tõ ' tÔ'8¸'ÑBÔBÐ Ø#ð KØ  #˜J¨Ô)BÑB� � à-Ð.°Ô1JÑJ� å‘5”5ˆDØ!Ð Øð +ð +�ؘ’<�<Ø�A�Aؘ'’\�\Ø�AØð˜A ˜I˜IØØ—’˜‘ ” � Ø ×'Ò'¨Ñ*Ô*Ð*Ð*à'ð "ð "�Ø/Ð/°Ñ4Ô4�Øð"Ø#�C˜‘FØ!�M�M�Mð"ð × Ò ˜W dÑ +Ô +Ð +Ø�4r(rIrHz %s: no Fortran 90 compiler foundz%s: f90 nor f77)rRz %s: no Fortran 77 compiler foundrJrL)rOrRrMrKrNrG©NN)r{Ú _exe_cacheÚ compiler_typerÚwarnr#)r|r£r±ÚctyperRrOr rŸs` @@r)Úfind_executableszFCompiler.find_executablessŒøøø€ðÔ"Ð"Ð"Ð"Ø”Oˆ ð ð ð ð ð ð  <ð <ð <ð <ð <ð  ð ð ð ð ð ð ð@Ô"ˆØˆg�nÑ%Ô%ˆØð -Ø�'˜.Ñ)Ô)ˆCØð BÝ”Ð;¸eÑCÑDÔDÐDÐDå&Ð'8¸5Ñ'@ÑAÔAÐAà�'˜.¨cÐ2Ñ2Ô2ˆCØð EÝ”Ð;¸eÑCÑDÔDÐDØ ˆG�N¨Ð ,Ñ ,Ô ,Ð ,àˆ�  ¨#Ð.Ñ.Ô.Ð.؈�  #¨3Ð/Ñ/Ô/Ð/؈�  3¨CÐ0Ñ0Ô0Ð0؈� ÑÔÐØˆ�ÑÔÐÐÐr(có—dS)aqCalled at the beginning of customisation. Subclasses should override this if they need to set up the executables dictionary. Note that self.find_executables() is run afterwards, so the self.executables dictionary values can contain or as the command, which will be replaced by the found F77 or F90 compiler. Nr'rˆs r)Úupdate_executableszFCompiler.update_executablesls €ð ˆr(có—g|jzS)z+List of flags common to all compiler types.)Ú pic_flagsrˆs r)Ú get_flagszFCompiler.get_flagsws€à�D”NÑ"Ð"r(cóT—|j |d¦«}|€gS|dd…S)Nr)rxr¥)r|r‹r¬s r)Ú_get_command_flagszFCompiler._get_command_flags{s1€ØÔ×"Ò" 3¨Ñ-Ô-ˆØ ˆ;؈IØ�1�2�2Œwˆr(có,—| d¦«S)z"List of Fortran 77 specific flags.rH©r¾rˆs r)Ú get_flags_f77zFCompiler.get_flags_f77�ó€à×&Ò& ~Ñ6Ô6Ð6r(có,—| d¦«S)z"List of Fortran 90 specific flags.rIrÀrˆs r)Ú get_flags_f90zFCompiler.get_flags_f90„rÂr(có—gS)z.List of Fortran 90 free format specific flags.r'rˆs r)Úget_flags_freezFCompiler.get_flags_free‡ó€àˆ r(có,—| d¦«S)z/List of Fortran 90 fixed format specific flags.rJrÀrˆs r)Ú get_flags_fixzFCompiler.get_flags_fixŠrÂr(có,—| d¦«S)z/List of linker flags to build a shared library.rLrÀrˆs r)Úget_flags_linker_sozFCompiler.get_flags_linker_so�s€à×&Ò& {Ñ3Ô3Ð3r(có,—| d¦«S)z,List of linker flags to build an executable.rMrÀrˆs r)Úget_flags_linker_exezFCompiler.get_flags_linker_exe�s€à×&Ò& |Ñ4Ô4Ð4r(có,—| d¦«S)zList of archiver flags. rNrÀrˆs r)Ú get_flags_arzFCompiler.get_flags_ar“s€à×&Ò& zÑ2Ô2Ð2r(có—gS)z0List of architecture independent compiler flags.r'rˆs r)Ú get_flags_optzFCompiler.get_flags_opt–rÇr(có—gS)z.List of architecture dependent compiler flags.r'rˆs r)Úget_flags_archzFCompiler.get_flags_arch™rÇr(có—gS)z=List of compiler flags to compile with debugging information.r'rˆs r)Úget_flags_debugzFCompiler.get_flags_debugœrÇr(có —|jdd…S)zList of compiler libraries.N)Ú librariesrˆs r)Ú get_librarieszFCompiler.get_libraries¤s€àŒ~˜a˜a˜aÔ Ð r(có —|jdd…S)z%List of compiler library directories.N)Ú library_dirsrˆs r)Úget_library_dirszFCompiler.get_library_dirs§s€àÔ    Ô#Ð#r(rcóf—|jsJ‚tj|||¬¦«}|€t¦«‚|S)N)ÚforceÚ ok_status)r{rÚ get_versionr#)r|rÝrÞÚversions r)rßzFCompiler.get_version«s>€ØÔ"Ð"Ð"Ð"ÝÔ'¨°EÀYÐOÑOÔOˆØ ˆ?Ý"Ñ$Ô$Ð $؈r(c󄇇‡‡‡‡‡—tjd‰jjz¦«d‰_‰j |¦«‰j |¦«‰j |¦«‰  ¦«‰  ¦«‰j  dd¦«}‰j  d|¦«}‰j  dd¦«}‰jj Љjj ŠgŠgŠg}gЉr+tj ‰¦«Š‰jjЉr7tj ‰¦«Š‰jjЉjj}‰jjЉr.tj ‰¦«Š‰jj‰zŠggg}}}ˆˆˆˆˆˆˆfd„} |s| d|¦«|s | d |¦«|r | d|¦«‰jj|z|z|z} ‰r‰ ‰‰z| z¬ ¦«‰r‰ ‰|z‰z| z¬ ¦«‰r‰ ‰‰z| z¬ ¦«‰j} | �r ‰jj} t2j d ¦«r_t9d¬¦«} t:j | dd¦«}t:j | dd¦«}|g| zd|zgz} t2j d¦«r^ddl m!}|d¦«}t:j |d¦«}t:j |d¦«}|g| zd|zgz} ‰ | | z¬¦«‰j"}|r%‰jj"}‰ ||z¬¦«‰jj#}|r&‰jj$}‰ |g|z¬¦«‰ %‰ &¦«¦«‰ '‰ (¦«¦«dS)a¥Customize Fortran compiler. This method gets Fortran compiler specific information from (i) class definition, (ii) environment, (iii) distutils config files, and (iv) command line (later overrides earlier). This method should be always called after constructing a compiler instance. But not in __init__ because Distribution instance is needed for (iii) and (iv). z customize %sTr7Fr8r9có4•—| t‰ j|¦«¦«t‰ d|z¦«}d‰‰fd‰ ‰ fd‰ ‰ ffD]L\}}}|›d|›�}|r=|t‰ d|z¦«ur(| t‰ j|¦«¦«ŒMdS)NÚ get_flags_rOrRÚ_)Úextendr¦rw)ÚtagreÚthis_getr¢ÚcÚflagvarÚtrOrQrRrTrXÚfixflagsr|s €€€€€€€r)r¼z&FCompiler.customize..get_flagsósÇø€à �LŠL� ¤°Ñ5Ô5Ñ 6Ô 6Ð 6ݘt \°CÑ%7Ñ8Ô8ˆHØ&+¨S°(Ð%;Ø&+¨S°(Ð%;Ø&+¨S°(Ð%;ð%=ð ?ð ?Ñ ��a˜ð #˜s˜s D DÐ)�Øð?˜­°°|ÀaÑ7GÑ)HÔ)HÐHÐHØ—N’N¥7¨4¬>¸1Ñ#=Ô#=Ñ>Ô>Ð>øð  ?ð ?r(rYr])rH)rI)rJÚaixr)Ú standard_libÚconfigÚ ld_so_aixz python.expz-bI:Úos400r)Úget_config_varÚLIBPL)rL)rM)rNN))rÚinfor‚r$r{rsÚuse_distributionrvrwr¹r·r¥rHrIrÚ NativeParserÚsplitrOrRrUrJrXrer˜rLÚsysÚplatformÚ startswithrÚosÚpathÚjoinÚdistutils.sysconfigrñrMrNrEÚset_library_dirsrÛÚ set_librariesrØ)r|Údistr7r8r9rWÚoflagsÚaflagsÚdflagsr¼rgrLÚlinker_so_flagsÚ python_librïÚ python_exprñÚ python_configrMÚlinker_exe_flagsrErkrOrQrRrTrXrës` @@@@@@r)Ú customizezFCompiler.customize·s§øøøøøøø€õ Œ� 4¤>Ô#:Ñ;Ñ<Ô<Ð<à"ˆÔà Ô×,Ò,¨TÑ2Ô2Ð2Ø Ô×*Ò*¨4Ñ0Ô0Ð0Ø Œ×'Ò'¨Ñ-Ô-Ð-à ×ÒÑ!Ô!Ð!ð ×ÒÑÔÐàÔ#×'Ò'¨°Ñ7Ô7ˆØÔ$×(Ò(¨°5Ñ9Ô9ˆØÔ#×'Ò'¨°Ñ7Ô7ˆàÔÔ,ˆØÔÔ,ˆàˆØˆØˆ ؈à ð *ÝÔ+×1Ò1°#Ñ6Ô6ˆCØ”~Ô)ˆHØ ð ,ÝÔ+×1Ò1°#Ñ6Ô6ˆCØ”~Ô)ˆHØœÔ+ˆIàÔÔ,ˆð ð 5ÝÔ+×1Ò1°#Ñ6Ô6ˆCØ”~Ô)¨HÑ4ˆHà!# R¨˜�ˆð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ðð *Ø ˆI�e˜VÑ $Ô $Ð $Øð *Ø� ˜& &Ñ)Ô)Ð)Ø ð 'Ø ˆI�g˜vÑ &Ô &Ð &à”Ô%¨Ñ.°Ñ7¸&Ñ@ˆà ð @Ø × Ò ¨3¨x©<¸Ñ+>Ð Ñ ?Ô ?Ð ?Ø ð JØ × Ò ¨3¨y©=¸Ñ+AÀ&Ñ+HÐ Ñ IÔ IÐ IØ ð @Ø × Ò ¨3¨x©<¸Ñ+>Ð Ñ ?Ô ?Ð ?ð”Nˆ Ø ñ CØ"œnÔ6ˆOÝŒ|×&Ò& uÑ-Ô-ð JÝ+¸Ð;Ñ;Ô;� ÝœGŸLšL¨°X¸{ÑKÔK� ÝœWŸ\š\¨*°hÀ ÑMÔM� Ø&˜K¨)Ñ3°v¸jÑ7HÐ6IÑI� ÝŒ|×&Ò& wÑ/Ô/ð JØ>Ð>Ð>Ð>Ð>Ð>Ø . ¨wÑ 7Ô 7� ÝœGŸLšL¨¸ ÑDÔD� ÝœWŸ\š\¨-¸ÑFÔF� Ø&˜K¨)Ñ3°v¸jÑ7HÐ6IÑI� Ø × Ò ¨ °/Ñ(AÐ Ñ BÔ BÐ Bà”_ˆ Ø ð FØ#œ~Ô8Ð Ø × Ò ¨Ð4DÑ)DÐ Ñ EÔ EÐ Eà Ô Ô 'ˆØ ð 5Ø”nÔ'ˆGØ × Ò ¨ t¨G¡|Ð Ñ 4Ô 4Ð 4à ×Ò˜d×3Ò3Ñ5Ô5Ñ6Ô6Ð6Ø ×Ò˜4×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ð0Ð0r(c óÚ—g}t|j ¦«¦«gd¢zD]J}t||¦«r8t ||¦«}| |ddt |¦«zf¦«ŒK| ¦«t|¦«}|  d|j j z¦«D],}|dd…dkr d|dd…z}t|¦«Œ-dS)z0Print out the attributes of a compiler instance.)ràr×rÚÚ object_switchÚcompile_switchNz= z%s instance properties:éz --z ) ÚlistrxÚkeysÚhasattrr¦rªÚreprÚsortr Ú generate_helpr‚r$Úprint)r|Úpropsr‹r—Úpretty_printerÚls r)Údump_propertieszFCompiler.dump_properties,s €àˆÝ˜Ô(×-Ò-Ñ/Ô/Ñ0Ô0ð4ð4ð4ñ4ð 8ð 8ˆCõ�t˜SÑ!Ô!ð 8ݘD #Ñ&Ô&�Ø— ’ ˜c 4¨­d°1©g¬g©Ð6Ñ7Ô7Ð7øØ � Š ‰ Œ ˆ å$ UÑ+Ô+ˆØ×-Ò-Ð.GØ15´Ô1Hñ/JñKôKð ð ˆAà��!�Œu�fŠ}ˆ}ؘ1˜Q˜R˜Rœ5‘L�Ý �!‰HŒHˆHˆHð  ð r(cóž—i}t|¦«j ¦«tvr1t |¦«s"d}|j} t |¦«}|jpg} nvt|¦«r4d}|j } | €td|j j ›d|›�¦«‚|j pg} n3d}|j} | €td|j j ›d|›�¦«‚|j pg} |jdd kr|j ¦«|g} n|j ¦«|zg} |j ¦«sJ‚|j|g} | r5t%jd |d d…›d d  | ¦«›�¦«| |jg¦«} | r*t%jd d  | ¦«z¦«| |z| z| z| z|z| z}t.j | d¦«|z›d|›�} | ||¬¦«dS#t$r$}t7|¦«}t9|¦«d‚d}~wwxYw)zCompile 'src' to product 'obj'.z:f77z:f90Nzf90 not supported by z needed for z:fixzf90 (fixed) not supported by éÿÿÿÿú zextra rz options: z%using compile options from source: %rrz: )Údisplay)rÚsuffixÚlowerÚFORTRAN_COMMON_FIXED_EXTENSIONSÚhas_f90_headerrHÚ get_f77flagsÚextra_f77_compile_argsÚis_free_formatrIr r‚r$Úextra_f90_compile_argsrJr Ústripr rrórür¥r´rúrûÚbasenameÚspawnÚstrr )r|r…ÚsrcÚextÚcc_argsÚextra_postargsÚpp_optsÚ src_flagsÚflavorÚcompilerÚextra_compile_argsÚo_argsÚs_argsÚ extra_flagsÚcommandrrÚmsgs r)Ú_compilezFCompiler._compile@sÎ€àˆ Ý �‰9Œ9Ô × !Ò !Ñ #Ô #Õ'FÐ FÐ FÝ! #Ñ&Ô&ð GàˆFØÔ(ˆHÝ$ SÑ)Ô)ˆIØ!%Ô!<Ð!BÀÐ Ð Ý ˜CÑ Ô ð C؈FØÔ(ˆHØÐÝ(Ð(ØœÔ0Ð0Ð0°#°#ð*7ñ8ô8ð8à!%Ô!<Ð!BÀÐ Ð àˆFØÔ(ˆHØÐÝ(Ð(ØœÔ0Ð0Ð0°#°#ð*7ñ8ô8ð8à!%Ô!<Ð!BÀÐ Ø Ô ˜bÔ ! 3Ò &Ð &ØÔ(×.Ò.Ñ0Ô0°#Ð6ˆFˆFàÔ(×.Ò.Ñ0Ô0°Ñ4Ð5ˆFàÔ"×(Ò(Ñ*Ô*Ð*Ð*Ð*ØÔ% sÐ+ˆà ð CÝ ŒHˆHؘq˜r˜rœ ˜ ˜  C§H¢HÐ-?Ñ$@Ô$@Ð$@ðBñ Cô Cð Cð —m’m DÔ$6¸Ñ;Ô;ˆ Ø ð .Ý ŒHÐ<Ø—x’x  Ñ,Ô,ñ-ñ .ô .ð .ð˜WÑ$ {Ñ2°VÑ;¸fÑDØ"ñ#Ø%7ñ8ˆõ!œg×.Ò.¨x¸¬{Ñ;Ô;¸fÑDÐDÐDØ!˜cð#ˆð .Ø �JŠJ�w¨ˆJÑ 0Ô 0Ð 0Ð 0Ð 0øÝ!ð .ð .ð .Ý�a‘&”&ˆCݘsÑ#Ô#¨Ð -øøøøð .øøøsÈHÈ I È(IÉI có—g}|j�p|jddkr/| |j ¦«|g¦«n\| |j ¦«|z¦«n,t d|z¦«t d|jj¦«|j�(|g|zD] }| |j›|›�¦«Œ!n,t d|z¦«t d|jj¦«|S)Nrrz'XXX: module_build_dir=%r option ignoredzXXX: Fix module_dir_switch for z"XXX: module_dirs=%r option ignoredz#XXX: Fix module_include_switch for )Úmodule_dir_switchrår%rªrr‚r$Úmodule_include_switch)r|Ú module_dirsÚmodule_build_dirÚoptionsÚds r)Úmodule_optionszFCompiler.module_optionsss€ØˆØ Ô !Ð -ØÔ% bÔ)¨3Ò.Ð.Ø—’ Ô 6× <Ò <Ñ >Ô >Ð@PÐQÑRÔRÐRÐRà—’˜tÔ5×;Ò;Ñ=Ô=Ð>NÑNÑOÔOÐOÐOå Ð;Ð?OÑPÑ QÔ QÐ QÝ Ð3°T´^Ô5LÑ MÔ MÐ MØ Ô %Ð 1Ø&Ð'¨ Ñ3ð Ið I�Ø—’¨Ô)CÐ)CÀQÀQÐGÑHÔHÐHÐHð Iõ Ð6¸+ÑFÑ GÔ GÐ GÝ Ð7¸¼Ô9PÑ QÔ QÐ Q؈r(có —d|zS)Nz-lr')r|Úlibs r)Úlibrary_optionzFCompiler.library_option…ó €Ø�c‰zÐr(có —d|zS)Nz-Lr')r|Údirs r)Úlibrary_dir_optionzFCompiler.library_dir_option‡rCr(có—| ||¦«\}}| |||¦«\}}}t||||¦«}t|¦«r!tj ||¦«}n|�td¦«‚| ||¦«�rU|j ddkr|j   ¦«|g}n|j   ¦«|zg}t|j ¦«r ||j gz}n ||j z}||z|z}| rdg|dd…<| r| |dd…<| r|  | ¦«|  tj |¦«¦«|tjkr|jdd…}n|jdd…}||z} | |¦«dS#t($r$}t+|¦«}t-|¦«d‚d}~wwxYwt/jd|¦«dS)Nz%'output_dir' must be a string or Nonerrz-grzskipping %s (up-to-date))Ú_fix_object_argsÚ _fix_lib_argsrrrúrûrüÚ TypeErrorÚ _need_linkÚlibrary_switchr%ÚobjectsråÚmkpathÚdirnamerÚ EXECUTABLErMrLr'r r(r rr9)r|Ú target_descrMÚoutput_filenameÚ output_dirr×rÚÚruntime_library_dirsÚexport_symbolsr9Ú extra_preargsr,Ú build_tempÚ target_langÚlib_optsr2Úld_argsÚlinkerr5rr6s r)ÚlinkzFCompiler.linkŠsF€ð #×3Ò3°G¸ZÑHÔHш�à × Ò ˜y¨,Ð8LÑ MÔ Mñ 6ˆ �<Ð!5õ# 4¨Ð7KØ#,ñ.ô.ˆå �ZÑ Ô ð EÝ œgŸlšl¨:°ÑGÔGˆOˆOØ Ð #ÝÐCÑDÔDÐ Dà �?Š?˜7 OÑ 4Ô 4ñ CØÔ" 2Ô&¨Ò+Ð+ØÔ-×3Ò3Ñ5Ô5°ÐG��àÔ-×3Ò3Ñ5Ô5°oÑEÐF�嘜Ñ&Ô&ð 1Ø! T¤\ NÑ2��à! D¤LÑ0�Ø Ñ(¨6Ñ1ˆGØð %Ø#˜f�˜˜˜‘ Øð ,Ø+�˜˜˜‘ Øð /Ø—’˜~Ñ.Ô.Ð.Ø �KŠK�œŸš¨Ñ8Ô8Ñ 9Ô 9Ð 9Ø�iÔ2Ò2Ð2Øœ¨¨¨Ô+��àœ¨¨¨Ô*�ؘwÑ&ˆGð /Ø— ’ ˜7Ñ#Ô#Ð#Ð#Ð#øÝ%ð /ð /ð /ݘ!‘f”f�Ý ‘n”n¨$Ð.øøøøð /øøøõ ŒIÐ0°/Ñ BÔ BÐ BÐ BÐ BsÆ,GÇ G1Ç G,Ç,G1cóš—|€dSt|¦«r¯| d¦«r$|dd…}t||¦«}|¦«S| d¦«r#|dd…}|j|}|r|dSdS| d¦«r'|dd…}t|d|z¦«}|¦«SdS|¦«S) Nzself.ézexe.r rzflags.érã)rrùr¦rx)r|r¢Ú hook_nameÚhookÚvars r)ruzFCompiler._environment_hook¹sú€Ø Ð Ø�4Ý �YÑ Ô ð Ø×#Ò# GÑ,Ô,ð Ø% a b bœM� ݘt YÑ/Ô/�Ø�t‘v”v� Ø×%Ò% fÑ-Ô-ð Ø% a b bœM� ØÔ& yÔ1�Øð ؘqœ6�Mà˜4Ø×%Ò% hÑ/Ô/ð Ø% a b bœM� ݘt \°IÑ%=Ñ>Ô>�Ø�t‘v”v� ð ð ð �9‘;”;Ð r(có—dS)zc Check if the given C compiler can link objects produced by this compiler. Tr')r|Ú ccompilers r)Úcan_ccompiler_linkzFCompiler.can_ccompiler_linkÏs €ð ˆtr(có—t¦«‚)a¨ Convert a set of object files that are not compatible with the default linker, to a file that is compatible. Parameters ---------- objects : list List of object files to include. output_dir : str Output directory to place generated object files. extra_dll_dir : str Output directory to place extra DLL files that need to be included on Windows. Returns ------- converted_objects : list of str List of converted object files. Note that the number of output files is not necessarily the same as inputs. )ÚNotImplementedError)r|rMrSÚ extra_dll_dirs r)Úwrap_unlinkable_objectsz!FCompiler.wrap_unlinkable_objectsÖs€õ."Ñ#Ô#Ð#r(r+) NNNNNrNNNN)Ur$r%r&Ú__doc__rr1rsrvr.rwÚ language_mapÚlanguage_orderr´Úcompiler_aliasesÚversion_patternr§rxÚsuggested_f90_compilerr r rLr9r:r»Úsrc_extensionsÚ obj_extensionrÚshared_lib_extensionÚstatic_lib_extensionÚstatic_lib_formatÚshared_lib_formatÚ exe_extensionr³rzÚ c_compilerr"r$rrr†ryrŽrKrHrIrJrLrMrNrGr“r˜r�r·r¹r¼r¾rÁrÄrÆrÉrËrÍrÏrÑrÓrÕÚget_flags_opt_f77Úget_flags_opt_f90Úget_flags_arch_f77Úget_flags_arch_f90Úget_flags_debug_f77Úget_flags_debug_f90rØrÛrßr rr7r?rBrFr\rurerir'r(r)rr>sP€€€€€ðððP'Ð&Ø%Ø�t˜W h°Ð6ؘ˜h¨°%Ð8Ø�t˜W h°Ð6ؘ˜y¨(°EÐ:ð ñô€Nð%Ð$Ø%ØJØJØJØBØJØ@Ø2Ø8ð ñ ô €Lð"Ð!ðððØ%˜+ðà˜J¨ °H¸dÐCÐCðð˜J¨ °H¸dÐCÐCðð˜k¨;¸À$ÐGÐGð ð ˜D $¨°%Ð8Ð8ð ð ˜F E¨8°TÐ:Ð:ð ð# D¨$°¸%Ð@Ð@ðð# D¨$°¸%Ð@Ð@ðð˜g v¨x¸Ð?Ð?ðð% d¨D°(¸EÐBÐBðð% d¨D°(¸EÐBÐBðð ¨(°H¸dÐCÐCðð'¨¨d°H¸eÐDÐDðð'¨¨d°H¸eÐDÐDðð" 8¨X°xÀÐFÐFðð '¨ °9¸hÈÐMÐMð!ð")¨)°YÀÈ$ÐOÐOð#ð$˜) Y°¸$Ð ?Ð ?ð%€Ið* Ø!ØØ!Ø!Ø!Ø!Ø!ðð€Lð˜U�^€Nð €MØÐØ€OàÐà˜t�}ؘؘؠÐ)ؘYÐ'Ø�gؘ5�MØð  ð  €Kð"Ðà€NØ€Mð€Nð Ðð!Ðà€IàYÐYÐY€NØ€Mà3Ð3Ñ5Ô5ÐØÐØ!ÐØÐØ€Mà€Jð"ð"ð"Ðð €Jð ÐØÐð $ð $ð $ððððððð #ð#ð#ð $Ð# MÑ2Ô2€KØ$Ð$ ^Ñ4Ô4€LØ$Ð$ ^Ñ4Ô4€LØ$Ð$ ^Ñ4Ô4€LØ!Ð! +Ñ.Ô.€IØ"Ð" <Ñ0Ô0€JØ Ð  Ñ,Ô,€HØ Ð ˜xÑ (Ô (€Fð%ð%ð%ð#ð#ð#ð&ð&ð&ðMðMðMð^  ð  ð  ð#ð#ð#ðððð 7ð7ð7ð7ð7ð7ðððð7ð7ð7ð4ð4ð4ð5ð5ð5ð3ð3ð3ðððððððððð-:Ð9ÐÐ)Ø.<Ð<ÐÐ+Ø0?Ð?ÐÐ-ð!ð!ð!ð$ð$ð$ð!&°!°ðððððs1ðs1ðs1ðs1ðjððð(1.ð1.ð1.ðfððð$ðððððð:>Ø59Ø9=Ø?Cð -Cð-Cð-Cð-Cð^ððð,ððð$ð$ð$ð$ð$r(r) )Úwin32) ÚgnuÚintelvÚabsoftÚcompaqvÚintelevÚgnu95Úg95ÚintelvemÚintelemÚflang)zcygwin.*)rr€r�r‚rƒr„r…)zlinux.*)Úarmr„ÚintelÚlaheyÚpgÚnvr�ÚnagÚvastÚcompaqÚinteler‡rr…Úpathf95ÚnagforÚfujitsu)zdarwin.*) r„rŽr“r�ÚibmrŠrr…rŒ)zsunos.*)Úsunrr„r…)zirix.*)Úmipsrr„)zaix.*)r•rr„)Úposix©rr„)Úntr™)Úmac)r„rrŒc óÊ—ddlm}t�dStj tj t ¦«d¦«}iaia||¦«D�]}tj tj  |¦«¦«\}}d|z}t|¦«tj |}t|d¦«rˆ|jD]€}t||¦«}|j||jf}|t|j<|jD]H} | tvr3t'd| ›d|j›d t| d j›�¦«‚|t| <ŒIŒ��ŒdS) zcCache all the FCompiler classes found in modules in the numpy.distutils.fcompiler package. r)ÚglobNz*.pyznumpy.distutils.fcompiler.Ú compilerszalias z defined for both z and r)r�Úfcompiler_classrúrûrürOÚ__file__Úfcompiler_aliasesÚsplitextr&Ú __import__r÷Úmodulesrržr¦r´Ú descriptionrmršr$) r�ÚpysÚfnameÚ module_namer*ÚmoduleÚcnameÚklassÚdescÚaliass r)Úload_all_fcompiler_classesr®sƒ€ðÐÐÐÐÐåÐ"ØˆÝ Œ'�,Š,•r”w—’¥xÑ0Ô0°&Ñ 9Ô 9€CØ€OØÐØ��c‘”ð4ñ4ˆÝœ7×+Ò+­B¬G×,<Ò,<¸UÑ,CÔ,CÑDÔDш �SØ2°[Ñ@ˆ Ý�KÑ Ô Ð Ý”˜[Ô)ˆÝ �6˜;Ñ 'Ô 'ð 4ØÔ)ð 4ð 4�Ý ¨Ñ.Ô.�ØÔ+¨U°EÔ4EÐF�Ø7;• Ô 3Ñ4Ø"Ô3ð4ð4�EØÕ 1Ð1Ð1Ý(˜jØ,1¨E¨E°5´>°>°>Ý,=¸eÔ,DÀQÔ,GÔ,PÐ,Pð*RñSôSðSð04Õ% eÑ,Ð,ð 4ùð4ð4r(Fcór—ddlm}|d¬¦«}|D�] }d} t|||¬¦«} |  |¦«|  ¦«}|rl| j€ed}| j} | rZtjd|›d| ›d�¦«t|| |¬¦«} |  |¦«|  ¦«}|�| }|r#| j€td | j j z¦«‚nE#t$rtj d |¦«Yn$t$rtj d |¦«YnwxYw|�|cS�Œ"dS) Nr)Úget_distributionT)Úalways)Úplatr0rwzTrying z compiler as suggested by z compiler for f90 support.z2%s does not support compiling f90 codes, skipping.zH_find_existing_fcompiler: compiler_type='%s' raised DistutilsModuleErrorz6_find_existing_fcompiler: compiler_type='%s' not found)Únumpy.distutils.corer°rr rßrIrorrµršr‚r$r r9r#) Úcompiler_typesÚosnamerøÚ requiref90rwr°rr´r—rèÚ new_compilers r)Ú_find_existing_fcompilerr¸#sЀð6Ð5Ð5Ð5Ð5Ð5Ø Ð  4Ð (Ñ (Ô (€DØ'ð!ñ!ˆ Ø ˆð _Ý 8°mØ)3ð5ñ5ô5ˆAà �KŠK˜Ñ Ô Ð Ø— ’ ‘”ˆAØð 5˜aœnÐ4Ø�Ø Ô7� Øð 5Ý”H�HØð@ñ@ô@ˆà•?Ð"Ð"Ý/>¸xÔ/HÑ,ˆ �UÐ,Ð,Ø Õ&Ð &Ð &Ý/@ÀÔ/JÑ,ˆ �UÐ,Ð,àGÈ$ÑNˆØ Ð ØÐ.°Ñ9Ñ9ˆCØÐ7Ø—X’X�o×2Ò2Ñ4Ô4Ñ5Ô5ñ7ñ7ˆCå Œ�‰ Œ ˆ Ý×Ò˜mÑ,Ô,Ð,؈tàˆu˜W¨g¸UÐCÑCÔC€HØ$€HÔØ €Or(cóJ—|€Åddlm}ddlm}|¦«}tj tjd¦«|_ dgtjdd…z|_ |j   d¦«n#t$rYnwxYw||j d<| ¦«| ¦«g}g}g}t st#¦«t%¦«}|D�]&}d}t'jd¦« t+||j¬ ¦«} |  |¦«|  ¦«}nW#t2t4f$rC} t'jd |›d �¦«t'jt9| ¦«¦«Yd} ~ nd} ~ wwxYw|€-| d |zdt |d f¦«Œà|  ¦«| d |zdt |d d|zzf¦«�Œ(t?tAt  !¦«¦«tA|¦«z ¦«}d„|D¦«}| "¦«| "¦«| "¦«tG|¦«} |  $d¦«tG|¦«} |  $d¦«|r$tG|¦«} |  $d¦«tKd¦«dS)zbPrint list of available compilers (used by the "--help-fcompiler" option to "config_fc"). Nr)Ú Distribution)r6r6rz--help-fcompileréþÿÿÿ)r0r:zshow_fcompilers: z not foundú fcompiler=éz (%s)có@—g|]}d|zdt|df‘ŒS)rÌNrÍ)rŸ)Ú.0Úfcs r)ú z#show_fcompilers..»s=€ð,ð,ð,Øð" "‘_ d­O¸BÔ,?ÀÔ,BÐCð,ð,ð,r(zFortran compilers found:z5Compilers available for this platform, but not found:z)Compilers not available on this platform:z>For compiler details, run 'config_fc --verbose' setup command.)&Údistutils.distrÊÚ'numpy.distutils.command.config_compilerr6rúrûr&r÷ÚargvÚ script_nameÚ script_argsÚremoveršÚcmdclassÚparse_config_filesÚparse_command_linerŸr®rÀrÚ set_verbosityrr:r rßr r#r9rrªrrr¨rrr Ú print_helpr) rrÊr6ržÚ compilers_naÚ compilers_niÚplatform_compilersr0r—rèrrs r)rr�s|€ð €|Ø/Ð/Ð/Ð/Ð/Ð/ØEÐEÐEÐEÐEÐE؈|‰~Œ~ˆÝœ7×+Ò+­C¬H°Q¬KÑ8Ô8ˆÔØ'˜=­3¬8°A°B°B¬<Ñ7ˆÔð Ø Ô × #Ò #Ð$6Ñ 7Ô 7Ð 7Ð 7øÝð ð ð Ø ˆDð øøøà%.ˆŒ �kÑ"Ø ×ÒÑ!Ô!Ð!Ø ×ÒÑ!Ô!Ð!Ø€IØ€LØ€LÝ ð%Ý"Ñ$Ô$Ð$Ý:Ñ<Ô<ÐØ&ðKñKˆØ ˆÝ Ô˜"ÑÔÐð Ý x¸¼ÐFÑFÔFˆAØ �KŠK˜Ñ Ô Ð Ø— ’ ‘”ˆAˆAøÝ$Õ&6Ð7ð ð ð Ý ŒIˆI¸¸¸ÐCÑ DÔ DÐ DÝ ŒI•d˜1‘g”gÑ Ô Ð Ð Ð Ð Ð Ð øøøøð øøøð ˆ9Ø × Ò  ¨hÑ!6¸Ý-¨hÔ7¸Ô:ð!<ñ =ô =ð =ð =ð × Ò Ñ Ô Ð Ø × Ò ˜l¨8Ñ3°TÝ-¨hÔ7¸Ô:¸WÀq¹[ÑHðJñ Kô Kð Kñ Kõ��O×0Ò0Ñ2Ô2Ñ3Ô3µcÐ:LÑ6MÔ6MÑMÑNÔN€Lð,ð,Ø*ð,ñ,ô,€Lð‡N‚NÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐÝ  Ñ+Ô+€NØ×ÒÐ8Ñ9Ô9Ð9Ý  Ñ.Ô.€NØ×Òð9ñ:ô:ð:àðOÝ$ \Ñ2Ô2ˆØ×!Ò!Ð"MÑNÔNÐNÝ Ð JÑKÔKÐKÐKÐKs*Á+B BÂBÄ ?E Å F!Å9FÆF!cóŽ—td¬¦«\}}| d¦«| ¦«|dd…S)Nr!)rz# subroutine dummy() end rË)rÚwriteÚclose)Úfor¢s r)rrÌsD€Ý TÐ*Ñ*Ô*�H€BˆØ‡H‚HÐ 4Ñ5Ô5Ð5؇H‚H�J„J€JØ ���Œ9Ðr(z-\*-\s*fortran\s*-\*-z-\*-\s*f90\s*-\*-z-\*-\s*fix\s*-\*-z[^c*!]\s*[^\s\d\t]cóî—d}t|d¬¦«5}| ¦«}d}t|¦«st|¦«rd}nt |¦«rd}d}|dkry|rw| ¦«}|rE|ddkr9|dz}|ddkrt |dd …¦«s|d d…d krd}n| ¦«}|dkr|°wddd¦«n #1swxYwY|S) z(Check if file is in free format Fortran.rÚlatin1©Úencodingi'rú!ú Nr^rú&)ÚopenÚreadlineÚ _has_f_headerÚ_has_fix_headerÚ_has_f90_headerÚrstripÚ_free_f90_start)ÚfileÚresultÚfÚlineÚns r)r#r#ØsS€ð€FÝ ˆd˜XÐ &Ñ &Ô &ð ¨!Ø�zŠz‰|Œ|ˆØ ˆÝ ˜Ñ Ô ð ¥/°$Ñ"7Ô"7ð ØˆAˆAÝ ˜TÑ "Ô "ð ØˆA؈FØ�Šcˆc�dˆcØ—;’;‘=”=ˆDØð ˜˜Qœ š ˜ Ø�Q‘�ؘ”G˜T’M�M¥o°d¸2¸A¸2´hÑ&?Ô&?�MÀDÈÈÈÄIÈsÂNÀNØ�FØØ—:’:‘<”<ˆDð�Šcˆc�dˆcð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð €Ms”C C*Ã*C.Ã1C.có¸—t|d¬¦«5}| ¦«}ddd¦«n #1swxYwYt|¦«pt|¦«S)Nråræ)rërìrïrî)r)rôrõs r)r r ïs�€Ý ˆc˜HÐ %Ñ %Ô %ð¨Ø�zŠz‰|Œ|ˆðððñôððððððøøøððððå ˜4Ñ Ô Ð 9¥O°DÑ$9Ô$9Ð9s ’3³7º7z=(c|)f77flags\s*\(\s*(?P\w+)\s*\)\s*=\s*(?P.*)có~—i}t|d¬¦«5}d}|D]Œ}|dz }|dkrn~t |¦«}|sŒ,| d¦« ¦«}| d¦« ¦«}t |¦«||<Œ�ddd¦«n #1swxYwY|S) z¯ Search the first 20 lines of fortran 77 code for line pattern `CF77FLAGS()=` Return a dictionary {:}. rårærréÚfcnamergN)rëÚ _f77flags_rer¼Úgroupr%r)r)rerôÚirõÚmrúrgs r)r!r!õs€ð €EÝ ˆc˜HÐ %Ñ %Ô %ð 1¨Ø ˆØð 1ð 1ˆDØ �‰FˆAØ�Štˆt�U�UÝ×"Ò" 4Ñ(Ô(ˆAØÐ �hØ—W’W˜XÑ&Ô&×,Ò,Ñ.Ô.ˆFØ—W’W˜XÑ&Ô&×,Ò,Ñ.Ô.ˆFÝ(¨Ñ0Ô0ˆE�&‰MˆMð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð €Ls”BB2Â2B6Â9B6Ú__main__)NNFNr²)NNrrrFNr+)FrjÚ__all__rúr÷r»ÚpathlibrrýrÚdistutils.fancy_getoptr Údistutils.errorsr r r r rÚdistutils.utilrrÚnumpy.distutils.ccompilerrrÚnumpy.distutilsrÚnumpy.distutils.misc_utilrrrrrÚnumpy.distutils.exec_commandrrÚ environmentrÚtypeÚ __metaclass__rÚ Exceptionr#r.r1r4rrºrŸr¡r®r¸rÀrÂr¨rÆrrrÚcompileÚIÚsearchrírïrîr¼rñr#r rûr!r$r'r(r)úrsÏðððð !ð !ð !€ð € € € Ø € € € Ø € € € ØÐÐÐÐÐà.Ð.Ð.Ð.Ð.Ð.Ø.Ð.Ð.Ð.Ð.Ð.ðIðIðIðIðIðIðIðIðIðIðIðIðIðIà2Ð2Ð2Ð2Ð2Ð2Ð2Ð2à@Ð@Ð@Ð@Ð@Ð@Ð@Ð@ØÐÐÐÐÐð-ð-ð-ð-ð-ð-ð-ð-ð-ð-ð-ð-ð-ð-à8Ð8Ð8Ð8Ð8Ð8Ø(Ð(Ð(Ð(Ð(Ð(à*Ð*Ð*Ð*Ð*Ð*à€ ð#AÐ"@Ð"@Ðð ð ð ð ð �yñ ô ð ðððð ððð 1ð1ð1ðo $ðo $ðo $ðo $ðo $� ño $ôo $ðo $ðfÐð&€ØÐð4ð4ð4ð:48Ø(-Ø(,ð#ð#ð#ð#ðJ #ð #ð #ð #ðBGØ%)ð ð ð ð ð �C‘E”EÐàØØØØØ"Ø#ð %ð%ð%ð%ðN9Lð9Lð9Lð9Lðxððð�” Ð3°R´TÑ:Ô:ÔA€ Ø�"”*Ð1°2´4Ñ8Ô8Ô?€Ø�"”*Ð1°2´4Ñ8Ô8Ô?€Ø�"”*Ð2°B´DÑ9Ô9Ô?€ðððð.:ð:ð:ð ˆrŒzÐZÐ\^Ô\`ÑaÔa€ ðððð* ˆzÒÐØ€OÑÔÐÐÐðÐr(