# spacepy.pycdf.Attr

class `spacepy.pycdf.``Attr`(cdf_file, attr_name, create=False)

  An attribute, g or z, for a CDF

  Warning

  This class should not be used directly, but only in its subclasses, `gAttr` and `zAttr`. The methods listed here are safe to use in the subclasses.

  Represents a CDF attribute, providing access to the Entries in a format that looks like a Python list. General list information is available in the python docs: 1, 2, 3.

  An introduction to CDF attributes can be found in section 2.4 of the CDF user’s guide.

  Each element of the list is a single Entry of the appropriate type. The index to the elements is the Entry number.

  Multi-dimensional slicing is not supported; an Entry with multiple elements will have all elements returned (and can thus be sliced itself). Example:

      >>> first_three = attribute[5, 0:3] #will fail
      >>> first_three = attribute[5][0:3] #first three elements of 5th Entry

  `append`(data) | Add an entry to end of attribute
  `has_entry`(number) | Check if this attribute has a particular Entry number
  `insert`(index, data) | Insert an entry at a particular number
  `max_idx`() | Maximum index of Entries for this Attr
  `new`(data[, type, number]) | Create a new Entry in this Attribute
  `number`() | Find the attribute number for this attribute
  `rename`(new_name) | Rename this attribute
  `type`(number[, new_type]) | Find or change the CDF type of a particular Entry number

  `append`(data)

    Add an entry to end of attribute

    Puts entry after last defined entry (does not fill gaps)

    Parameters
      data :

        data for the new entry

  `has_entry`(number)

    Check if this attribute has a particular Entry number

    Parameters
      number int

        number of Entry to check or change

    Returns
      out bool

        True if `number` is a valid entry number; False if not

  `insert`(index, data)

    Insert an entry at a particular number

    Inserts entry at particular number while moving all subsequent entries to one entry number later. Does not close gaps.

    Parameters
      index int

        index where to put the new entry

      data :

        data for the new entry

  `max_idx`()

    Maximum index of Entries for this Attr

    Returns
      out int

        maximum Entry number

  `new`(data, type=None, number=None)

    Create a new Entry in this Attribute

    Note

    If `number` is provided and an Entry with that number already exists, it will be overwritten.

    Parameters
      data

        data to put in the Entry

    Other Parameters
      type int

        type of the new Entry, from `const` (otherwise guessed from `data`)

      number int

        Entry number to write, default is lowest available number.

  `number`()

    Find the attribute number for this attribute

    Returns
      out int

        attribute number

  `rename`(new_name)

    Rename this attribute

    Renaming a zAttribute renames it for all zVariables in this CDF!

    Parameters
      new_name str

        the new name of the attribute

  `type`(number, new_type=None)

    Find or change the CDF type of a particular Entry number

    Parameters
      number int

        number of Entry to check or change

    Returns
      out int

        CDF variable type, see `const`

    Other Parameters
      new_type

        type to change this Entry to, from `const`. Omit to only check type.

    Notes

    If changing types, old and new must be equivalent, see CDF User’s Guide section 2.5.5 pg. 57