register_identifier¶
- astropy.io.registry.register_identifier(data_format, data_class, identifier, force=False)¶
Associate an identifier function with a specific data type.
- Parameters:
- data_format
python:str
The data format identifier. This is the string that is used to specify the data type when reading/writing.
- data_classclass
The class of the object that can be written.
- identifierpython:function
A function that checks the argument specified to
read
orwrite
to determine whether the input can be interpreted as a table of typedata_format
. This function should take the following arguments:origin
: A string"read"
or"write"
identifying whether the file is to be opened for reading or writing.path
: The path to the file.fileobj
: An open file object to read the file’s contents, orNone
if the file could not be opened.
One or both of
path
orfileobj
may beNone
. If they are bothNone
, the identifier will need to work fromargs[0]
.The function should return True if the input can be identified as being of format
data_format
, and False otherwise.- forcebool, optional
Whether to override any existing function if already present. Default is
False
.
- data_format
Examples
To set the identifier based on extensions, for formats that take a filename as a first argument, you can do for example
from astropy.io.registry import register_identifier from astropy.table import Table def my_identifier(*args, **kwargs): return isinstance(args[0], str) and args[0].endswith('.tbl') register_identifier('ipac', Table, my_identifier) unregister_identifier('ipac', Table)