Parses the given data string and returns
        a list of rule objects.

def _parse(data: str) -> list:
        """
        Parses the given data string and returns
        a list of rule objects.
        """
        if isinstance(data, bytes):
            data = data.decode('utf-8')
        lines = (
            item for item in
            (item.strip() for item in data.split('\n'))
            if len(item) and not item.startswith('#')
        )
        rules = []
        for line in lines:
            rules.append(
                Rule.parse(line)
            )
        return rules