def main(argv, pkg): """ Main function. """ 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): """ Start Qt and a session of the application. """ from 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 if pkg.name == 'code_saturne': images_path = os.path.join(pkg.get_dir('pkgdatadir'), 'images') sys.path.insert(1, os.path.join(pkg.get_dir('pkgpythondir'), 'Base')) else: images_path = os.path.join(pkg.get_dir('pkgpythondir'), 'core', 'icons') sys.path.insert(1, os.path.join(pkg.get_dir('pkgpythondir'), 'core')) sys.path.insert(1, pkg.get_dir('pythondir')) 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 main(argv, pkg): """ Main function. """ options, args = process_cmd_line(argv, pkg) if not args: return 1 cmd = [pkg.get_io_dump(), '--diff'] 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): """ Main function. """ 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, dest_dir, cflags, cxxflags, fcflags, libs, force_link, keep_going) sys.exit(retcode)
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 cs_exec_environment import set_modules, source_rcfile, enquote_arg set_modules(pkg) source_rcfile(pkg) from 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(" Repository: " + studies.getRepository()) studies.reporting(" Destination: " + studies.getDestination()) 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(" Working directory: " + os.getcwd()) 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() # 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
def runAutoverif(pkg, opt_f, opt_v, opt_u, opt_x, opt_t, opt_r, opt_n, opt_c, opt_d, opt_p, opt_l, opt_to): """ 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 Autovnv modules, as it # pulls Python packages such as matplotlib or vtk which may not be in the # standard path. from cs_exec_environment import set_modules, source_rcfile, enquote_arg set_modules(pkg) source_rcfile(pkg) from autovnv.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'): sys.exit(1) dif += " -d" # Read the file of parameters studies = Studies(pkg, opt_f, opt_v, opt_x, opt_r, opt_n, opt_c, opt_d, opt_p, exe, dif, opt_l) if opt_x == False: os.chdir(studies.getDestination()) else: os.chdir(studies.getRepository()) # Print header studies.reporting(" ----------") studies.reporting(" Auto V & V") 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(" Repository: " + studies.getRepository()) studies.reporting(" Destination: " + studies.getDestination()) 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(" Working directory: " + os.getcwd()) studies.reporting("\n") # Update repository if needed if opt_u: studies.updateRepository() sys.exit(0) # Update only xml data if needed if opt_x: studies.updateRepository(True) sys.exit(0) # Check if xml for result directories in the repository are OK if opt_c: studies.check_compare(destination=False) if opt_p: studies.check_script(destination=False) studies.check_plot(destination=False) # Create all studies and all cases studies.createStudies() # Compile sources of all cases if opt_t: studies.compilation() # Preprocessing and run all cases if opt_r: studies.run() # Compare checkpoint files if opt_c: studies.check_compare() studies.compare() # Postprocess results and probes if opt_p: studies.check_script() studies.scripts() studies.check_plot() studies.postpro() studies.plot() studies.reporting("\n -----------------") studies.reporting(" End of Auto V & V") studies.reporting(" -----------------") # Reporting attached_file = studies.build_reports("report_global", "report_detailed") if opt_to: sendmail(pkg.code_name, studies.logs(), studies.getlabel(), opt_to, attached_file)
def main(argv, pkg): """ Start Qt and a session of the application. """ from 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 if pkg.name == 'code_saturne': images_path = os.path.join(pkg.get_dir('pkgdatadir'), 'images') sys.path.insert(1, os.path.join(pkg.get_dir('pkgpythondir'), 'Base')) else: images_path = os.path.join(pkg.get_dir('pkgpythondir'), 'core', 'icons') sys.path.insert(1, os.path.join(pkg.get_dir('pkgpythondir'), 'core')) sys.path.insert(1, pkg.get_dir('cspythondir')) # Test if EOS modules could be imported cfg = cs_config.config() if cfg.libs['eos'].have == "yes": eosprefix = cfg.libs['eos'].prefix try: from distutils import sysconfig eospath = os.path.join(sysconfig.get_python_lib(0, 0, prefix=eosprefix), 'eos') except Exception: eospath = '' if sys.platform.startswith('win'): eospath = os.path.join(eosprefix, 'lib', 'python' + sys.version[:3], 'site-packages', 'eos') if eospath: if os.path.isdir(eospath) and not eospath in sys.path: sys.path.insert(0, eospath) case, spl = process_cmd_line(argv) app = QApplication(argv) app.setOrganizationName(pkg.code_name) # Defines the name of subdirectory under .config app.setOrganizationDomain(pkg.url) app.setApplicationName("gui") # Defines the name of the configuration file #app.setWindowIcon(QIcon(":/icon.png")) app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) # Locale detection locale = QLocale.system().name() translator = QTranslator(app) if translator.load("qt_" + locale, QLibraryInfo.location(QLibraryInfo.TranslationsPath)): app.installTranslator(translator) if spl: app.setOverrideCursor(QCursor(Qt.WaitCursor)) pixmap = QPixmap('%s/splashscreen.png' % images_path) splash = QSplashScreen(pixmap, Qt.WindowStaysOnTopHint) splash.setMask(pixmap.mask()) # this is usefull if the splashscreen is not a regular ractangle... splash.show() if pkg.name == 'neptune_cfd': splash.showMessage("%(name)s %(vers)s starting..." \ % {'name': pkg.name, 'vers':pkg.version}, Qt.AlignHCenter | Qt.AlignVCenter, Qt.black) app.processEvents() QTimer.singleShot(1500, splash.hide) from code_saturne.Base.MainView import MainView mv = MainView(cmd_package = pkg, cmd_case = case) try: mv.show() if spl: app.processEvents() app.restoreOverrideCursor() except: print("\n Unable to display a Qt window.") print(" Please check your display environment.\n") sys.exit(0) sys.exit(app.exec_())
def main(argv, pkg): """ Start Qt and a session of the application. """ from 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 if pkg.name == 'code_saturne': images_path = os.path.join(pkg.get_dir('pkgdatadir'), 'images') sys.path.insert(1, os.path.join(pkg.get_dir('pkgpythondir'), 'Base')) else: images_path = os.path.join(pkg.get_dir('pkgpythondir'), 'core', 'icons') sys.path.insert(1, os.path.join(pkg.get_dir('pkgpythondir'), 'core')) sys.path.insert(1, pkg.get_dir('cspythondir')) # Test if EOS modules could be imported cfg = cs_config.config() if cfg.libs['eos'].have == "yes": eosprefix = cfg.libs['eos'].prefix try: from distutils import sysconfig eospath = os.path.join(sysconfig.get_python_lib(0, 0, prefix=eosprefix), 'eos') except Exception: eospath = '' if sys.platform.startswith('win'): eospath = os.path.join(eosprefix, 'lib', 'python' + sys.version[:3], 'site-packages', 'eos') if eospath: if os.path.isdir(eospath) and not eospath in sys.path: sys.path.insert(0, eospath) case, spl = process_cmd_line(argv) app = QApplication(argv) app.setOrganizationName(pkg.code_name) # Defines the name of subdirectory under .config app.setOrganizationDomain(pkg.url) app.setApplicationName("gui") # Defines the name of the configuration file #app.setWindowIcon(QIcon(":/icon.png")) 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) if spl: app.setOverrideCursor(QCursor(Qt.WaitCursor)) pixmap = QPixmap('%s/splashscreen.png' % images_path) splash = QSplashScreen(pixmap, Qt.WindowStaysOnTopHint) splash.setMask(pixmap.mask()) # this is usefull if the splashscreen is not a regular ractangle... splash.show() if pkg.name == 'neptune_cfd': splash.showMessage("%(name)s %(vers)s starting..." \ % {'name': pkg.name, 'vers':pkg.version}, Qt.AlignHCenter | Qt.AlignVCenter, Qt.black) app.processEvents() QTimer.singleShot(1500, splash.hide) from code_saturne.Base.MainView import MainView mv = MainView(cmd_package = pkg, cmd_case = case) try: mv.show() if spl: app.processEvents() app.restoreOverrideCursor() except: print("\n Unable to display a Qt window.") print(" Please check your display environment.\n") sys.exit(0) sys.exit(app.exec_())
def runAutoverif(pkg, opt_f, opt_v, opt_u, opt_x, opt_t, opt_r, opt_n, opt_c, opt_d, opt_p, opt_l, opt_to, opt_z): """ 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 Autovnv modules, as it # pulls Python packages such as matplotlib or vtk which may not be in the # standard path. from cs_exec_environment import set_modules, source_rcfile, enquote_arg set_modules(pkg) source_rcfile(pkg) from autovnv.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'): sys.exit(1) dif += " -d" # Read the file of parameters studies = Studies(pkg, opt_f, opt_v, opt_x, opt_r, opt_n, opt_c, opt_d, opt_p, exe, dif, opt_l, opt_z) if opt_x == False: os.chdir(studies.getDestination()) else: os.chdir(studies.getRepository()) # Print header studies.reporting(" ----------") studies.reporting(" Auto V & V") 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(" Repository: " + studies.getRepository()) studies.reporting(" Destination: " + studies.getDestination()) 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(" Working directory: " + os.getcwd()) studies.reporting("\n") # Update repository if needed if opt_u: studies.updateRepository() sys.exit(0) # Update only xml data if needed if opt_x: studies.updateRepository(True) sys.exit(0) # Check if xml for result directories in the repository are OK if opt_c: studies.check_compare(destination=False) if opt_p: studies.check_script(destination=False) studies.check_plot(destination=False) # Create all studies and all cases studies.createStudies() # Compile sources of all cases if opt_t: studies.compilation() # Preprocessing and run all cases if opt_r: studies.run() # Compare checkpoint files if opt_c: studies.check_compare() studies.compare() # Postprocess results and probes if opt_p: studies.check_script() studies.scripts() studies.check_plot() studies.postpro() studies.plot() studies.reporting("\n -----------------") studies.reporting(" End of Auto V & V") studies.reporting(" -----------------") # Reporting attached_file = studies.build_reports("report_global", "report_detailed") if opt_to: sendmail(pkg.code_name, studies.logs(), studies.getlabel(), opt_to, attached_file)