def parse_format_method_string(
    format_string: str
) -> Tuple[List[Tuple[str, List[Tuple[bool, str]]]], int, int]:
    """
    Parses a PEP 3101 format string, returning a tuple of
    (keyword_arguments, implicit_pos_args_cnt, explicit_pos_args),
    where keyword_arguments is the set of mapping keys in the format string, implicit_pos_args_cnt
    is the number of arguments required by the format string and
    explicit_pos_args is the number of arguments passed with the position.
    """
    keyword_arguments = []
    implicit_pos_args_cnt = 0
    explicit_pos_args = set()
    for name in collect_string_fields(format_string):
        if name and str(name).isdigit():
            explicit_pos_args.add(str(name))
        elif name:
            keyname, fielditerator = split_format_field_names(name)
            if isinstance(keyname, numbers.Number):
                # In Python 2 it will return long which will lead
                # to different output between 2 and 3
                explicit_pos_args.add(str(keyname))
                keyname = int(keyname)
            try:
                keyword_arguments.append((keyname, list(fielditerator)))
            except ValueError:
                raise IncompleteFormatString()
        else:
            implicit_pos_args_cnt += 1
    return keyword_arguments, implicit_pos_args_cnt, len(explicit_pos_args)
def parse_format_method_string(
    format_string: str
) -> Tuple[List[Tuple[str, List[Tuple[bool, str]]]], int, int]:
    """
    Parses a PEP 3101 format string, returning a tuple of
    (keyword_arguments, implicit_pos_args_cnt, explicit_pos_args),
    where keyword_arguments is the set of mapping keys in the format string, implicit_pos_args_cnt
    is the number of arguments required by the format string and
    explicit_pos_args is the number of arguments passed with the position.
    """
    keyword_arguments = []
    implicit_pos_args_cnt = 0
    explicit_pos_args = set()
    for name in collect_string_fields(format_string):
        if name and str(name).isdigit():
            explicit_pos_args.add(str(name))
        elif name:
            keyname, fielditerator = split_format_field_names(name)
            if isinstance(keyname, numbers.Number):
                # In Python 2 it will return long which will lead
                # to different output between 2 and 3
                explicit_pos_args.add(str(keyname))
                keyname = int(keyname)
            try:
                keyword_arguments.append((keyname, list(fielditerator)))
            except ValueError:
                raise IncompleteFormatString()
        else:
            implicit_pos_args_cnt += 1
    return keyword_arguments, implicit_pos_args_cnt, len(explicit_pos_args)
def parse_format_method_string ( format_string : str ) -> Tuple [ List [ Tuple [ str , List [ Tuple [ bool , str ] ] ] ] , int , int ] : keyword_arguments = [ ] implicit_pos_args_cnt = 0 explicit_pos_args = set ( ) for name in collect_string_fields ( format_string ) : if name and str ( name ) . isdigit ( ) : explicit_pos_args . add ( str ( name ) ) elif name : keyname , fielditerator = split_format_field_names ( name ) if isinstance ( keyname , numbers . Number ) : # In Python 2 it will return long which will lead # to different output between 2 and 3 explicit_pos_args . add ( str ( keyname ) ) keyname = int ( keyname ) try : keyword_arguments . append ( ( keyname , list ( fielditerator ) ) ) except ValueError : raise IncompleteFormatString ( ) else : implicit_pos_args_cnt += 1 return keyword_arguments , implicit_pos_args_cnt , len ( explicit_pos_args )
Parses a PEP 3101 format string, returning a tuple of
    (keyword_arguments, implicit_pos_args_cnt, explicit_pos_args),
    where keyword_arguments is the set of mapping keys in the format string, implicit_pos_args_cnt
    is the number of arguments required by the format string and
    explicit_pos_args is the number of arguments passed with the position.
Parses a PEP 3101 format string returning a tuple of ( keyword_arguments implicit_pos_args_cnt explicit_pos_args ) where keyword_arguments is the set of mapping keys in the format string implicit_pos_args_cnt is the number of arguments required by the format string and explicit_pos_args is the number of arguments passed with the position .