



import datasets

from .evaluate import evaluate


lowerCAmelCase:      List[str]		 =		'\\n@inproceedings{Rajpurkar2016SQuAD10,\n  title={SQuAD: 100, 000+ Questions for Machine Comprehension of Text},\n  author={Pranav Rajpurkar and Jian Zhang and Konstantin Lopyrev and Percy Liang},\n  booktitle={EMNLP},\n  year={2016}\n}\n'

lowerCAmelCase:      Optional[Any]		 =		'\nThis metric wrap the official scoring script for version 1 of the Stanford Question Answering Dataset (SQuAD).\n\nStanford Question Answering Dataset (SQuAD) is a reading comprehension dataset, consisting of questions posed by\ncrowdworkers on a set of Wikipedia articles, where the answer to every question is a segment of text, or span,\nfrom the corresponding reading passage, or the question might be unanswerable.\n'

lowerCAmelCase:      Optional[Any]		 =		'\nComputes SQuAD scores (F1 and EM).\nArgs:\n    predictions: List of question-answers dictionaries with the following key-values:\n        - \'id\': id of the question-answer pair as given in the references (see below)\n        - \'prediction_text\': the text of the answer\n    references: List of question-answers dictionaries with the following key-values:\n        - \'id\': id of the question-answer pair (see above),\n        - \'answers\': a Dict in the SQuAD dataset format\n            {\n                \'text\': list of possible texts for the answer, as a list of strings\n                \'answer_start\': list of start positions for the answer, as a list of ints\n            }\n            Note that answer_start values are not taken into account to compute the metric.\nReturns:\n    \'exact_match\': Exact match (the normalized answer exactly match the gold answer)\n    \'f1\': The F-score of predicted tokens versus the gold answer\nExamples:\n\n    >>> predictions = [{\'prediction_text\': \'1976\', \'id\': \'56e10a3be3433e1400422b22\'}]\n    >>> references = [{\'answers\': {\'answer_start\': [97], \'text\': [\'1976\']}, \'id\': \'56e10a3be3433e1400422b22\'}]\n    >>> squad_metric = datasets.load_metric(\"squad\")\n    >>> results = squad_metric.compute(predictions=predictions, references=references)\n    >>> print(results)\n    {\'exact_match\': 100.0, \'f1\': 100.0}\n'

@datasets.utils.file_utils.add_start_docstrings(_DESCRIPTION	,				_KWARGS_DESCRIPTION			)
class 							a__(      datasets.Metric			):







    def     lowercase_ (   self				:						str			):
      return datasets.MetricInfo(
          description=_DESCRIPTION		,    citation=_CITATION		,    inputs_description=_KWARGS_DESCRIPTION		,    features=datasets.Features(
              {
                  'predictions': {'id': datasets.Value('string'			), 'prediction_text': datasets.Value('string'			)},
                  'references': {
                      'id': datasets.Value('string'			),
                      'answers': datasets.features.Sequence(
                          {
                              'text': datasets.Value('string'			),
                              'answer_start': datasets.Value('int32'			),
                          }			),
                  },
              }			)		,    codebase_urls=['https://rajpurkar.github.io/SQuAD-explorer/']		,    reference_urls=['https://rajpurkar.github.io/SQuAD-explorer/']		,    )







    def     lowercase_ (   self				:						Union[str, Any]		,    __snake_case				:						int		,    __snake_case				:						str			):
      a		:      Dict       =  {prediction['id']: prediction['prediction_text'] for prediction in predictions}
      a		:      Optional[int]       =  [
          {
              'paragraphs': [
                  {
                      'qas': [
                          {
                              'answers': [{'text': answer_text} for answer_text in ref['answers']['text']],
                              'id': ref['id'],
                          }
                          for ref in references
                      ]
                  }
              ]
          }
      ]
      a		:      Union[str, Any]       =  evaluate(dataset=__lowercase		,    predictions=__lowercase			)
      return score




'''simple docstring'''






import platform
from argparse import ArgumentParser

import huggingface_hub

from .. import __version__ as version
from ..utils import is_accelerate_available, is_torch_available, is_transformers_available, is_xformers_available
from . import BaseDiffusersCLICommand
def    lowerCamelCase__ (		_A       ):
  return EnvironmentCommand()

class 							a__(      lowerCamelCase__			):







    @staticmethod
    def     lowercase_ (   __snake_case				:						ArgumentParser			):
      a		:      Tuple       =  parser.add_parser('env'			)
      download_parser.set_defaults(func=__snake_case			)







    def     lowercase_ (   self				:						List[str]			):
      a		:      str       =  huggingface_hub.__version__

      a		:      List[str]       =  'not installed'
      a		:      List[str]       =  'NA'
      if is_torch_available():
        import torch

        a		:      Optional[Any]       =  torch.__version__
        a		:      int       =  torch.cuda.is_available()

      a		:      Optional[int]       =  'not installed'
      if is_transformers_available():
        import transformers

        a		:      Tuple       =  transformers.__version__

      a		:      Dict       =  'not installed'
      if is_accelerate_available():
        import accelerate

        a		:      int       =  accelerate.__version__

      a		:      Any       =  'not installed'
      if is_xformers_available():
        import xformers

        a		:      Optional[int]       =  xformers.__version__

      a		:      List[str]       =  {
          '`diffusers` version': version,
          'Platform': platform.platform(),
          'Python version': platform.python_version(),
          'PyTorch version (GPU?)': F"""{pt_version} ({pt_cuda_available})""",
          'Huggingface_hub version': hub_version,
          'Transformers version': transformers_version,
          'Accelerate version': accelerate_version,
          'xFormers version': xformers_version,
          'Using GPU in script?': '<fill in>',
          'Using distributed or parallel set-up in script?': '<fill in>',
      }

      print('\nCopy-and-paste the text below in your GitHub issue and FILL OUT the two last points.\n'			)
      print(self.format_dict(__snake_case			)			)

      return info







    @staticmethod
    def     lowercase_ (   __snake_case				:						Union[str, Any]			):
      return "\n".join([F"""- {prop}: {val}""" for prop, val in d.items()]			) + "\n"