in lib/generator.js [864:888]
visitRuntimeBefore(ast, level) {
assert.equal(ast.type, 'object');
this.emit('_runtime = {\n', level + 2);
if(ast.fields.length !== 0){
ast.fields.forEach((field) => {
this.emit(`'${field.fieldName.lexeme}': `, level + 4);
this.visitExpr(field.expr);
this.emit(',\n');
});
}
this.emit('}\n', level +2);
this.emit('_last_request = None\n', level+2);
this.emit('_last_response = None\n', level+2);
this.emit('_retries_attempted = 0\n', level + 2);
this.emit(`_context = RetryPolicyContext(
retries_attempted= _retries_attempted
)\n`, level + 2);
this.emit(`while ${CORE}Core.should_retry(_runtime.get('retryOptions'), _context):\n`, level + 2);
this.emit('if _retries_attempted > 0:\n', level + 4);
this.emit(`_backoff_time = ${CORE}Core.get_backoff_time(_runtime.get('retryOptions'), _context)\n`, level + 6);
this.emit('if _backoff_time > 0:\n', level + 6);
this.emit(`${CORE}Core.sleep(_backoff_time)\n`, level + 8);
this.emit('_retries_attempted = _retries_attempted + 1\n', level + 4);
this.emit('try:\n', level + 4);
}