def test_local_backend_eq(self): r = init_backend('local_backend', backend='local') assert r == r r2 = init_backend('local_backend', backend='local') assert r2 == r assert r == r2 r2 = init_backend('local_backend2', backend='local') assert r2 != r assert r != r2
def __init__(self, id, backend='local', seed=None): """ Automatically load my backend if exists """ self._backend = init_backend(experiment_id=self.id, backend=backend) self._backend = self._backend.load() if self.id != self._backend.experiment_id: # this should not occur if user instanciates incorrect # Backend instance by themselves msg = 'Experiment ID mismatch: instance={}, backend={}' raise ValueError(msg.format(self.id, self._backend.experiment_id)) self._seed = seed if self.trial_id != 0: msg = 'Loaded existing experiment: {}' logger.info(msg.format(self)) else: msg = 'Initialized new experiment: {}' logger.info(msg.format(self)) self._parameters = ParameterManager() self._codes = CodeManager(backend=self._backend) self._environment = Environment(backend=self._backend) # TODO: check code change # output environment info self._environment.log_environment_info() self._check_environment_change()
def test_redis_init_pool(self): uri = 'redis://localhost:6379/0' backend = redis.ConnectionPool.from_url(uri) b = init_backend('local_backend', backend=backend) assert isinstance(b, RedisBackend) assert b.uri == uri
def __init__(self, backend): self.backend = init_backend(backend=backend) # Track registered code's key in CURRENT Experiment self.codes = [] # Track registered code's key and context in ALL PREVIOUS Experiments self.history = {}
def test_mongo_init_db(self): import pymongo uri = 'mongodb://localhost:27017' client = pymongo.MongoClient(uri) b = init_backend('local_backend', backend=client.test_db) assert isinstance(b, MongoBackend) assert b.uri == 'mongodb://localhost:27017/test_db' assert b.client is client uri = 'mongodb://127.0.0.1:27017' client = pymongo.MongoClient(uri) b = init_backend('local_backend', backend=client.new_db) assert isinstance(b, MongoBackend) assert b.uri == 'mongodb://127.0.0.1:27017/new_db' assert b.client is client
def __init__(self, backend): self.backend = init_backend(backend=backend) self.python = PythonEnvironment() self.python_packages = PythonPackagesEnvironment() self.collectors = [PlatformEnvironment(), DetailedCPUEnvironment(), self.python, NumPyEnvironment(), SciPyEnvironment(), PandasEnvironment(), CondaEnvironment(), GitEnvironment(), self.python_packages] self.mapping = {env.key: env for env in self.collectors}
def metrics(self): return init_backend('dummy_experiment', self.backend).metrics
def test_redis_init_protocol(self, backend): b = init_backend('local_backend', backend=backend) assert isinstance(b, RedisBackend) assert b.uri == backend
def test_local_init_path(self): p = daskperiment.config._CACHE_DIR / 'local_backend' b = init_backend('local_backend', backend=p) assert isinstance(b, LocalBackend) assert b.cache_dir == p
def test_local_init_str(self): b = init_backend('local_backend', backend='local') assert isinstance(b, LocalBackend) exp = daskperiment.config._CACHE_DIR / 'local_backend' assert b.cache_dir == exp
def test_local_backend_picklable(self): r = init_backend('local_backend', backend='local') res = pickle.loads(pickle.dumps(r)) assert r == res assert res.cache_dir == r.cache_dir
def teardown_class(cls): from daskperiment.backend import init_backend init_backend('remove_all', backend=cls.backend)._delete_cache()
def test_mongo_no_db_raise(self): uri = 'mongodb://localhost:27017' with pytest.raises(ValueError): init_backend('local_backend', backend=uri)