diff -r c0e1fb1b0145 -r a4aead244f75 doc/source/vmm.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/source/vmm.rst Thu Jun 28 19:26:50 2012 +0000 @@ -0,0 +1,132 @@ +:mod:`VirtualMailManager` --- Initialization code and some functions +===================================================================== + +.. module:: VirtualMailManager + :synopsis: Initialization code and some functions + +.. moduleauthor:: Pascal Volk + +.. toctree:: + :maxdepth: 2 + +When the VirtualMailManager module, or one of its sub modules, is imported, +the following actions will be performed: + + - :func:`locale.setlocale` (with :const:`locale.LC_ALL`) is called, to set + :const:`ENCODING` + - :func:`gettext.install` is called, to have 18N support. + +Constants and data +------------------ + +.. data:: ENCODING + + The systems current character encoding, e.g. ``'UTF-8'`` or + ``'ANSI_X3.4-1968'`` (aka ASCII). + + +Functions +--------- + +.. function:: ace2idna(domainname) + + Converts the idn domain name *domainname* into punycode. + + :param domainname: the domain-ace representation (``xn--…``) + :type domainname: str + :rtype: unicode + +.. function:: check_domainname(domainname) + + Returns the validated domain name *domainname*. + + It also converts the name of the domain from IDN to ASCII, if necessary. + + :param domainname: the name of the domain + :type domainname: :obj:`basestring` + :rtype: str + :raise VirtualMailManager.errors.VMMError: if the domain name is + too long or doesn't look like a valid domain name (label.label.label). + +.. function:: check_localpart(localpart) + + Returns the validated local-part *localpart* of an e-mail address. + + :param localpart: The local-part of an e-mail address. + :type localpart: str + :rtype: str + :raise VirtualMailManager.errors.VMMError: if the local-part is too + long or contains invalid characters. + +.. function:: exec_ok(binary) + + Checks if the *binary* exists and if it is executable. + + :param binary: path to the binary + :type binary: str + :rtype: str + :raise VirtualMailManager.errors.VMMError: if *binary* isn't a file + or is not executable. + +.. function:: expand_path(path) + + Expands paths, starting with ``.`` or ``~``, to an absolute path. + + :param path: Path to a file or directory + :type path: str + :rtype: str + +.. function:: get_unicode(string) + + Converts `string` to `unicode`, if necessary. + + :param string: The string taht should be converted + :type string: str + :rtype: unicode + +.. function:: idn2ascii(domainname) + + Converts the idn domain name *domainname* into punycode. + + :param domainname: the unicode representation of the domain name + :type domainname: unicode + :rtype: str + +.. function:: is_dir(path) + + Checks if *path* is a directory. + + :param path: Path to a directory + :type path: str + :rtype: str + :raise VirtualMailManager.errors.VMMError: if *path* is not a directory. + + +Examples +-------- + + >>> from VirtualMailManager import * + >>> ace2idna('xn--pypal-4ve.tld') + u'p\u0430ypal.tld' + >>> idn2ascii(u'öko.de') + 'xn--ko-eka.de' + >>> check_domainname(u'pаypal.tld') + 'xn--pypal-4ve.tld' + >>> check_localpart('john.doe') + 'john.doe' + >>> exec_ok('usr/bin/vim') + Traceback (most recent call last): + File "", line 1, in + File "./VirtualMailManager/__init__.py", line 93, in exec_ok + NO_SUCH_BINARY) + VirtualMailManager.errors.VMMError: 'usr/bin/vim' is not a file + >>> exec_ok('/usr/bin/vim') + '/usr/bin/vim' + >>> expand_path('.') + '/home/user/hg/vmm' + >>> get_unicode('hello world') + u'hello world' + >>> is_dir('~/hg') + '/home/user/hg' + >>> +