code: def cancelOrder(self, order: Order) -> Trade:
          
          self.client.cancelOrder(order.orderId)
          now = datetime.datetime.now(datetime.timezone.utc)
          key = self.wrapper.orderKey(
              order.clientId, order.orderId, order.permId)
          trade = self.wrapper.trades.get(key)
          if trade:
              if not trade.isDone():
                  status = trade.orderStatus.status
                  if (status == OrderStatus.PendingSubmit and not order.transmit
                          or status == OrderStatus.Inactive):
                      newStatus = OrderStatus.Cancelled
                  else:
                      newStatus = OrderStatus.PendingCancel
                  logEntry = TradeLogEntry(now, newStatus, '')
                  trade.log.append(logEntry)
                  trade.orderStatus.status = newStatus
                  self._logger.info(f'cancelOrder: {trade}')
                  trade.cancelEvent.emit(trade)
                  trade.statusEvent.emit(trade)
                  self.cancelOrderEvent.emit(trade)
                  self.orderStatusEvent.emit(trade)
                  if newStatus == OrderStatus.Cancelled:
                      trade.cancelledEvent.emit(trade)
          else:
              self._logger.error(f'cancelOrder: Unknown orderId {order.orderId}')
          return trade
docs: Cancel the order and return the Trade it belongs to.
  
          Args:
              order: The order to be canceled.