[X2Go-Commits] python-x2go.git - build-baikal (branch) updated: 58ece9e00def0c33b67b591eb075b025f59f79d7

X2Go dev team git-admin at x2go.org
Wed Jan 8 15:25:40 CET 2014


The branch, build-baikal has been updated
       via  58ece9e00def0c33b67b591eb075b025f59f79d7 (commit)
      from  84aaee3290745b91dc3629e905c3076c792d2a64 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 x2go/backends/profiles/_file.py |    3 +-
 x2go/inifiles.py                |   60 +++++++++++++--------------------------
 x2go/log.py                     |    7 ++++-
 x2go/utils.py                   |    8 +++++-
 x2go/xserver.py                 |    2 +-
 5 files changed, 34 insertions(+), 46 deletions(-)

The diff of changes is:
diff --git a/x2go/backends/profiles/_file.py b/x2go/backends/profiles/_file.py
index 37e94a4..4c4ea2c 100644
--- a/x2go/backends/profiles/_file.py
+++ b/x2go/backends/profiles/_file.py
@@ -72,8 +72,7 @@ class X2goSessionProfilesFILE(inifiles.X2goIniFile):
             for key, default_value in self.defaultSessionProfile.iteritems():
                 if not self.iniConfig.has_option(session_profile, key):
                     self._storeValue(session_profile, key, default_value)
-        self._updateDataObject()
-
+        
     def __call__(self, profile_id_or_name):
         """\
         STILL UNDOCUMENTED
diff --git a/x2go/inifiles.py b/x2go/inifiles.py
index 2e1fbac..b20b9fc 100644
--- a/x2go/inifiles.py
+++ b/x2go/inifiles.py
@@ -92,6 +92,12 @@ class X2goIniFile(object):
         self.iniConfig = ConfigParser.SafeConfigParser()
         self.iniConfig.optionxform = str
 
+        for file_name in config_files:
+            if file_name.startswith(_current_home):
+                if not os.path.exists(file_name):
+                    utils.touch_file(file_name)
+                break
+
         self.logger('proposed config files are %s' % config_files, log.loglevel_INFO, )
         _found_config_files = self.iniConfig.read(config_files)
         self.logger('config files found: %s' % _found_config_files or 'none', log.loglevel_INFO, )
@@ -104,8 +110,7 @@ class X2goIniFile(object):
 
         self.config_files = _found_config_files
         self._fill_defaults()
-        self._updateDataObject()
-
+        
     def __repr__(self):
         result = 'X2goIniFile('
         for p in dir(self):
@@ -129,14 +134,13 @@ class X2goIniFile(object):
         @type value: C{str}, C{list}, C{bool}, ...
 
         """
-        if type(value) is types.UnicodeType:
-            self.iniConfig.set(section,key,value)
-        elif type(value) is types.StringType:
-            self.iniConfig.set(section,key,unicode(value))
-        elif type(value) is types.BooleanType:
-            self.iniConfig.set(section,key,unicode(int(value)))
+        if type(value) == type(u''):
+            value = value.encode(utils.get_encoding())
+            
+        if type(value) is types.BooleanType:
+            self.iniConfig.set(section, key, str(int(value)))
         else:
-            self.iniConfig.set(section,key,unicode(value))
+            self.iniConfig.set(section, key, str(value))
 
     def _fill_defaults(self):
         """\
@@ -152,8 +156,7 @@ class X2goIniFile(object):
                 if not self.iniConfig.has_section(section):
                     self.iniConfig.add_section(section)
                 self._storeValue(section, key, value)
-        self._updateDataObject
-
+        
     def update_value(self, section, key, value):
         """\
         Change a value for a given section and key. This method
@@ -171,8 +174,7 @@ class X2goIniFile(object):
             self.iniConfig.add_section(section)
         self._storeValue(section, key, value)
         self.write_config = True
-        self._updateDataObject()
-
+        
     def write(self):
         """\
         Write the ini file modifications (SafeConfigParser object) from RAM to disk.
@@ -216,6 +218,8 @@ class X2goIniFile(object):
         @rtype: class
 
         """
