






'''simple docstring'''



from ...configuration_utils import PretrainedConfig
from ...utils import logging


SCREAMING_SNAKE_CASE							=						logging.get_logger(__name__)

SCREAMING_SNAKE_CASE							=						{
    'RWKV/rwkv-4-169m-pile': 'https://huggingface.co/RWKV/rwkv-4-169m-pile/resolve/main/config.json',
    'RWKV/rwkv-4-430m-pile': 'https://huggingface.co/RWKV/rwkv-4-430m-pile/resolve/main/config.json',
    'RWKV/rwkv-4-1b5-pile': 'https://huggingface.co/RWKV/rwkv-4-1b5-pile/resolve/main/config.json',
    'RWKV/rwkv-4-3b-pile': 'https://huggingface.co/RWKV/rwkv-4-3b-pile/resolve/main/config.json',
    'RWKV/rwkv-4-7b-pile': 'https://huggingface.co/RWKV/rwkv-4-7b-pile/resolve/main/config.json',
    'RWKV/rwkv-4-14b-pile': 'https://huggingface.co/RWKV/rwkv-4-14b-pile/resolve/main/config.json',
    'RWKV/rwkv-raven-1b5': 'https://huggingface.co/RWKV/rwkv-raven-1b5/resolve/main/config.json',
    'RWKV/rwkv-raven-3b': 'https://huggingface.co/RWKV/rwkv-raven-3b/resolve/main/config.json',
    'RWKV/rwkv-raven-7b': 'https://huggingface.co/RWKV/rwkv-raven-7b/resolve/main/config.json',
    'RWKV/rwkv-raven-14b': 'https://huggingface.co/RWKV/rwkv-raven-14b/resolve/main/config.json',
}
class UpperCAmelCase_       (     __A					):




      """simple docstring"""




      UpperCamelCase_             =      '''rwkv'''
      UpperCamelCase_             =      {'''max_position_embeddings''': '''context_length'''}






      def __init__(			self      :		Dict  ,   UpperCAmelCase      :		int=5_0277  ,   UpperCAmelCase      :		List[Any]=1024  ,   UpperCAmelCase      :		Tuple=4096  ,   UpperCAmelCase      :		str=32  ,   UpperCAmelCase      :		Dict=None  ,   UpperCAmelCase      :		Any=None  ,   UpperCAmelCase      :		List[Any]=1e-5  ,   UpperCAmelCase      :		Optional[int]=0  ,   UpperCAmelCase      :		Tuple=0  ,   UpperCAmelCase      :		str=6  ,   UpperCAmelCase      :		List[Any]=False  ,   UpperCAmelCase      :		Tuple=True  ,   **UpperCAmelCase      :		Tuple  ,   )	->	int:


       '''simple docstring'''

       lowercase       : Union[str, Any]						=vocab_size
       lowercase       : str						=context_length
       lowercase       : int						=hidden_size
       lowercase       : Dict						=num_hidden_layers
       lowercase       : List[Any]						=attention_hidden_size if attention_hidden_size is not None else hidden_size
       lowercase       : Any						=intermediate_size if intermediate_size is not None else 4 * hidden_size
       lowercase       : int						=layer_norm_epsilon
       lowercase       : Tuple						=rescale_every
       lowercase       : List[str]						=use_cache

       lowercase       : Optional[Any]						=bos_token_id
       lowercase       : List[str]						=eos_token_id

       super().__init__(
           tie_word_embeddings=UpperCAmelCase  ,   bos_token_id=UpperCAmelCase  ,   eos_token_id=UpperCAmelCase  ,   **UpperCAmelCase		)











'''simple docstring'''



from unittest import TestCase

from datasets import Sequence, Value
from datasets.arrow_dataset import Dataset
class UpperCAmelCase_       (     __A					):




      """simple docstring"""




      def 					A__   (			self      :		Optional[int]		)	->	List[str]:


       '''simple docstring'''

       return [
           {"col_1": 3, "col_2": "a"},
           {"col_1": 2, "col_2": "b"},
           {"col_1": 1, "col_2": "c"},
           {"col_1": 0, "col_2": "d"},
       ]






      def 					A__   (			self      :		Any		)	->	List[str]:


       '''simple docstring'''

       lowercase       : List[str]						={'''col_1''': [3, 2, 1, 0], '''col_2''': ['''a''', '''b''', '''c''', '''d''']}
       return Dataset.from_dict(UpperCAmelCase		)






      def 					A__   (			self      :		Any		)	->	Tuple:


       '''simple docstring'''

       lowercase       : Tuple						=self._create_example_records()
       lowercase       : Tuple						=Dataset.from_list(UpperCAmelCase		)
       self.assertListEqual(dset.column_names  ,   ['''col_1''', '''col_2''']		)
       for i, r in enumerate(UpperCAmelCase		):
        self.assertDictEqual(UpperCAmelCase  ,   example_records[i]		)






      def 					A__   (			self      :		Dict		)	->	List[str]:


       '''simple docstring'''

       lowercase       : Optional[Any]						=self._create_example_records()
       lowercase       : Union[str, Any]						=Dataset.from_list(UpperCAmelCase		)
       lowercase       : Tuple						=Dataset.from_dict({k: [r[k] for r in example_records] for k in example_records[0]}		)
       self.assertEqual(dset.info  ,   dset_from_dict.info		)






      def 					A__   (			self      :		str		)	->	List[Any]:  # checks what happens with missing columns


       '''simple docstring'''

       lowercase       : Tuple						=[{'''col_1''': 1}, {'''col_2''': '''x'''}]
       lowercase       : Optional[Any]						=Dataset.from_list(UpperCAmelCase		)
       self.assertDictEqual(dset[0]  ,   {'''col_1''': 1}		)
       self.assertDictEqual(dset[1]  ,   {'''col_1''': None}		)  # NB: first record is used for columns






      def 					A__   (			self      :		List[Any]		)	->	int:  # checks if the type can be inferred from the second record


       '''simple docstring'''

       lowercase       : List[Any]						=[{'''col_1''': []}, {'''col_1''': [1, 2]}]
       lowercase       : Union[str, Any]						=Dataset.from_list(UpperCAmelCase		)
       self.assertEqual(dset.info.features['''col_1''']  ,   Sequence(Value('''int64'''		)		)		)






      def 					A__   (			self      :		int		)	->	str:


       '''simple docstring'''

       lowercase       : List[str]						=Dataset.from_list([]		)
       self.assertEqual(len(UpperCAmelCase		)  ,   0		)
       self.assertListEqual(dset.column_names  ,   []		)



