Skip to main content
Cloacina Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Retry

cloaca.python.bindings.value_objects.retry Binding

Classes

cloaca.python.bindings.value_objects.retry.RetryPolicy

Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicy

Python wrapper for RetryPolicy

Methods

builder
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
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
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
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
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
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
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
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__
__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()
        )
    }

cloaca.python.bindings.value_objects.retry.BackoffStrategy

Rust Implementation: cloacina::python::bindings::value_objects::retry::PyBackoffStrategy

Python wrapper for BackoffStrategy

Methods

fixed
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
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
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__
__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)
            }
        }
    }

cloaca.python.bindings.value_objects.retry.RetryCondition

Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryCondition

Python wrapper for RetryCondition

Methods

never
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
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
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
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__
__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)
            }
        }
    }

cloaca.python.bindings.value_objects.retry.RetryPolicyBuilder

Rust Implementation: cloacina::python::bindings::value_objects::retry::PyRetryPolicyBuilder

Python wrapper for RetryPolicy::Builder

Methods

max_attempts
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
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
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
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
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
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
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(),
        }
    }