1
0
Fork 0
django-mailbox/django_mailbox/transports/generic.py

33 lines
802 B
Python
Raw Normal View History

import sys
2015-07-21 11:50:15 -04:00
import six
from .base import EmailTransport
class GenericFileMailbox(EmailTransport):
_variant = None
_path = None
def __init__(self, path):
super(GenericFileMailbox, self).__init__()
2015-07-21 11:50:15 -04:00
if six.PY2:
self._path = path.encode(
sys.getfilesystemencoding()
)
else:
self._path = path
def get_instance(self):
return self._variant(self._path)
def get_message(self, condition=None):
repository = self.get_instance()
repository.lock()
for key, message in repository.items():
if condition and not condition(message):
continue
repository.remove(key)
yield message
repository.flush()
repository.unlock()