示例#1
0
文件: cli.py 项目: AndreaCensi/mcdp
    def define_jobs_context(self, context):
        from mocdp import logger
        logger.setLevel(logging.DEBUG)

        options = self.get_options()
        params = options.get_extra()

        if len(params) < 1:
            seeds = None
            #raise ValueError('Please specify some model names to be used as seeds.')
        else:
            seeds = params

        config_dirs = options.config_dirs.split(":")
        maindir = options.maindir
        res = context.comp(find_dependencies, config_dirs=config_dirs,
                           maindir=maindir, seeds=seeds)

        print('config_dirs: {}'.format(config_dirs))
        print('maindir: {}'.format(maindir))

        context.comp_dynamic(other_jobs, maindir=maindir, config_dirs=config_dirs,
                             outdir=options.output, res=res)

        r = context.comp(draw_depgraph, res)
        context.add_report(r, 'draw')

        r = context.comp(draw_libdepgraph, res)
        context.add_report(r, 'libdepgraph')
示例#2
0
文件: solve.py 项目: AndreaCensi/mcdp
    def go(self):
        
        logger.setLevel(logging.DEBUG)

        options = self.get_options()
        
        if not options.contracts:
            logger.debug('Disabling PyContrats. Use --contracts to enable.')
            disable_all()
            
        if options.expect_nimp is not None:
            options.imp = True

        params = options.get_extra()

        if len(params) < 1:
            raise ValueError('Please specify model name.')

        model_name = params[0]

        # drop the extension
        if '.mcdp' in model_name or '/' in model_name:
            msg = 'The model name should not contain extension or /.'
            raise UserError(msg)

        max_steps = options.max_steps

        _exp_advanced = options.advanced
        expect_nres = options.expect_nres
        lower = options.lower
        upper = options.upper
        out_dir = options.out
        query_strings = params[1:]

        intervals = options.intervals
        imp = options.imp
        expect_nimp = options.expect_nimp
        make = options.make
        if make: imp = True

        plot = options.plot
        do_movie = options.movie

        expect_res = None

        config_dirs = options.config_dirs.split(":")
        maindir = options.maindir
        if options.cache:
            if out_dir is None:
                out_dir = 'out-mcdp_solve'
            cache_dir = os.path.join(out_dir, '_cached', 'solve')
        else:
            cache_dir = None

        solve_main(logger, config_dirs, maindir, cache_dir, model_name, lower, upper, out_dir, max_steps, query_strings,
                   intervals, _exp_advanced, expect_nres, imp, expect_nimp, plot, do_movie,
                   expect_res,
                   make)
示例#3
0
    def go(self):
        logger.setLevel(logging.DEBUG)

        options = self.get_options()

        if not options.contracts:
            disable_all()

        params = options.get_extra()

        if len(params) < 1:
            raise ValueError("Please specify name.")

        config_dirs = options.config_dirs.split(":")
        maindir = options.maindir
        out_dir = options.out

        if out_dir is None:
            out_dir = os.path.join("out", "mcdp_render")

        if options.cache:
            cache_dir = os.path.join(out_dir, "_cached", "solve")
        else:
            cache_dir = None

        librarian = Librarian()
        for e in config_dirs:
            librarian.find_libraries(e)

        library = librarian.get_library_by_dir(maindir)
        if cache_dir is not None:
            library.use_cache_dir(cache_dir)

        docs = params

        if not docs:
            msg = "At least one argument required."
            raise_desc(UserError, msg)

        for docname in docs:
            basename = docname + "." + MCDPLibrary.ext_doc_md
            f = library._get_file_data(basename)
            data = f["data"]
            realpath = f["realpath"]

            generate_pdf = options.pdf
            render(library, docname, data, realpath, out_dir, generate_pdf)
示例#4
0
    def define_jobs_context(self, context):
        logger.setLevel(logging.DEBUG)

        options = self.get_options()
        out_dir = None

        if out_dir is None:
            out_dir = os.path.join('out', 'mcdp_render_manual')

        generate_pdf = options.pdf
        files_contents = []
        for libname, docname in manual_contents:
            res = context.comp(render, libname, docname, generate_pdf,
                               job_id='render-%s-%s' % (libname, docname))
            files_contents.append(res)

        d = context.comp(manual_join, files_contents)
        context.comp(write, d, options.output_file)
示例#5
0
文件: eval.py 项目: AndreaCensi/mcdp
    def go(self):
        from mocdp import logger
        logger.setLevel(logging.DEBUG)



        options = self.get_options()

        if not options.contracts:
            disable_all()

        params = options.get_extra()

        if len(params) < 1:
            raise ValueError('Please specify name.')

        name = params[0]

        config_dirs = options.config_dirs.split(":")
        maindir = options.maindir
        out_dir = options.out

        if out_dir is None:
            out_dir = os.path.join('out', 'mcdp_eval')

        if options.cache:
            cache_dir = os.path.join(out_dir, '_cached', 'solve')
        else:
            cache_dir = None

        librarian = Librarian()
        for e in config_dirs:
            librarian.find_libraries(e)

        library = librarian.get_library_by_dir(maindir)
        if cache_dir is not None:
            library.use_cache_dir(cache_dir)

        context = library._generate_context_with_hooks()
        c = library.load_constant(name, context)
        print(c)