--- a/VirtualMailManager/transport.py Mon Mar 24 19:22:04 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-# -*- coding: UTF-8 -*-
-# Copyright (c) 2008 - 2014, Pascal Volk
-# See COPYING for distribution information.
-"""
- VirtualMailManager.transport
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- Virtual Mail Manager's Transport class to manage the transport for
- domains and accounts.
-"""
-
-from VirtualMailManager.pycompat import any
-
-_ = lambda msg: msg
-
-
-class Transport(object):
- """A wrapper class that provides access to the transport table"""
- __slots__ = ('_tid', '_transport', '_dbh')
-
- def __init__(self, dbh, tid=None, transport=None):
- """Creates a new Transport instance.
-
- Either tid or transport must be specified. When both arguments
- are given, tid will be used.
-
- Keyword arguments:
- dbh -- a pyPgSQL.PgSQL.connection
- tid -- the id of a transport (int/long)
- transport -- the value of the transport (str)
-
- """
- self._dbh = dbh
- self._tid = 0
- assert any((tid, transport))
- if tid:
- assert not isinstance(tid, bool) and isinstance(tid, (int, long))
- self._load_by_id(tid)
- else:
- assert isinstance(transport, basestring)
- self._transport = transport
- self._load_by_name()
-
- @property
- def tid(self):
- """The transport's unique ID."""
- return self._tid
-
- @property
- def transport(self):
- """The transport's value, ex: 'dovecot:'"""
- return self._transport
-
- def __eq__(self, other):
- if isinstance(other, self.__class__):
- return self._tid == other._tid
- return NotImplemented
-
- def __ne__(self, other):
- if isinstance(other, self.__class__):
- return self._tid != other._tid
- return NotImplemented
-
- def __str__(self):
- return self._transport
-
- def _load_by_id(self, tid):
- """load a transport by its id from the database"""
- dbc = self._dbh.cursor()
- dbc.execute('SELECT transport FROM transport WHERE tid = %s', (tid,))
- result = dbc.fetchone()
- dbc.close()
- if not result:
- raise ValueError('Unknown transport id specified: %r' % tid)
- self._transport = result[0]
- self._tid = tid
-
- def _load_by_name(self):
- """Load a transport by its transport name from the database."""
- dbc = self._dbh.cursor()
- dbc.execute('SELECT tid FROM transport WHERE transport = %s',
- (self._transport,))
- result = dbc.fetchone()
- dbc.close()
- if result:
- self._tid = result[0]
- else:
- self._save()
-
- def _save(self):
- """Save the new transport in the database."""
- dbc = self._dbh.cursor()
- dbc.execute("SELECT nextval('transport_id')")
- self._tid = dbc.fetchone()[0]
- dbc.execute('INSERT INTO transport (tid, transport) VALUES (%s, %s)',
- (self._tid, self._transport))
- self._dbh.commit()
- dbc.close()
-
-del _