def next_step(self): latest_step = None with contextlib.suppress(errors.NoLatestStepError): latest_step = self.latest_step() next_step = steps.next_step(latest_step) if not next_step: raise errors.NoNextStepError(self.name) return next_step
def _cleanup_common_directories(config, project_options): max_step = None for part in config.all_parts: with contextlib.suppress(errors.NoLatestStepError): step = part.latest_step() if not max_step or step > max_step: max_step = step next_step = steps.next_step(max_step) if next_step: _cleanup_common_directories_for_step(next_step, project_options)
def mark_dependency_change(self, dependency_name, changed_step): if changed_step <= steps.STAGE: dirty_step = steps.next_step(None) else: dirty_step = changed_step state = states.get_state(self.plugin.statedir, dirty_step) if state: state.changed_dependencies.append({ 'name': dependency_name, 'step': changed_step.name }) self.mark_done(dirty_step, state) return True return False
def _clean_parts(part_names, step, config, staged_state, primed_state): if not step: step = steps.next_step(None) for part_name in part_names: resulting_dirty_parts = _clean_part(part_name, step, config, staged_state, primed_state) parts_not_being_cleaned = resulting_dirty_parts.difference(part_names) if parts_not_being_cleaned: logger.warning( 'Cleaned {!r}, which makes the following {} out of date: ' '{}'.format( part_name, formatting_utils.pluralize(parts_not_being_cleaned, 'part', 'parts'), formatting_utils.humanize_list(parts_not_being_cleaned, 'and')))
def _clean_parts(part_names, step, config, staged_state, primed_state): if not step: step = steps.next_step(None) for part_name in part_names: dirty_parts = _clean_part(part_name, step, config, staged_state, primed_state) dirty_part_names = {p.name for p in dirty_parts} parts_not_being_cleaned = dirty_part_names.difference(part_names) if parts_not_being_cleaned: logger.warning( "Cleaned {!r}, which makes the following {} out of date: " "{}".format( part_name, formatting_utils.pluralize( parts_not_being_cleaned, "part", "parts" ), formatting_utils.humanize_list(parts_not_being_cleaned, "and"), ) )
def test_next_step_handles_none(self): self.assertThat(steps.next_step(None), Equals(steps.PULL))