
'''simple docstring'''
from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_speech_available,
    is_torch_available,
)


A__ :		Union[str, Any]					={
    'configuration_speech_to_text_2': ['SPEECH_TO_TEXT_2_PRETRAINED_CONFIG_ARCHIVE_MAP', 'Speech2Text2Config'],
    'processing_speech_to_text_2': ['Speech2Text2Processor'],
    'tokenization_speech_to_text_2': ['Speech2Text2Tokenizer'],
}


try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     A__ :		Dict					=[
         'SPEECH_TO_TEXT_2_PRETRAINED_MODEL_ARCHIVE_LIST',
         'Speech2Text2ForCausalLM',
         'Speech2Text2PreTrainedModel',
     ]


if TYPE_CHECKING:
     from .configuration_speech_to_text_a import SPEECH_TO_TEXT_2_PRETRAINED_CONFIG_ARCHIVE_MAP, SpeechaTextaConfig
     from .processing_speech_to_text_a import SpeechaTextaProcessor
     from .tokenization_speech_to_text_a import SpeechaTextaTokenizer

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_speech_to_text_a import (
              SPEECH_TO_TEXT_2_PRETRAINED_MODEL_ARCHIVE_LIST,
              SpeechaTextaForCausalLM,
              SpeechaTextaPreTrainedModel,
          )

else:
     import sys

     A__ :		Optional[Any]					=_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)





'''simple docstring'''
import heapq







def 							A_  (    __SCREAMING_SNAKE_CASE    :	List[str]      ,  __SCREAMING_SNAKE_CASE    :	List[Any]      ,  __SCREAMING_SNAKE_CASE    :	str			)					->							Any:





  """simple docstring"""

  __A		:  Dict       				=		[(0, start)]  # cost from start node,end node
  __A		:  Union[str, Any]       				=		set()
  while heap:
    ((__A)				,       (__A))		:  int       				=		heapq.heappop(__SCREAMING_SNAKE_CASE			)
    if u in visited:
      continue
    visited.add(__SCREAMING_SNAKE_CASE			)
    if u == end:
      return cost
    for v, c in graph[u]:
      if v in visited:
        continue
      __A		:  List[str]       				=		cost + c
      heapq.heappush(__SCREAMING_SNAKE_CASE      ,  (next_item, v)			)
  return -1


A__ :		Any					={
    'A': [['B', 2], ['C', 5]],
    'B': [['A', 2], ['D', 3], ['E', 1], ['F', 1]],
    'C': [['A', 5], ['F', 3]],
    'D': [['B', 3]],
    'E': [['B', 4], ['F', 3]],
    'F': [['C', 3], ['E', 3]],
}
A__ :		List[str]					={
    'B': [['C', 1]],
    'C': [['D', 1]],
    'D': [['F', 1]],
    'E': [['B', 1], ['F', 3]],
    'F': [],
}
A__ :		List[Any]					={
    'B': [['C', 1]],
    'C': [['D', 1]],
    'D': [['F', 1]],
    'E': [['B', 1], ['G', 2]],
    'F': [],
    'G': [['F', 1]],
}

A__ :		List[str]					=dijkstra(G, 'E', 'C')
print(short_distance)  # E -- 3 --> F -- 3 --> C == 6

A__ :		Optional[Any]					=dijkstra(Ga, 'E', 'F')
print(short_distance)  # E -- 3 --> F == 3

A__ :		Any					=dijkstra(Ga, 'E', 'F')
print(short_distance)  # E -- 2 --> G -- 1 --> F == 3

if __name__ == "__main__":
     import doctest

     doctest.testmod()



