File: object-oriented-suites.rst

package info (click to toggle)
ecflow 5.15.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 51,868 kB
  • sloc: cpp: 269,341; python: 22,756; sh: 3,609; perl: 770; xml: 333; f90: 204; ansic: 141; makefile: 70
file content (26 lines) | stat: -rw-r--r-- 976 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.. index::
   single: Object Oriented Suite Design (tutorial)

.. _tutorial-object-oriented-suite-design:

Object Oriented Suites
----------------------

Python's object oriented design features allows considerable flexibility 
in how we design and structure our :term:`suite definition`.

Each suite will have a different set of forces which determine how it should
be designed. 

Lets consider how we would design the tutorial examples in a more object oriented manner. 
We start with some design criteria we must meet.

* The default variables (ECF_HOME,etc) must be configurable and independent of the suites
* New suites must enable automatic job creation checking 
* We need to write out definition as a separate file
* New suites should be able to re-use the "boiler plate" code defined by the above requirements

Here is possible design, that uses inheritance and the template design pattern:

.. literalinclude:: ../src/object-oriented-suites.py
   :language: python