def update_skill(skill):
     entry = get_skill_state(skill.name, self.device_skill_state)
     if entry:
         entry['beta'] = skill.is_beta
     if skill.update():
         self._invalidate_skills_cache()
         self._device_skill_state = None
         if entry:
             entry['updated'] = time.time()
 def update(self, skill=None, author=None):
     """Update all downloaded skills or one specified skill."""
     if skill is None:
         return self.update_all()
     else:
         if isinstance(skill, str):
             skill = self.find_skill(skill, author)
         skill_state = get_skill_state(skill.name, self.device_skill_state)
         if skill_state:
             skill_state['beta'] = skill.is_beta
         if skill.update():
             # On successful update update the update value
             if skill_state:
                 skill_state['updated'] = time.time()
                 self._invalidate_skills_cache()