mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Unparenting BZ2File, as discussed in SF patch #661796.
* Modules/bz2module.c (BZ2FileObject): Now the structure includes a pointer to a file object, instead of "inheriting" one. Also, some members were copied from the PyFileObject structure to avoid dealing with the internals of that structure from outside fileobject.c. (Util_GetLine,Util_DropReadAhead,Util_ReadAhead,Util_ReadAheadGetLineSkip, BZ2File_write,BZ2File_writelines,BZ2File_init,BZ2File_dealloc, BZ2Comp_dealloc,BZ2Decomp_dealloc): These functions were adapted to the change above. (BZ2File_seek,BZ2File_close): Use PyObject_CallMethod instead of getting the function attribute locally. (BZ2File_notsup): Removed, since it's not necessary anymore to overload truncate(), and readinto() with dummy functions. (BZ2File_methods): Added xreadlines() as an alias to BZ2File_getiter, and removed truncate() and readinto(). (BZ2File_get_newlines,BZ2File_get_closed,BZ2File_get_mode,BZ2File_get_name, BZ2File_getset): Implemented getters for "newlines", "mode", and "name". (BZ2File_members): Implemented "softspace" member. (BZ2File_init): Reworked to create a file instance instead of initializing itself as a file subclass. Also, pass "name" object untouched to the file constructor, and use PyObject_CallFunction instead of building the argument tuple locally. (BZ2File_Type): Set tp_new to PyType_GenericNew, tp_members to BZ2File_members, and tp_getset to BZ2File_getset. (initbz2): Do not set BZ2File_Type.tp_base nor BZ2File_Type.tp_new. * Doc/lib/libbz2.tex Do not mention that BZ2File inherits from the file type.
This commit is contained in:
parent
b6e5a0c658
commit
a33d0aa693
2 changed files with 158 additions and 104 deletions
|
@ -23,8 +23,6 @@ Here is a resume of the features offered by the bz2 module:
|
|||
\item \class{BZ2File} class implements universal newline support;
|
||||
\item \class{BZ2File} class offers an optimized line iteration using
|
||||
the readahead algorithm borrowed from file objects;
|
||||
\item \class{BZ2File} class inherits from the builtin file type
|
||||
(\code{issubclass(BZ2File, file)} is \code{True});
|
||||
\item Sequential (de)compression supported by \class{BZ2Compressor} and
|
||||
\class{BZ2Decompressor} classes;
|
||||
\item One-shot (de)compression supported by \function{compress()} and
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue