cpython/Lib
Carey Metcalfe 78e70be331
gh-70363: Implement `io.IOBase` interface for `SpooledTemporaryFile` (GH-29560)
Since the underlying file-like objects (either `io.BytesIO`,
or a true file object) all implement the `io.IOBase`
interface, the `SpooledTemporaryFile` should as well.

Additionally, since the underlying file object will either be an
instance of an `io.BufferedIOBase` (for binary mode) or an
`io.TextIOBase` (for text mode), methods for these classes were also
implemented.

In every case, the required methods and properties are simply delegated
to the underlying file object.

Co-authored-by: Gary Fernie <Gary.Fernie@skyscanner.net>
Co-authored-by: Inada Naoki <songofacandy@gmail.com>
2022-05-03 21:18:18 +09:00
..
__phello__ bpo-45020: Add more test cases for frozen modules. (gh-28664) 2021-09-30 18:38:52 -06:00
asyncio gh-91880 - fix typo (GH-92069) 2022-04-29 22:23:54 -07:00
collections bpo-26579: Add object.__getstate__(). (GH-2821) 2022-04-06 20:00:14 +03:00
concurrent bpo-46787: Fix `ProcessPoolExecutor exception` memory leak (GH-31408) (#31408) 2022-05-02 14:24:39 -06:00
ctypes gh-91265: Make old ctypes.macholib tests runned by `python -m test` (gh-32094) 2022-04-18 09:27:09 +02:00
curses
dbm bpo-40563: Support pathlike objects on dbm/shelve (GH-21849) 2021-09-10 15:26:16 +03:00
distutils gh-91670: Removes `SO` config variable in `sysconfig.py` (#91671) 2022-04-18 14:01:18 -07:00
email bpo-43323: Fix UnicodeEncodeError in the email module (GH-32137) 2022-04-30 13:17:23 +03:00
encodings bpo-46659: Fix the MBCS codec alias on Windows (GH-31218) 2022-02-22 22:04:07 +01:00
ensurepip Revert "bpo-46986: Upgrade bundled setuptools to 60.9.3 (GH-31820)" (GH-31879) 2022-03-14 16:30:46 -04:00
html bpo-45421: Remove dead code from html.parser (GH-28847) 2021-10-12 10:12:21 -07:00
http bpo-46285: Add command-line option -p/--protocol to module http.server (#30999) 2022-05-02 16:28:45 -06:00
idlelib gh-91098: Use Argument Clinic for Object/classobject.c to fix docstrings (#31711) 2022-04-18 19:56:53 -07:00
importlib gh-91869: Fix tracing of specialized instructions with extended args (GH-91945) 2022-04-27 22:36:34 -06:00
json bpo-46565: `del` loop vars that are leaking into module namespaces (GH-30993) 2022-02-03 11:20:08 +02:00
lib2to3 gh-90971: suppress deprecation warning in `test_lib2to3`(GH-31464) 2022-04-13 07:42:25 -07:00
logging Delete outdated comment in logging module (#31117) 2022-05-02 16:29:03 -06:00
msilib gh-91217: deprecate msilib (GH-91515) 2022-04-14 12:50:11 -07:00
multiprocessing Fix missing `f` prefix on f-strings (GH-91910) 2022-04-27 09:30:54 +03:00
pydoc_data bpo-45995: add "z" format specifer to coerce negative 0 to zero (GH-30049) 2022-04-11 15:34:18 +01:00
re gh-91760: Deprecate group names and numbers which will be invalid in future (GH-91794) 2022-04-30 13:13:46 +03:00
site-packages
sqlite3 Fix typo in the sqlite3 docs (GH-31915) 2022-03-28 11:44:41 -07:00
test gh-70363: Implement `io.IOBase` interface for `SpooledTemporaryFile` (GH-29560) 2022-05-03 21:18:18 +09:00
tkinter bpo-46996: Remove support of Tcl/Tk < 8.5.12 (GH-31839) 2022-03-17 13:05:52 +02:00
tomllib bpo-40059: Add tomllib (PEP-680) (GH-31498) 2022-03-08 09:26:13 +01:00
turtledemo
unittest Simplify testing the warning filename (GH-91868) 2022-04-24 10:23:59 +03:00
urllib Replace with_traceback() with exception chaining and reraising (GH-32074) 2022-03-30 15:28:20 +03:00
venv bpo-43218: Prevent venv creation when the target directory contains a PATH separator. (GH-24530) 2022-04-13 09:07:10 +01:00
wsgiref gh-86178: wsgiref.types: Add missing TypeAlias annotations (GH-91608) 2022-04-16 13:37:02 -07:00
xml bpo-43292: Fix file leak in `ET.iterparse()` when not exhausted (GH-31696) 2022-03-07 11:31:46 +02:00
xmlrpc bpo-47126: Update to canonical PEP URLs specified by PEP 676 (GH-32124) 2022-03-30 12:00:27 +01:00
zoneinfo bpo-46124: Update zoneinfo to rely on importlib.resources traversable API. (GH-30190) 2022-01-21 13:18:31 -08:00
__future__.py
__hello__.py bpo-47084: Clear Unicode cached representations on finalization (GH-32032) 2022-03-22 13:53:51 +01:00
_aix_support.py
_bootsubprocess.py
_collections_abc.py Minor code nit: Move an unrelated statement out of a try clause in Sequence.index (GH-32330) 2022-04-06 13:03:36 -05:00
_compat_pickle.py bpo-46565: `del` loop vars that are leaking into module namespaces (GH-30993) 2022-02-03 11:20:08 +02:00
_compression.py
_markupbase.py
_osx_support.py [codemod] Fix non-matching bracket pairs (GH-28473) 2021-09-22 01:09:00 +02:00
_py_abc.py
_pydecimal.py gh-91291: Accept attributes as keyword arguments in decimal.localcontext (#32242) 2022-04-21 21:27:15 -07:00
_pyio.py gh-91952: Make TextIOWrapper.reconfigure() supports "locale" encoding (GH-91982) 2022-05-01 10:44:14 +09:00
_sitebuiltins.py
_strptime.py
_threading_local.py
_weakrefset.py bpo-26579: Add object.__getstate__(). (GH-2821) 2022-04-06 20:00:14 +03:00
abc.py
aifc.py gh-47061: Deprecate `chunk` (GH-91419) 2022-04-11 15:02:41 -07:00
antigravity.py
argparse.py bpo-39716: Raise on conflicting subparser names. (GH-18605) 2022-04-30 23:04:50 -07:00
ast.py bpo-43224: Implement PEP 646 grammar changes (GH-31018) 2022-03-26 09:55:35 -07:00
asynchat.py bpo-47061: use `warnings._deprecated()` with asynchat, asyncore, and smtpd (GH-32350) 2022-04-06 11:22:39 -07:00
asyncore.py bpo-47061: use `warnings._deprecated()` with asynchat, asyncore, and smtpd (GH-32350) 2022-04-06 11:22:39 -07:00
base64.py bpo-35970: Add help flag to base64 module (GH-28774) 2021-10-06 18:38:43 -07:00
bdb.py
bisect.py
bz2.py bpo-45475: Revert `__iter__` optimization for GzipFile, BZ2File, and LZMAFile. (GH-29016) 2021-10-19 11:51:48 +09:00
cProfile.py bpo-34861: Make cumtime the default sorting key for cProfile (GH-31929) 2022-03-30 12:10:10 +01:00
calendar.py bpo-46659: Enhance LocaleTextCalendar for C locale (GH-31214) 2022-02-24 14:29:08 +01:00
cgi.py bpo-47061: deprecate cgi and cgitb (GH-32410) 2022-04-08 17:15:35 -07:00
cgitb.py bpo-47061: deprecate cgi and cgitb (GH-32410) 2022-04-08 17:15:35 -07:00
chunk.py gh-47061: Deprecate `chunk` (GH-91419) 2022-04-11 15:02:41 -07:00
cmd.py
code.py
codecs.py
codeop.py Remove trailing spaces (GH-31695) 2022-03-05 17:47:00 +02:00
colorsys.py
compileall.py Fixed documentation typo in compileall.py (GH-29912) 2021-12-05 00:38:17 +09:00
configparser.py bpo-46607: Add DeprecationWarning for LegacyInterpolation, deprecated in docs since 3.2 (GH-30927) 2022-04-05 08:15:11 -07:00
contextlib.py bpo-38415: Remove redundant AsyncContextDecorator.__call__ override from _AsyncGeneratorContextManager (GH-30233) 2022-02-26 14:05:20 +02:00
contextvars.py
copy.py bpo-45752: Remove "array" from list of things that cannot be copied in `copy` module docstring (GH-29555) 2021-11-14 04:56:01 -08:00
copyreg.py bpo-26579: Add object.__getstate__(). (GH-2821) 2022-04-06 20:00:14 +03:00
crypt.py gh-91217: deprecate crypt (GH-91459) 2022-04-11 17:02:19 -07:00
csv.py
dataclasses.py Add weakref_slot to dataclass decorator, to allow instances with slots to be weakref-able. (#92160) 2022-05-02 10:36:39 -06:00
datetime.py bpo-26579: Add object.__getstate__(). (GH-2821) 2022-04-06 20:00:14 +03:00
decimal.py
difflib.py Correct method name typo (#91970) 2022-04-27 15:28:56 -06:00
dis.py gh-91276: revert the increase of dis output width (GH-92126) 2022-05-02 16:51:17 +01:00
doctest.py bpo-2604: Make doctest.DocTestCase reset globs in teardown (GH-31932) 2022-03-22 14:01:15 -07:00
enum.py bpo-46477: [Enum] ensure Flag subclasses have correct bitwise methods (GH-30816) 2022-01-22 18:27:52 -08:00
filecmp.py
fileinput.py bpo-45132 Remove deprecated __getitem__ methods (GH-28225) 2021-09-08 13:07:40 +03:00
fnmatch.py bpo-47080: Use atomic groups to simplify fnmatch (GH-32029) 2022-03-21 12:49:43 -05:00
fractions.py bpo-44547: Make Fractions objects instances of typing.SupportsInt (GH-27851) 2021-10-22 00:09:47 +02:00
ftplib.py
functools.py This localization technique is no longer cost effective. (GH-30818) 2022-01-22 20:52:55 -06:00
genericpath.py
getopt.py
getpass.py
gettext.py
glob.py bpo-37578: glob.glob -- added include_hidden parameter (GH-30153) 2021-12-18 06:23:34 -08:00
graphlib.py bpo-45359: Support TopologicalSorter type subscript (GH-28714) 2021-12-08 20:52:57 +02:00
gzip.py gh-90839: Forward gzip.compress() compresslevel to zlib (gh-31215) 2022-04-12 22:46:40 +09:00
hashlib.py bpo-45150: Add hashlib.file_digest() for efficient file hashing (GH-31930) 2022-03-22 02:37:00 -07:00
heapq.py Update: usage doc for heappushpop (GH-91451) 2022-04-17 23:12:33 -05:00
hmac.py
imaplib.py
imghdr.py gh-91217: deprecate imghdr (#91461) 2022-04-13 10:47:41 -07:00
imp.py bpo-45019: Do some cleanup related to frozen modules. (gh-28319) 2021-09-13 16:18:37 -06:00
inspect.py gh-88116: Enhance the inspect frame APIs to use the extended position information (GH-91531) 2022-04-23 03:16:48 +01:00
io.py bpo-46522: fix concurrent.futures and io AttributeError messages (GH-30887) 2022-02-23 02:25:00 +02:00
ipaddress.py bpo-46415: Use f-string for ValueError in ipaddress.ip_{address,network,interface} helper functions (#30642) 2022-05-03 06:12:58 -06:00
keyword.py
linecache.py Fix typos in the Lib directory (GH-28775) 2021-10-06 16:13:48 -07:00
locale.py gh-91954: Emit EncodingWarning from locale and subprocess (GH-91977) 2022-04-30 15:53:29 +09:00
lzma.py bpo-45475: Revert `__iter__` optimization for GzipFile, BZ2File, and LZMAFile. (GH-29016) 2021-10-19 11:51:48 +09:00
mailbox.py
mailcap.py gh-68966: Deprecate the mailcap module (#91951) 2022-04-26 22:43:50 +02:00
mimetypes.py bpo-20392: Fix inconsistency with uppercase file extensions in mimetypes.guess_type (GH-30229) 2022-03-15 15:25:43 +02:00
modulefinder.py bpo-45017: move opcode-related logic from modulefinder to dis (GH-28246) 2021-09-09 14:04:12 +01:00
netrc.py bpo-28806: Continue work: improve the netrc library (GH-26330) 2021-11-17 11:07:54 +02:00
nntplib.py gh-91217: deprecate nntplib (GH-91543) 2022-04-15 12:32:56 -07:00
ntpath.py bpo-46362: Ensure ntpath.abspath() uses the Windows API correctly (GH-30571) 2022-01-13 23:35:42 +00:00
nturl2path.py
numbers.py
opcode.py gh-91869: Fix tracing of specialized instructions with extended args (GH-91945) 2022-04-27 22:36:34 -06:00
operator.py bpo-44019: Add operator.call() to __all__ for the operator module (GH-29110) 2021-10-21 19:05:36 +09:00
optparse.py
os.py Fix missing spaces in os.walk example (GH-29918) 2022-02-17 23:10:33 -05:00
pathlib.py bpo-22276: Change pathlib.Path.glob not to ignore trailing path separator (GH-10349) 2022-04-28 12:45:03 -07:00
pdb.py bpo-46434: Handle missing docstrings in pdb help (GH-30705) 2022-01-21 17:00:48 +00:00
pickle.py Fix typos in the Lib directory (GH-28775) 2021-10-06 16:13:48 -07:00
pickletools.py
pipes.py gh-91217: deprecate-pipes (GH-91779) 2022-04-21 19:28:34 -07:00
pkgutil.py [codemod] Fix non-matching bracket pairs (GH-28473) 2021-09-22 01:09:00 +02:00
platform.py bpo-40280: Emscripten has no support for subprocesses (GH-29872) 2021-12-02 01:17:37 -08:00
plistlib.py bpo-40066: [Enum] skip failing doc test (GH-30637) 2022-01-17 07:18:13 -08:00
poplib.py
posixpath.py bpo-46933: Make pwd module optional (GH-31700) 2022-03-07 13:36:47 +01:00
pprint.py bpo-45557: Fix underscore_numbers in pprint.pprint(). (GH-29129) 2021-10-21 16:42:55 -04:00
profile.py
pstats.py
pty.py
py_compile.py bpo-45428: Fix reading filenames from stdin in py_compile (GH-28848) 2021-10-15 12:38:55 +03:00
pyclbr.py
pydoc.py bpo-46547: remove leaking vars into `pydoc.Helper` namespace (#30957) 2022-05-02 16:25:52 -06:00
queue.py gh-90879: Fix missing parameter for put_nowait() (GH-91514) 2022-04-14 17:23:57 +09:00
quopri.py
random.py bpo-46737: Add default arguments to random.gauss and normalvariate (GH-31360) 2022-02-15 17:12:15 -06:00
reprlib.py bpo-39549: reprlib.Repr uses a “fillvalue” attribute (GH-18343) 2021-09-22 15:45:58 -05:00
rlcompleter.py gh-92032: Add soft keywords to rlcompleter (#92029) 2022-05-02 16:36:29 -06:00
runpy.py bpo-26792: Improve docstrings of runpy module run_functions (#30729) 2022-04-29 12:22:46 -06:00
sched.py
secrets.py bpo-47126: Update to canonical PEP URLs specified by PEP 676 (GH-32124) 2022-03-30 12:00:27 +01:00
selectors.py bpo-46583: remove unused `sys.version_info` check from `selectors` (GH-31023) 2022-02-02 10:15:02 +02:00
shelve.py
shlex.py
shutil.py gh-88513: clarify shutil.copytree's dirs_exist_ok arg (GH-91434) 2022-04-11 17:57:52 -07:00
signal.py bpo-27718: Fix help for the signal module (GH-30063) 2021-12-13 11:21:55 +02:00
site.py bpo-45582: Port getpath[p].c to Python (GH-29041) 2021-12-03 00:08:42 +00:00
smtpd.py bpo-47061: use `warnings._deprecated()` with asynchat, asyncore, and smtpd (GH-32350) 2022-04-06 11:22:39 -07:00
smtplib.py
sndhdr.py gh-91217: deprecate-sndhdr (#91806) 2022-04-22 15:48:03 -07:00
socket.py gh-74166: make all_errors keyword-only (GH-91704) 2022-04-19 18:16:20 +01:00
socketserver.py bpo-40280: Disable AF_UNIX, AF_PACKET, SO_REUSE* on Emscripten (#31829) 2022-03-11 23:25:14 +01:00
sre_compile.py bpo-47152: Convert the re module into a package (GH-32177) 2022-04-02 11:35:13 +03:00
sre_constants.py bpo-47152: Convert the re module into a package (GH-32177) 2022-04-02 11:35:13 +03:00
sre_parse.py bpo-47152: Convert the re module into a package (GH-32177) 2022-04-02 11:35:13 +03:00
ssl.py bpo-40066: [Enum] skip failing doc test (GH-30637) 2022-01-17 07:18:13 -08:00
stat.py
statistics.py The stdev calculation is more accurate computing its own mean (#92220) 2022-05-03 03:41:46 -05:00
string.py bpo-46307: Add string.Template.get_identifiers() method (GH-30493) 2022-01-11 11:15:42 -08:00
stringprep.py
struct.py
subprocess.py gh-91954: Emit EncodingWarning from locale and subprocess (GH-91977) 2022-04-30 15:53:29 +09:00
sunau.py gh-91217: deprecate sunau (GH-91866) 2022-04-25 16:26:43 -07:00
symtable.py
sysconfig.py gh-91670: Removes `SO` config variable in `sysconfig.py` (#91671) 2022-04-18 14:01:18 -07:00
tabnanny.py
tarfile.py bpo-45863: tarfile: don't zero out header fields unnecessarily (GH-29693) 2022-02-09 18:06:19 +01:00
telnetlib.py gh-91217: deprecate telnetlib (GH-91958) 2022-04-26 10:45:08 -07:00
tempfile.py gh-70363: Implement `io.IOBase` interface for `SpooledTemporaryFile` (GH-29560) 2022-05-03 21:18:18 +09:00
textwrap.py bpo-46544: Do not leak `x` and `uspace` in textwrap.TextWrapper (GH-30955) 2022-01-27 13:55:58 +02:00
this.py
threading.py bpo-45735: Promise the long-time truth that `args=list` works (GH-30982) 2022-02-25 22:17:13 -06:00
timeit.py
token.py
tokenize.py bpo-46565: `del` loop vars that are leaking into module namespaces (GH-30993) 2022-02-03 11:20:08 +02:00
trace.py
traceback.py gh-89770: Implement PEP-678 - Exception notes (GH-31317) 2022-04-16 19:59:52 +01:00
tracemalloc.py
tty.py
turtle.py Fix typo in turtle deprecation warning and use warnings._deprecated (#91862) 2022-05-02 10:57:00 -06:00
types.py bpo-46510: Add missing test for types.TracebackType/FrameType. Calculate them directly from the caught exception. (GH-30880) 2022-01-25 18:00:57 +00:00
typing.py gh-91621: Fix typing.get_type_hints for collections.abc.Callable (#91656) 2022-05-02 17:08:28 -06:00
uu.py gh-91217: deprecate uu (GH-92009) 2022-04-27 20:26:33 -07:00
uuid.py bpo-45155: Apply new byteorder default values for int.to/from_bytes (GH-28465) 2021-09-20 13:22:55 -05:00
warnings.py gh-91230: Concise catch_warnings with simplefilter (#91435) 2022-04-23 17:55:22 -07:00
wave.py gh-47061: Deprecate `chunk` (GH-91419) 2022-04-11 15:02:41 -07:00
weakref.py Remove unnecessary registration of weakref.WeakSet to _collections_abc.Set (GH-32211) 2022-03-31 09:11:35 -05:00
webbrowser.py bpo-43137: Revert "webbrowser: Don't run gvfs-open on GNOME" (GH-30417) 2022-01-05 11:53:23 +00:00
xdrlib.py gh-91217: deprecate xdrlib (GH-92066) 2022-04-29 18:22:10 -07:00
zipapp.py
zipfile.py bpo-4833: Add ZipFile.mkdir (GH-32160) 2022-04-05 11:41:38 -07:00
zipimport.py bpo-45183: don't raise an exception when calling zipimport.zipimporter.find_spec() when the zip file is missing and the internal cache has been reset (GH-28435) 2021-09-17 16:48:17 -07:00