Page Contents

This Page

Overview

An Enaml application consists of regular Python code, and .enaml files.

A .enaml file describes a GUI as a tree of elements. Each element has associated attributes and an optional identifier. Attributes customize the layout and behaviour of an application, and identifiers allow Python code to access widgets by name.

Enaml parses a hierarchical file (.enaml), then renders it with an available GUI toolkit. Enaml abstracts away toolkit-specific details.

Goals

The goals of the Enaml project are to:

  • Help separate the presentation and content (i.e., MVC)
  • Allow a single script to work across multiple widget toolkits when using the default interfaces.
  • Be extensible and allow adaptation and addition of the base widgets with little effort.
  • Integrate well with Traits
  • Have the ability to integrate with other model frameworks which support the observer pattern.

Prerequisites

Enaml is developed using Python 2.7 and requires recent (2012-current) versions of the following libraries:

Required:

Optional:

Installation

To install the package please check out the source from github

Then install with:

python setup.py install

Alternatively you can work in developing mode:

python setup.py develop

Enaml ships with optional high performance C++ extensions. To build them, an enviroment variable must be set before running setup.py

On Windows:

set BUILD_ENAML_EXTENSIONS=1

On OSX or Linux:

export BUILD_ENAML_EXTENSIONS=1