SF bug [#460467] file objects should be subclassable.
Preliminary support.  What's here works, but needs fine-tuning.
diff --git a/Misc/NEWS b/Misc/NEWS
index 518e809..1265ee9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -3,6 +3,11 @@
 
 Core
 
+- The builtin file type can be subclassed now.  In the usual pattern,
+  "file" is the name of the builtin type, and file() is a new builtin
+  constructor, with the same signature as the builtin open() function.
+  file() is now the preferred way to open a file.
+
 - In 2.2a3, hash() applied to an instance of a subclass of str or unicode
   always returned 0.  This has been repaired.