def __init__( self, workdir: Path, pyright_config_file: io.TextIOWrapper, *, file_specific_ignores: FileSpecificIgnores | None = None, aliases: dict[str, str] | None = None, input_file: io.TextIOWrapper | None = None, error_file: io.TextIOWrapper | None = None, verbose: bool = False, ) -> None: # validate arguments if not pyright_config_file.readable(): raise RuntimeError("pyright config file is not readable") if input_file is not None and not input_file.readable(): raise RuntimeError("input file is not readable") if error_file is not None and not error_file.writable(): raise RuntimeError("error file is not writable") # save config self.workdir = workdir.resolve() self.pyright_config_data = self.load_config(pyright_config_file) self.file_specific_ignores = file_specific_ignores or {} self.aliases = aliases or {} self.input_file = input_file self.error_file = error_file self.verbose = verbose self.count_of_ignored_errors = 0 self.check_input_correctness()