code: 
  
  
  
  
  
  '''simple docstring'''
  
  
  
  
  
  
  
  # Lint as: python3
  import sys
  from collections.abc import Mapping
  from typing import TYPE_CHECKING
  
  import numpy as np
  import pyarrow as pa
  
  from .. import config
  from ..utils.py_utils import map_nested
  from .formatting import TensorFormatter
  
  
  if TYPE_CHECKING:
  	import tensorflow as tf
  
  
  
  
  
  class 					_UpperCAmelCase							(		TensorFormatter[Mapping, """tf.Tensor""", Mapping]     ):
  		def __init__(						self,__SCREAMING_SNAKE_CASE=None,**__SCREAMING_SNAKE_CASE    ):
  
  
  
  					'''simple docstring'''
  
  					super().__init__(features=__SCREAMING_SNAKE_CASE    )
  					__lowerCAmelCase      		=       tf_tensor_kwargs
  					import tensorflow as tf  # noqa: import tf at initialization
  		def 						lowerCamelCase__    (						self,__SCREAMING_SNAKE_CASE    ):
  
  
  
  					'''simple docstring'''
  
  					import tensorflow as tf
  
  					if isinstance(__SCREAMING_SNAKE_CASE,__SCREAMING_SNAKE_CASE    ) and column:
  								if all(
  								    isinstance(__SCREAMING_SNAKE_CASE,tf.Tensor    ) and x.shape == column[0].shape and x.dtype == column[0].dtype for x in column    ):
  											return tf.stack(__SCREAMING_SNAKE_CASE    )
  								elif all(
  								    isinstance(__SCREAMING_SNAKE_CASE,(tf.Tensor, tf.RaggedTensor)    ) and x.ndim == 1 and x.dtype == column[0].dtype
  								    for x in column    ):
  											# only rag 1-D tensors, otherwise some dimensions become ragged even though they were consolidated
  											return tf.ragged.stack(__SCREAMING_SNAKE_CASE    )
  
  					return column
  		def 						lowerCamelCase__    (						self,__SCREAMING_SNAKE_CASE    ):
  
  
  
  					'''simple docstring'''
  
  					import tensorflow as tf
  
  					if value is None:
  								return value
  
  					__lowerCAmelCase      		=       {}
  
  					if isinstance(__SCREAMING_SNAKE_CASE,(np.number, np.ndarray)    ) and np.issubdtype(value.dtype,np.integer    ):
  								__lowerCAmelCase      		=       {"""dtype""": tf.intaa}
  					elif isinstance(__SCREAMING_SNAKE_CASE,(np.number, np.ndarray)    ) and np.issubdtype(value.dtype,np.floating    ):
  								__lowerCAmelCase      		=       {"""dtype""": tf.floataa}
  					elif config.PIL_AVAILABLE and "PIL" in sys.modules:
  								import PIL.Image
  
  								if isinstance(__SCREAMING_SNAKE_CASE,PIL.Image.Image    ):
  											__lowerCAmelCase      		=       np.asarray(__SCREAMING_SNAKE_CASE    )
  
  					return tf.convert_to_tensor(__SCREAMING_SNAKE_CASE,**{**default_dtype, **self.tf_tensor_kwargs}    )
  		def 						lowerCamelCase__    (						self,__SCREAMING_SNAKE_CASE    ):
  
  
  
  					'''simple docstring'''
  
  					import tensorflow as tf
  
  					# support for torch, tf, jax etc.
  					if config.TORCH_AVAILABLE and "torch" in sys.modules:
  								import torch
  
  								if isinstance(__SCREAMING_SNAKE_CASE,torch.Tensor    ):
  											return self._tensorize(data_struct.detach().cpu().numpy()[()]    )
  					if hasattr(__SCREAMING_SNAKE_CASE,"""__array__"""    ) and not isinstance(__SCREAMING_SNAKE_CASE,tf.Tensor    ):
  								__lowerCAmelCase      		=       data_struct.__array__()
  					# support for nested types like struct of list of struct
  					if isinstance(__SCREAMING_SNAKE_CASE,np.ndarray    ):
  								if data_struct.dtype == object:  # tf tensors cannot be instantied from an array of objects
  											return self._consolidate([self.recursive_tensorize(__SCREAMING_SNAKE_CASE    ) for substruct in data_struct]    )
  					elif isinstance(__SCREAMING_SNAKE_CASE,(list, tuple)    ):
  								return self._consolidate([self.recursive_tensorize(__SCREAMING_SNAKE_CASE    ) for substruct in data_struct]    )
  					return self._tensorize(__SCREAMING_SNAKE_CASE    )
  		def 						lowerCamelCase__    (						self,__SCREAMING_SNAKE_CASE    ):
  
  
  
  					'''simple docstring'''
  
  					return map_nested(self._recursive_tensorize,__SCREAMING_SNAKE_CASE,map_list=__SCREAMING_SNAKE_CASE    )
  		def 						lowerCamelCase__    (						self,__SCREAMING_SNAKE_CASE    ):
  
  
  
  					'''simple docstring'''
  
  					__lowerCAmelCase      		=       self.numpy_arrow_extractor().extract_row(__SCREAMING_SNAKE_CASE    )
  					__lowerCAmelCase      		=       self.python_features_decoder.decode_row(__SCREAMING_SNAKE_CASE    )
  					return self.recursive_tensorize(__SCREAMING_SNAKE_CASE    )
  		def 						lowerCamelCase__    (						self,__SCREAMING_SNAKE_CASE    ):
  
  
  
  					'''simple docstring'''
  
  					__lowerCAmelCase      		=       self.numpy_arrow_extractor().extract_column(__SCREAMING_SNAKE_CASE    )
  					__lowerCAmelCase      		=       self.python_features_decoder.decode_column(__SCREAMING_SNAKE_CASE,pa_table.column_names[0]    )
  					__lowerCAmelCase      		=       self.recursive_tensorize(__SCREAMING_SNAKE_CASE    )
  					__lowerCAmelCase      		=       self._consolidate(__SCREAMING_SNAKE_CASE    )
  					return column
  
  
  
  
  
  
  
  		def 						lowerCamelCase__    (						self,__SCREAMING_SNAKE_CASE    ):
  
  
  
  					'''simple docstring'''
  
  					__lowerCAmelCase      		=       self.numpy_arrow_extractor().extract_batch(__SCREAMING_SNAKE_CASE    )
  					__lowerCAmelCase      		=       self.python_features_decoder.decode_batch(__SCREAMING_SNAKE_CASE    )
  					__lowerCAmelCase      		=       self.recursive_tensorize(__SCREAMING_SNAKE_CASE    )
  					for column_name in batch:
  								__lowerCAmelCase      		=       self._consolidate(batch[column_name]    )
  					return batch
  
  
