Skip to content

Commit 62881c5

Browse files
remove initial_parameters from kwargs in multi-chain functions
1 parent 42e519b commit 62881c5

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/sample.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,11 @@ function mcmcsample(
121121
initial_state=nothing,
122122
kwargs...,
123123
)
124+
# Warn if initial_parameters is passed instead of initial_params
125+
if haskey(kwargs, :initial_parameters)
126+
@warn "The `initial_parameters` keyword argument is not recognised; please use `initial_params` instead."
127+
end
128+
124129
# Check the number of requested samples.
125130
N > 0 || error("the number of samples must be ≥ 1")
126131
discard_initial >= 0 ||
@@ -408,6 +413,8 @@ function mcmcsample(
408413
# Warn if initial_parameters is passed instead of initial_params
409414
if haskey(kwargs, :initial_parameters)
410415
@warn "The `initial_parameters` keyword argument is not recognised; please use `initial_params` instead."
416+
# Remove initial_parameters from kwargs to prevent it from being passed to single-chain sample
417+
kwargs = pairs((; (k => v for (k, v) in pairs(kwargs) if k !== :initial_parameters)...))
411418
end
412419

413420
# Check if actually multiple threads are used.
@@ -596,6 +603,8 @@ function mcmcsample(
596603
# Warn if initial_parameters is passed instead of initial_params
597604
if haskey(kwargs, :initial_parameters)
598605
@warn "The `initial_parameters` keyword argument is not recognised; please use `initial_params` instead."
606+
# Remove initial_parameters from kwargs to prevent it from being passed to single-chain sample
607+
kwargs = pairs((; (k => v for (k, v) in pairs(kwargs) if k !== :initial_parameters)...))
599608
end
600609

601610
# Check if actually multiple processes are used.
@@ -740,6 +749,8 @@ function mcmcsample(
740749
# Warn if initial_parameters is passed instead of initial_params
741750
if haskey(kwargs, :initial_parameters)
742751
@warn "The `initial_parameters` keyword argument is not recognised; please use `initial_params` instead."
752+
# Remove initial_parameters from kwargs to prevent it from being passed to single-chain sample
753+
kwargs = pairs((; (k => v for (k, v) in pairs(kwargs) if k !== :initial_parameters)...))
743754
end
744755

745756
# Check if the number of chains is larger than the number of samples

test/sample.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,12 @@
3232
@test chain[1].a == -1.8
3333
@test chain[1].b == 3.2
3434

35-
# test warning for initial_parameters (typo)
35+
# test warning for initial_parameters (typo) in single-chain sampling
36+
@test_logs (:warn, r"initial_parameters.*not recognised.*initial_params") sample(
37+
MyModel(), MySampler(), 3; progress=false, initial_parameters=(b=1.0, a=2.0)
38+
)
39+
40+
# test warning for initial_parameters (typo) in multi-chain sampling
3641
# Note: initial_parameters will be ignored, but it should warn the user
3742
@test_logs (:warn, r"initial_parameters.*not recognised.*initial_params") match_mode =
3843
:any sample(

0 commit comments

Comments
 (0)