Make IOBase (and hence all other classes in io.py) use ABCMeta as its metaclass,
so you can use their class .register() method to register virtual subclasses.
diff --git a/Lib/io.py b/Lib/io.py
index 40ea687..40c2186 100644
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -31,6 +31,7 @@
            "BufferedRandom", "TextIOBase", "TextIOWrapper"]
 
 import os
+import abc
 import sys
 import codecs
 import _fileio
@@ -178,7 +179,7 @@
     pass
 
 
-class IOBase:
+class IOBase(metaclass=abc.ABCMeta):
 
     """Base class for all I/O classes.