def experiment_pre_save(sender, **kwargs): instance = kwargs['instance'] # Check if declarations need to be set if not instance.declarations and instance.specification: instance.declarations = instance.specification.declarations set_tags(instance=instance) set_persistence(instance=instance) set_outputs(instance=instance) set_outputs_refs(instance=instance) # Add code reference # Check if : # the experiment is new # that it has an exec section # that it's not cloned # that is not an external repo (because we did not clone it yet) # if the instance has a primary key then is getting updated condition = ( not instance.specification or not instance.specification.build or instance.specification.build.git or instance.code_reference or not instance.project.has_code) if condition: return assign_code_reference(instance)
def notebook_job_pre_save(sender, **kwargs): instance = kwargs['instance'] set_tags(instance=instance) set_persistence(instance=instance) set_outputs(instance=instance) set_outputs_refs(instance=instance) assign_code_reference(instance)
def notebook_job_pre_save(sender, **kwargs): instance = kwargs['instance'] set_tags(instance=instance) set_persistence(instance=instance) set_outputs(instance=instance) set_outputs_refs(instance=instance) assign_code_reference(instance) set_backend(instance=instance, default_backend=conf.get(NOTEBOOKS_BACKEND)) set_name(instance=instance, query=NotebookJob.all)
def job_pre_save(sender, **kwargs): instance = kwargs['instance'] set_tags(instance=instance) set_persistence(instance=instance) set_outputs(instance=instance) set_outputs_refs(instance=instance) set_name(instance=instance, query=Job.all) set_backend(instance=instance, default_backend=NATIVE_BACKEND) assign_code_reference(instance)
def tensorboard_job_pre_save(sender, **kwargs): instance = kwargs['instance'] set_tags(instance=instance) default_persistence_outputs = None if instance.experiment: default_persistence_outputs = instance.experiment.persistence_outputs if instance.experiment_group: default_persistence_outputs = instance.experiment_group.persistence_outputs set_persistence(instance=instance, default_persistence_outputs=default_persistence_outputs) set_outputs(instance=instance) set_outputs_refs(instance=instance) assign_code_reference(instance)
def test_set_outputs(self): experiment_outputs = [ '{}'.format(self.experiment.id), '{}'.format(self.project_experiment.id), self.project_experiment.name, '{}.{}'.format(self.project.name, self.project_experiment.name), '{}/{}'.format(self.project.name, self.project_experiment.name), '{}.{}.{}'.format(self.user.username, self.project.name, self.project_experiment.name), '{}/{}/{}'.format(self.user.username, self.project.name, self.project_experiment.name), ] job_outputs = [ '{}'.format(self.job.id), '{}'.format(self.project_job.id), self.project_job.name, '{}.{}'.format(self.project.name, self.project_job.name), '{}/{}'.format(self.project.name, self.project_job.name), '{}.{}.{}'.format(self.user.username, self.project.name, self.project_job.name), '{}/{}/{}'.format(self.user.username, self.project.name, self.project_job.name), ] outputs_config = OutputsConfig( jobs=job_outputs, experiments=experiment_outputs).to_dict() experiment = ExperimentFactory(user=self.user, project=self.project) assert experiment.outputs is None experiment.outputs = outputs_config assert experiment.outputs is not None assert len(experiment.outputs_experiments) == len(experiment_outputs) assert len(experiment.outputs_jobs) == len(job_outputs) set_outputs(instance=experiment) del experiment.outputs_config del experiment.outputs_experiments del experiment.outputs_jobs assert len(experiment.outputs_experiments) == 2 assert len(experiment.outputs_jobs) == 2 job = JobFactory(user=self.user, project=self.project) assert job.outputs is None job.outputs = outputs_config assert job.outputs is not None assert job.outputs is not None assert len(job.outputs_experiments) == len(experiment_outputs) assert len(job.outputs_jobs) == len(job_outputs) set_outputs(instance=job) del job.outputs_config del job.outputs_experiments del job.outputs_jobs assert len(job.outputs_experiments) == 2 assert len(job.outputs_jobs) == 2
def experiment_pre_save(sender, **kwargs): instance = kwargs['instance'] # Check if declarations need to be set if not instance.declarations and instance.specification: instance.declarations = instance.specification.declarations set_tags(instance=instance) set_persistence(instance=instance) set_outputs(instance=instance) set_outputs_refs(instance=instance) if not instance.specification or not instance.specification.build: return assign_code_reference(instance)
def experiment_pre_save(sender, **kwargs): instance = kwargs['instance'] # Check if declarations need to be set if not instance.declarations and instance.specification: instance.declarations = instance.specification.declarations set_tags(instance=instance) set_persistence(instance=instance) set_outputs(instance=instance) set_outputs_refs(instance=instance) set_name(instance=instance, query=Experiment.all) if not instance.specification or not instance.specification.build: return if instance.is_independent: assign_code_reference(instance) else: instance.code_reference = instance.experiment_group.code_reference
def job_pre_save(sender, **kwargs): instance = kwargs['instance'] set_tags(instance=instance) set_persistence(instance=instance) set_outputs(instance=instance) set_outputs_refs(instance=instance) # Add code reference # Check if : # the job is new # that it has an build section # that is not an external repo (because we did not clone it yet) # if the instance has a primary key then is getting updated condition = (instance.code_reference or not instance.project.has_code) if condition: return assign_code_reference(instance)