Difference between revisions of "Source overview"

From VistrailsWiki
Jump to navigation Jump to search
(Adds high-level diagram)
 
Line 82: Line 82:
=== run.py ===
=== run.py ===
This package also contains the '''run.py''' 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.
This package also contains the '''run.py''' 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.
== Components ==
http://i.imgur.com/JI53VjU.png<br/>
([https://gist.github.com/remram44/a21ecbc3aa43cae32b1c svg])

Latest revision as of 21:09, 28 April 2014

Source tree overview

contrib

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

dist

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).

doc

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.

examples

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

examples-internal

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

extensions

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

scripts

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

vistrails

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).

vistrails.api

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

vistrails.core

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).

vistrails.core.bundles

Supports loading and installing python dependencies for VisTrails packages.

vistrails.core.collection

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

vistrails.core.db

Wraps access to the vistrails.db layer.

vistrails.core.interpreter

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

vistrails.core.log

Supports the capture of workflow execution provenance.

vistrails.core.mashup

Supports mashup construction and execution.

vistrails.core.modules

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'.

vistrails.core.query

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

vistrails.core.system

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

vistrails.core.utils

Utility routines

vistrails.core.vistrail

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.

vistrails.db

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

vistrails.gui

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

vistrails.packages

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

vistrails.tests

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

run.py

This package also contains the run.py 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.

Components

JI53VjU.png
(svg)