+        if key_type is None:
+            key_type = self.get_type(section, key)
         if self.iniConfig.has_option(section, key):
             if key_type is types.BooleanType:
                 return self.iniConfig.getboolean(section, key)
@@ -228,37 +232,11 @@ class X2goIniFile(object):
                 else:
                     raise TypeError
             else:
-                return self.iniConfig.get(section, key)
+                _val = self.iniConfig.get(section, key)
+                return _val.decode(utils.get_encoding())
     get = get_value
     __call__ = get_value
 
-    def _updateDataObject(self):
-        """\
-        This routine transfers the ini file's config items into simple
-        object data properties of the form::
-
-           <X2goIniFile instance>.<section_name>.<option_name> = value
-
-        """
-        class ini_section(object):
-            def __str__(self):
-                return self.name
-            def __repr__(self):
-                return "<%s instance: %s>" % (self.__class__, self.name)
-            def __init__(self, name):
-                self.name = name
-            def set_option(self, option_name, value):
-                setattr(self, option_name.lower(), value)
-
-        for section_name in self.iniConfig.sections():
-            section = ini_section(section_name)
-            for option_name in self.iniConfig.options(section.name):
-                if section.name in self.defaultValues and option_name in self.defaultValues[section.name]:
-                    section.set_option(option_name, self.get(section.name, option_name, self.get_type(section.name, option_name)))
-                else:
-                    section.set_option(option_name, self.get(section.name, option_name))
-            setattr(self, section.name.lower(), section)
-
     @property
     def printable_config_file(self):
         """\
diff --git a/x2go/log.py b/x2go/log.py
index 17ef354..7fecb99 100644
--- a/x2go/log.py
+++ b/x2go/log.py
@@ -23,7 +23,8 @@ X2goLogger class - flexible handling of log and debug output.
 __NAME__ = 'x2gologger-pylib'
 
 # modules
-import os, sys
+import os
+import sys
 
 loglevel_NONE = 0
 loglevel_ERROR = 8
@@ -38,6 +39,9 @@ loglevel_DEFAULT = loglevel_ERROR | loglevel_WARN | loglevel_NOTICE
 Default loglevel of X2goLogger objects is: NOTICE & WARN & ERROR
 """
 
+# Python X2go modules
+import utils
+
 class X2goLogger(object):
     """\
     A simple logger class, that is used by all Python X2go classes.
@@ -89,6 +93,7 @@ class X2goLogger(object):
         if loglevel & self.loglevel:
 
             msg = msg.replace('\n', ' ')
+            msg = msg.encode(utils.get_encoding())
 
             if self.tag is not None:
                 self.destination.write('%s[%s] (%s) %s: %s\n' % (self.name, self.progpid, tag, self._loglevel_NAMES[loglevel].upper(), msg))
diff --git a/x2go/utils.py b/x2go/utils.py
index 5624928..b45da47 100644
--- a/x2go/utils.py
+++ b/x2go/utils.py
@@ -25,6 +25,7 @@ __NAME__ = 'x2goutils-pylib'
 
 import sys
 import os
+import locale
 import re
 import types
 import copy
@@ -290,4 +291,9 @@ def detect_unused_port(bind_address='', preferred_port=None):
         ipaddr, port = sock.getsockname()
     return port
 
-
+def get_encoding():
+    try:
+        encoding = locale.getdefaultlocale()[1]
+    except:
+        encoding = sys.getdefaultencoding()
+    return encoding
diff --git a/x2go/xserver.py b/x2go/xserver.py
index 850dcd7..bd31aa3 100644
--- a/x2go/xserver.py
+++ b/x2go/xserver.py
@@ -87,7 +87,7 @@ class X2goClientXConfig(inifiles.X2goIniFile):
         STILL UNDOCUMENTED
 
         """
-        return self.xservers.known_xservers
+        return self.get_value('XServers', 'known_xservers')
 
     @property
     def installed_xservers(self):


hooks/post-receive
-- 
python-x2go.git (Python X2Go Client API)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "python-x2go.git" (Python X2Go Client API).




More information about the x2go-commits mailing list