




from ..utils import DummyObject, requires_backends




class 					snake_case__							(metaclass=_UpperCamelCase     ):
    """simple docstring"""



    SCREAMING_SNAKE_CASE_ :							Union[str, Any]											=      ["""torch""", """transformers""", """onnx"""]





    def __init__(   self       :  Optional[Any]      ,   *__lowerCamelCase       :  int      ,   **__lowerCamelCase       :  Any							)      ->  Optional[Any]:
       requires_backends(self      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  Tuple      ,   *__lowerCamelCase       :  Tuple      ,   **__lowerCamelCase       :  str							)      ->  List[Any]:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  Tuple      ,   *__lowerCamelCase       :  Any      ,   **__lowerCamelCase       :  Any							)      ->  List[Any]:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)




class 					snake_case__							(metaclass=_UpperCamelCase     ):
    """simple docstring"""



    SCREAMING_SNAKE_CASE_ :							Any											=      ["""torch""", """transformers""", """onnx"""]





    def __init__(   self       :  Dict      ,   *__lowerCamelCase       :  str      ,   **__lowerCamelCase       :  int							)      ->  Dict:
       requires_backends(self      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  Any      ,   *__lowerCamelCase       :  str      ,   **__lowerCamelCase       :  int							)      ->  str:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  Any      ,   *__lowerCamelCase       :  List[str]      ,   **__lowerCamelCase       :  Tuple							)      ->  Union[str, Any]:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)




class 					snake_case__							(metaclass=_UpperCamelCase     ):
    """simple docstring"""



    SCREAMING_SNAKE_CASE_ :							Dict											=      ["""torch""", """transformers""", """onnx"""]





    def __init__(   self       :  Any      ,   *__lowerCamelCase       :  Optional[int]      ,   **__lowerCamelCase       :  str							)      ->  Tuple:
       requires_backends(self      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  List[str]      ,   *__lowerCamelCase       :  Optional[int]      ,   **__lowerCamelCase       :  Optional[Any]							)      ->  Tuple:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  str      ,   *__lowerCamelCase       :  Any      ,   **__lowerCamelCase       :  List[str]							)      ->  int:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)




class 					snake_case__							(metaclass=_UpperCamelCase     ):
    """simple docstring"""



    SCREAMING_SNAKE_CASE_ :							Tuple											=      ["""torch""", """transformers""", """onnx"""]





    def __init__(   self       :  int      ,   *__lowerCamelCase       :  Any      ,   **__lowerCamelCase       :  Any							)      ->  List[str]:
       requires_backends(self      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  Any      ,   *__lowerCamelCase       :  int      ,   **__lowerCamelCase       :  Optional[Any]							)      ->  Union[str, Any]:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  int      ,   *__lowerCamelCase       :  int      ,   **__lowerCamelCase       :  Union[str, Any]							)      ->  List[str]:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)




class 					snake_case__							(metaclass=_UpperCamelCase     ):
    """simple docstring"""



    SCREAMING_SNAKE_CASE_ :							List[Any]											=      ["""torch""", """transformers""", """onnx"""]





    def __init__(   self       :  Union[str, Any]      ,   *__lowerCamelCase       :  Tuple      ,   **__lowerCamelCase       :  List[str]							)      ->  Optional[int]:
       requires_backends(self      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  List[Any]      ,   *__lowerCamelCase       :  Optional[int]      ,   **__lowerCamelCase       :  Optional[Any]							)      ->  List[str]:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  List[str]      ,   *__lowerCamelCase       :  int      ,   **__lowerCamelCase       :  Tuple							)      ->  Dict:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)




class 					snake_case__							(metaclass=_UpperCamelCase     ):
    """simple docstring"""



    SCREAMING_SNAKE_CASE_ :							Tuple											=      ["""torch""", """transformers""", """onnx"""]





    def __init__(   self       :  Optional[int]      ,   *__lowerCamelCase       :  Dict      ,   **__lowerCamelCase       :  List[Any]							)      ->  Any:
       requires_backends(self      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  Optional[int]      ,   *__lowerCamelCase       :  Optional[Any]      ,   **__lowerCamelCase       :  Any							)      ->  Union[str, Any]:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)





    @classmethod
    def 							__UpperCAmelCase							(   cls       :  Optional[Any]      ,   *__lowerCamelCase       :  Union[str, Any]      ,   **__lowerCamelCase       :  Optional[Any]							)      ->  Optional[Any]:
       requires_backends(cls      ,   ["torch", "transformers", "onnx"]							)












# 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	:       Tuple     =	subprocess.check_output(F'''git diff --name-only {fork_point_sha}'''.split()).decode('utf-8').split()

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

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






