Esempio n. 1
0
    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
Esempio n. 2
0
    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()
Esempio n. 3
0
    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
Esempio n. 4
0
    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 = {}
Esempio n. 5
0
    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
Esempio n. 6
0
    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}
Esempio n. 7
0
 def metrics(self):
     return init_backend('dummy_experiment', self.backend).metrics
Esempio n. 8
0
    def test_redis_init_protocol(self, backend):
        b = init_backend('local_backend', backend=backend)
        assert isinstance(b, RedisBackend)

        assert b.uri == backend
Esempio n. 9
0
    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
Esempio n. 10
0
    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
Esempio n. 11
0
 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
Esempio n. 12
0
 def teardown_class(cls):
     from daskperiment.backend import init_backend
     init_backend('remove_all', backend=cls.backend)._delete_cache()
Esempio n. 13
0
 def test_mongo_no_db_raise(self):
     uri = 'mongodb://localhost:27017'
     with pytest.raises(ValueError):
         init_backend('local_backend', backend=uri)