# evennia.utils.containers

Containers

Containers are storage classes usually initialized from a setting. They represent Singletons and acts as a convenient place to find resources ( available as properties on the singleton)

evennia.GLOBAL_SCRIPTS evennia.OPTION_CLASSES

class `evennia.utils.containers.``Container`

  Bases: `object`

  Base container class. A container is simply a storage object whose properties can be acquired as a property on it. This is generally considered a read-only affair.

  The container is initialized by a list of modules containing callables.

  `storage_modules` = []
  `__init__`()

    Read data from module.

  `load_data`()

    Delayed import to avoid eventual circular imports from inside the storage modules.

  `get`(key, default=None)

    Retrive data by key (in case of not knowing it beforehand).

    Parameters

      - key (str) – The name of the script.

      - default (any, optional) – Value to return if key is not found.

    Returns

      any (any) – The data loaded on this container.

  `all`()

    Get all stored data

    Returns

      scripts (list) – All global script objects stored on the container.

class `evennia.utils.containers.``OptionContainer`

  Bases: `evennia.utils.containers.Container`

  Loads and stores the final list of OPTION CLASSES.

  Can access these as properties or dictionary-contents.

  `storage_modules` = ['evennia.utils.optionclasses']

class `evennia.utils.containers.``GlobalScriptContainer`

  Bases: `evennia.utils.containers.Container`

  Simple Handler object loaded by the Evennia API to contain and manage a game’s Global Scripts. This will list global Scripts created on their own but will also auto-(re)create scripts defined in settings.GLOBAL_SCRIPTS.

  Example

  import evennia evennia.GLOBAL_SCRIPTS.scriptname

  Note

  This does not use much of the BaseContainer since it’s not loading callables from settings but a custom dict of tuples.

  `__init__`()

    Note: We must delay loading of typeclasses since this module may get initialized before Scripts are actually initialized.

  `start`()

    Called last in evennia.__init__ to initialize the container late (after script typeclasses have finished loading).

    We include all global scripts in the handler and make sure to auto-load time-based scripts.

  `load_data`()

    This delayed import avoids trying to load Scripts before they are initialized.

  `get`(key, default=None)

    Retrive data by key (in case of not knowing it beforehand). Any scripts that are in settings.GLOBAL_SCRIPTS that are not found will be recreated on-demand.

    Parameters

      - key (str) – The name of the script.

      - default (any, optional) – Value to return if key is not found at all on this container (i.e it cannot be loaded at all).

    Returns

      any (any) – The data loaded on this container.

  `all`()

    Get all global scripts. Note that this will not auto-start scripts defined in settings.

    Returns

      scripts (list) – All global script objects stored on the container.