Source overview

From VistrailsWiki
Jump to navigation Jump to search

Source tree overview


These are packages that are distributed with VisTrails but are not maintained by the team.


Here lie the scripts used to build the VisTrails binary packages: Inno Setup files (Windows installer), Debian package scripts, py2app and dmg creation (Mac OS). It also contains some media (splash screen sources, icons).


This directory contains the documentation for the project: the users' guide and related build scripts, and various documents (text files and figures). We are using the reStructuredText format and the Sphinx tool, which have become the standard for Python software packages.


This contains all the standard examples distributed with VisTrails (.vt or .xml files, and .py scripts for the API).


These are additional examples that are not as useful, or used internally, and thus are not distributed in VisTrails releases.


Wrappers allowing the use of VisTrails as an extension for another tool: LaTeX, web server or mediawiki.


Different scripts that are used, or have been used, while working with the VisTrails source tree.


This is the package (in the Python sense) of the application. In it lie all the sources of the program. It has to be on the Python path for VisTrails to run.

With 2.1, we changed the layout of our Python packages: previously, 'core', 'gui', ... would be top-level packages; they are now 'vistrails.core', 'vistrails.gui'. This changes the way the path must be set up, and the syntax that has to be used to import VisTrails packages; safeties are in place to enable old packages that were not adapted to keep functioning (in most cases).


Programmatic access to the software. See also vistrails.core.api.


core is a package that includes all the core functionality of VisTrails. Ideally, no gui or IO code should be here.

VisTrails should be able to run without the gui package or any gui dependency (PyQt).


Supports loading and installing python dependencies for VisTrails packages.


Supports the project window and catalogs and indexes vistrails and workflows that have been used in the past.


Wraps access to the vistrails.db layer.


Classes the describe the interpreter that controls the execution of workflows.


Supports the capture of workflow execution provenance.


Supports mashup construction and execution.


Classes that describe the executable specifications for workflow modules (e.g. package, module_registry, module_descriptor). Note any module specification should be derived from 'vistrails.core.modules.vistrails_module.Module'.


Supports query specification and execution over vistrails, workflows, and logs.


System-wide methods and fields including those that are os-specific.


Utility routines


Classes that describe the vistrail (e.g. vistrail, action, operation) and workflow structure (e.g. pipeline, module, connection, module_function, module_param). Note that 'vistrails.core.vistrail.module.Module' represents an instance of one of the module specifications (subclass of 'vistrails.core.modules.vistrails_module.Module') in a workflow.


This package contains the schema definitions, the associated tools, and the autogenerated ORM classes.


This contains the GUI of VisTrails, that enables the user to edit and run workflows interactively. It uses PyQt4.


This contains the core packages that are maintained by the VisTrails team and distributed along with VisTrails.


tests is a package that includes all infrastructure necessary for testing VisTrails. Right now, there is a single standalone script called that will run the tests in the entire VisTrails package, reporting errors and modules without tests.

This package also contains the script which is the entry point of the application. When run, it fixes the Python path for 'vistrails' to be importable and then start the GUI.