Retry
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy
Python wrapper for RetryPolicy
builder() -> PyRetryPolicyBuilder
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy::builder
Create a builder for constructing RetryPolicy
Source
pub fn builder() -> PyRetryPolicyBuilder {
PyRetryPolicyBuilder {
max_attempts: None,
backoff_strategy: None,
initial_delay: None,
max_delay: None,
retry_condition: None,
with_jitter: None,
}
}
default() -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy::default
Create a default RetryPolicy
Source
pub fn default() -> Self {
Self {
inner: crate::retry::RetryPolicy::default(),
}
}
should_retry(attempt: int, _error_type: str) -> bool
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy::should_retry
Check if a retry should be attempted
Parameters:
| Name | Type | Description |
|---|---|---|
attempt |
int |
|
_error_type |
str |
Source
pub fn should_retry(&self, attempt: i32, _error_type: &str) -> bool {
// For now, use a simple retry condition check
// In the future, this could be enhanced to parse error_type
attempt < self.inner.max_attempts
}
calculate_delay(attempt: int) -> float
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy::calculate_delay
Calculate delay for a given attempt
Parameters:
| Name | Type | Description |
|---|---|---|
attempt |
int |
Source
pub fn calculate_delay(&self, attempt: i32) -> f64 {
let duration = self.inner.calculate_delay(attempt);
duration.as_secs_f64()
}
max_attempts() -> int
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy::max_attempts
Get maximum number of attempts
Source
pub fn max_attempts(&self) -> i32 {
self.inner.max_attempts
}
initial_delay() -> float
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy::initial_delay
Get initial delay in seconds
Source
pub fn initial_delay(&self) -> f64 {
self.inner.initial_delay.as_secs_f64()
}
max_delay() -> float
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy::max_delay
Get maximum delay in seconds
Source
pub fn max_delay(&self) -> f64 {
self.inner.max_delay.as_secs_f64()
}
with_jitter() -> bool
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy::with_jitter
Check if jitter is enabled
Source
pub fn with_jitter(&self) -> bool {
self.inner.jitter
}
__repr__() -> str
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy::repr
String representation
Source
pub fn __repr__(&self) -> String {
format!(
"RetryPolicy(max_attempts={}, initial_delay={}s, max_delay={}s, jitter={})",
self.max_attempts(),
self.initial_delay(),
self.max_delay(),
self.with_jitter()
)
}
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyBackoffStrategy
Python wrapper for BackoffStrategy
fixed() -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyBackoffStrategy::fixed
Fixed delay strategy
Source
pub fn fixed() -> Self {
Self {
inner: crate::retry::BackoffStrategy::Fixed,
}
}
linear(multiplier: float) -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyBackoffStrategy::linear
Linear backoff strategy
Parameters:
| Name | Type | Description |
|---|---|---|
multiplier |
float |
Source
pub fn linear(multiplier: f64) -> Self {
Self {
inner: crate::retry::BackoffStrategy::Linear { multiplier },
}
}
exponential(base: float, multiplier: Optional[float]) -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyBackoffStrategy::exponential
Exponential backoff strategy
Parameters:
| Name | Type | Description |
|---|---|---|
base |
float |
|
multiplier |
Optional[float] |
Source
pub fn exponential(base: f64, multiplier: Option<f64>) -> Self {
Self {
inner: crate::retry::BackoffStrategy::Exponential {
base,
multiplier: multiplier.unwrap_or(1.0),
},
}
}
__repr__() -> str
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyBackoffStrategy::repr
String representation
Source
pub fn __repr__(&self) -> String {
match &self.inner {
crate::retry::BackoffStrategy::Fixed => "BackoffStrategy.Fixed".to_string(),
crate::retry::BackoffStrategy::Linear { multiplier } => {
format!("BackoffStrategy.Linear(multiplier={})", multiplier)
}
crate::retry::BackoffStrategy::Exponential { base, multiplier } => {
format!(
"BackoffStrategy.Exponential(base={}, multiplier={})",
base, multiplier
)
}
crate::retry::BackoffStrategy::Custom { function_name } => {
format!("BackoffStrategy.Custom(function_name='{}')", function_name)
}
}
}
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryCondition
Python wrapper for RetryCondition
never() -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryCondition::never
Never retry
Source
pub fn never() -> Self {
Self {
inner: crate::retry::RetryCondition::Never,
}
}
transient_only() -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryCondition::transient_only
Retry only on transient errors
Source
pub fn transient_only() -> Self {
Self {
inner: crate::retry::RetryCondition::TransientOnly,
}
}
all_errors() -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryCondition::all_errors
Retry on all errors
Source
pub fn all_errors() -> Self {
Self {
inner: crate::retry::RetryCondition::AllErrors,
}
}
error_pattern(patterns: List[str]) -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryCondition::error_pattern
Retry on specific error patterns
Parameters:
| Name | Type | Description |
|---|---|---|
patterns |
List[str] |
Source
pub fn error_pattern(patterns: Vec<String>) -> Self {
Self {
inner: crate::retry::RetryCondition::ErrorPattern { patterns },
}
}
__repr__() -> str
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryCondition::repr
String representation
Source
pub fn __repr__(&self) -> String {
match &self.inner {
crate::retry::RetryCondition::Never => "RetryCondition.Never".to_string(),
crate::retry::RetryCondition::TransientOnly => {
"RetryCondition.TransientOnly".to_string()
}
crate::retry::RetryCondition::AllErrors => "RetryCondition.AllErrors".to_string(),
crate::retry::RetryCondition::ErrorPattern { patterns } => {
format!("RetryCondition.ErrorPattern(patterns={:?})", patterns)
}
}
}
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicyBuilder
Python wrapper for RetryPolicy::Builder
max_attempts(attempts: int) -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicyBuilder::max_attempts
Set maximum number of retry attempts
Parameters:
| Name | Type | Description |
|---|---|---|
attempts |
int |
Source
pub fn max_attempts(&self, attempts: i32) -> Self {
let mut new_builder = self.clone();
new_builder.max_attempts = Some(attempts);
new_builder
}
initial_delay(delay_seconds: float) -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicyBuilder::initial_delay
Set initial delay
Parameters:
| Name | Type | Description |
|---|---|---|
delay_seconds |
float |
Source
pub fn initial_delay(&self, delay_seconds: f64) -> Self {
let mut new_builder = self.clone();
new_builder.initial_delay = Some(Duration::from_secs_f64(delay_seconds));
new_builder
}
max_delay(delay_seconds: float) -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicyBuilder::max_delay
Set maximum delay
Parameters:
| Name | Type | Description |
|---|---|---|
delay_seconds |
float |
Source
pub fn max_delay(&self, delay_seconds: f64) -> Self {
let mut new_builder = self.clone();
new_builder.max_delay = Some(Duration::from_secs_f64(delay_seconds));
new_builder
}
backoff_strategy(strategy: PyBackoffStrategy) -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicyBuilder::backoff_strategy
Set backoff strategy
Parameters:
| Name | Type | Description |
|---|---|---|
strategy |
PyBackoffStrategy |
Source
pub fn backoff_strategy(&self, strategy: PyBackoffStrategy) -> Self {
let mut new_builder = self.clone();
new_builder.backoff_strategy = Some(strategy.inner);
new_builder
}
retry_condition(condition: PyRetryCondition) -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicyBuilder::retry_condition
Set retry condition
Parameters:
| Name | Type | Description |
|---|---|---|
condition |
PyRetryCondition |
Source
pub fn retry_condition(&self, condition: PyRetryCondition) -> Self {
let mut new_builder = self.clone();
new_builder.retry_condition = Some(condition.inner);
new_builder
}
with_jitter(jitter: bool) -> Self
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicyBuilder::with_jitter
Enable/disable jitter
Parameters:
| Name | Type | Description |
|---|---|---|
jitter |
bool |
Source
pub fn with_jitter(&self, jitter: bool) -> Self {
let mut new_builder = self.clone();
new_builder.with_jitter = Some(jitter);
new_builder
}
build() -> PyRetryPolicy
Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicyBuilder::build
Build the RetryPolicy
Source
pub fn build(&self) -> PyRetryPolicy {
let mut builder = crate::retry::RetryPolicy::builder();
if let Some(attempts) = self.max_attempts {
builder = builder.max_attempts(attempts);
}
if let Some(strategy) = &self.backoff_strategy {
builder = builder.backoff_strategy(strategy.clone());
}
if let Some(delay) = self.initial_delay {
builder = builder.initial_delay(delay);
}
if let Some(delay) = self.max_delay {
builder = builder.max_delay(delay);
}
if let Some(condition) = &self.retry_condition {
builder = builder.retry_condition(condition.clone());
}
if let Some(jitter) = self.with_jitter {
builder = builder.with_jitter(jitter);
}
PyRetryPolicy {
inner: builder.build(),
}
}