VMM: renamed function chk_domainname() -> check_domainname().
Moved EmailAddress.check_localpart() -> VirtualMailManager.check_localpart().
Some small code cleanups in class EmailAddress.
# -*- coding: UTF-8 -*-# Copyright (c) 2008 - 2010, Pascal Volk# See COPYING for distribution information."""Virtual Mail Manager's Transport class to manage the transport fordomains and accounts."""importVirtualMailManager.constants.ERRORasERRfromVirtualMailManager.ExceptionsimportVMMTransportExceptionclassTransport(object):"""A wrapper class that provides access to the transport table"""__slots__=('__id','__transport','_dbh')def__init__(self,dbh,tid=None,transport=None):"""Creates a new Transport instance. Either tid or transport must be specified. Keyword arguments: dbh -- a pyPgSQL.PgSQL.connection tid -- the id of a transport (long) transport -- the value of the transport (str) """self._dbh=dbhiftidisNoneandtransportisNone:raiseVMMTransportException(_('Either tid or transport must be specified.'),ERR.TRANSPORT_INIT)eliftidisnotNone:try:self.__id=long(tid)exceptValueError:raiseVMMTransportException(_('tid must be an int/long.'),ERR.TRANSPORT_INIT)self._loadByID()else:self.__transport=transportself._loadByName()def__eq__(self,other):ifisinstance(other,self.__class__):returnself.__id==other.getID()returnNotImplementeddef__ne__(self,other):ifisinstance(other,self.__class__):returnself.__id!=other.getID()returnNotImplementeddef__str__(self):returnself.__transportdef_loadByID(self):dbc=self._dbh.cursor()dbc.execute('SELECT transport FROM transport WHERE tid = %s',self.__id)result=dbc.fetchone()dbc.close()ifresultisnotNone:self.__transport=result[0]else:raiseVMMTransportException(_('Unknown tid specified.'),ERR.UNKNOWN_TRANSPORT_ID)def_loadByName(self):dbc=self._dbh.cursor()dbc.execute('SELECT tid FROM transport WHERE transport = %s',self.__transport)result=dbc.fetchone()dbc.close()ifresultisnotNone:self.__id=result[0]else:self._save()def_save(self):dbc=self._dbh.cursor()dbc.execute("SELECT nextval('transport_id')")self.__id=dbc.fetchone()[0]dbc.execute('INSERT INTO transport (tid, transport) VALUES (%s, %s)',self.__id,self.__transport)self._dbh.commit()dbc.close()defgetID(self):"""Returns the unique ID of the transport."""returnself.__iddefgetTransport(self):"""Returns the value of transport, ex: 'dovecot:'"""returnself.__transport