@@ -189,6 +189,14 @@ def default_kwargs(self):
189189 kwargs ["seed" ] = None
190190 return kwargs
191191
192+ @property
193+ def new_dynesty_api (self ):
194+ try :
195+ from dynesty .sampling import InternalSampler # noqa
196+ return True
197+ except ImportError :
198+ return False
199+
192200 def __init__ (
193201 self ,
194202 likelihood ,
@@ -261,7 +269,20 @@ def sampler_function_kwargs(self):
261269
262270 @property
263271 def sampler_init_kwargs (self ):
264- return {key : self .kwargs [key ] for key in self ._dynesty_init_kwargs }
272+ kwargs = {key : self .kwargs [key ] for key in self ._dynesty_init_kwargs }
273+ if self .new_dynesty_api :
274+ from . import dynesty3_utils as dynesty_utils
275+
276+ if kwargs ["sample" ] == "act-walk" :
277+ kwargs ["sample" ] = dynesty_utils .ACTTrackingEnsembleWalk (** kwargs )
278+ kwargs ["bound" ] = "none"
279+ elif kwargs ["sample" ] == "acceptance-walk" :
280+ kwargs ["sample" ] = dynesty_utils .EnsembleWalkSampler (** kwargs )
281+ kwargs ["bound" ] = "none"
282+ elif kwargs ["sample" ] == "rwalk" :
283+ kwargs ["sample" ] = dynesty_utils .AcceptanceTrackingRWalk (** kwargs )
284+ kwargs ["bound" ] = "none"
285+ return kwargs
265286
266287 def _translate_kwargs (self , kwargs ):
267288 kwargs = super ()._translate_kwargs (kwargs )
@@ -429,7 +450,7 @@ def nlive(self):
429450
430451 @property
431452 def sampler_init (self ):
432- from dynesty import NestedSampler
453+ from dynesty . dynesty import NestedSampler
433454
434455 return NestedSampler
435456
@@ -450,6 +471,9 @@ def _set_sampling_method(self):
450471 Additionally, some combinations of bound/sample/proposals are not
451472 compatible and so we either warn the user or raise an error.
452473 """
474+ if self .new_dynesty_api :
475+ return
476+
453477 import dynesty
454478
455479 _set_sampling_kwargs ((self .nact , self .maxmcmc , self .proposals , self .naccept ))
@@ -595,6 +619,10 @@ def _setup_pool(self):
595619 more times than we have processes.
596620 """
597621 super (Dynesty , self )._setup_pool ()
622+
623+ if self .new_dynesty_api :
624+ return
625+
598626 if self .pool is not None :
599627 args = (
600628 [(self .nact , self .maxmcmc , self .proposals , self .naccept )]
0 commit comments