# Library Reference

PyTables implements several classes to represent the different nodes in the object tree. They are named File, Group, Leaf, Table, Array, CArray, EArray, VLArray and UnImplemented. Another one allows the user to complement the information on these different objects; its name is AttributeSet. Finally, another important class called IsDescription allows to build a Table record description by declaring a subclass of it. Many other classes are defined in PyTables, but they can be regarded as helpers whose goal is mainly to declare the data type properties of the different first class objects and will be described at the end of this chapter as well.

An important function, called open_file is responsible to create, open or append to files. In addition, a few utility functions are defined to guess if the user supplied file is a PyTables or HDF5 file. These are called is_pytables_file() and is_hdf5_file(), respectively. There exists also a function called which_lib_version() that informs about the versions of the underlying C libraries (for example, HDF5 or Zlib) and another called print_versions() that prints all the versions of the software that PyTables relies on. Finally, test() lets you run the complete test suite from a Python console interactively.

- Top-level variables and functions
  - Global variables
  - Global functions
- File manipulation class
  - The File Class
- Hierarchy definition classes
  - The Node class
  - The Group class
  - The Leaf class
- Structured storage classes
  - The Table class
- Homogenous storage classes
  - The Array class
  - The CArray class
  - The EArray class
  - The VLArray class
- Link classes
  - The Link class
  - The SoftLink class
  - The ExternalLink class
- Declarative classes
  - The Atom class and its descendants
  - The Col class and its descendants
  - The IsDescription class
  - Description helper functions
  - The AttributeSet class
- Helper classes
  - The Filters class
  - The Index class
  - The IndexArray class
  - The Enum class
  - The UnImplemented class
  - The Unknown class
  - Exceptions module
- General purpose expression evaluator class
  - The Expr class
- Filenode Module
  - Module constants
  - Module functions
  - The RawPyTablesIO base class
  - The ROFileNode class
  - The RAFileNode class