def setEffort(self, vehID, edgeID, effort=None, begTime=None, endTime=None):
        """setEffort(string, string, double, int, int) -> None
        Inserts the information about the effort of edge "edgeID" valid from
        begin time to end time into the vehicle's internal edge weights
        container.
        If the time is not specified, any previously set values for that edge
        are removed.
        If begTime or endTime are not specified the value is set for the whole
        simulation duration.
        """
        if type(edgeID) != str and type(begTime) == str: 
            # legacy handling
            warnings.warn("Parameter order has changed for setEffort(). Attempting legacy ordering. Please update your code.", stacklevel=2)
            return self.setEffort(vehID, begTime, endTime, edgeID, effort)
        if effort is None:
            # reset
            self._connection._beginMessage(tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_EDGE_EFFORT,
                                           vehID, 1 + 4 + 1 + 4 + len(edgeID))
            self._connection._string += struct.pack("!Bi", tc.TYPE_COMPOUND, 1)
            self._connection._packString(edgeID)
            self._connection._sendExact()
        elif begTime is None:
            # set value for the whole simulation
            self._connection._beginMessage(tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_EDGE_EFFORT,
                                           vehID, 1 + 4 + 1 + 4 + len(edgeID) + 1 + 8)
            self._connection._string += struct.pack("!Bi", tc.TYPE_COMPOUND, 2)
            self._connection._packString(edgeID)
            self._connection._string += struct.pack("!Bd", tc.TYPE_DOUBLE, effort)
            self._connection._sendExact()
        else:
            self._connection._beginMessage(tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_EDGE_EFFORT,
                                           vehID, 1 + 4 + 1 + 4 + 1 + 4 + 1 + 4 + len(edgeID) + 1 + 8)
            self._connection._string += struct.pack("!BiBiBi", tc.TYPE_COMPOUND, 4, tc.TYPE_INTEGER, begTime,
                                                    tc.TYPE_INTEGER, endTime)
            self._connection._packString(edgeID)
            self._connection._string += struct.pack("!Bd", tc.TYPE_DOUBLE, effort)
            self._connection._sendExact()
setEffort(string, string, double, int, int) -> None
        Inserts the information about the effort of edge "edgeID" valid from
        begin time to end time into the vehicle's internal edge weights
        container.
        If the time is not specified, any previously set values for that edge
        are removed.
        If begTime or endTime are not specified the value is set for the whole
        simulation duration.