(self)
This function de-serializes the specification and:
        1. fills in default values
        2. populates any selected templates
        3. accumulates all error/warning messages
        If the `errors` attribute is empty after this is called, the `data` attribute
        will be the fully resolved spec object.
This function de-serializes the specification and:
        1. fills in default values
        2. populates any selected templates
        3. accumulates all error/warning messages
        If the `errors` attribute is empty after this is called, the `data` attribute
        will be the fully resolved spec object.
This function de - serializes the specification and : 1 . fills in default values 2 . populates any selected templates 3 . accumulates all error / warning messages If the errors attribute is empty after this is called the data attribute will be the fully resolved spec object .
def load(self) -> None:
        """
        This function de-serializes the specification and:
        1. fills in default values
        2. populates any selected templates
        3. accumulates all error/warning messages
        If the `errors` attribute is empty after this is called, the `data` attribute
        will be the fully resolved spec object.
        """
        if self.data is not None and not self.errors:
            return

        try:
            self.data = yaml.safe_load(self.contents)
        except Exception as e:
            self.errors.append(f'{self.source}: Unable to parse the configuration specification: {e}')
            return

        spec_validator(self.data, self)
def load ( self ) -> None : if self . data is not None and not self . errors : return try : self . data = yaml . safe_load ( self . contents ) except Exception as e : self . errors . append ( f'{self.source}: Unable to parse the configuration specification: {e}' ) return spec_validator ( self . data , self )