Terminology

Originally, Flare was developed for ViUR. Because of these roots, some terms or objects may cause confusion without further explanation.

Lets start with a quick overview of some main components.

config.py

This is a central location where you can store data or information that needs to be shared by the entire application. Some Examples are

  • paths

  • caches

  • configurations

  • versions

network.py

The default format used for data exchange is json. Each query is made via the NetworkService class in network.py.

views

Views are used to divide content within the application. There is always one view that is active. They are saved after their instantiation in a object and are only hooked into the DOM when this view is activated. A view can contain multiple widgets that replace the existing content when activated.

safeeval

Executes a string containing Python code. The possible operations are strongly limited for security reasons. With safeeval flare-if can show and hide content without the need of coding, and {{ expressions }} can directly be interpreted inside of HTML-code.

icons

The icon class can use any of the common image types. In most cases, you want to have icons that match the font color. In this case flare requires svg icons.

priorityqueues

PriorityQueues are used to provide a plugin capability. For each type there is somewhere centrally an instance of such a PriorityQueue. In this the options are added with the insert function and prioritized with a numerical value and validation function. If now a suitable option is searched, the select function is called with parameters which are passed to the validation function. The first matching option in the prioritized list is then returned.

Only relevant if used with ViUR

bones

Bones are in the ViUR ecosystem data field definitions. There are different types and hold besides the type information also display information like a description and tooltips.

moduleInfo

Modules are the controllers of a ViUR application, and implement the application logic. In the case of relations, information about the target module may be required, which can be found in the module info.