armi.apps module

The base ARMI App class.

This module defines the App class, which is used to configure the ARMI Framework for a specific application. An App implements a simple interface for customizing much of the Framework’s behavior.

Historical Fun Fact

This pattern is used by many frameworks as a way of encapsulating what would otherwise be global state. The ARMI Framework has historically made heavy use of global state (e.g., armi.nucDirectory.nuclideBases), and it will take quite a bit of effort to refactor the code to access such things through an App object. We are planning to do this, but for now this App class is somewhat rudimentary.

class armi.apps.App[source]

Bases: object

The main point of customization for the ARMI Framework.

The App class is intended to be subclassed in order to customize the functionality and look-and-feel of the ARMI Framework for a specific use case.

This mostly initializes the default plugin manager. Subclasses are free to adopt this plugin manager and register more plugins of their own, or to throw it away and start from scratch if they do not wish to use the default Framework plugins.

For a description of the things that an ARMI plugin can do, see the armi.plugins module.

name = 'ARMI'
property pluginManager

Return the App’s PluginManager

property splashText

Return a textual splash screen.

Specific applications will want to customize this, but by default the ARMI one is produced.