Format.
reader
(cls, monkey_patch=True, override=False)[source]¶Decorate a function to act as the reader for a class in this format.
State: Stable as of 0.4.0.
The function should take an argument which will be an implementation
of either io.TextIOBase
or io.BufferedReader
depending on if the format is text or binary, respectively. Any kwargs
given by the user which are not handled by skbio.io.util.open()
will be passed into the function. Any kwarg with a default of
FileSentinel will transform user input for that parameter into a
filehandle or None if not provided.
Parameters: | cls : type or None
monkey_patch : bool, optional
override : bool, optional
|
---|---|
Raises: | DuplicateRegistrationError
|
Examples
>>> from skbio.io.registry import Format, IORegistry
>>> registry = IORegistry()
>>> myformat = Format('myformat')
>>> registry.add_format(myformat)
>>> # If developing a new format for skbio, use the create_format()
>>> # factory instead of the above.
>>> class MyObject:
... def __init__(self, content):
... self.content = content
...
>>> @myformat.reader(MyObject)
... def myformat_reader(fh):
... return MyObject(fh.readlines()[1:])
...
>>> registry.monkey_patch() # If developing skbio, this isn't needed
>>> MyObject.read(["myformat2\n", "some content here!\n"],
... format='myformat').content
['some content here!\n']