@utils.immutable
    def set(self, key=None, value=None, **kwargs):

        serialize = partial(self.api.columns.serialize, greedy=False)

        if key and value:
            self.raw[key] = serialize(value)
        elif key or kwargs:
            properties = key or kwargs
            for key, value in properties.items():
                self.raw[key] = serialize(value)
        else:
            raise ValueError(
                "Query#set requires a key and value, a properties dictionary or keyword arguments.")

        return self
We can construct a L{WrittenAction} with child messages. These messages
dataset/ETHPy150Open debrouwere/google-analytics/googleanalytics/query.py/Query.set--crossover with--dataset/ETHPy150Open ClusterHQ/eliot/eliot/tests/test_action.py/WrittenActionTests.test_children