@@ -105,6 +105,20 @@ function StatsBase.sample(
105
105
return mcmcsample (rng, model, sampler, parallel, N, nchains; kwargs... )
106
106
end
107
107
108
+ # Utility function to check and warn about common kwargs mistakes
109
+ function _check_initial_params_kwarg (kwargs)
110
+ if haskey (kwargs, :initial_parameters )
111
+ @warn " The `initial_parameters` keyword argument is not recognised; please use `initial_params` instead."
112
+ return true
113
+ end
114
+ return false
115
+ end
116
+
117
+ # Utility function to remove initial_parameters from kwargs after warning
118
+ function _filter_initial_params_kwarg (kwargs)
119
+ return pairs ((; (k => v for (k, v) in pairs (kwargs) if k != = :initial_parameters ). .. ))
120
+ end
121
+
108
122
# Default implementations of regular and parallel sampling.
109
123
function mcmcsample (
110
124
rng:: Random.AbstractRNG ,
@@ -122,9 +136,7 @@ function mcmcsample(
122
136
kwargs... ,
123
137
)
124
138
# 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
139
+ _check_initial_params_kwarg (kwargs)
128
140
129
141
# Check the number of requested samples.
130
142
N > 0 || error (" the number of samples must be ≥ 1" )
@@ -410,13 +422,9 @@ function mcmcsample(
410
422
initial_state= nothing ,
411
423
kwargs... ,
412
424
)
413
- # Warn if initial_parameters is passed instead of initial_params
414
- if haskey (kwargs, :initial_parameters )
415
- @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 ((;
418
- (k => v for (k, v) in pairs (kwargs) if k != = :initial_parameters ). ..
419
- ))
425
+ # Warn if initial_parameters is passed instead of initial_params and remove it from kwargs
426
+ if _check_initial_params_kwarg (kwargs)
427
+ kwargs = _filter_initial_params_kwarg (kwargs)
420
428
end
421
429
422
430
# Check if actually multiple threads are used.
@@ -602,13 +610,9 @@ function mcmcsample(
602
610
initial_state= nothing ,
603
611
kwargs... ,
604
612
)
605
- # Warn if initial_parameters is passed instead of initial_params
606
- if haskey (kwargs, :initial_parameters )
607
- @warn " The `initial_parameters` keyword argument is not recognised; please use `initial_params` instead."
608
- # Remove initial_parameters from kwargs to prevent it from being passed to single-chain sample
609
- kwargs = pairs ((;
610
- (k => v for (k, v) in pairs (kwargs) if k != = :initial_parameters ). ..
611
- ))
613
+ # Warn if initial_parameters is passed instead of initial_params and remove it from kwargs
614
+ if _check_initial_params_kwarg (kwargs)
615
+ kwargs = _filter_initial_params_kwarg (kwargs)
612
616
end
613
617
614
618
# Check if actually multiple processes are used.
@@ -750,13 +754,9 @@ function mcmcsample(
750
754
initial_state= nothing ,
751
755
kwargs... ,
752
756
)
753
- # Warn if initial_parameters is passed instead of initial_params
754
- if haskey (kwargs, :initial_parameters )
755
- @warn " The `initial_parameters` keyword argument is not recognised; please use `initial_params` instead."
756
- # Remove initial_parameters from kwargs to prevent it from being passed to single-chain sample
757
- kwargs = pairs ((;
758
- (k => v for (k, v) in pairs (kwargs) if k != = :initial_parameters ). ..
759
- ))
757
+ # Warn if initial_parameters is passed instead of initial_params and remove it from kwargs
758
+ if _check_initial_params_kwarg (kwargs)
759
+ kwargs = _filter_initial_params_kwarg (kwargs)
760
760
end
761
761
762
762
# Check if the number of chains is larger than the number of samples
0 commit comments