.. _text_based_suite_definition: Text based suite definition //////////////////////////// ecFlow manages suites. A suite is a collection of families, and a family is a collection of tasks and possibly other families. Tasks may have events, meters, labels, etc. When it does not matter which one of the terms suite, family, or task is in question, the generic term **node** refers to any of them. By default, suites are independent of each other. If necessary, suites can have **cross-suite dependencies** . These are best avoided since ideally, a suite is a self-contained unit. There is an analogy between a suite definition and the UNIX file system hierarchy (see :numref:`Table %s`). .. list-table:: Suite definition analogy with UNIX file system :header-rows: 1 :widths: 20 80 :name: suite_def_analogy_table * - Suite - File system * - Family - Directory * - Task - File (executable) * - Event - Signal (not part of the file system) * - Meter - Numerical signal (not part of the file system) * - Label - Text signal (not part of the file system) * - Dependency - Soft link (can span file systems) Normally a suite is defined using a file, or via the python API. Suite definitions are best stored in a suite per file. A suite definition is normally placed in a definition file. Typically the name for the file is *suitename.def* , but any name may be used. It is good practice to list all the attributes for families and suites before any tasks are defined. This makes the reading of the suite-definition file easier. There are two ways of defining a suite. - Using the ASCII suite definition file format - Using the :ref:`python_api` .. toctree:: :maxdepth: 1 suite_definition_file_format/index.rst dependencies/index.rst attributes/index.rst external/index.rst