~bioxy/awn-extras/sabnzbd-applet

« back to all changes in this revision

Viewing changes to shared/python/awnlib.py

  • Committer: onox
  • Date: 2011-02-16 14:03:44 UTC
  • Revision ID: denkpadje@gmail.com-20110216140344-fbeb6bnaqy3e76ca
awnlib: don't throw the original exception away if a setting cannot be retrieved or stored

Show diffs side-by-side

added added

removed removed

Lines of Context:
848
848
 
849
849
        """
850
850
        value = self.__client.get(key)
 
851
 
851
852
        if type(value) is str and value[:9] == "!pickle;\n":
852
853
            value = pickle.loads(value[9:])
853
854
        return value
865
866
            value = "!pickle;\n%s" % pickle.dumps(value)
866
867
        elif type(value) is long:
867
868
            value = int(value)
 
869
 
868
870
        self.__client.set(key, value)
869
871
 
870
872
    def __contains__(self, key):
892
894
 
893
895
            """
894
896
            self.__config_object = None
 
897
            self.__parent = None
895
898
 
896
899
            type_client = type(client)
897
900
            if client is None:
898
901
                self.__client = awn.config_get_default(awn.PANEL_ID_DEFAULT)
899
 
            elif type_client is AppletSimple or type_client is AppletMultiple:
 
902
            elif type_client in (AppletSimple, AppletMultiple):
900
903
                self.__client = awn.config_get_default_for_applet(client)
901
904
 
902
905
                def applet_deleted_cb(applet):
903
906
                    self.__client.remove_instance()
904
907
                client.connect("applet-deleted", applet_deleted_cb)
 
908
                
 
909
                self.__parent = client
905
910
            elif type_client is config.Client:
906
911
                self.__client = client
907
912
            else:
936
941
                try:
937
942
                    self.__client.set_value(self.__folder, key, value)
938
943
                except:
939
 
                    raise ValueError("Could not set new value of '%s'" % key)
 
944
                    name = self.__parent.meta["name"] if self.__parent is not None else "UNKNOWN" 
 
945
                    print "%s: Could not set new value for key '%s'" % (name, key)
 
946
                    raise
940
947
 
941
948
        def get(self, key):
942
949
            """Get an existing key's value.
953
960
                try:
954
961
                    return self.__client.get_value(self.__folder, key)
955
962
                except:
956
 
                    raise ValueError("'%s' does not exist" % key)
 
963
                    name = self.__parent.meta["name"] if self.__parent is not None else "UNKNOWN"
 
964
                    print "%s: key '%s' does not exist" % (name, key)
 
965
                    raise
957
966
 
958
967
        def contains(self, key):
959
968
            """Test if the key maps to a value.