


from typing import TYPE_CHECKING

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


UpperCAmelCase_  							=				{
    'configuration_distilbert': [
        'DISTILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'DistilBertConfig',
        'DistilBertOnnxConfig',
    ],
    'tokenization_distilbert': ['DistilBertTokenizer'],
}

try:
  if not is_tokenizers_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_  							=				['DistilBertTokenizerFast']

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_  							=				[
      'DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
      'DistilBertForMaskedLM',
      'DistilBertForMultipleChoice',
      'DistilBertForQuestionAnswering',
      'DistilBertForSequenceClassification',
      'DistilBertForTokenClassification',
      'DistilBertModel',
      'DistilBertPreTrainedModel',
  ]

try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_  							=				[
      'TF_DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
      'TFDistilBertForMaskedLM',
      'TFDistilBertForMultipleChoice',
      'TFDistilBertForQuestionAnswering',
      'TFDistilBertForSequenceClassification',
      'TFDistilBertForTokenClassification',
      'TFDistilBertMainLayer',
      'TFDistilBertModel',
      'TFDistilBertPreTrainedModel',
  ]

try:
  if not is_flax_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_  							=				[
      'FlaxDistilBertForMaskedLM',
      'FlaxDistilBertForMultipleChoice',
      'FlaxDistilBertForQuestionAnswering',
      'FlaxDistilBertForSequenceClassification',
      'FlaxDistilBertForTokenClassification',
      'FlaxDistilBertModel',
      'FlaxDistilBertPreTrainedModel',
  ]


if TYPE_CHECKING:
  from .configuration_distilbert import (
      DISTILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP,
      DistilBertConfig,
      DistilBertOnnxConfig,
  )
  from .tokenization_distilbert import DistilBertTokenizer

  try:
    if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_distilbert_fast import DistilBertTokenizerFast

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_distilbert import (
        DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
        DistilBertForMaskedLM,
        DistilBertForMultipleChoice,
        DistilBertForQuestionAnswering,
        DistilBertForSequenceClassification,
        DistilBertForTokenClassification,
        DistilBertModel,
        DistilBertPreTrainedModel,
    )

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_distilbert import (
        TF_DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFDistilBertForMaskedLM,
        TFDistilBertForMultipleChoice,
        TFDistilBertForQuestionAnswering,
        TFDistilBertForSequenceClassification,
        TFDistilBertForTokenClassification,
        TFDistilBertMainLayer,
        TFDistilBertModel,
        TFDistilBertPreTrainedModel,
    )

  try:
    if not is_flax_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_flax_distilbert import (
        FlaxDistilBertForMaskedLM,
        FlaxDistilBertForMultipleChoice,
        FlaxDistilBertForQuestionAnswering,
        FlaxDistilBertForSequenceClassification,
        FlaxDistilBertForTokenClassification,
        FlaxDistilBertModel,
        FlaxDistilBertPreTrainedModel,
    )

else:
  import sys

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








def 	lowerCAmelCase_					(						__UpperCAmelCase:    dict   )   ->			set:
    UpperCamelCase__							:       int      =   set()
    # edges = list of graph's edges
    UpperCamelCase__							:       str      =   get_edges(__UpperCAmelCase   )

    # While there are still elements in edges list, take an arbitrary edge
    # (from_node, to_node) and add his extremity to chosen_vertices and then
    # remove all arcs adjacent to the from_node and to_node
    while edges:
        UpperCamelCase__     ,UpperCamelCase__							:       List[Any]      =   edges.pop()
        chosen_vertices.add(__UpperCAmelCase   )
        chosen_vertices.add(__UpperCAmelCase   )
        for edge in edges.copy():
            if from_node in edge or to_node in edge:
                edges.discard(__UpperCAmelCase   )
    return chosen_vertices




def 	lowerCAmelCase_					(						__UpperCAmelCase:    dict   )   ->			set:
    UpperCamelCase__							:       Optional[int]      =   set()
    for from_node, to_nodes in graph.items():
        for to_node in to_nodes:
            edges.add((from_node, to_node)   )
    return edges


if __name__ == "__main__":
  import doctest

  doctest.testmod()

  # graph = {0: [1, 3], 1: [0, 3], 2: [0, 3, 4], 3: [0, 1, 2], 4: [2, 3]}
  # print(f"Matching vertex cover:\n{matching_min_vertex_cover(graph)}")

