"""simple docstring"""






import pickle
import unittest

import torch

from accelerate import Accelerator
from accelerate.state import AcceleratorState
from accelerate.test_utils import require_cpu





@require_cpu
class 				_A		( unittest.TestCase			):

      def        A__ (		self		):







            """simple docstring"""



            lowercase														=			torch.nn.Linear(10	, 10		)
            lowercase														=			torch.optim.SGD(model.parameters()	, 0.1		)
            lowercase														=			Accelerator()
            lowercase														=			accelerator.prepare(__lowerCAmelCase		)
            try:
                  pickle.loads(pickle.dumps(__lowerCAmelCase		)		)
            except Exception as e:
                  self.fail(f'Accelerated optimizer pickling failed with {e}'		)
            AcceleratorState._reset_state()




"""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					: Union[str, Any]        =subprocess.check_output("""git merge-base main HEAD""".split()).decode("""utf-8""")
__lowerCAmelCase					: List[str]        =subprocess.check_output(F"""git diff --name-only {fork_point_sha}""".split()).decode("""utf-8""").split()

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

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



