From 34a915a0633318e445fa5fe810b587c9d2f0bae3 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Fri, 5 Apr 2019 12:44:53 +0200 Subject: [PATCH] clockify actions try to import Clockify API and won't crash if not successful --- pype/plugins/launcher/actions/ClockifyStart.py | 11 +++++++++-- pype/plugins/launcher/actions/ClockifySync.py | 14 +++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pype/plugins/launcher/actions/ClockifyStart.py b/pype/plugins/launcher/actions/ClockifyStart.py index d0d1bb48f3..78a8b4e1b6 100644 --- a/pype/plugins/launcher/actions/ClockifyStart.py +++ b/pype/plugins/launcher/actions/ClockifyStart.py @@ -1,6 +1,10 @@ from avalon import api, io -from pype.clockify import ClockifyAPI from pype.api import Logger +try: + from pype.clockify import ClockifyAPI +except Exception: + pass + log = Logger.getLogger(__name__, "clockify_start") @@ -10,10 +14,13 @@ class ClockifyStart(api.Action): label = "Clockify - Start Timer" icon = "clockify_icon" order = 500 - clockapi = ClockifyAPI() + + exec("try: clockapi = ClockifyAPI()\nexcept: clockapi = None") def is_compatible(self, session): """Return whether the action is compatible with the session""" + if self.clockapi is None: + return False if "AVALON_TASK" in session: return True return False diff --git a/pype/plugins/launcher/actions/ClockifySync.py b/pype/plugins/launcher/actions/ClockifySync.py index d8c69bc768..c50fbc4b25 100644 --- a/pype/plugins/launcher/actions/ClockifySync.py +++ b/pype/plugins/launcher/actions/ClockifySync.py @@ -1,5 +1,8 @@ from avalon import api, io -from pype.clockify import ClockifyAPI +try: + from pype.clockify import ClockifyAPI +except Exception: + pass from pype.api import Logger log = Logger.getLogger(__name__, "clockify_sync") @@ -10,11 +13,16 @@ class ClockifySync(api.Action): label = "Sync to Clockify" icon = "clockify_white_icon" order = 500 - clockapi = ClockifyAPI() - have_permissions = clockapi.validate_workspace_perm() + exec( + "try:\n\tclockapi = ClockifyAPI()" + "\n\thave_permissions = clockapi.validate_workspace_perm()" + "\nexcept:\n\tclockapi = None" + ) def is_compatible(self, session): """Return whether the action is compatible with the session""" + if self.clockapi is None: + return False return self.have_permissions def process(self, session, **kwargs):