style_context: 
  
  
  
  
  
  '''simple docstring'''
  
  
  
  
  
  
  
  from cva import destroyAllWindows, imread, imshow, waitKey
  
  
  
  
  
  def      _lowerCAmelCase		(		lowercase      ,			lowercase			)      ->      int:
  			__lowerCAmelCase		, __lowerCAmelCase      		=       img.shape[0], img.shape[1]
  
  			def to_grayscale(lowercase      ,			lowercase      ,			lowercase			):
  						return 0.21_26 * red + 0.5_87 * green + 0.1_14 * blue
  
  			def normalize(lowercase			):
  						return min(lowercase      ,			255			)
  
  			for i in range(lowercase			):
  						for j in range(lowercase			):
  									__lowerCAmelCase      		=       int(to_grayscale(*img[i][j]			)			)
  									__lowerCAmelCase      		=       [
  									    normalize(lowercase			),
  									    normalize(greyscale + factor			),
  									    normalize(greyscale + 2 * factor			),
  									]
  
  			return img
  
  
  if __name__ == "__main__":
  	# read original image
  	_a      :				Any											=					{
  	    percentage: imread("""image_data/lena.jpg""", 1) for percentage in (1_0, 2_0, 3_0, 4_0)
  	}
  
  	for percentage, img in images.items():
  		make_sepia(img, percentage)
  
  	for percentage, img in images.items():
  		imshow(f'Original image with sepia (factor: {percentage})', img)
  
  	waitKey(0)
  	destroyAllWindows()
  
  