def __init__(self, base_parser: AnyParser, converter: Converter[S, T], strict: bool,<EOL>base_parser_chosen_dest_type: Type[S] = None):
check_var(base_parser, var_types=AnyParser, var_name='<STR_LIT>')<EOL>self._base_parser = base_parser<EOL>if base_parser_chosen_dest_type is None:<EOL><INDENT>if len(base_parser.supported_types) != <NUM_LIT:1>:<EOL><INDENT>raise ValueError('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>parser_out_type = next(iter(base_parser.supported_types))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>check_var(base_parser_chosen_dest_type, var_types=type, var_name='<STR_LIT>')<EOL>parser_out_type = base_parser_chosen_dest_type<EOL><DEDENT>check_var(converter, var_types=Converter, var_name='<STR_LIT>')<EOL>if not converter.is_able_to_convert(strict=strict, from_type=parser_out_type, to_type=converter.to_type):<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>self._converter = converter<EOL>super(ParsingChain, self).__init__(supported_types={converter.to_type},<EOL>supported_exts=base_parser.supported_exts)<EOL>check_var(strict, var_types=bool, var_name='<STR_LIT:strict>')<EOL>self.strict = strict<EOL>
Constructor from a base parser and a conversion chain.
Even if the base parser is able to parse several types or even any type, at the moment converters only support
*one* source type that cannot be 'any'. for this reason in this constructor the caller is expected to restrict
the parser to a unique destination type explicitly

:param base_parser:
:param converter:
:param strict:
:param base_parser_chosen_dest_type