






"""simple docstring"""





from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_torch_available,
)


_SCREAMING_SNAKE_CASE :    List[Any]    =						{
    '''auto_factory''': ['''get_values'''],
    '''configuration_auto''': ['''ALL_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''CONFIG_MAPPING''', '''MODEL_NAMES_MAPPING''', '''AutoConfig'''],
    '''feature_extraction_auto''': ['''FEATURE_EXTRACTOR_MAPPING''', '''AutoFeatureExtractor'''],
    '''image_processing_auto''': ['''IMAGE_PROCESSOR_MAPPING''', '''AutoImageProcessor'''],
    '''processing_auto''': ['''PROCESSOR_MAPPING''', '''AutoProcessor'''],
    '''tokenization_auto''': ['''TOKENIZER_MAPPING''', '''AutoTokenizer'''],
}

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       _SCREAMING_SNAKE_CASE :    Union[str, Any]    =						[
           '''MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING''',
           '''MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING''',
           '''MODEL_FOR_AUDIO_XVECTOR_MAPPING''',
           '''MODEL_FOR_BACKBONE_MAPPING''',
           '''MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING''',
           '''MODEL_FOR_CAUSAL_LM_MAPPING''',
           '''MODEL_FOR_CTC_MAPPING''',
           '''MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING''',
           '''MODEL_FOR_DEPTH_ESTIMATION_MAPPING''',
           '''MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING''',
           '''MODEL_FOR_IMAGE_SEGMENTATION_MAPPING''',
           '''MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING''',
           '''MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING''',
           '''MODEL_FOR_MASKED_LM_MAPPING''',
           '''MODEL_FOR_MASK_GENERATION_MAPPING''',
           '''MODEL_FOR_MULTIPLE_CHOICE_MAPPING''',
           '''MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING''',
           '''MODEL_FOR_OBJECT_DETECTION_MAPPING''',
           '''MODEL_FOR_PRETRAINING_MAPPING''',
           '''MODEL_FOR_QUESTION_ANSWERING_MAPPING''',
           '''MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING''',
           '''MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING''',
           '''MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING''',
           '''MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING''',
           '''MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING''',
           '''MODEL_FOR_TEXT_ENCODING_MAPPING''',
           '''MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING''',
           '''MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING''',
           '''MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING''',
           '''MODEL_FOR_VISION_2_SEQ_MAPPING''',
           '''MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING''',
           '''MODEL_MAPPING''',
           '''MODEL_WITH_LM_HEAD_MAPPING''',
           '''MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING''',
           '''MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING''',
           '''AutoModel''',
           '''AutoBackbone''',
           '''AutoModelForAudioClassification''',
           '''AutoModelForAudioFrameClassification''',
           '''AutoModelForAudioXVector''',
           '''AutoModelForCausalLM''',
           '''AutoModelForCTC''',
           '''AutoModelForDepthEstimation''',
           '''AutoModelForImageClassification''',
           '''AutoModelForImageSegmentation''',
           '''AutoModelForInstanceSegmentation''',
           '''AutoModelForMaskGeneration''',
           '''AutoModelForTextEncoding''',
           '''AutoModelForMaskedImageModeling''',
           '''AutoModelForMaskedLM''',
           '''AutoModelForMultipleChoice''',
           '''AutoModelForNextSentencePrediction''',
           '''AutoModelForObjectDetection''',
           '''AutoModelForPreTraining''',
           '''AutoModelForQuestionAnswering''',
           '''AutoModelForSemanticSegmentation''',
           '''AutoModelForSeq2SeqLM''',
           '''AutoModelForSequenceClassification''',
           '''AutoModelForSpeechSeq2Seq''',
           '''AutoModelForTableQuestionAnswering''',
           '''AutoModelForTokenClassification''',
           '''AutoModelForUniversalSegmentation''',
           '''AutoModelForVideoClassification''',
           '''AutoModelForVision2Seq''',
           '''AutoModelForVisualQuestionAnswering''',
           '''AutoModelForDocumentQuestionAnswering''',
           '''AutoModelWithLMHead''',
           '''AutoModelForZeroShotImageClassification''',
           '''AutoModelForZeroShotObjectDetection''',
       ]

