# 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


a_							=      subprocess.check_output("""git merge-base main HEAD""".split()).decode("""utf-8""")
a_							=      (
    subprocess.check_output(F"git diff --diff-filter=d --name-only {fork_point_sha}".split()).decode("""utf-8""").split()
)

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

a_							=      [x for x in modified_files if regex.match(x)]
print(""" """.join(relevant_modified_files), end="""""")




from abc import ABC, abstractmethod
from argparse import ArgumentParser


class 			UpperCAmelCase__    (		snake_case					):



  """simple docstring"""






  @staticmethod
  @abstractmethod
  def 	_UpperCAmelCase				(				__lowerCAmelCase:			ArgumentParser   ) -> Tuple:




    '''simple docstring'''




    raise NotImplementedError()






  @abstractmethod
  def 	_UpperCAmelCase				(				self:			List[str]   ) -> List[Any]:




    '''simple docstring'''




    raise NotImplementedError()



