




'''simple docstring'''






from typing import TYPE_CHECKING

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


_lowerCAmelCase       =   {
    '''configuration_utils''': ['''GenerationConfig'''],
    '''streamers''': ['''TextIteratorStreamer''', '''TextStreamer'''],
}

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowerCAmelCase       =   [
				    '''Constraint''',
				    '''ConstraintListState''',
				    '''DisjunctiveConstraint''',
				    '''PhrasalConstraint''',
				]
				_lowerCAmelCase       =   [
				    '''BeamHypotheses''',
				    '''BeamScorer''',
				    '''BeamSearchScorer''',
				    '''ConstrainedBeamSearchScorer''',
				]
				_lowerCAmelCase       =   [
				    '''EpsilonLogitsWarper''',
				    '''EtaLogitsWarper''',
				    '''ForcedBOSTokenLogitsProcessor''',
				    '''ForcedEOSTokenLogitsProcessor''',
				    '''HammingDiversityLogitsProcessor''',
				    '''InfNanRemoveLogitsProcessor''',
				    '''LogitsProcessor''',
				    '''LogitsProcessorList''',
				    '''LogitsWarper''',
				    '''MinLengthLogitsProcessor''',
				    '''MinNewTokensLengthLogitsProcessor''',
				    '''NoBadWordsLogitsProcessor''',
				    '''NoRepeatNGramLogitsProcessor''',
				    '''PrefixConstrainedLogitsProcessor''',
				    '''RepetitionPenaltyLogitsProcessor''',
				    '''SequenceBiasLogitsProcessor''',
				    '''EncoderRepetitionPenaltyLogitsProcessor''',
				    '''TemperatureLogitsWarper''',
				    '''TopKLogitsWarper''',
				    '''TopPLogitsWarper''',
				    '''TypicalLogitsWarper''',
				    '''EncoderNoRepeatNGramLogitsProcessor''',
				    '''ExponentialDecayLengthPenalty''',
				    '''LogitNormalization''',
				]
				_lowerCAmelCase       =   [
				    '''MaxNewTokensCriteria''',
				    '''MaxLengthCriteria''',
				    '''MaxTimeCriteria''',
				    '''StoppingCriteria''',
				    '''StoppingCriteriaList''',
				    '''validate_stopping_criteria''',
				]
				_lowerCAmelCase       =   [
				    '''GenerationMixin''',
				    '''top_k_top_p_filtering''',
				    '''GreedySearchEncoderDecoderOutput''',
				    '''GreedySearchDecoderOnlyOutput''',
				    '''SampleEncoderDecoderOutput''',
				    '''SampleDecoderOnlyOutput''',
				    '''BeamSearchEncoderDecoderOutput''',
				    '''BeamSearchDecoderOnlyOutput''',
				    '''BeamSampleEncoderDecoderOutput''',
				    '''BeamSampleDecoderOnlyOutput''',
				    '''ContrastiveSearchEncoderDecoderOutput''',
				    '''ContrastiveSearchDecoderOnlyOutput''',
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowerCAmelCase       =   [
				    '''TFForcedBOSTokenLogitsProcessor''',
				    '''TFForcedEOSTokenLogitsProcessor''',
				    '''TFLogitsProcessor''',
				    '''TFLogitsProcessorList''',
				    '''TFLogitsWarper''',
				    '''TFMinLengthLogitsProcessor''',
				    '''TFNoBadWordsLogitsProcessor''',
				    '''TFNoRepeatNGramLogitsProcessor''',
				    '''TFRepetitionPenaltyLogitsProcessor''',
				    '''TFTemperatureLogitsWarper''',
				    '''TFTopKLogitsWarper''',
				    '''TFTopPLogitsWarper''',
				    '''TFForceTokensLogitsProcessor''',
				    '''TFSuppressTokensAtBeginLogitsProcessor''',
				    '''TFSuppressTokensLogitsProcessor''',
				]
				_lowerCAmelCase       =   [
				    '''TFGenerationMixin''',
				    '''tf_top_k_top_p_filtering''',
				    '''TFGreedySearchDecoderOnlyOutput''',
				    '''TFGreedySearchEncoderDecoderOutput''',
				    '''TFSampleEncoderDecoderOutput''',
				    '''TFSampleDecoderOnlyOutput''',
				    '''TFBeamSearchEncoderDecoderOutput''',
				    '''TFBeamSearchDecoderOnlyOutput''',
				    '''TFBeamSampleEncoderDecoderOutput''',
				    '''TFBeamSampleDecoderOnlyOutput''',
				    '''TFContrastiveSearchEncoderDecoderOutput''',
				    '''TFContrastiveSearchDecoderOnlyOutput''',
				]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowerCAmelCase       =   [
				    '''FlaxForcedBOSTokenLogitsProcessor''',
				    '''FlaxForcedEOSTokenLogitsProcessor''',
				    '''FlaxLogitsProcessor''',
				    '''FlaxLogitsProcessorList''',
				    '''FlaxLogitsWarper''',
				    '''FlaxMinLengthLogitsProcessor''',
				    '''FlaxTemperatureLogitsWarper''',
				    '''FlaxTopKLogitsWarper''',
				    '''FlaxTopPLogitsWarper''',
				]
				_lowerCAmelCase       =   [
				    '''FlaxGenerationMixin''',
				    '''FlaxGreedySearchOutput''',
				    '''FlaxSampleOutput''',
				    '''FlaxBeamSearchOutput''',
				]

if TYPE_CHECKING:
				from .configuration_utils import GenerationConfig
				from .streamers import TextIteratorStreamer, TextStreamer

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .beam_constraints import Constraint, ConstraintListState, DisjunctiveConstraint, PhrasalConstraint
								from .beam_search import BeamHypotheses, BeamScorer, BeamSearchScorer, ConstrainedBeamSearchScorer
								from .logits_process import (
								    EncoderNoRepeatNGramLogitsProcessor,
								    EncoderRepetitionPenaltyLogitsProcessor,
								    EpsilonLogitsWarper,
								    EtaLogitsWarper,
								    ExponentialDecayLengthPenalty,
								    ForcedBOSTokenLogitsProcessor,
								    ForcedEOSTokenLogitsProcessor,
								    HammingDiversityLogitsProcessor,
								    InfNanRemoveLogitsProcessor,
								    LogitNormalization,
								    LogitsProcessor,
								    LogitsProcessorList,
								    LogitsWarper,
								    MinLengthLogitsProcessor,
								    MinNewTokensLengthLogitsProcessor,
								    NoBadWordsLogitsProcessor,
								    NoRepeatNGramLogitsProcessor,
								    PrefixConstrainedLogitsProcessor,
								    RepetitionPenaltyLogitsProcessor,
								    SequenceBiasLogitsProcessor,
								    TemperatureLogitsWarper,
								    TopKLogitsWarper,
								    TopPLogitsWarper,
								    TypicalLogitsWarper,
								)
								from .stopping_criteria import (
								    MaxLengthCriteria,
								    MaxNewTokensCriteria,
								    MaxTimeCriteria,
								    StoppingCriteria,
								    StoppingCriteriaList,
								    validate_stopping_criteria,
								)
								from .utils import (
								    BeamSampleDecoderOnlyOutput,
								    BeamSampleEncoderDecoderOutput,
								    BeamSearchDecoderOnlyOutput,
								    BeamSearchEncoderDecoderOutput,
								    ContrastiveSearchDecoderOnlyOutput,
								    ContrastiveSearchEncoderDecoderOutput,
								    GenerationMixin,
								    GreedySearchDecoderOnlyOutput,
								    GreedySearchEncoderDecoderOutput,
								    SampleDecoderOnlyOutput,
								    SampleEncoderDecoderOutput,
								    top_k_top_p_filtering,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tf_logits_process import (
								    TFForcedBOSTokenLogitsProcessor,
								    TFForcedEOSTokenLogitsProcessor,
								    TFForceTokensLogitsProcessor,
								    TFLogitsProcessor,
								    TFLogitsProcessorList,
								    TFLogitsWarper,
								    TFMinLengthLogitsProcessor,
								    TFNoBadWordsLogitsProcessor,
								    TFNoRepeatNGramLogitsProcessor,
								    TFRepetitionPenaltyLogitsProcessor,
								    TFSuppressTokensAtBeginLogitsProcessor,
								    TFSuppressTokensLogitsProcessor,
								    TFTemperatureLogitsWarper,
								    TFTopKLogitsWarper,
								    TFTopPLogitsWarper,
								)
								from .tf_utils import (
								    TFBeamSampleDecoderOnlyOutput,
								    TFBeamSampleEncoderDecoderOutput,
								    TFBeamSearchDecoderOnlyOutput,
								    TFBeamSearchEncoderDecoderOutput,
								    TFContrastiveSearchDecoderOnlyOutput,
								    TFContrastiveSearchEncoderDecoderOutput,
								    TFGenerationMixin,
								    TFGreedySearchDecoderOnlyOutput,
								    TFGreedySearchEncoderDecoderOutput,
								    TFSampleDecoderOnlyOutput,
								    TFSampleEncoderDecoderOutput,
								    tf_top_k_top_p_filtering,
								)

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .flax_logits_process import (
								    FlaxForcedBOSTokenLogitsProcessor,
								    FlaxForcedEOSTokenLogitsProcessor,
								    FlaxLogitsProcessor,
								    FlaxLogitsProcessorList,
								    FlaxLogitsWarper,
								    FlaxMinLengthLogitsProcessor,
								    FlaxTemperatureLogitsWarper,
								    FlaxTopKLogitsWarper,
								    FlaxTopPLogitsWarper,
								)
								from .flax_utils import FlaxBeamSearchOutput, FlaxGenerationMixin, FlaxGreedySearchOutput, FlaxSampleOutput
else:
				import sys

				_lowerCAmelCase       =   _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)









"""simple docstring"""
import platform
from argparse import ArgumentParser

import huggingface_hub
import pandas
import pyarrow

from datasets import __version__ as version
from datasets.commands import BaseDatasetsCLICommand






def 				__lowerCAmelCase					(					__lowerCAmelCase			:		Union[str, Any]						)    ->       int:
 return EnvironmentCommand()







class  _SCREAMING_SNAKE_CASE       (     SCREAMING_SNAKE_CASE__				):



 '''simple docstring'''





 @staticmethod
 def lowercase_      (lowerCAmelCase__   ):

  '''simple docstring'''







  _UpperCamelCase      :	Optional[Any]					      =  parser.add_parser("env"					,     help="Print relevant system environment info."   )
  download_parser.set_defaults(func=lowerCAmelCase__   )






 def lowercase_      (self   ):

  '''simple docstring'''







  _UpperCamelCase      :	Any					      =  {
      "`datasets` version": version,
      "Platform": platform.platform(),
      "Python version": platform.python_version(),
      "Huggingface_hub version": huggingface_hub.__version__,
      "PyArrow version": pyarrow.__version__,
      "Pandas version": pandas.__version__,
  }

  print("\nCopy-and-paste the text below in your GitHub issue.\n"   )
  print(self.format_dict(lowerCAmelCase__   )   )

  return info






 @staticmethod
 def lowercase_      (lowerCAmelCase__   ):

  '''simple docstring'''







  return "\n".join([F"- {prop}: {val}" for prop, val in d.items()]   ) + "\n"