try:
       if not is_tf_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       _SCREAMING_SNAKE_CASE :    Any    =						[
           '''TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING''',
           '''TF_MODEL_FOR_CAUSAL_LM_MAPPING''',
           '''TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING''',
           '''TF_MODEL_FOR_MASK_GENERATION_MAPPING''',
           '''TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING''',
           '''TF_MODEL_FOR_MASKED_LM_MAPPING''',
           '''TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING''',
           '''TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING''',
           '''TF_MODEL_FOR_PRETRAINING_MAPPING''',
           '''TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING''',
           '''TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING''',
           '''TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING''',
           '''TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING''',
           '''TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING''',
           '''TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING''',
           '''TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING''',
           '''TF_MODEL_FOR_TEXT_ENCODING_MAPPING''',
           '''TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING''',
           '''TF_MODEL_FOR_VISION_2_SEQ_MAPPING''',
           '''TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING''',
           '''TF_MODEL_MAPPING''',
           '''TF_MODEL_WITH_LM_HEAD_MAPPING''',
           '''TFAutoModel''',
           '''TFAutoModelForAudioClassification''',
           '''TFAutoModelForCausalLM''',
           '''TFAutoModelForImageClassification''',
           '''TFAutoModelForMaskedImageModeling''',
           '''TFAutoModelForMaskedLM''',
           '''TFAutoModelForMaskGeneration''',
           '''TFAutoModelForMultipleChoice''',
           '''TFAutoModelForNextSentencePrediction''',
           '''TFAutoModelForPreTraining''',
           '''TFAutoModelForDocumentQuestionAnswering''',
           '''TFAutoModelForQuestionAnswering''',
           '''TFAutoModelForSemanticSegmentation''',
           '''TFAutoModelForSeq2SeqLM''',
           '''TFAutoModelForSequenceClassification''',
           '''TFAutoModelForSpeechSeq2Seq''',
           '''TFAutoModelForTableQuestionAnswering''',
           '''TFAutoModelForTextEncoding''',
           '''TFAutoModelForTokenClassification''',
           '''TFAutoModelForVision2Seq''',
           '''TFAutoModelForZeroShotImageClassification''',
           '''TFAutoModelWithLMHead''',
       ]

try:
       if not is_flax_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       _SCREAMING_SNAKE_CASE :    Tuple    =						[
           '''FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING''',
           '''FLAX_MODEL_FOR_CAUSAL_LM_MAPPING''',
           '''FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING''',
           '''FLAX_MODEL_FOR_MASKED_LM_MAPPING''',
           '''FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING''',
           '''FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING''',
           '''FLAX_MODEL_FOR_PRETRAINING_MAPPING''',
           '''FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING''',
           '''FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING''',
           '''FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING''',
           '''FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING''',
           '''FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING''',
           '''FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING''',
           '''FLAX_MODEL_MAPPING''',
           '''FlaxAutoModel''',
           '''FlaxAutoModelForCausalLM''',
           '''FlaxAutoModelForImageClassification''',
           '''FlaxAutoModelForMaskedLM''',
           '''FlaxAutoModelForMultipleChoice''',
           '''FlaxAutoModelForNextSentencePrediction''',
           '''FlaxAutoModelForPreTraining''',
           '''FlaxAutoModelForQuestionAnswering''',
           '''FlaxAutoModelForSeq2SeqLM''',
           '''FlaxAutoModelForSequenceClassification''',
           '''FlaxAutoModelForSpeechSeq2Seq''',
           '''FlaxAutoModelForTokenClassification''',
           '''FlaxAutoModelForVision2Seq''',
       ]


