@classmethod
    def from_string(cls, s):
        """Parse the string given by 's' into a structure object."""
        if len(s) < 1 or s[0] != cls.SIGIL:
            raise SynapseError(400, "Expected %s string to start with '%s'" % (
                cls.__name__, cls.SIGIL,
            ))

        parts = s[1:].split(':', 1)
        if len(parts) != 2:
            raise SynapseError(
                400, "Expected %s of the form '%slocalname:domain'" % (
                    cls.__name__, cls.SIGIL,
                )
            )

        domain = parts[1]

        # This code will need changing if we want to support multiple domain
        # names on one HS
        return cls(localpart=parts[0], domain=domain)
dataset/ETHPy150Open matrix-org/synapse/synapse/types.py/DomainSpecificString.from_string/original