Package: pypaws
Introductionpawsstands for the Platform for Automated Workflows by SSRL.
It was conceived to serve as a lean and modular
workflow manager for scientific data.pawsinterfaces with an ever-growing number of packages
and provides for users to add their own Operations,
by writing isolated Python modules following a simple template.The essential ingredients ofpawsare Operations, Workflows, and Plugins.
ApawsOperation is meant to take some inputs and produce some outputs-
it is essentially  a function, wrapped in a class, wrapped in a Python module.
The class and module layers are used for certain conveniences
in the implementation ofpawsWorkflows.
ApawsPlugin is an object that should persist over time
to repeatedly execute one or more activities,
for example to monitor an experimental apparatus,
or to expose functionalities of a complex object for Operations to use.
ApawsWorkflow contains the logic necessary for stitching together Operations and Plugins,
and despite the distinction in name, it implements the same interface as an Operation.Disclaimer:pawsis neither the first nor the most sophisticated
way to build and manage data processing workflows.
Its development was driven by a need
for modularity and extensibility,
for rapid development and deployment
of stand-alone applications for a wide variety of experimental control
and data processing tasks.DocumentationThe documentation forpawsis hosted by readthedocs.org:http://paws.readthedocs.io/en/latest/.
This documentation is continually under development.
Please contact the developers atpaws-developers@slac.stanford.eduif the documentation fails to answer your questions.API ExamplesThe following are examples that explore
the capabilities of thepawsAPI.TODO: write new examplesInstallationNOTE: all deployments are currently outdated or under heavy development.
Please contact the development team if you are interested in this package.pawsis available on PyPI and Anaconda.
Deployments to PyPI are performed regularly.
Currently, we only deploy relatively stable versions to Anaconda.To install from PyPI, invokepip:pip install pypaws.To install from Anaconda, useconda:conda install -c ssrl-paws pypawsAll of the dependencies of thepawsOperations
are not necessarily declared as dependencies ofpaws.
This keeps the Python environment relatively lean
and avoids obnoxious installation overhead,
but it means that users will have to prepare their
environments for the Operations they want to use.The documentation ofpawsincludes instructions
for installing the dependencies of each Operation.
NOTE: this is currently false.Attributionpawswas written at SSRL by Chris Tassone’s research group.
If you usepawsin your published research,
a citation would be appreciated.Before citingpaws, it is of primary importance that you cite
the authors of the original work that produced your results:
this is almost certainly separate from the authors ofpaws.
Citations for your specific Operations should be found
in thepawsdocumentation.
If you have trouble finding proper citations,
please contact us atpaws-developers@slac.stanford.edu,
and we will do our best to help.ContributionContribution topawsis encouraged and appreciated.
Get in touch with thepawsdevelopment team
atpaws-developers@slac.stanford.edu.
If you are able to develop without assistance,
feel free to submit a pull request against thedevbranch athttps://github.com/slaclab/paws.LicenseThe 3-clause BSD-like license attached to this software
can be found in the LICENSE file in the source code root directory.