Difference between revisions of "Source overview"
(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
(svg)