# rte-france/relife architecture

> Architecture diagram of the GitHub repository rte-france/relife, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rte-france/relife
- Repository: https://github.com/rte-france/relife
- Video tour (about a minute): https://gitdiagram.com/rte-france/relife/video

## Overview

ReLife is a Python reliability and lifetime-data analysis library for infrastructure asset decisions. A principal workflow is to load lifetime observations, fit or select a lifetime model, evaluate replacement policies and their expected costs, then optionally sample the resulting stochastic processes. The package also supports nonparametric and semiparametric lifetime analysis, renewal and non-homogeneous Poisson processes, and sampling. The graph reflects README-level capabilities where source excerpts were unavailable; those subsystem links are therefore omitted when implementation wiring is uncertain.

Main entry points: [`src/relife/lifetime_models/_distributions.py`](https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_distributions.py) (Lifetime Distributions), [`src/relife/stochastic_processes/_renewal_processes.py`](https://github.com/rte-france/relife/blob/main/src/relife/stochastic_processes/_renewal_processes.py) (Renewal Processes), [`src/relife/sampling/_iterators.py`](https://github.com/rte-france/relife/blob/main/src/relife/sampling/_iterators.py) (Sampling Iterators), [`src/relife/stochastic_processes/_non_homogeneous_poisson_process.py`](https://github.com/rte-france/relife/blob/main/src/relife/stochastic_processes/_non_homogeneous_poisson_process.py) (Poisson Processes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Lifetime Data"]
  node_datasets["Example Datasets<br/>[load.py]"]
  node_lifetime_data["Lifetime Data<br/>[_base.py]"]
end

subgraph group_models["Lifetime Models"]
  node_distributions["Lifetime Distributions<br/>[_distributions.py]"]
  node_parametric["Parametric Regression"]
  node_semiparametric["Semiparametric Regression"]
  node_nonparametric["Nonparametric Models"]
  node_model_base["Model Fitting<br/>[_base.py]"]
end

subgraph group_processes["Processes And Sampling"]
  node_renewal["Renewal Processes"]
  node_nhpp["Poisson Processes"]
  node_kijima["Virtual Age Processes"]
  node_sampling["Process Sampling<br/>[_base.py]"]
  node_iterators["Sampling Iterators<br/>[_iterators.py]"]
end

subgraph group_decisions["Maintenance Decisions"]
  node_policies["Replacement Policies"]
  node_run_failure["Run-To-Failure Policies"]
  node_policy_base["Policy Cost Methods<br/>[_base.py]"]
end

subgraph group_core["Numerical Core"]
  node_model_core["Parameter And Fit Core<br/>[base.py]"]
  node_quadratures["Numerical Quadrature<br/>[quadratures.py]"]
end

node_engineer(("Analyst"))
node_results["Analysis And Cost Results"]

node_engineer -->|"loads examples"| node_datasets
node_datasets -->|"provides observations"| node_lifetime_data
node_engineer -->|"selects model"| node_distributions
node_lifetime_data -->|"fits from data"| node_model_base
node_distributions -->|"creates likelihood"| node_model_base
node_model_base -->|"uses fit utilities"| node_model_core
node_parametric -->|"uses baseline"| node_distributions
node_semiparametric -->|"uses baseline"| node_distributions
node_engineer -->|"analyzes lifetimes"| node_nonparametric
node_engineer -->|"evaluates policy"| node_policies
node_policies -->|"computes rewards"| node_renewal
node_policy_base -->|"returns cost measures"| node_results
node_policies -->|"returns policy metrics"| node_results
node_run_failure -->|"uses cost methods"| node_policy_base
node_renewal -->|"evaluates lifetimes"| node_distributions
node_nhpp -->|"evaluates hazard"| node_distributions
node_kijima -->|"uses lifetime model"| node_distributions
node_engineer -->|"requests samples"| node_sampling
node_sampling -->|"creates iterators"| node_iterators
node_iterators -->|"samples process"| node_renewal
node_iterators -->|"samples process"| node_nhpp
node_iterators -->|"samples process"| node_kijima
node_sampling -->|"yields sampled data"| node_results
node_engineer -->|"fits regression"| node_parametric
node_engineer -->|"fits regression"| node_semiparametric
node_engineer -->|"evaluates process"| node_renewal
node_engineer -->|"analyzes events"| node_nhpp
node_renewal -->|"returns expectations"| node_results
node_nhpp -->|"returns process measures"| node_results

click node_datasets "https://github.com/rte-france/relife/blob/main/src/relife/datasets/load.py"
click node_lifetime_data "https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_base.py"
click node_distributions "https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_distributions.py"
click node_parametric "https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_parametric_regressions.py"
click node_semiparametric "https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_semi_parametric_regressions.py"
click node_nonparametric "https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_non_parametric_models.py"
click node_model_base "https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_base.py"
click node_renewal "https://github.com/rte-france/relife/blob/main/src/relife/stochastic_processes/_renewal_processes.py"
click node_nhpp "https://github.com/rte-france/relife/blob/main/src/relife/stochastic_processes/_non_homogeneous_poisson_process.py"
click node_kijima "https://github.com/rte-france/relife/blob/main/src/relife/stochastic_processes/_kijima_processes.py"
click node_sampling "https://github.com/rte-france/relife/blob/main/src/relife/sampling/_base.py"
click node_iterators "https://github.com/rte-france/relife/blob/main/src/relife/sampling/_iterators.py"
click node_policies "https://github.com/rte-france/relife/blob/main/src/relife/policies/_preventive_age_replacement_policies.py"
click node_run_failure "https://github.com/rte-france/relife/blob/main/src/relife/policies/_run_to_failure_policies.py"
click node_policy_base "https://github.com/rte-france/relife/blob/main/src/relife/policies/_base.py"
click node_model_core "https://github.com/rte-france/relife/blob/main/src/relife/base.py"
click node_quadratures "https://github.com/rte-france/relife/blob/main/src/relife/quadratures.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_datasets,node_lifetime_data toneBlue
class node_distributions,node_parametric,node_semiparametric,node_nonparametric,node_model_base toneAmber
class node_renewal,node_nhpp,node_kijima,node_sampling,node_iterators toneMint
class node_policies,node_run_failure,node_policy_base toneRose
class node_model_core,node_quadratures,node_engineer,node_results toneIndigo
```

## Components

### Lifetime Data

- [Example Datasets](https://github.com/rte-france/relife/blob/main/src/relife/datasets/load.py): `src/relife/datasets/load.py`
- [Lifetime Data](https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_base.py): `src/relife/lifetime_models/_base.py`

### Lifetime Models

- [Lifetime Distributions](https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_distributions.py): `src/relife/lifetime_models/_distributions.py`
- [Parametric Regression](https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_parametric_regressions.py): `src/relife/lifetime_models/_parametric_regressions.py`
- [Semiparametric Regression](https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_semi_parametric_regressions.py): `src/relife/lifetime_models/_semi_parametric_regressions.py`
- [Nonparametric Models](https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_non_parametric_models.py): `src/relife/lifetime_models/_non_parametric_models.py`
- [Model Fitting](https://github.com/rte-france/relife/blob/main/src/relife/lifetime_models/_base.py): `src/relife/lifetime_models/_base.py`

### Processes And Sampling

- [Renewal Processes](https://github.com/rte-france/relife/blob/main/src/relife/stochastic_processes/_renewal_processes.py): `src/relife/stochastic_processes/_renewal_processes.py`
- [Poisson Processes](https://github.com/rte-france/relife/blob/main/src/relife/stochastic_processes/_non_homogeneous_poisson_process.py): `src/relife/stochastic_processes/_non_homogeneous_poisson_process.py`
- [Virtual Age Processes](https://github.com/rte-france/relife/blob/main/src/relife/stochastic_processes/_kijima_processes.py): `src/relife/stochastic_processes/_kijima_processes.py`
- [Process Sampling](https://github.com/rte-france/relife/blob/main/src/relife/sampling/_base.py): `src/relife/sampling/_base.py`
- [Sampling Iterators](https://github.com/rte-france/relife/blob/main/src/relife/sampling/_iterators.py): `src/relife/sampling/_iterators.py`

### Maintenance Decisions

- [Replacement Policies](https://github.com/rte-france/relife/blob/main/src/relife/policies/_preventive_age_replacement_policies.py): `src/relife/policies/_preventive_age_replacement_policies.py`
- [Run-To-Failure Policies](https://github.com/rte-france/relife/blob/main/src/relife/policies/_run_to_failure_policies.py): `src/relife/policies/_run_to_failure_policies.py`
- [Policy Cost Methods](https://github.com/rte-france/relife/blob/main/src/relife/policies/_base.py): `src/relife/policies/_base.py`

### Numerical Core

- [Parameter And Fit Core](https://github.com/rte-france/relife/blob/main/src/relife/base.py): `src/relife/base.py`
- [Numerical Quadrature](https://github.com/rte-france/relife/blob/main/src/relife/quadratures.py): `src/relife/quadratures.py`

### Other components

- **Analyst**
- **Analysis And Cost Results**

## Connections

- Analyst → Example Datasets: loads examples
- Example Datasets → Lifetime Data: provides observations
- Analyst → Lifetime Distributions: selects model
- Lifetime Data → Model Fitting: fits from data
- Lifetime Distributions → Model Fitting: creates likelihood
- Model Fitting → Parameter And Fit Core: uses fit utilities
- Parametric Regression → Lifetime Distributions: uses baseline
- Semiparametric Regression → Lifetime Distributions: uses baseline
- Analyst → Nonparametric Models: analyzes lifetimes
- Analyst → Replacement Policies: evaluates policy
- Replacement Policies → Renewal Processes: computes rewards
- Policy Cost Methods → Analysis And Cost Results: returns cost measures
- Replacement Policies → Analysis And Cost Results: returns policy metrics
- Run-To-Failure Policies → Policy Cost Methods: uses cost methods
- Renewal Processes → Lifetime Distributions: evaluates lifetimes
- Poisson Processes → Lifetime Distributions: evaluates hazard
- Virtual Age Processes → Lifetime Distributions: uses lifetime model
- Analyst → Process Sampling: requests samples
- Process Sampling → Sampling Iterators: creates iterators
- Sampling Iterators → Renewal Processes: samples process
- Sampling Iterators → Poisson Processes: samples process
- Sampling Iterators → Virtual Age Processes: samples process
- Process Sampling → Analysis And Cost Results: yields sampled data
- Analyst → Parametric Regression: fits regression
- Analyst → Semiparametric Regression: fits regression
- Analyst → Renewal Processes: evaluates process
- Analyst → Poisson Processes: analyzes events
- Renewal Processes → Analysis And Cost Results: returns expectations
- Poisson Processes → Analysis And Cost Results: returns process measures
