async def self_check(self):
platforms = set()<EOL>for platform in get_platform_settings():<EOL><INDENT>try:<EOL><INDENT>name = platform['<STR_LIT:class>']<EOL>cls: Type[Platform] = import_class(name)<EOL><DEDENT>except KeyError:<EOL><INDENT>yield HealthCheckFail(<EOL>'<STR_LIT>',<EOL>'<STR_LIT>'<EOL>)<EOL><DEDENT>except (AttributeError, ImportError, ValueError):<EOL><INDENT>yield HealthCheckFail(<EOL>'<STR_LIT>',<EOL>f'<STR_LIT>'<EOL>)<EOL><DEDENT>else:<EOL><INDENT>if cls in platforms:<EOL><INDENT>yield HealthCheckFail(<EOL>'<STR_LIT>',<EOL>f'<STR_LIT>'<EOL>)<EOL><DEDENT>platforms.add(cls)<EOL>async for check in cls.self_check():<EOL><INDENT>yield check<EOL><DEDENT><DEDENT><DEDENT>
Checks that the platforms configuration is all right.