1import tempfile
2import os
3
4
5class BaseTransport(object):
6    def __init__(self):
7        # these assignments makes pylint happy
8        self.body_file = None
9        self.body_path = None
10
11    def reset(self):
12        self.body_file = None
13        self.body_path = None
14
15    def setup_body_file(self, storage_dir, storage_filename, create_dir=False):
16        if create_dir:
17            if not os.path.exists(storage_dir):
18                os.makedirs(storage_dir)
19        if storage_filename is None:
20            handle, path = tempfile.mkstemp(dir=storage_dir)
21            self.body_file = os.fdopen(handle, 'wb')
22        else:
23            path = os.path.join(storage_dir, storage_filename)
24            self.body_file = open(path, 'wb')
25        self.body_path = path
26        return self.body_file, self.body_path
27