






def       snake_case_		(     lowerCAmelCase_       :						int       ,       lowerCAmelCase_       :						int      ):
       if a < 0 or b < 0:
              raise ValueError("""the value of both inputs must be positive"""      )
       __lowercase      :							Union[str, Any]				=     str(bin(lowerCAmelCase_      )      )[2:]  # remove the leading "0b"
       __lowercase      :							Tuple				=     str(bin(lowerCAmelCase_      )      )[2:]
       __lowercase      :							List[str]				=     max(len(lowerCAmelCase_      )       ,       len(lowerCAmelCase_      )      )
       return "0b" + "".join(
           str(int("""1""" in (char_a, char_b)      )      )
           for char_a, char_b in zip(a_binary.zfill(lowerCAmelCase_      )       ,       b_binary.zfill(lowerCAmelCase_      )      )      )


if __name__ == "__main__":
 import doctest

 doctest.testmod()







import fire

from utils import calculate_rouge, save_json
def       snake_case_		(     lowerCAmelCase_       :						Any       ,       lowerCAmelCase_       :						str       ,       lowerCAmelCase_       :						str=None       ,       **lowerCAmelCase_       :						str      ):
							__lowercase      :							Tuple				=     [x.strip() for x in open(lowerCAmelCase_      ).readlines()]
							__lowercase      :							Dict				=     [x.strip() for x in open(lowerCAmelCase_      ).readlines()][: len(lowerCAmelCase_      )]
							__lowercase      :							Tuple				=     calculate_rouge(lowerCAmelCase_       ,       lowerCAmelCase_       ,       **lowerCAmelCase_      )
							if save_path is not None:
														save_json(lowerCAmelCase_       ,       lowerCAmelCase_       ,       indent=lowerCAmelCase_      )
							return metrics  # these print nicely


if __name__ == "__main__":
	fire.Fire(calculate_rouge_path)