Ejemplo n.º 1
0
def make_version(static_map, fingerprint_map, reverse=True):
    """
    return version expression. compare to each version fingerprint.
    make compare expressions. like [(">=", 'v2.3.3.3')]
    """
    version_compare_set = set()
    key_lst = fingerprint_map.keys()
    version_lst = sorted([str2version(ver_) for ver_ in key_lst],
                         reverse=reverse)

    # head version in reverse version list is different
    head_version_str = version_lst[0].vstring
    fingerprint = head_fingerprint = fingerprint_map.get(head_version_str)
    match_head = match(static_map, head_fingerprint)
    if match_head and reverse:
        version_compare_set.add(('>', version_lst[1].vstring))
    elif match_head and not reverse:
        version_compare_set.add(('>=', head_version_str))

    for version in version_lst[1:]:
        logger.debug('create operator in version: %s', version.vstring)
        fingerprint.update(fingerprint_map.get(version.vstring))
        if match(static_map, fingerprint):
            operator = OPERATOR_MAP.get(reverse)
            version_compare_set.add((operator, version.vstring))
            logger.verbose('create version opreator: %s %s', operator,
                           version.vstring)
    logger.debug("operator: %s", version_compare_set)
    return version_compare_set
Ejemplo n.º 2
0
 def _git_exec(self, *args, decode=True):
     """Done 'git' command."""
     master_program = 'git'
     command_tup = (master_program, *args)
     logger.debug('runing command: %s', ' '.join(command_tup))
     output = subprocess.check_output(command_tup, cwd=self.target_project_path,
                                      stderr=subprocess.STDOUT)
     return output.decode() if decode else output