<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def push(self, stream_id, timestamp, value):
 """Push a value to a stream. Args: stream_id (int):
 The stream we want to push to. timestamp (int):
 The raw timestamp of the value we want to store. value (int):
 The 32-bit integer value we want to push. Returns: int: Packed 32-bit error code. """


        stream = DataStream.FromEncoded(stream_id)
        reading = IOTileReading(stream_id, timestamp, value)

        try:
            self.storage.push(stream, reading)

            return Error.NO_ERROR
        except StorageFullError:
            return pack_error(ControllerSubsystem.SENSOR_LOG, SensorLogError.RING_BUFFER_FULL)