<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_meta_references(self, datas):
 """ Get manifest enabled references declaration This required declaration is readed from ``styleguide-metas-references`` rule that require either a ``--names`` or ``--auto`` variable, each one define the mode to enable reference: Manually Using ``--names`` which define a list of names to enable, every other non enabled rule will be ignored. Section name (and so Reference name also) must not contains special character nor ``-`` so they still be valid variable name for almost any languages. For word separator inside name, use ``_``. Automatic Using ``--auto`` variable every reference rules will be enabled. The value of this variable is not important since it is not empty. If both of these variables are defined, the manual enable mode is used. Arguments: datas (dict):
 Data where to search for meta references declaration. This is commonly the fully parsed manifest. Returns: list: A list of reference names. """

        rule = datas.get(RULE_META_REFERENCES, {})

        if not rule:
            msg = "Manifest lacks of '.{}' or is empty"
            raise SerializerError(msg.format(RULE_META_REFERENCES))
        else:
            if rule.get('names', None):
                names = rule.get('names').split(" ")
            elif rule.get('auto', None):
                names = self.get_available_references(datas)
            else:
                msg = ("'.{}' either require '--names' or '--auto' variable "
                       "to be defined")
                raise SerializerError(msg.format(RULE_META_REFERENCES))

        for item in names:
            self.validate_rule_name(item)

        return names