"""simple docstring"""






# this script reports modified .py files under the desired list of top-level sub-dirs passed as a list of arguments, e.g.:
#   python ./utils/get_modified_files.py utils src tests examples
#
# it uses git to find the forking point and which files were modified - i.e. files not under git won't be considered
# since the output of this script is fed into Makefile commands it doesn't print a newline after the results

import re
import subprocess
import sys


lowerCAmelCase__  :  Tuple						     =	subprocess.check_output('git merge-base main HEAD'.split()).decode('utf-8')
lowerCAmelCase__  :  int						     =	subprocess.check_output(F"""git diff --name-only {fork_point_sha}""".split()).decode('utf-8').split()

lowerCAmelCase__  :  Any						     =	'|'.join(sys.argv[1:])
lowerCAmelCase__  :  List[Any]						     =	re.compile(rF"""^({joined_dirs}).*?\.py$""")

lowerCAmelCase__  :  Optional[Any]						     =	[x for x in modified_files if regex.match(x)]
print(' '.join(relevant_modified_files), end='')




'''simple docstring'''





def 	lowerCAmelCase_				(					snake_case_       : int					,    snake_case_       : int			)    ->      str:


     '''simple docstring'''




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


if __name__ == "__main__":
    import doctest

    doctest.testmod()




