"""simple docstring"""


from ...configuration_utils import PretrainedConfig
from ...utils import logging


__UpperCamelCase									=			logging.get_logger(__name__)

__UpperCamelCase									=			{
    '''bigcode/gpt_bigcode-santacoder''': '''https://huggingface.co/bigcode/gpt_bigcode-santacoder/resolve/main/config.json''',
}




class  UpperCamelCase					(				lowerCAmelCase__   ):
       SCREAMING_SNAKE_CASE_			=      "gpt_bigcode"
       SCREAMING_SNAKE_CASE_			=      ["past_key_values"]
       SCREAMING_SNAKE_CASE_			=      {
           "hidden_size": "n_embd",
           "max_position_embeddings": "n_positions",
           "num_attention_heads": "n_head",
           "num_hidden_layers": "n_layer",
       }







       def __init__( self,							lowerCAmelCase__=5_0257,							lowerCAmelCase__=1024,							lowerCAmelCase__=768,							lowerCAmelCase__=12,							lowerCAmelCase__=12,							lowerCAmelCase__=None,							lowerCAmelCase__="gelu_pytorch_tanh",							lowerCAmelCase__=0.1,							lowerCAmelCase__=0.1,							lowerCAmelCase__=0.1,							lowerCAmelCase__=1e-5,							lowerCAmelCase__=0.02,							lowerCAmelCase__=True,							lowerCAmelCase__=True,							lowerCAmelCase__=5_0256,							lowerCAmelCase__=5_0256,							lowerCAmelCase__=True,							lowerCAmelCase__=True,							lowerCAmelCase__=True,							**lowerCAmelCase__,							)      ->      Any:
            snake_case_					       =					vocab_size
            snake_case_					       =					n_positions
            snake_case_					       =					n_embd
            snake_case_					       =					n_layer
            snake_case_					       =					n_head
            snake_case_					       =					n_inner
            snake_case_					       =					activation_function
            snake_case_					       =					resid_pdrop
            snake_case_					       =					embd_pdrop
            snake_case_					       =					attn_pdrop
            snake_case_					       =					layer_norm_epsilon
            snake_case_					       =					initializer_range
            snake_case_					       =					scale_attn_weights
            snake_case_					       =					use_cache
            snake_case_					       =					attention_softmax_in_fpaa
            snake_case_					       =					scale_attention_softmax_in_fpaa
            snake_case_					       =					multi_query

            snake_case_					       =					bos_token_id
            snake_case_					       =					eos_token_id

            super().__init__(bos_token_id=lowerCAmelCase__,							eos_token_id=lowerCAmelCase__,							**lowerCAmelCase__)








def        SCREAMING_SNAKE_CASE      (       _UpperCAmelCase )			->     set:
    lowerCamelCase__    :      Optional[Any]					 =		set()
    # edges = list of graph's edges
    lowerCamelCase__    :      List[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:
        lowerCamelCase__ ,							lowerCamelCase__    :      str					 =		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        SCREAMING_SNAKE_CASE      (       _UpperCAmelCase )			->     set:
    lowerCamelCase__    :      Union[str, Any]					 =		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)}")





