nodes: 0, module; 1, function_definition; 2, function_name:get_profile_names_and_default; 3, parameters; 4, type; 5, block; 6, parenthesized_expression; 7, expression_statement; 8, with_statement; 9, subscript; 10, comment:"""Return the list of profile names and the default profile object.
  
      The list of names is sorted.
      """; 11, with_clause; 12, block; 13, attribute; 14, subscript; 15, subscript; 16, with_item; 17, return_statement; 18, identifier:typing; 19, identifier:Tuple; 20, attribute; 21, identifier:str; 22, attribute; 23, identifier:Profile; 24, as_pattern; 25, expression_list; 26, identifier:typing; 27, identifier:Sequence; 28, identifier:typing; 29, identifier:Optional; 30, call; 31, as_pattern_target; 32, call; 33, attribute; 34, attribute; 35, argument_list; 36, identifier:config; 37, identifier:sorted; 38, argument_list; 39, identifier:config; 40, identifier:default; 41, identifier:ProfileStore; 42, identifier:open; 43, identifier:config
code: def get_profile_names_and_default() -> (
          typing.Tuple[typing.Sequence[str], typing.Optional[Profile]]):
      """Return the list of profile names and the default profile object.
  
      The list of names is sorted.
      """
      with ProfileStore.open() as config:
          return sorted(config), config.default