code: 
  
  
  import importlib
  import os
  import platform
  from pathlib import Path
  
  from packaging import version
  
  from .utils.logging import get_logger
  
  
  lowerCAmelCase					 =	get_logger(__name__)
  
  # Datasets
  lowerCAmelCase					 =	'''https://s3.amazonaws.com/datasets.huggingface.co/datasets/datasets'''
  lowerCAmelCase					 =	'''https://cdn-datasets.huggingface.co/datasets/datasets'''
  lowerCAmelCase					 =	'''https://raw.githubusercontent.com/huggingface/datasets/{revision}/datasets/{path}/{name}'''
  
  # Metrics
  lowerCAmelCase					 =	'''https://s3.amazonaws.com/datasets.huggingface.co/datasets/metrics'''
  lowerCAmelCase					 =	'''https://cdn-datasets.huggingface.co/datasets/metric'''
  lowerCAmelCase					 =	'''https://raw.githubusercontent.com/huggingface/datasets/{revision}/metrics/{path}/{name}'''
  
  # Hub
  lowerCAmelCase					 =	os.environ.get('''HF_ENDPOINT''', '''https://huggingface.co''')
  lowerCAmelCase					 =	HF_ENDPOINT + '''/datasets/{repo_id}/resolve/{revision}/{path}'''
  lowerCAmelCase					 =	'''main'''
  
  lowerCAmelCase					 =	version.parse(platform.python_version())
  
  if PY_VERSION < version.parse('''3.8'''):
  	import importlib_metadata
  else:
  	import importlib.metadata as importlib_metadata
  
  # General environment variables accepted values for booleans
  lowerCAmelCase					 =	{'''1''', '''ON''', '''YES''', '''TRUE'''}
  lowerCAmelCase					 =	ENV_VARS_TRUE_VALUES.union({'''AUTO'''})
  
  
  # Imports
  lowerCAmelCase					 =	version.parse(importlib_metadata.version('''dill'''))
  lowerCAmelCase					 =	version.parse(importlib_metadata.version('''pandas'''))
  lowerCAmelCase					 =	version.parse(importlib_metadata.version('''pyarrow'''))
  
  lowerCAmelCase					 =	os.environ.get('''USE_TF''', '''AUTO''').upper()
  lowerCAmelCase					 =	os.environ.get('''USE_TORCH''', '''AUTO''').upper()
  lowerCAmelCase					 =	os.environ.get('''USE_JAX''', '''AUTO''').upper()
  
  lowerCAmelCase					 =	'''N/A'''
  lowerCAmelCase					 =	False
  
  if USE_TORCH in ENV_VARS_TRUE_AND_AUTO_VALUES and USE_TF not in ENV_VARS_TRUE_VALUES:
  	lowerCAmelCase					 =	importlib.util.find_spec('''torch''') is not None
  	if TORCH_AVAILABLE:
  		try:
  			lowerCAmelCase					 =	version.parse(importlib_metadata.version('''torch'''))
  			logger.info(F'PyTorch version {TORCH_VERSION} available.')
  		except importlib_metadata.PackageNotFoundError:
  			pass
  else:
  	logger.info('''Disabling PyTorch because USE_TF is set''')
  
  lowerCAmelCase					 =	'''N/A'''
  lowerCAmelCase					 =	False
  
  if USE_TF in ENV_VARS_TRUE_AND_AUTO_VALUES and USE_TORCH not in ENV_VARS_TRUE_VALUES:
  	lowerCAmelCase					 =	importlib.util.find_spec('''tensorflow''') is not None
  	if TF_AVAILABLE:
  		# For the metadata, we have to look for both tensorflow and tensorflow-cpu
  		for package in [
  		    "tensorflow",
  		    "tensorflow-cpu",
  		    "tensorflow-gpu",
  		    "tf-nightly",
  		    "tf-nightly-cpu",
  		    "tf-nightly-gpu",
  		    "intel-tensorflow",
  		    "tensorflow-rocm",
  		    "tensorflow-macos",
  		]:
  			try:
  				lowerCAmelCase					 =	version.parse(importlib_metadata.version(package))
  			except importlib_metadata.PackageNotFoundError:
  				continue
  			else:
  				break
  		else:
  			lowerCAmelCase					 =	False
  	if TF_AVAILABLE:
  		if TF_VERSION.major < 2:
  			logger.info(F'TensorFlow found but with version {TF_VERSION}. `datasets` requires version 2 minimum.')
  			lowerCAmelCase					 =	False
  		else:
  			logger.info(F'TensorFlow version {TF_VERSION} available.')
  else:
  	logger.info('''Disabling Tensorflow because USE_TORCH is set''')
  
  
  lowerCAmelCase					 =	'''N/A'''
  lowerCAmelCase					 =	False
  
  if USE_JAX in ENV_VARS_TRUE_AND_AUTO_VALUES:
  	lowerCAmelCase					 =	importlib.util.find_spec('''jax''') is not None and importlib.util.find_spec('''jaxlib''') is not None
  	if JAX_AVAILABLE:
  		try:
  			lowerCAmelCase					 =	version.parse(importlib_metadata.version('''jax'''))
  			logger.info(F'JAX version {JAX_VERSION} available.')
  		except importlib_metadata.PackageNotFoundError:
  			pass
  else:
  	logger.info('''Disabling JAX because USE_JAX is set to False''')
  
  
  lowerCAmelCase					 =	os.environ.get('''USE_BEAM''', '''AUTO''').upper()
  lowerCAmelCase					 =	'''N/A'''
  lowerCAmelCase					 =	False
  if USE_BEAM in ENV_VARS_TRUE_AND_AUTO_VALUES:
  	try:
  		lowerCAmelCase					 =	version.parse(importlib_metadata.version('''apache_beam'''))
  		lowerCAmelCase					 =	True
  		logger.info(F'Apache Beam version {BEAM_VERSION} available.')
  	except importlib_metadata.PackageNotFoundError:
  		pass
  else:
  	logger.info('''Disabling Apache Beam because USE_BEAM is set to False''')
  
  
  # Optional tools for data loading
  lowerCAmelCase					 =	importlib.util.find_spec('''sqlalchemy''') is not None
  
  # Optional tools for feature decoding
  lowerCAmelCase					 =	importlib.util.find_spec('''PIL''') is not None
  lowerCAmelCase					 =	importlib.util.find_spec('''soundfile''') is not None and version.parse(
      importlib.import_module('''soundfile''').__libsndfile_version__
  ) >= version.parse('''1.0.31''')
  lowerCAmelCase					 =	importlib.util.find_spec('''soundfile''') is not None and version.parse(
      importlib.import_module('''soundfile''').__libsndfile_version__
  ) >= version.parse('''1.1.0''')
  
  # Optional compression tools
  lowerCAmelCase					 =	importlib.util.find_spec('''rarfile''') is not None
  lowerCAmelCase					 =	importlib.util.find_spec('''zstandard''') is not None
  lowerCAmelCase					 =	importlib.util.find_spec('''lz4''') is not None
  lowerCAmelCase					 =	importlib.util.find_spec('''py7zr''') is not None
  
  
  # Cache location
  lowerCAmelCase					 =	'''~/.cache'''
  lowerCAmelCase					 =	os.getenv('''XDG_CACHE_HOME''', DEFAULT_XDG_CACHE_HOME)
  lowerCAmelCase					 =	os.path.join(XDG_CACHE_HOME, '''huggingface''')
  lowerCAmelCase					 =	os.path.expanduser(os.getenv('''HF_HOME''', DEFAULT_HF_CACHE_HOME))
  
  lowerCAmelCase					 =	os.path.join(HF_CACHE_HOME, '''datasets''')
  lowerCAmelCase					 =	Path(os.getenv('''HF_DATASETS_CACHE''', DEFAULT_HF_DATASETS_CACHE))
  
  lowerCAmelCase					 =	os.path.join(HF_CACHE_HOME, '''metrics''')
  lowerCAmelCase					 =	Path(os.getenv('''HF_METRICS_CACHE''', DEFAULT_HF_METRICS_CACHE))
  
  lowerCAmelCase					 =	os.path.join(HF_CACHE_HOME, '''modules''')
  lowerCAmelCase					 =	Path(os.getenv('''HF_MODULES_CACHE''', DEFAULT_HF_MODULES_CACHE))
  
  lowerCAmelCase					 =	'''downloads'''
  lowerCAmelCase					 =	os.path.join(HF_DATASETS_CACHE, DOWNLOADED_DATASETS_DIR)
  lowerCAmelCase					 =	Path(os.getenv('''HF_DATASETS_DOWNLOADED_DATASETS_PATH''', DEFAULT_DOWNLOADED_DATASETS_PATH))
  
  lowerCAmelCase					 =	'''extracted'''
  lowerCAmelCase					 =	os.path.join(DEFAULT_DOWNLOADED_DATASETS_PATH, EXTRACTED_DATASETS_DIR)
  lowerCAmelCase					 =	Path(os.getenv('''HF_DATASETS_EXTRACTED_DATASETS_PATH''', DEFAULT_EXTRACTED_DATASETS_PATH))
  
  # Download count for the website
  lowerCAmelCase					 =	(
      os.environ.get('''HF_UPDATE_DOWNLOAD_COUNTS''', '''AUTO''').upper() in ENV_VARS_TRUE_AND_AUTO_VALUES
  )
  
  # Batch size constants. For more info, see:
  # https://github.com/apache/arrow/blob/master/docs/source/cpp/arrays.rst#size-limitations-and-recommendations)
  lowerCAmelCase					 =	1_0_0_0
  
  # Size of the preloaded record batch in `Dataset.__iter__`
  lowerCAmelCase					 =	1_0
  
  # Pickling tables works only for small tables (<4GiB)
  # For big tables, we write them on disk instead
  lowerCAmelCase					 =	4 << 3_0
  
  # Max shard size in bytes (e.g. to shard parquet datasets in push_to_hub or download_and_prepare)
  lowerCAmelCase					 =	'''500MB'''
  
  # Parquet configuration
  lowerCAmelCase					 =	1_0_0
  lowerCAmelCase					 =	1_0_0
  lowerCAmelCase					 =	1_0_0
  
  # Offline mode
  lowerCAmelCase					 =	os.environ.get('''HF_DATASETS_OFFLINE''', '''AUTO''').upper() in ENV_VARS_TRUE_VALUES
  
  # In-memory
  lowerCAmelCase					 =	0  # Disabled
  lowerCAmelCase					 =	float(os.environ.get('''HF_DATASETS_IN_MEMORY_MAX_SIZE''', DEFAULT_IN_MEMORY_MAX_SIZE))
  
  # File names
  lowerCAmelCase					 =	'''dataset.arrow'''
  lowerCAmelCase					 =	'''indices.arrow'''
  lowerCAmelCase					 =	'''state.json'''
  lowerCAmelCase					 =	'''dataset_info.json'''
  lowerCAmelCase					 =	'''dataset_infos.json'''
  lowerCAmelCase					 =	'''LICENSE'''
  lowerCAmelCase					 =	'''metric_info.json'''
  lowerCAmelCase					 =	'''dataset_dict.json'''
  
  lowerCAmelCase					 =	'''datasets_modules'''
  
  lowerCAmelCase					 =	2_5_5
  
  # Streaming
  lowerCAmelCase					 =	2_0
  lowerCAmelCase					 =	5
  
  # Datasets without script
  lowerCAmelCase					 =	2_0_0
  lowerCAmelCase					 =	1_0
  lowerCAmelCase					 =	2_0_0
  
  # Progress bars
  lowerCAmelCase					 =	0.0_5  # 20 progress updates per sec
  
  
  
  
  
  
  
style_context: 
  
  
  def  _lowerCamelCase(			lowercase__			)		->			str:
  
  		'''simple docstring'''
  
  
  
  
  
  
  
  		return " ".join([word[::-1] for word in input_str.split()]			)
  
  
  if __name__ == "__main__":
  	import doctest
  
  	doctest.testmod()
  
  
  
  
  
  
  