docs: public static PyExpr maybeProtect(PyExpr expr, int minSafePrecedence) {
      // all python operators are left associative, so if this has equivalent precedence we don't need
      // to wrap
      if (expr.getPrecedence() >= minSafePrecedence) {
        return expr;
      } else {
        return new PyExpr("(" + expr.getText() + ")", Integer.MAX_VALUE);
      }
    }