# 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