register_identifier¶
-
astropy.io.registry.register_identifier(data_format, data_class, identifier, force=False)[source]¶ Associate an identifier function with a specific data type.
Parameters: - data_format : str
The data format identifier. This is the string that is used to specify the data type when reading/writing.
- data_class : classobj
The class of the object that can be written.
- identifier : function
A function that checks the argument specified to
readorwriteto 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, orNoneif the file could not be opened.*args: Positional arguments for thereadorwritefunction.**kwargs: Keyword arguments for thereadorwritefunction.
One or both of
pathorfileobjmay 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.- force : bool, optional
Whether to override any existing function if already present. Default is
False.
Examples
To set the identifier based on extensions, for formats that take a filename as a first argument, you can do for example:
>>> def my_identifier(*args, **kwargs): ... return isinstance(args[0], str) and args[0].endswith('.tbl') >>> register_identifier('ipac', Table, my_identifier)