VMM: moved some non-init functions to the new common module. v0.6.x
authorPascal Volk <neverseen@users.sourceforge.net>
Sat, 24 Apr 2010 02:49:45 +0000
branchv0.6.x
changeset 262 6eea85d8b91d
parent 261 1c2241dde942
child 263 07fdc93dde9f
VMM: moved some non-init functions to the new common module. Adjusted imports in the Config and Handler module.
VirtualMailManager/Config.py
VirtualMailManager/Handler.py
VirtualMailManager/__init__.py
VirtualMailManager/common.py
--- a/VirtualMailManager/Config.py	Fri Apr 23 03:18:44 2010 +0000
+++ b/VirtualMailManager/Config.py	Sat Apr 24 02:49:45 2010 +0000
@@ -14,7 +14,7 @@
      ParsingError, RawConfigParser
 from cStringIO import StringIO# TODO: move interactive stff to cli
 
-from VirtualMailManager import exec_ok, get_unicode, is_dir
+from VirtualMailManager.common import exec_ok, get_unicode, is_dir
 from VirtualMailManager.constants.ERROR import CONF_ERROR
 from VirtualMailManager.errors import ConfigError
 
--- a/VirtualMailManager/Handler.py	Fri Apr 23 03:18:44 2010 +0000
+++ b/VirtualMailManager/Handler.py	Sat Apr 24 02:49:45 2010 +0000
@@ -21,10 +21,11 @@
 from pyPgSQL import PgSQL  # python-pgsql - http://pypgsql.sourceforge.net
 
 import VirtualMailManager.constants.ERROR as ERR
-from VirtualMailManager import ENCODING, exec_ok, set_configuration
+from VirtualMailManager import ENCODING, set_configuration
 from VirtualMailManager.Account import Account
 from VirtualMailManager.Alias import Alias
 from VirtualMailManager.AliasDomain import AliasDomain
+from VirtualMailManager.common import exec_ok
 from VirtualMailManager.Config import Config as Cfg
 from VirtualMailManager.Domain import Domain, ace2idna, get_gid
 from VirtualMailManager.EmailAddress import EmailAddress
--- a/VirtualMailManager/__init__.py	Fri Apr 23 03:18:44 2010 +0000
+++ b/VirtualMailManager/__init__.py	Sat Apr 24 02:49:45 2010 +0000
@@ -9,23 +9,16 @@
 """
 
 import gettext
-import os
 import locale
 
-
-from VirtualMailManager.constants.ERROR import \
-     NOT_EXECUTABLE, NO_SUCH_BINARY, NO_SUCH_DIRECTORY
 from VirtualMailManager.constants.version import __author__, __date__, \
      __version__
-from VirtualMailManager.errors import VMMError
-
 
 __all__ = [
     # version information from VERSION
     '__author__', '__date__', '__version__',
     # defined stuff
-    'ENCODING', 'Configuration', 'exec_ok', 'expand_path', 'get_unicode',
-    'is_dir', 'set_configuration',
+    'ENCODING', 'Configuration', 'set_configuration',
 ]
 
 
@@ -42,9 +35,6 @@
 gettext.install('vmm', '/usr/local/share/locale', unicode=1)
 
 
-_ = lambda msg: msg
-
-
 def set_configuration(cfg_obj):
     """Assigns the *cfg_obj* to the global `Configuration`.
     *cfg_obj* has to be a `VirtualMailManager.Config.Config` instance."""
@@ -52,52 +42,3 @@
     assert isinstance(cfg_obj, Config)
     global Configuration
     Configuration = cfg_obj
-
-
-def get_unicode(string):
-    """Converts `string` to `unicode`, if necessary."""
-    if isinstance(string, unicode):
-        return string
-    return unicode(string, ENCODING, 'replace')
-
-
-def expand_path(path):
-    """Expands paths, starting with ``.`` or ``~``, to an absolute path."""
-    if path.startswith('.'):
-        return os.path.abspath(path)
-    if path.startswith('~'):
-        return os.path.expanduser(path)
-    return path
-
-
-def is_dir(path):
-    """Checks if `path` is a directory.
-
-    Throws a `VMMError` if `path` is not a directory.
-
-    """
-    path = expand_path(path)
-    if not os.path.isdir(path):
-        raise VMMError(_(u"'%s' is not a directory") % get_unicode(path),
-                       NO_SUCH_DIRECTORY)
-    return path
-
-
-def exec_ok(binary):
-    """Checks if the `binary` exists and if it is executable.
-
-    Throws a `VMMError` if the `binary` isn't a file or is not
-    executable.
-
-    """
-    binary = expand_path(binary)
-    if not os.path.isfile(binary):
-        raise VMMError(_(u"'%s' is not a file") % get_unicode(binary),
-                       NO_SUCH_BINARY)
-    if not os.access(binary, os.X_OK):
-        raise VMMError(_(u"File is not executable: '%s'") %
-                       get_unicode(binary), NOT_EXECUTABLE)
-    return binary
-
-
-del _
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/VirtualMailManager/common.py	Sat Apr 24 02:49:45 2010 +0000
@@ -0,0 +1,72 @@
+# -*- coding: UTF-8 -*-
+# Copyright (c) 2010, Pascal Volk
+# See COPYING for distribution information.
+
+"""
+    VirtualMailManager.common
+
+    Some common functions
+"""
+
+import os
+
+from VirtualMailManager import ENCODING
+from VirtualMailManager.constants.ERROR import \
+     NOT_EXECUTABLE, NO_SUCH_BINARY, NO_SUCH_DIRECTORY
+from VirtualMailManager.errors import VMMError
+
+_ = lambda msg: msg
+
+
+def expand_path(path):
+    """Expands paths, starting with ``.`` or ``~``, to an absolute path."""
+    if path.startswith('.'):
+        return os.path.abspath(path)
+    if path.startswith('~'):
+        return os.path.expanduser(path)
+    return path
+
+
+def get_unicode(string):
+    """Converts `string` to `unicode`, if necessary."""
+    if isinstance(string, unicode):
+        return string
+    return unicode(string, ENCODING, 'replace')
+
+
+def is_dir(path):
+    """Checks if `path` is a directory.
+
+    Throws a `VMMError` if `path` is not a directory.
+    """
+    path = expand_path(path)
+    if not os.path.isdir(path):
+        raise VMMError(_(u"'%s' is not a directory") % get_unicode(path),
+                       NO_SUCH_DIRECTORY)
+    return path
+
+
+def exec_ok(binary):
+    """Checks if the `binary` exists and if it is executable.
+
+    Throws a `VMMError` if the `binary` isn't a file or is not
+    executable.
+    """
+    binary = expand_path(binary)
+    if not os.path.isfile(binary):
+        raise VMMError(_(u"'%s' is not a file") % get_unicode(binary),
+                       NO_SUCH_BINARY)
+    if not os.access(binary, os.X_OK):
+        raise VMMError(_(u"File is not executable: '%s'") %
+                       get_unicode(binary), NOT_EXECUTABLE)
+    return binary
+
+
+def version_hex(version_string):
+    """Convert the version string '1.2.3' to an int.
+    hex(version_hex('1.2.3')) -> '0x10203'
+    """
+    major, minor, patch = map(int, version_string.split('.'))
+    return (major << 16) + (minor << 8) + patch
+
+del _