Skip to main content
`Ctrl`+`K`

# 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_class class

      The class of the object that can be written.

    identifier python:function

      A function that checks the argument specified to `read` or `write` to determine whether the input can be interpreted as a table of type `data_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, or `None` if the file could not be opened.

      > - `*args`: Positional arguments for the `read` or `write` function.

      > - `**kwargs`: Keyword arguments for the `read` or `write` function.

      One or both of `path` or `fileobj` may be `None`. If they are both `None`, the identifier will need to work from `args[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

      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)