if TYPE_CHECKING:
       from .auto_factory import get_values
       from .configuration_auto import ALL_PRETRAINED_CONFIG_ARCHIVE_MAP, CONFIG_MAPPING, MODEL_NAMES_MAPPING, AutoConfig
       from .feature_extraction_auto import FEATURE_EXTRACTOR_MAPPING, AutoFeatureExtractor
       from .image_processing_auto import IMAGE_PROCESSOR_MAPPING, AutoImageProcessor
       from .processing_auto import PROCESSOR_MAPPING, AutoProcessor
       from .tokenization_auto import TOKENIZER_MAPPING, AutoTokenizer

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_auto import (
                  MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
                  MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING,
                  MODEL_FOR_AUDIO_XVECTOR_MAPPING,
                  MODEL_FOR_BACKBONE_MAPPING,
                  MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING,
                  MODEL_FOR_CAUSAL_LM_MAPPING,
                  MODEL_FOR_CTC_MAPPING,
                  MODEL_FOR_DEPTH_ESTIMATION_MAPPING,
                  MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
                  MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
                  MODEL_FOR_IMAGE_SEGMENTATION_MAPPING,
                  MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING,
                  MODEL_FOR_MASK_GENERATION_MAPPING,
                  MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
                  MODEL_FOR_MASKED_LM_MAPPING,
                  MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
                  MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
                  MODEL_FOR_OBJECT_DETECTION_MAPPING,
                  MODEL_FOR_PRETRAINING_MAPPING,
                  MODEL_FOR_QUESTION_ANSWERING_MAPPING,
                  MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
                  MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
                  MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
                  MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
                  MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
                  MODEL_FOR_TEXT_ENCODING_MAPPING,
                  MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
                  MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING,
                  MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING,
                  MODEL_FOR_VISION_2_SEQ_MAPPING,
                  MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING,
                  MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
                  MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING,
                  MODEL_MAPPING,
                  MODEL_WITH_LM_HEAD_MAPPING,
                  AutoBackbone,
                  AutoModel,
                  AutoModelForAudioClassification,
                  AutoModelForAudioFrameClassification,
                  AutoModelForAudioXVector,
                  AutoModelForCausalLM,
                  AutoModelForCTC,
                  AutoModelForDepthEstimation,
                  AutoModelForDocumentQuestionAnswering,
                  AutoModelForImageClassification,
                  AutoModelForImageSegmentation,
                  AutoModelForInstanceSegmentation,
                  AutoModelForMaskedImageModeling,
                  AutoModelForMaskedLM,
                  AutoModelForMaskGeneration,
                  AutoModelForMultipleChoice,
                  AutoModelForNextSentencePrediction,
                  AutoModelForObjectDetection,
                  AutoModelForPreTraining,
                  AutoModelForQuestionAnswering,
                  AutoModelForSemanticSegmentation,
                  AutoModelForSeqaSeqLM,
                  AutoModelForSequenceClassification,
                  AutoModelForSpeechSeqaSeq,
                  AutoModelForTableQuestionAnswering,
                  AutoModelForTextEncoding,
                  AutoModelForTokenClassification,
                  AutoModelForUniversalSegmentation,
                  AutoModelForVideoClassification,
                  AutoModelForVisionaSeq,
                  AutoModelForVisualQuestionAnswering,
                  AutoModelForZeroShotImageClassification,
                  AutoModelForZeroShotObjectDetection,
                  AutoModelWithLMHead,
              )

       try:
              if not is_tf_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_tf_auto import (
                  TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
                  TF_MODEL_FOR_CAUSAL_LM_MAPPING,
                  TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
                  TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
                  TF_MODEL_FOR_MASK_GENERATION_MAPPING,
                  TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
                  TF_MODEL_FOR_MASKED_LM_MAPPING,
                  TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
                  TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
                  TF_MODEL_FOR_PRETRAINING_MAPPING,
                  TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
                  TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
                  TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
                  TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
                  TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
                  TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
                  TF_MODEL_FOR_TEXT_ENCODING_MAPPING,
                  TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
                  TF_MODEL_FOR_VISION_2_SEQ_MAPPING,
                  TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
                  TF_MODEL_MAPPING,
                  TF_MODEL_WITH_LM_HEAD_MAPPING,
                  TFAutoModel,
                  TFAutoModelForAudioClassification,
                  TFAutoModelForCausalLM,
                  TFAutoModelForDocumentQuestionAnswering,
                  TFAutoModelForImageClassification,
                  TFAutoModelForMaskedImageModeling,
                  TFAutoModelForMaskedLM,
                  TFAutoModelForMaskGeneration,
                  TFAutoModelForMultipleChoice,
                  TFAutoModelForNextSentencePrediction,
                  TFAutoModelForPreTraining,
                  TFAutoModelForQuestionAnswering,
                  TFAutoModelForSemanticSegmentation,
                  TFAutoModelForSeqaSeqLM,
                  TFAutoModelForSequenceClassification,
                  TFAutoModelForSpeechSeqaSeq,
                  TFAutoModelForTableQuestionAnswering,
                  TFAutoModelForTextEncoding,
                  TFAutoModelForTokenClassification,
                  TFAutoModelForVisionaSeq,
                  TFAutoModelForZeroShotImageClassification,
                  TFAutoModelWithLMHead,
              )

       try:
              if not is_flax_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_flax_auto import (
                  FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
                  FLAX_MODEL_FOR_CAUSAL_LM_MAPPING,
                  FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
                  FLAX_MODEL_FOR_MASKED_LM_MAPPING,
                  FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
                  FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
                  FLAX_MODEL_FOR_PRETRAINING_MAPPING,
                  FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
                  FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
                  FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
                  FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
                  FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
                  FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING,
                  FLAX_MODEL_MAPPING,
                  FlaxAutoModel,
                  FlaxAutoModelForCausalLM,
                  FlaxAutoModelForImageClassification,
                  FlaxAutoModelForMaskedLM,
                  FlaxAutoModelForMultipleChoice,
                  FlaxAutoModelForNextSentencePrediction,
                  FlaxAutoModelForPreTraining,
                  FlaxAutoModelForQuestionAnswering,
                  FlaxAutoModelForSeqaSeqLM,
                  FlaxAutoModelForSequenceClassification,
                  FlaxAutoModelForSpeechSeqaSeq,
                  FlaxAutoModelForTokenClassification,
                  FlaxAutoModelForVisionaSeq,
              )

