coalib.bearlib.aspects.docs — coala 0.11.0.rc1 documentation

# Source code for coalib.bearlib.aspects.docs

    from inspect import cleandoc

    from coala_utils.decorators import (
        enforce_signature, generate_consistency_check)

    @generate_consistency_check('definition', 'example', 'example_language',
                                'importance_reason', 'fix_suggestions')
    class Documentation:
        """
        This class contains documentation about an aspectclass.
        The documentation is consistent if all members are given:

        >>> Documentation('defined').check_consistency()
        False
        >>> Documentation('definition', 'example',
        ...               'example_language', 'importance',
        ...               'fix').check_consistency()
        True
        """

        @enforce_signature
        def __init__(self, definition: str='', example: str='',
                     example_language: str='', importance_reason: str='',
                     fix_suggestions: str=''):
            """
            Contains documentation for an aspectclass.

            :param definition:        What is this about?
            :param example:           An example in a well known language.
            :param example_language:  The language used for the example.
            :param importance_reason: A reason why this aspect is important.
            :param fix_suggestions:   Suggestions on how this can be fixed.
            """
            self.definition = cleandoc(definition)
            self.example = cleandoc(example)
            self.example_language = cleandoc(example_language)
            self.importance_reason = cleandoc(importance_reason)
            self.fix_suggestions = cleandoc(fix_suggestions)