OK, now's the time, y'all out there in AFNIland, who want to do strange and bizarre things to AFNI BRIKs in Python, to speak your mind. That is to say, there are some choices.
I think it's a given that BRIK files must be read in as numpy arrays. However, a bare 3D (or thd) array is rather boring, so it would seem reasonable for an open AFNI BRIK to be represented in the Python world as an object of class Brik. I already have code that makes the HEAD file attributes available as a Python dict, so that would be one attribute (called, perhaps, head) of the class, and the data array would be available, naturally, as the attribute brik.
On the other hand, it might be simpler if afni_open(brikname) returned a tuple consisting of the HEAD dict and the data array. This would be more like BrikLoad on the matlab side. Still, classes have their uses, and there are probably some methods that are commonly associated with BRIK files.
For example, there are some attributes, like matrices, that would naturally be computed as numpy arrays, so it would make sense to access them via class methods. Similarly for things like dimensions.
Also it would be easier to create a new BRIK file with a class. Just create a Brik instance, fill in only the fields that matter with a few method calls, and then invoke the write method.
I'm open to suggestions at this point.