#!/usr/bin/env python
#
# Copyright 2007 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
"""Temporary files.
This module is a replacement for the stock tempfile module in Python,
and provides only in-memory temporary files as implemented by
cStringIO. The only functionality provided is the TemporaryFile
function.
"""
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
__all__ = [
"TemporaryFile",
"NamedTemporaryFile", "mkstemp", "mkdtemp", "mktemp",
"TMP_MAX", "gettempprefix", "tempdir", "gettempdir",
]
TMP_MAX = 10000
template = "tmp"
tempdir = None
def TemporaryFile(mode='w+b', bufsize=-1, suffix="",
prefix=template, dir=None):
"""Create and return a temporary file.
Arguments:
'prefix', 'suffix', 'dir', 'mode', 'bufsize' are all ignored.
Returns an object with a file-like interface. The file is in memory
only, and does not exist on disk.
"""
return StringIO()
def PlaceHolder(*args, **kwargs):
raise NotImplementedError("Only tempfile.TemporaryFile is available for use")
NamedTemporaryFile = PlaceHolder
mkstemp = PlaceHolder
mkdtemp = PlaceHolder
mktemp = PlaceHolder
gettempprefix = PlaceHolder
tempdir = PlaceHolder
gettempdir = PlaceHolder