Introduction to Python Floe development

Orion® is a workflow engine that enables you to create repeatable workflows, to enhance reliability and flexibility. Each unit of computation in Orion is called a Cube. Cubes receive and send messages to other Cubes to perform work. A workflow made up of a set of connected cubes is called a Floe.

This guide concentrates on the development of Floes in Python. Python development is available only to Managed Service customers. Chemists can accomplish much of their work in Orion by use of Floes prepared and provided by OpenEye. To develop solutions in Orion SaaS stacks, using Floes and Cubes developed by OpenEye, see the Orion Suites and Modules User Guide.

For tutorials about development of Orion workflows, see the tutorial section of this documentation.

Creating new Cubes is a more demanding development task that you may not need to do in order to use most of the power of Orion. Details about cube development are addressed elsewhere in this documentation.

Orion Platform

Orion Platform is the only dependency most developers need to install to handle their development needs. Packages like Artemis (for testing) and Floe, for development of floes, are part of Orion Platform. These constituents are introduced below and documented more fully under Orion Platform. The Orion Platform library also includes a variety of Cubes for managing collections, files, and datasets.

For more information on the APIs, see Orion APIs for Python Programmers.

Data Record

Data Record defines data structures containing strongly-typed fields, which are the primary data structure used in Cubes. The tight integration of records with the Orion UI allows for fine-grained control over your data and how they are represented.

DRConvert

DRConvert provides utilities to convert various molecular formats (OEB, SDF, MOL2, etc) into DataRecords. This can be done either on the command line or in a cube.

Floe

Floe provides the APIs to define, test, and run Cubes and Floes. All of the fundamental Parameters, Utility Cubes, and APIs can be found within this library.

Orion Client

Orion Client is both a Python library and a command line interface that provides access to the Orion APIs. It provides an abstraction for resources in Orion and is coupled to the Orion API version.

For complete documentation on the Orion Client and its command-line interface, see Orion Client.

Artemis

Artemis is a testing framework, built on top of Pytest, that simplifies testing of Floes both locally and in Orion. While not necessary for the development of Cubes and Floes, Artemis can reduce the burden of the developer when moving from local development to Orion.