Skip to content

Fix bridge clippy warnings with new rust version #924

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions temporalio/bridge/src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ pub fn connect_client<'a>(
.connect_no_namespace(runtime.core.telemetry().get_temporal_metric_meter())
.await
.map_err(|err| {
PyRuntimeError::new_err(format!("Failed client connect: {}", err))
PyRuntimeError::new_err(format!("Failed client connect: {err}"))
})?,
runtime,
})
Expand Down Expand Up @@ -518,14 +518,14 @@ impl ClientRef {

fn rpc_req<P: prost::Message + Default>(call: RpcCall) -> PyResult<tonic::Request<P>> {
let proto = P::decode(&*call.req)
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {}", err)))?;
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {err}")))?;
let mut req = tonic::Request::new(proto);
for (k, v) in call.metadata {
req.metadata_mut().insert(
MetadataKey::from_str(k.as_str())
.map_err(|err| PyValueError::new_err(format!("Invalid metadata key: {}", err)))?,
.map_err(|err| PyValueError::new_err(format!("Invalid metadata key: {err}")))?,
v.parse()
.map_err(|err| PyValueError::new_err(format!("Invalid metadata value: {}", err)))?,
.map_err(|err| PyValueError::new_err(format!("Invalid metadata value: {err}")))?,
);
}
if let Some(timeout_millis) = call.timeout_millis {
Expand Down Expand Up @@ -561,7 +561,7 @@ impl TryFrom<ClientConfig> for ClientOptions {
gateway_opts
.target_url(
Url::parse(&opts.target_url)
.map_err(|err| PyValueError::new_err(format!("invalid target URL: {}", err)))?,
.map_err(|err| PyValueError::new_err(format!("invalid target URL: {err}")))?,
)
.client_name(opts.client_name)
.client_version(opts.client_version)
Expand All @@ -581,7 +581,7 @@ impl TryFrom<ClientConfig> for ClientOptions {
}
gateway_opts
.build()
.map_err(|err| PyValueError::new_err(format!("Invalid client config: {}", err)))
.map_err(|err| PyValueError::new_err(format!("Invalid client config: {err}")))
}
}

Expand Down
4 changes: 2 additions & 2 deletions temporalio/bridge/src/envconfig.rs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ fn load_client_config_inner(
config_file_strict,
};
core_load_client_config(options, env_vars.as_ref())
.map_err(|e| ConfigError::new_err(format!("{}", e)))?
.map_err(|e| ConfigError::new_err(format!("{e}")))?
};

core_config_to_dict(py, &core_config)
Expand All @@ -124,7 +124,7 @@ fn load_client_connect_config_inner(
};

let profile = core_load_client_config_profile(options, env_vars.as_ref())
.map_err(|e| ConfigError::new_err(format!("{}", e)))?;
.map_err(|e| ConfigError::new_err(format!("{e}")))?;

profile_to_dict(py, &profile)
}
Expand Down
3 changes: 1 addition & 2 deletions temporalio/bridge/src/metric.rs
Original file line number Diff line number Diff line change
Expand Up @@ -255,8 +255,7 @@ fn metric_key_value_from_py(
metrics::MetricValue::Float(v)
} else {
return Err(PyTypeError::new_err(format!(
"Invalid value type for key {}, must be str, int, float, or bool",
k
"Invalid value type for key {k}, must be str, int, float, or bool"
)));
};
Ok(metrics::MetricKeyValue::new(k, val))
Expand Down
16 changes: 8 additions & 8 deletions temporalio/bridge/src/runtime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -124,10 +124,10 @@ pub fn init_runtime(telemetry_config: TelemetryConfig) -> PyResult<RuntimeRef> {
let mut core = CoreRuntime::new(
telemetry_build
.build()
.map_err(|err| PyValueError::new_err(format!("Invalid telemetry config: {}", err)))?,
.map_err(|err| PyValueError::new_err(format!("Invalid telemetry config: {err}")))?,
TokioRuntimeBuilder::default(),
)
.map_err(|err| PyRuntimeError::new_err(format!("Failed initializing telemetry: {}", err)))?;
.map_err(|err| PyRuntimeError::new_err(format!("Failed initializing telemetry: {err}")))?;

// We late-bind the metrics after core runtime is created since it needs
// the Tokio handle
Expand Down Expand Up @@ -314,7 +314,7 @@ impl TryFrom<MetricsConfig> for Arc<dyn CoreMeter> {
build
.url(
Url::parse(&otel_conf.url).map_err(|err| {
PyValueError::new_err(format!("Invalid OTel URL: {}", err))
PyValueError::new_err(format!("Invalid OTel URL: {err}"))
})?,
)
.headers(otel_conf.headers)
Expand All @@ -333,17 +333,17 @@ impl TryFrom<MetricsConfig> for Arc<dyn CoreMeter> {
}
let otel_options = build
.build()
.map_err(|err| PyValueError::new_err(format!("Invalid OTel config: {}", err)))?;
.map_err(|err| PyValueError::new_err(format!("Invalid OTel config: {err}")))?;
Ok(Arc::new(build_otlp_metric_exporter(otel_options).map_err(
|err| PyValueError::new_err(format!("Failed building OTel exporter: {}", err)),
|err| PyValueError::new_err(format!("Failed building OTel exporter: {err}")),
)?))
} else if let Some(prom_conf) = conf.prometheus {
// Start prom exporter
let mut build = PrometheusExporterOptionsBuilder::default();
build
.socket_addr(
SocketAddr::from_str(&prom_conf.bind_address).map_err(|err| {
PyValueError::new_err(format!("Invalid Prometheus address: {}", err))
PyValueError::new_err(format!("Invalid Prometheus address: {err}"))
})?,
)
.counters_total_suffix(prom_conf.counters_total_suffix)
Expand All @@ -358,11 +358,11 @@ impl TryFrom<MetricsConfig> for Arc<dyn CoreMeter> {
);
}
let prom_options = build.build().map_err(|err| {
PyValueError::new_err(format!("Invalid Prometheus config: {}", err))
PyValueError::new_err(format!("Invalid Prometheus config: {err}"))
})?;
Ok(start_prometheus_metric_exporter(prom_options)
.map_err(|err| {
PyValueError::new_err(format!("Failed starting Prometheus exporter: {}", err))
PyValueError::new_err(format!("Failed starting Prometheus exporter: {err}"))
})?
.meter)
} else {
Expand Down
10 changes: 5 additions & 5 deletions temporalio/bridge/src/testing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ pub fn start_dev_server<'a>(
runtime_ref.runtime.future_into_py(py, async move {
Ok(EphemeralServerRef {
server: Some(opts.start_server().await.map_err(|err| {
PyRuntimeError::new_err(format!("Failed starting Temporal dev server: {}", err))
PyRuntimeError::new_err(format!("Failed starting Temporal dev server: {err}"))
})?),
runtime,
})
Expand All @@ -69,7 +69,7 @@ pub fn start_test_server<'a>(
runtime_ref.runtime.future_into_py(py, async move {
Ok(EphemeralServerRef {
server: Some(opts.start_server().await.map_err(|err| {
PyRuntimeError::new_err(format!("Failed starting test server: {}", err))
PyRuntimeError::new_err(format!("Failed starting test server: {err}"))
})?),
runtime,
})
Expand Down Expand Up @@ -101,7 +101,7 @@ impl EphemeralServerRef {
self.runtime.future_into_py(py, async move {
if let Some(mut server) = server {
server.shutdown().await.map_err(|err| {
PyRuntimeError::new_err(format!("Failed shutting down Temporalite: {}", err))
PyRuntimeError::new_err(format!("Failed shutting down Temporalite: {err}"))
})?;
}
Ok(())
Expand Down Expand Up @@ -138,7 +138,7 @@ impl TryFrom<DevServerConfig> for ephemeral_server::TemporalDevServerConfig {
.log((conf.log_format, conf.log_level))
.extra_args(conf.extra_args)
.build()
.map_err(|err| PyValueError::new_err(format!("Invalid Temporalite config: {}", err)))
.map_err(|err| PyValueError::new_err(format!("Invalid Temporalite config: {err}")))
}
}

Expand Down Expand Up @@ -166,6 +166,6 @@ impl TryFrom<TestServerConfig> for ephemeral_server::TestServerConfig {
.port(conf.port)
.extra_args(conf.extra_args)
.build()
.map_err(|err| PyValueError::new_err(format!("Invalid test server config: {}", err)))
.map_err(|err| PyValueError::new_err(format!("Invalid test server config: {err}")))
}
}
30 changes: 13 additions & 17 deletions temporalio/bridge/src/worker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -366,8 +366,7 @@ impl<SK: SlotKind + Send + Sync> SlotSupplierTrait for CustomSlotSupplierOfType<
Ok(f) => f,
Err(e) => {
error!(
"Unexpected error in custom slot supplier `reserve_slot`: {}",
e
"Unexpected error in custom slot supplier `reserve_slot`: {e}"
);
continue;
}
Expand Down Expand Up @@ -402,8 +401,7 @@ impl<SK: SlotKind + Send + Sync> SlotSupplierTrait for CustomSlotSupplierOfType<
})
.unwrap_or_else(|e| {
error!(
"Uncaught error in custom slot supplier `try_reserve_slot`: {}",
e
"Uncaught error in custom slot supplier `try_reserve_slot`: {e}"
);
None
})
Expand All @@ -427,8 +425,7 @@ impl<SK: SlotKind + Send + Sync> SlotSupplierTrait for CustomSlotSupplierOfType<
PyResult::Ok(())
}) {
error!(
"Uncaught error in custom slot supplier `mark_slot_used`: {}",
e
"Uncaught error in custom slot supplier `mark_slot_used`: {e}"
);
}
}
Expand All @@ -450,8 +447,7 @@ impl<SK: SlotKind + Send + Sync> SlotSupplierTrait for CustomSlotSupplierOfType<
PyResult::Ok(())
}) {
error!(
"Uncaught error in custom slot supplier `release_slot`: {}",
e
"Uncaught error in custom slot supplier `release_slot`: {e}"
);
}
}
Expand Down Expand Up @@ -509,7 +505,7 @@ pub fn new_replay_worker<'a>(
let worker = WorkerRef {
worker: Some(Arc::new(
temporal_sdk_core::init_replay_worker(ReplayWorkerInput::new(config, stream)).map_err(
|err| PyValueError::new_err(format!("Failed creating replay worker: {}", err)),
|err| PyValueError::new_err(format!("Failed creating replay worker: {err}")),
)?,
)),
event_loop_task_locals: Default::default(),
Expand Down Expand Up @@ -551,7 +547,7 @@ impl WorkerRef {
let bytes = match worker.poll_workflow_activation().await {
Ok(act) => act.encode_to_vec(),
Err(PollError::ShutDown) => return Err(PollShutdownError::new_err(())),
Err(err) => return Err(PyRuntimeError::new_err(format!("Poll failure: {}", err))),
Err(err) => return Err(PyRuntimeError::new_err(format!("Poll failure: {err}"))),
};
Ok(bytes)
})
Expand All @@ -563,7 +559,7 @@ impl WorkerRef {
let bytes = match worker.poll_activity_task().await {
Ok(task) => task.encode_to_vec(),
Err(PollError::ShutDown) => return Err(PollShutdownError::new_err(())),
Err(err) => return Err(PyRuntimeError::new_err(format!("Poll failure: {}", err))),
Err(err) => return Err(PyRuntimeError::new_err(format!("Poll failure: {err}"))),
};
Ok(bytes)
})
Expand All @@ -576,7 +572,7 @@ impl WorkerRef {
) -> PyResult<Bound<'p, PyAny>> {
let worker = self.worker.as_ref().unwrap().clone();
let completion = WorkflowActivationCompletion::decode(proto.as_bytes())
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {}", err)))?;
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {err}")))?;
self.runtime.future_into_py(py, async move {
worker
.complete_workflow_activation(completion)
Expand All @@ -593,7 +589,7 @@ impl WorkerRef {
) -> PyResult<Bound<'p, PyAny>> {
let worker = self.worker.as_ref().unwrap().clone();
let completion = ActivityTaskCompletion::decode(proto.as_bytes())
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {}", err)))?;
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {err}")))?;
self.runtime.future_into_py(py, async move {
worker
.complete_activity_task(completion)
Expand All @@ -606,7 +602,7 @@ impl WorkerRef {
fn record_activity_heartbeat(&self, proto: &Bound<'_, PyBytes>) -> PyResult<()> {
enter_sync!(self.runtime);
let heartbeat = ActivityHeartbeat::decode(proto.as_bytes())
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {}", err)))?;
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {err}")))?;
self.worker
.as_ref()
.unwrap()
Expand Down Expand Up @@ -701,7 +697,7 @@ fn convert_worker_config(
.collect::<HashMap<String, HashSet<WorkflowErrorType>>>(),
)
.build()
.map_err(|err| PyValueError::new_err(format!("Invalid worker config: {}", err)))
.map_err(|err| PyValueError::new_err(format!("Invalid worker config: {err}")))
}

fn convert_tuner_holder(
Expand Down Expand Up @@ -770,7 +766,7 @@ fn convert_tuner_holder(
)?);
Ok(options
.build()
.map_err(|e| PyValueError::new_err(format!("Invalid tuner holder options: {}", e)))?
.map_err(|e| PyValueError::new_err(format!("Invalid tuner holder options: {e}")))?
.build_tuner_holder()
.context("Failed building tuner holder")?)
}
Expand Down Expand Up @@ -863,7 +859,7 @@ impl HistoryPusher {
history_proto: &Bound<'_, PyBytes>,
) -> PyResult<Bound<'p, PyAny>> {
let history = History::decode(history_proto.as_bytes())
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {}", err)))?;
.map_err(|err| PyValueError::new_err(format!("Invalid proto: {err}")))?;
let wfid = workflow_id.to_string();
let tx = if let Some(tx) = self.tx.as_ref() {
tx.clone()
Expand Down