Пример #1
0
    def delete(self, exp_id):
        """ Delete an experiment

        +--------------------------------------------------------------------+
        | Example                                                            |
        +====================================================================+
        | http://example.com/exp/EXP_ID                                      |
        +--------------------------------------------------------------------+
        
        :requires: A secure cookie obtained by logging in.
        :param int exp_id: The ID of the experiment to be deleted.
        :returns: A JSON showing the deleted experiment.
        :raises 401: If the experiment does not belong to this user or the exp_id is wrong.
        :raises 401: If user is not logged in or if there is no secure cookie available.
        """
        if self.get_current_user():
            if self.validate_user_experiment(exp_id):
                db = Database()
                mongo_db = MongoLog()
                response = db.delete_experiment(exp_id)
                mongo_db.log_deleted_experiment(response)
                self.write(json.dumps(response['exp_id']))
            else:
                raise ExceptionHandler(
                    reason="Experiment could not be validated.",
                    status_code=401)
        else:
            raise ExceptionHandler(reason="Could not validate user.",
                                   status_code=401)
Пример #2
0
 def __init__(self, exp_id, key="notUsedForLoopBack"):
     self.db = Database()
     self.mongo_db = MongoLog()
     self.exp_id = exp_id  # sets the experimentID
     self.properties = self.db.get_one_experiment(self.exp_id)
     self.key = key
     self.valid = False  # should be taken from Redis
Пример #3
0
def log_theta():
    """ For every experiment, if Theta logging flag is set. Log theta from
    redis to mongodb.

    """
    redis_db = Database()
    mongo_db = MongoLog()
    experiment_ids = redis_db.get_experiment_ids()
    for experiment_id in experiment_ids:
        exp = Experiment(experiment_id)
        if exp.properties["hourly_theta"] == "True":
            theta = exp.get_theta()
            theta["exp_id"] = experiment_id
            mongo_db.log_hourly_theta(theta)
Пример #4
0
def log_theta():
    """ For every experiment, if Theta logging flag is set. Log theta from
    redis to mongodb.

    """
    redis_db = Database()
    mongo_db = MongoLog()
    experiment_ids = redis_db.get_experiment_ids()
    for experiment_id in experiment_ids:
        exp = Experiment(experiment_id)
        properties = redis_db.get_one_experiment(experiment_id)
        if properties['hourlyTheta'] == "True":
            theta = exp.get_theta()
            theta['exp_id'] = experiment_id
            mongo_db.log_hourly_theta(theta)
            print("We did it, we stored some stuff!")
Пример #5
0
 def __init__(self, exp_id, key="notUsedForLoopBack"):
     self.db = Database()
     self.mongo_db = MongoLog()
     self.advice_db = Advice()
     self.exp_id = exp_id  # sets the experimentID
     self.properties = self.db.get_one_experiment(self.exp_id)
     self.key = key
     self.valid = False  # should be taken from Redis
     self.safe_builtins = builtins.__dict__.copy()
     del self.safe_builtins["compile"], \
         self.safe_builtins["exec"], \
         self.safe_builtins["eval"], \
         self.safe_builtins["__import__"]
     self.safe_builtins.update({'base' : base, 'numpy' : np, \
                           'np' : np, 'scipy' : sp, 'sp' : sp, 'bts': bts, \
                           'lm' : lm, 'lif': lif, 'thompson' : thompson, \
                           'thmp' : thompson, 'tbl' : thompson_bayesian_linear, \
                           'random' : random, 'self' : self, \
                           'Experiment' : Experiment})