Skip to content

Commit

Permalink
Refactor ready_for_train in repository update
Browse files Browse the repository at this point in the history
  • Loading branch information
dougppaz committed Oct 4, 2018
1 parent 5122766 commit 5033d97
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
19 changes: 14 additions & 5 deletions bothub/common/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -449,15 +449,24 @@ def requirements_to_train(self):

@property
def ready_for_train(self):
last_trained_update = self.repository.last_trained_update(
language=self.language)
if last_trained_update:
if last_trained_update.use_language_model_featurizer is not \
if self.training_started_at:
return False

previous_update = self.repository.updates.filter(
language=self.language,
by__isnull=False,
training_started_at__isnull=False,
created_at__lt=self.created_at).first()

if previous_update:
if previous_update.use_language_model_featurizer is not \
self.repository.use_language_model_featurizer:
return True
if last_trained_update.use_competing_intents is not \
if previous_update.use_competing_intents is not \
self.repository.use_competing_intents:
return True
if previous_update.failed_at:
return True
return len(self.requirements_to_train) is 0

def validate_init_train(self, by=None):
Expand Down
6 changes: 6 additions & 0 deletions bothub/common/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -752,6 +752,12 @@ def test_be_true_when_deleted_example(self):
self.example_1.delete()
self.assertTrue(self.repository.ready_for_train)

def test_last_train_failed(self):
current_update = self.repository.current_update()
current_update.start_training(self.owner)
current_update.train_fail()
self.assertTrue(self.repository.current_update().ready_for_train)


class RepositoryUpdateReadyForTrain(TestCase):
def setUp(self):
Expand Down

0 comments on commit 5033d97

Please sign in to comment.