Move importlib.abc.SourceLoader to _bootstrap.
Required updating code relying on other modules to switch to _bootstrap's
unique module requirements. This led to the realization that
get_code was being too liberal in its exception catching when calling set_data
by blindly grabbing IOError. Shifted the responsibility of safely ignoring
writes to a read-only path to set_data.
Importlib is still not relying on SourceLoader yet; requires creating a
SourcelessLoader and updating the source finder.
diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst
index 300653a..008df09 100644
--- a/Doc/library/importlib.rst
+++ b/Doc/library/importlib.rst
@@ -248,7 +248,8 @@
.. method:: set_data(self, path, data)
Optional abstract method which writes the specified bytes to a file
- path.
+ path. When writing to the path fails because the path is read-only, do
+ not propagate the exception.
.. method:: get_code(self, fullname)