コード例 #1
0
def ospackages(pkg_list):
    """Summary
        Install OS Package Prerequisites
    Returns:
        Success | Failure, TYPE: bool
    """
    try:
        for pkg in pkg_list:

            if is_installed(pkg):
                logger.info(f'{pkg} binary is already installed - skip')
                continue

            elif which('yum'):
                cmd = 'sudo yum install ' + pkg + ' 2>/dev/null'
                print(subprocess.getoutput(cmd))

            elif which('dnf'):
                cmd = 'sudo dnf install ' + pkg + ' 2>/dev/null'
                print(subprocess.getoutput(cmd))

            else:
                logger.warning(
                    '%s: Dependent OS binaries not installed - package manager not identified'
                    % inspect.stack()[0][3])

    except OSError as e:
        logger.exception('{}: Problem installing os package {}'.format(
            inspect.stack()[0][3], pkg))
        return False
    return True
コード例 #2
0
ファイル: window.py プロジェクト: rmodrak/pycmt3d
    def load_winfile_txt(flexwin_file, initial_weight=1.0):
        """
        Read the txt format of  window file(see the documentation
        online).

        :param flexwin_file:
        :param initial_weight:
        :return:
        """
        win_list = []
        with open(flexwin_file, "r") as f:
            num_file = int(f.readline().strip())
            if num_file == 0:
                logger.warning("Nothing in flexwinfile: %s" % flexwin_file)
                return []
            for idx in range(num_file):
                # keep the old format of cmt3d input
                obsd_id = f.readline().strip()
                synt_id = f.readline().strip()
                num_wins = int(f.readline().strip())
                win_time = np.zeros((num_wins, 3))
                win_weight = np.zeros(num_wins)
                for iwin in range(num_wins):
                    content = f.readline().strip().split()
                    win_time[iwin, 0] = float(content[0])
                    win_time[iwin, 1] = float(content[1])
                    if len(content) == 3:
                        win_weight[iwin] = float(content[2])
                    else:
                        win_weight[iwin] = initial_weight
                win_obj = Window(num_wins=num_wins, win_time=win_time,
                                 obsd_id=obsd_id, synt_id=synt_id,
                                 weight=win_weight)
                win_list.append(win_obj)
        return win_list
コード例 #3
0
def main():

    args = get_arguments(sys.argv)

    config_fn = args.config
    config = get_config(config_fn)

    input_fn = args.input_filename

    end_points = args.end_points
    ep = " with additional start/end points" if end_points else ""
    logger.info(f"Reading sentences from '{input_fn}'{ep}.")

    output_dir = args.output_dir if args.output_dir else os.path.dirname(
        os.path.realpath(input_fn))
    os.makedirs(output_dir, exist_ok=True)
    ep = "_we" if end_points else ""
    output_fn = os.path.join(
        output_dir,
        os.path.splitext(os.path.basename(input_fn))[0] + ep + "_prp.graphml")

    tokenized_sentences = read_sentences(input_fn, config, end_points)
    initial_node_dict = build_initial_graph(tokenized_sentences)

    # make the paraphrases !
    logger.info(f"Initial graph with {len(initial_node_dict)} nodes built.")
    if len(initial_node_dict) > 1000:
        very = ""
        if len(initial_node_dict) > 2000:
            very = "very "
        logger.warning(
            f"! Generation of the paraphrase graphs with this initial size could be {very}slow."
        )
    node_dict_paraphrases = merge_graph_2_paraphrases(initial_node_dict)

    logger.info(
        f"Paraphrase graph with {len(node_dict_paraphrases)} nodes built.")
    write_graphml(node_dict_paraphrases, config, output_fn)
    logger.info(f"See output in '{output_fn}'.")
コード例 #4
0
def build_package(build_root, builddir):
    """
    Summary.

        Creates final os installable package for current build, build version

    Returns:
        Success | Failure, TYPE: bool

    """
    try:

        pwd = os.getcwd()
        os.chdir(build_root)

        if os.path.exists(builddir):
            cmd = 'dpkg-deb --build ' + builddir + ' 2>/dev/null'
            stdout_message('Building {}...  '.format(bn + builddir + rst))
            stdout_message(subprocess.getoutput(cmd))
            os.chdir(pwd)

        else:
            logger.warning(
                'Build directory {} not found. Failed to create .deb package'.
                format(builddir))
            os.chdir(pwd)
            return False

    except OSError as e:
        logger.exception('{}: Error during os package creation: {}'.format(
            inspect.stack()[0][3], e))
        return False
    except Exception as e:
        logger.exception(
            '{}: Unknown Error during os package creation: {}'.format(
                inspect.stack()[0][3], e))
        return False
    return True
コード例 #5
0
def init_cli():
    """Collect parameters and call main """
    try:
        parser = argparse.ArgumentParser(add_help=False)
        args = options(parser)
    except Exception as e:
        help_menu()
        stdout_message(str(e), 'ERROR')
        return exit_codes['E_MISC']['Code']

    if args.debug:
        stdout_message(message='forceVersion:\t{}'.format(args.fVersion),
                       prefix='DBUG',
                       severity='WARNING')
        stdout_message(message='build:\t{}'.format(args.build),
                       prefix='DBUG',
                       severity='WARNING')
        stdout_message(message='debug flag:\t{}'.format(args.debug),
                       prefix='DBUG',
                       severity='WARNING')

    if len(sys.argv) == 1:
        help_menu()
        return exit_codes['EX_OK']['Code']

    elif args.help:
        help_menu()
        return exit_codes['EX_OK']['Code']

    elif args.build:

        if valid_version(args.set) and prebuild(
                TMPDIR, VOLMNT,
                git_root() + '/' + PACKAGE_CONFIG):

            package = main(setVersion=args.set,
                           environment=args.distro,
                           force=args.force,
                           debug=args.debug)

            if package:
                stdout_message(
                    f'{PROJECT} build package created: {yl + package + rst}')
                stdout_message(
                    f'Debian build process completed successfully. End',
                    prefix='OK')
                return exit_codes['EX_OK']['Code']
            else:
                stdout_message(
                    '{}: Problem creating os installation package. Exit'.
                    format(inspect.stack()[0][3]),
                    prefix='WARN',
                    severity='WARNING')
                return exit_codes['E_MISC']['Code']

        elif not valid_version(args.set):

            stdout_message(
                'You must enter a valid version when using --set-version parameter. Ex: 1.6.3',
                prefix='WARN',
                severity='WARNING')
            return exit_codes['E_DEPENDENCY']['Code']

        else:
            logger.warning('{} Failure in prebuild stage'.format(
                inspect.stack()[0][3]))
            return exit_codes['E_DEPENDENCY']['Code']
    return True