I wrote a lot of image io stuff for my own projects before I became aware of skimage. I spent some time thinking about how people could add and maintain their own modules, and came up with the following:
io/
__init__.py
tiff.py
read()
write()
png.py
read()
write()
etc. This isn't coded, it was just on my todo. Adding new formats is then a matter of dumping in a file containing read() and write() functions, and importing that in the __init__.py file. This results in very clean syntax:
io.png.read()
There could also be io.read() and io.write() defined in __init__ or some generic name, e.g. io.auto.read(), that would call the right format based on filename.
Thoughts?