Giter Club home page Giter Club logo

steep's People

Contributors

dependabot[bot] avatar dppl avatar hwuerz avatar michel-kraemer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

steep's Issues

Support for macros in workflows

In daily use, there is often a sequence of services that is included in each of my workflows. For example, this can be copying data into my environment, or pre-processing before the actual calculation starts. However, at the moment I have to write these services every time into my workflow.

It would be nice if I could outsource these steps to a macro. Similar to the service.yaml there would then be a macro.yaml containing predefined sequences of services (i.e. more or less small workflows). They also have inputs and outputs so that I can continue working with the results in my actual workflow.

For example, a macro.yaml could look like this:

id: preparation
name: Preparation of data
inputs:
  - id: "source"
    var: "source"
outputs:
  - id: "destination"
    var: "destination"
actions:
  - type: execute
    service: download
    inputs:
      - id: "source"
        value: "source"
    outputs:
      - id: "output"
        var: downloadedData
  - type: execute
    service: preprocess
    inputs:
      - id: "input"
        value: "downloadedData"
    outputs:
      - id: "output"
        var: destination

This bundles the two services download and preprocess and makes them available as a macro preparation.
In my workflow I could then use it like this:

api: 4.6.0
actions:
  - type: macro
    macro: preparation
    inputs:
      - id: source
        value: http://example.com/my-data
    outputs:
      - id: destination
        var: preparedData
  - type: execute
    service: calculation
    inputs:
      - id: input
        var: preparedData
    outputs:
      - id: output
        var: outputDirectory

Can something like this be added to Steep?

Specify execution order of plugins

I can define plugins to adjust the execution behavior. It is possible to define multiple plugins of the same type. For example I can define two processChainAdapter plugins A and B.
Currently their execution order is given by the definition order in the corresponding yaml file. This is an implicit definition and might change at any time in the future.

It would be nice to have an order attribute for each plugins. Plugins with a larger order are executed after plugins with a lower order independently of their definition order in the yaml file.

Example:

- name: myPluginA
  type: processChainAdapter
  order: 2
  scriptFile: myPluginA.kt
- name: myPluginB
  type: processChainAdapter
  order: 1
  scriptFile: myPluginB.kt

In this case the plugin B should be executed before plugin A.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.