



import enum
import inspect
import warnings
from functools import wraps
from typing import Callable, Optional

from .logging import get_logger


UpperCAmelCase :				str							=set()
UpperCAmelCase :				Union[str, Any]							=get_logger(__name__)



def  _lowerCAmelCase     (_lowerCAmelCase = None):

					def decorator(_lowerCAmelCase):
										global _emitted_deprecation_warnings

										if inspect.isclass(_lowerCAmelCase):
															UpperCamelCase_			= deprecated_class_or_function.__init__
															UpperCamelCase_			= deprecated_class_or_function.__name__
										else:
															UpperCamelCase_			= deprecated_class_or_function
															UpperCamelCase_			= deprecated_function.__name__
															# Support deprecating __init__ class method: class name instead
															UpperCamelCase_			= name if name != '__init__' else deprecated_function.__qualname__.split(".")[-2]

										UpperCamelCase_			= (
										    f"""{name} is deprecated and will be removed in the next major version of datasets.""" + f""" {help_message}"""
										    if help_message
										    else ''
										)

										@wraps(_lowerCAmelCase)
										def wrapper(*_lowerCAmelCase ,						**_lowerCAmelCase):
															UpperCamelCase_			= hash(_lowerCAmelCase)
															if func_hash not in _emitted_deprecation_warnings:
																				warnings.warn(_lowerCAmelCase ,						category=_lowerCAmelCase ,						stacklevel=2)
																				_emitted_deprecation_warnings.add(_lowerCAmelCase)
															return deprecated_function(*_lowerCAmelCase ,						**_lowerCAmelCase)

										UpperCamelCase_			= 'deprecated'

										if inspect.isclass(_lowerCAmelCase):
															UpperCamelCase_			= wrapper
															return deprecated_class_or_function
										else:
															return wrapper

					return decorator


class    _lowercase (enum.EnumMeta   ):
				'''simple docstring'''







				def __getattribute__(			cls  ,			snake_case__     ):

									'''simple docstring'''


									UpperCamelCase_			= super().__getattribute__(snake_case__     )
									if isinstance(snake_case__  ,			enum.Enum     ) and obj._on_access:
														obj._on_access()
									return obj

				def __getitem__(			cls  ,			snake_case__     ):

									'''simple docstring'''


									UpperCamelCase_			= super().__getitem__(snake_case__     )
									if member._on_access:
														member._on_access()
									return member

				def __call__(			cls  ,			snake_case__  ,			snake_case__=None  ,			*, snake_case__=None  ,			snake_case__=None  ,			snake_case__=None  ,			snake_case__=1     ):

									'''simple docstring'''


									UpperCamelCase_			= super().__call__(snake_case__  ,			snake_case__  ,			module=snake_case__  ,			qualname=snake_case__  ,			type=snake_case__  ,			start=snake_case__     )
									if isinstance(snake_case__  ,			enum.Enum     ) and obj._on_access:
														obj._on_access()
									return obj




class    _lowercase (enum.Enum   , metaclass=lowerCAmelCase__   ):
				'''simple docstring'''







				def __new__(			cls  ,			snake_case__     ):

									'''simple docstring'''


									UpperCamelCase_			= object.__new__(cls     )
									UpperCamelCase_			= value
									UpperCamelCase_			= member.deprecate
									return member

				@property
				def    _lowerCamelCase       (			self     ):

									'''simple docstring'''


									return ""

				def    _lowerCamelCase       (			self     ):

									'''simple docstring'''


									UpperCamelCase_			= F""" {self.help_message}""" if self.help_message else ''
									warnings.warn(
									    F"""\'{self.__objclass__.__name__}\' is deprecated and will be removed in the next major version of datasets."""
									    + help_message  ,			snake_case__  ,			stacklevel=3  ,			)





'''simple docstring'''







def  SCREAMING_SNAKE_CASE__ (				SCREAMING_SNAKE_CASE = 1000     ):
		return sum(i for i in range(SCREAMING_SNAKE_CASE     ) if i % 3 == 0 or i % 5 == 0     )


if __name__ == "__main__":
							print(f"""{solution() = }""")
