Git Product home page Git Product logo

adage's Introduction

yadage - yaml based adage

arXiv DOI PyPI version GitHub Actions Status: CI Code Coverage Language grade: Python CodeFactor Documentation Status Code style: black

This package reads and executes workflows adhering to the workflow JSON schemas defined at https://github.com/yadage/yadage-schemas such as the ones stored in the community repository https://github.com/yadage/yadage-workflows. For executing the individual steps it mainly uses the packtivity python bindings provided by https://github.com/yadage/packtivity.

Example Workflow

cat << 'EOF' > workflow.yml
stages:
- name: hello_world
  dependencies: [init]
  scheduler:
    scheduler_type: singlestep-stage
    parameters:
      name: {step: init, output: name}
      outputfile: '{workdir}/hello_world.txt'
    step:
      process:
        process_type: 'string-interpolated-cmd'
        cmd: 'echo Hello my Name is {name} | tee {outputfile}'
      publisher:
        publisher_type: 'frompar-pub'
        outputmap:
          outputfile: outputfile
      environment:
        environment_type: 'docker-encapsulated'
        image: busybox
EOF

You can try this workflow via

yadage-run -p name="John Doe"

For more thorough examples, please see the documentation

Possible Backends:

Yadage can run on various backends such as multiprocessing pools, ipython clusters, or celery clusters. If human intervention is needed for certain steps, it can also be run interactively.

Published versions of related packages (main dependencies of yadage)

package version
packtivity PyPI version
yadage-schemas PyPI version
adage PyPI version

adage's People

Contributors

lukasheinrich avatar matthewfeickert 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

adage's Issues

networkx incompatability with Python 3.9 is creating upstream problems

Hi @lukasheinrich. I'm coming here from recast-hep/recast-atlas#65, where I've found that recast-atlas doesn't work on Python 3.9+ given adage's pinned dependency on networkx==1.11

adage/setup.py

Lines 10 to 12 in ff38a14

install_requires = [
'networkx==1.11'
],

networkx<2.5 uses deprecated CPython functions that are no longer present in Python 3.9 (c.f. smicallef/spiderfoot#1124).

Do you know of any hard dependencies that adage has on the networkx v1.X API? If not, can we try to:

  1. Upgrade the networkx dependency in adage to be networkx>=2.5
  2. Fix anything that breaks with that
  3. Make new release of adage

?

License ?

Hello , under what license is this project released under ? Thank-you.

Investigate networkx compatibility with graphviz Python library over pygraphviz

While trying to get graphviz (the C library) installed in a useful manner on lxplus8 (c.f. recast-hep/recast-atlas#82) I've found that trying to get a custom built and installed (e.g. from source) graphviz library to work with an install of pygraphviz from PyPI is quite difficult to get right.


Note: pygraphviz is required in yadage[viz]

        "viz": [
            # manually adding extras of adage[extra] because of pip
            # issue https://github.com/pypa/pip/issues/3189
            "pydot2",
            "pygraphviz",
            "pydotplus",
        ],

because adage[viz] requires it

"viz": ["pydot", "pygraphviz", "pydotplus"],


However, what is surprisingly easy to get working is the Python library graphviz, which has wheels, appears to be very developed, and is basically good to go as long as

the directory containing the dot executable is on your systems' PATH

It is unclear if networkx and the Python graphviz can work together, but if they can this seems to be a much better way to go than pygraphviz.

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.