The example extractor implementation declares a signature that contains _=None. I find this confusing. It corresponds to the output_location: Optional[Union[IO, str] argument of the base class.
To make this connection is important for understanding the description in http://docs.datalad.org/projects/metalad/en/latest/user_guide/writing-extractors.html#extract
I believe this makes things needlessly complex. Why not simply spell things out and add a comment that it is used, because of DataOutputCategory.IMMEDIATE