"""simple docstring"""







import copy
from dataclasses import dataclass, field
from typing import ClassVar, Dict

from ..features import ClassLabel, Features, Value
from .base import TaskTemplate



@dataclass(frozen=__lowercase     )
class  _lowerCamelCase			(__lowercase     ):
				_snake_case     =  field(default="text-classification"						,							metadata={"include_in_asdict_even_if_is_default": True}     )
				_snake_case     =  Features({"text": Value("string"     )}     )
				_snake_case     =  Features({"labels": ClassLabel}     )
				_snake_case     =  "text"
				_snake_case     =  "labels"







				def 							__UpperCAmelCase					( self    :       Optional[int]			,					lowerCamelCase_    :       Optional[int]						):

					"""simple docstring"""






					if self.label_column not in features:
						raise ValueError(F'''Column {self.label_column} is not present in features.'''						)
					if not isinstance(features[self.label_column]			,					__a						):
						raise ValueError(F'''Column {self.label_column} is not a ClassLabel.'''						)
					_lowercase :    Dict							=							copy.deepcopy(self						)
					_lowercase :    str							=							self.label_schema.copy()
					_lowercase :    Tuple							=							features[self.label_column]
					_lowercase :    int							=							label_schema
					return task_template







				@property
				def 							__UpperCAmelCase					( self    :       List[str]						):

					"""simple docstring"""






					return {
					    self.text_column: "text",
					    self.label_column: "labels",
					}




"""simple docstring"""







import math


def      __lowerCAmelCase(		__UpperCAmelCase			):






	"""simple docstring"""





	if not isinstance(__UpperCAmelCase     ,__UpperCAmelCase			):
		_lowercase :    List[Any]							=							F'''Input value of [number={number}] must be an integer'''
		raise TypeError(__UpperCAmelCase			)

	if number < 1:
		_lowercase :    List[Any]							=							F'''Input value of [number={number}] must be > 0'''
		raise ValueError(__UpperCAmelCase			)
	elif number == 1:
		return 3
	elif number == 2:
		return 5
	else:
		_lowercase :    str							=							int(math.log(number // 3     ,2			)			) + 2

		_lowercase :    Union[str, Any]							=							[3, 5]
		_lowercase :    Optional[int]							=							2
		_lowercase :    List[Any]							=							3
		for block in range(1     ,__UpperCAmelCase			):
			for _ in range(__UpperCAmelCase			):
				proth_list.append(2 ** (block + 1) + proth_list[proth_index - 1]			)
				proth_index += 1
			increment *= 2

	return proth_list[number - 1]


if __name__ == "__main__":
						import doctest

						doctest.testmod()

						for number in range(11):
												SCREAMING_SNAKE_CASE									=						0
												try:
																		SCREAMING_SNAKE_CASE									=						proth(number)
												except ValueError:
																		print(f"""ValueError: there is no {number}th Proth number""")
																		continue

												print(f"""The {number}th Proth number: {value}""")