else:
       import sys

       _SCREAMING_SNAKE_CASE :    Dict    =						_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)












"""simple docstring"""





import numpy as np







def 					lowerCamelCase__	(							_lowerCamelCase	:		Dict		,    _lowerCamelCase	:		Any		,    _lowerCamelCase	:		Tuple			)				->    str:
  lowerCamelCase_   					=						n_draws * class_counts / class_counts.sum()
  # floored means we don't overshoot n_samples, but probably undershoot
  lowerCamelCase_   					=						np.floor(_lowerCamelCase			)
  # we add samples according to how much "left over" probability
  # they had, until we arrive at n_samples
  lowerCamelCase_   					=						int(n_draws - floored.sum()			)
  if need_to_add > 0:
    lowerCamelCase_   					=						continuous - floored
    lowerCamelCase_   					=						np.sort(np.unique(_lowerCamelCase			)			)[::-1]
    # add according to remainder, but break ties
    # randomly to avoid biases
    for value in values:
      ((lowerCamelCase_)					,     )   					=						np.where(remainder == value			)
      # if we need_to_add less than what's in inds
      # we draw randomly from them.
      # if we need to add more, we add them all and
      # go to the next value
      lowerCamelCase_   					=						min(len(_lowerCamelCase			)		,    _lowerCamelCase			)
      lowerCamelCase_   					=						rng.choice(_lowerCamelCase		,    size=_lowerCamelCase		,    replace=_lowerCamelCase			)
      floored[inds] += 1
      need_to_add -= add_now
      if need_to_add == 0:
        break
  return floored.astype(np.intaa			)







def 					lowerCamelCase__	(							_lowerCamelCase	:		Any		,    _lowerCamelCase	:		int		,    _lowerCamelCase	:		Optional[Any]		,    _lowerCamelCase	:		List[str]		,    _lowerCamelCase	:		Optional[int]=10			)				->    Any:
  lowerCamelCase_					,     lowerCamelCase_   					=						np.unique(_lowerCamelCase		,    return_inverse=_lowerCamelCase			)
  lowerCamelCase_   					=						classes.shape[0]
  lowerCamelCase_   					=						np.bincount(_lowerCamelCase			)
  if np.min(_lowerCamelCase			) < 2:
    raise ValueError('Minimum class count error'			)
  if n_train < n_classes:
    raise ValueError(
        'The train_size = %d should be greater or ' 'equal to the number of classes = %d' % (n_train, n_classes)			)
  if n_test < n_classes:
    raise ValueError(
        'The test_size = %d should be greater or ' 'equal to the number of classes = %d' % (n_test, n_classes)			)
  lowerCamelCase_   					=						np.split(np.argsort(_lowerCamelCase		,    kind='mergesort'			)		,    np.cumsum(_lowerCamelCase			)[:-1]			)
  for _ in range(_lowerCamelCase			):
    lowerCamelCase_   					=						approximate_mode(_lowerCamelCase		,    _lowerCamelCase		,    _lowerCamelCase			)
    lowerCamelCase_   					=						class_counts - n_i
    lowerCamelCase_   					=						approximate_mode(_lowerCamelCase		,    _lowerCamelCase		,    _lowerCamelCase			)

    lowerCamelCase_   					=						[]
    lowerCamelCase_   					=						[]

    for i in range(_lowerCamelCase			):
      lowerCamelCase_   					=						rng.permutation(class_counts[i]			)
      lowerCamelCase_   					=						class_indices[i].take(_lowerCamelCase		,    mode='clip'			)
      train.extend(perm_indices_class_i[: n_i[i]]			)
      test.extend(perm_indices_class_i[n_i[i] : n_i[i] + t_i[i]]			)
    lowerCamelCase_   					=						rng.permutation(_lowerCamelCase			)
    lowerCamelCase_   					=						rng.permutation(_lowerCamelCase			)

    yield train, test




