docs: def calculate(self, where, calcExpression, sqlFormat="standard"):
          """
          The calculate operation is performed on a feature service layer
          resource. It updates the values of one or more fields in an
          existing feature service layer based on SQL expressions or scalar
          values. The calculate operation can only be used if the
          supportsCalculate property of the layer is true.
          Neither the Shape field nor system fields can be updated using
          calculate. System fields include ObjectId and GlobalId.
          See Calculate a field for more information on supported expressions
  
          Inputs:
             where - A where clause can be used to limit the updated records.
                     Any legal SQL where clause operating on the fields in
                     the layer is allowed.
             calcExpression - The array of field/value info objects that
                              contain the field or fields to update and their
                              scalar values or SQL expression.  Allowed types
                              are dictionary and list.  List must be a list
                              of dictionary objects.
                              Calculation Format is as follows:
                                 {"field" : "<field name>",
                                 "value" : "<value>"}
             sqlFormat - The SQL format for the calcExpression. It can be
                         either standard SQL92 (standard) or native SQL
                         (native). The default is standard.
                         Values: standard, native
          Output:
             JSON as string
          Usage:
          >>>sh = arcrest.AGOLTokenSecurityHandler("user", "pw")
          >>>fl = arcrest.agol.FeatureLayer(url="someurl",
                                       securityHandler=sh, initialize=True)
          >>>print fl.calculate(where="OBJECTID < 2",
                                calcExpression={"field": "ZONE",
                                                "value" : "R1"})
          {'updatedFeatureCount': 1, 'success': True}
          """
          url = self._url + "/calculate"
          params = {
              "f" : "json",
              "where" : where,
  
          }
          if isinstance(calcExpression, dict):
              params["calcExpression"] = json.dumps([calcExpression],
                                                    default=_date_handler)
          elif isinstance(calcExpression, list):
              params["calcExpression"] = json.dumps(calcExpression,
                                                    default=_date_handler)
          if sqlFormat.lower() in ['native', 'standard']:
              params['sqlFormat'] = sqlFormat.lower()
          else:
              params['sqlFormat'] = "standard"
          return self._post(url=url,
                               param_dict=params,
                               securityHandler=self._securityHandler,
                               proxy_port=self._proxy_port,
                               proxy_url=self._proxy_url)