def main(argv, pkg): """ Main function. """ try: from code_saturne.cs_exec_environment import set_modules, source_rcfile except Exception: from cs_exec_environment import set_modules, source_rcfile test_mode, force_link, keep_going, src_dir, dest_dir, \ version, cflags, cxxflags, fcflags, libs = process_cmd_line(argv, pkg) if (version): pkg = pkg.get_alternate_version(version) set_modules(pkg) # Set environment modules if present source_rcfile(pkg) # Source rcfile if defined if test_mode == True: dest_dir = None retcode = compile_and_link(pkg, src_dir, destdir=dest_dir, opt_cflags=cflags, opt_cxxflags=cxxflags, opt_fcflags=fcflags, opt_libs=libs, force_link=force_link, keep_going=keep_going) sys.exit(retcode)
def main(argv, pkg): """ Main function. """ options, args = process_cmd_line(argv, pkg) if not args: return 1 cmd = [pkg.get_io_dump()] cmd += argv # Set environment modules if present cs_exec_environment.set_modules(pkg) cs_exec_environment.source_rcfile(pkg) # Run executable return cs_exec_environment.run_command(cmd)
def main(argv, pkg): """ Start Qt and a session of the application. """ from code_saturne.cs_exec_environment import set_modules, source_rcfile set_modules(pkg) source_rcfile(pkg) # Test the package name to know which modules have to be imported images_path = os.path.join(pkg.get_dir('pkgdatadir'), 'images') case = process_cmd_line(argv) app = QApplication(sys.argv) # Defines the name of subdirectory under .config app.setOrganizationName(pkg.code_name) app.setOrganizationDomain(pkg.url) # Defines the name of the configuration file app.setApplicationName("studymanagergui") app.lastWindowClosed.connect(app.quit) # Locale detection locale = QLocale.system().name() translator = QTranslator(app) if translator.load("qt_" + locale, QLibraryInfo.location(QLibraryInfo.TranslationsPath)): app.installTranslator(translator) from code_saturne.studymanager_gui.MainView import MainView mv = MainView(cmd_package=pkg, cmd_case=case) try: mv.show() except: print("\n Unable to display a Qt window.") print(" Please check your display environment.\n") sys.exit(0) sys.exit(app.exec_())
def run_studymanager(pkg, options): """ Main function 1. parse the command line, 2. read the file of parameters 3. create all studies, 4. compile sources 5. run all cases 6. compare results 7. plot result 8. reporting by mail """ # Source environment if required before importing studymanager modules, as # it pulls Python packages such as matplotlib which may not be in # the standard path. from code_saturne.cs_exec_environment import set_modules, source_rcfile, enquote_arg set_modules(pkg) source_rcfile(pkg) from code_saturne.studymanager.cs_studymanager_study import Studies # Scripts exe = os.path.join(pkg.get_dir('bindir'), pkg.name) if sys.platform.startswith('win'): exe = exe + ".com" exe = enquote_arg(exe) dif = pkg.get_io_dump() for p in exe, dif: if not os.path.isfile(p): print("Error: executable %s not found." % p) if not sys.platform.startswith('win'): return 1 dif += " -d" # Read the file of parameters studies = Studies(pkg, options, exe, dif) if options.debug: print(" run_studymanager() >> Studies are initialized") if options.update_xml == False: os.chdir(studies.getDestination()) else: os.chdir(studies.getRepository()) # Print header studies.reporting(" -------------") studies.reporting(" Study Manager") studies.reporting(" -------------\n") studies.reporting(" Code name: " + pkg.name) studies.reporting(" Kernel version: " + pkg.version) studies.reporting(" Install directory: " + pkg.get_dir('exec_prefix')) studies.reporting(" File dump: " + dif) studies.reporting("\n Informations:") studies.reporting(" -------------\n") studies.reporting(" Date: " + datetime.now().strftime("%A %B %d %H:%M:%S %Y")) studies.reporting(" Platform: " + platform.platform()) studies.reporting(" Computer: " + platform.uname()[1] + " " + release()) studies.reporting(" Process Id: " + str(os.getpid())) studies.reporting(" User name: " + getpass.getuser()) studies.reporting(" Repository: " + studies.getRepository()) dest = studies.getDestination() studies.reporting(" Destination: " + dest) doc = os.path.join(dest, options.log_file) studies.reporting(" Ext. subprocesses logs: " + doc) studies.reporting("\n") # Update repository if needed if options.update: studies.updateRepository() # Update only xml data if needed if options.update_xml: studies.updateRepository(True) # Test sources compilation for all cases if options.test_compilation: studies.test_compilation() # Check if xml for result directories in the repository are OK if options.compare: studies.check_compare(destination=False) if options.post: studies.check_script(destination=False) studies.check_plots_and_input(destination=False) # Create all studies and all cases if options.compare or options.post or options.runcase: studies.create_studies() # Create dependency graph based on studies and all cases if options.create_graph: studies.create_graph() # Preprocessing and run all cases if options.debug: print(" run_studymanager() >> Starts running...") if options.runcase: studies.run() if options.debug: print(" run_studymanager() >> Exits runs") # Compare checkpoint files if options.compare: studies.check_compare() studies.compare() # Postprocess results and probes if options.post: checked_scripts = studies.check_script() if checked_scripts: studies.scripts() studies.check_plots_and_input() studies.postpro() studies.plot() studies.reporting("\n --------------------") studies.reporting(" End of Study Manager") studies.reporting(" --------------------") # Reporting - attached files are either pdf or # raw tex files if pdflatex is disabled attached_file = studies.build_reports("report_global", "report_detailed") if len(options.addresses.split()) > 0: send_report(pkg.code_name, studies.logs(), studies.getlabel(), options.addresses.split(), attached_file) return 0