


from packaging import version

from .import_utils import is_accelerate_available


if is_accelerate_available():
 import accelerate



def 							UpperCamelCase_( lowerCamelCase_					)       ->		Union[str, Any]:
    if not is_accelerate_available():
        return method
    _lowercase			:				int 						=						version.parse(accelerate.__version__					).base_version
    if version.parse(lowerCamelCase_					) < version.parse('0.17.0'					):
        return method

    def wrapper(self				,					*lowerCamelCase_				,					**lowerCamelCase_					):
        if hasattr(self				,					'_hf_hook'					) and hasattr(self._hf_hook				,					'pre_forward'					):
            self._hf_hook.pre_forward(self					)
        return method(self				,					*lowerCamelCase_				,					**lowerCamelCase_					)

    return wrapper






from maths.prime_factors import prime_factors



def 							UpperCamelCase_( lowerCamelCase_					)       ->		int:
    if not isinstance(lowerCamelCase_				,					lowerCamelCase_					):
        _lowercase			:				str 						=						F'''Input value of [number={number}] must be an integer'''
        raise TypeError(lowerCamelCase_					)
    if number < 1:
        raise ValueError('Input must be a positive integer'					)
    return -1 if len(prime_factors(lowerCamelCase_					)					) % 2 else 1


if __name__ == "__main__":
 import doctest

 doctest.testmod()


