code: 
  
  
  import enum
  import inspect
  import warnings
  from functools import wraps
  from typing import Callable, Optional
  
  from .logging import get_logger
  
  
  lowercase_								=    set()
  lowercase_								=    get_logger(__name__)
  
  
  def 							SCREAMING_SNAKE_CASE					(  _UpperCAmelCase = None				)    ->  Union[str, Any]:
  
  						def decorator(_UpperCAmelCase				):
  												global _emitted_deprecation_warnings
  
  												if inspect.isclass(lowercase_				):
  																		_a     =			deprecated_class_or_function.__init__
  																		_a     =			deprecated_class_or_function.__name__
  												else:
  																		_a     =			deprecated_class_or_function
  																		_a     =			deprecated_function.__name__
  																		# Support deprecating __init__ class method: class name instead
  																		_a     =			name if name != '__init__' else deprecated_function.__qualname__.split('.'				)[-2]
  
  												_a     =			(
  												    f"""{name} is deprecated and will be removed in the next major version of datasets.""" + f""" {help_message}"""
  												    if help_message
  												    else ''
  												)
  
  												@wraps(lowercase_				)
  												def wrapper(*_UpperCAmelCase							,     **_UpperCAmelCase				):
  																		_a     =			hash(lowercase_				)
  																		if func_hash not in _emitted_deprecation_warnings:
  																								warnings.warn(lowercase_							,     category=lowercase_							,     stacklevel=2				)
  																								_emitted_deprecation_warnings.add(lowercase_				)
  																		return deprecated_function(*lowercase_							,     **lowercase_				)
  
  												_a     =			'deprecated'
  
  												if inspect.isclass(lowercase_				):
  																		_a     =			wrapper
  																		return deprecated_class_or_function
  												else:
  																		return wrapper
  
  						return decorator
  
  
  
  
  class 					_UpperCamelCase (      enum.EnumMeta	):
  
  
  
  
  
  
  
  							'''simple docstring'''
  
  
  
  
  
  
  
  							def __getattribute__(		cls  :				Dict		,				SCREAMING_SNAKE_CASE_  :				int		):
  													_a     =			super().__getattribute__(SCREAMING_SNAKE_CASE_		)
  													if isinstance(SCREAMING_SNAKE_CASE_		,				enum.Enum		) and obj._on_access:
  																			obj._on_access()
  													return obj
  
  
  
  
  
  
  
  							def __getitem__(		cls  :				Optional[Any]		,				SCREAMING_SNAKE_CASE_  :				str		):
  													_a     =			super().__getitem__(SCREAMING_SNAKE_CASE_		)
  													if member._on_access:
  																			member._on_access()
  													return member
  
  
  
  
  
  
  
  							def __call__(		cls  :				List[str]		,				SCREAMING_SNAKE_CASE_  :				Any		,				SCREAMING_SNAKE_CASE_  :				Any=None		,				*, SCREAMING_SNAKE_CASE_  :				str=None		,				SCREAMING_SNAKE_CASE_  :				List[str]=None		,				SCREAMING_SNAKE_CASE_  :				int=None		,				SCREAMING_SNAKE_CASE_  :				List[str]=1		):
  													_a     =			super().__call__(SCREAMING_SNAKE_CASE_		,				SCREAMING_SNAKE_CASE_		,				module=SCREAMING_SNAKE_CASE_		,				qualname=SCREAMING_SNAKE_CASE_		,				type=SCREAMING_SNAKE_CASE_		,				start=SCREAMING_SNAKE_CASE_		)
  													if isinstance(SCREAMING_SNAKE_CASE_		,				enum.Enum		) and obj._on_access:
  																			obj._on_access()
  													return obj
  
  
  
  
  class 					_UpperCamelCase (      enum.Enum			,							metaclass=a_	):
  
  
  
  
  
  
  
  							'''simple docstring'''
  
  
  
  
  
  
  
  							def __new__(		cls  :				Any		,				SCREAMING_SNAKE_CASE_  :				str		):
  													_a     =			object.__new__(cls		)
  													_a     =			value
  													_a     =			member.deprecate
  													return member
  
  
  
  
  
  
  
  							@property
  							def 		_UpperCAmelCase	(		self  :				Optional[int]		):
  													return ""
  
  
  
  
  
  
  
  							def 		_UpperCAmelCase	(		self  :				Any		):
  													_a     =			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		,				SCREAMING_SNAKE_CASE_		,				stacklevel=3		,				)
  
style_context: 
  
  
  from typing import TYPE_CHECKING
  
  from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available
  
  
  lowercase_								=    {
      'configuration_codegen': ['CODEGEN_PRETRAINED_CONFIG_ARCHIVE_MAP', 'CodeGenConfig', 'CodeGenOnnxConfig'],
      'tokenization_codegen': ['CodeGenTokenizer'],
  }
  
  try:
  		if not is_tokenizers_available():
  				raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
  		pass
  else:
  		lowercase_								=    ['CodeGenTokenizerFast']
  
  try:
  		if not is_torch_available():
  				raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
  		pass
  else:
  		lowercase_								=    [
  		    'CODEGEN_PRETRAINED_MODEL_ARCHIVE_LIST',
  		    'CodeGenForCausalLM',
  		    'CodeGenModel',
  		    'CodeGenPreTrainedModel',
  		]
  
  if TYPE_CHECKING:
  		from .configuration_codegen import CODEGEN_PRETRAINED_CONFIG_ARCHIVE_MAP, CodeGenConfig, CodeGenOnnxConfig
  		from .tokenization_codegen import CodeGenTokenizer
  
  		try:
  				if not is_tokenizers_available():
  						raise OptionalDependencyNotAvailable()
  		except OptionalDependencyNotAvailable:
  				pass
  		else:
  				from .tokenization_codegen_fast import CodeGenTokenizerFast
  
  		try:
  				if not is_torch_available():
  						raise OptionalDependencyNotAvailable()
  		except OptionalDependencyNotAvailable:
  				pass
  		else:
  				from .modeling_codegen import (
  				    CODEGEN_PRETRAINED_MODEL_ARCHIVE_LIST,
  				    CodeGenForCausalLM,
  				    CodeGenModel,
  				    CodeGenPreTrainedModel,
  				)
  
  else:
  		import sys
  
  		lowercase_								=    _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)
  
  
  