Skip to main content

Python API for asynchronous control of local or remote, standalone or parallel, unix processes.

Project description


    Readme / documentation for the execo package
    ********************************************
    
    Execo offers a Python API for asynchronous control of local or remote,
    standalone or parallel, unix processes. It is especially well suited
    for quickly and easily scripting workflows of parallel/distributed
    operations on local or remote hosts: automate a scientific workflow,
    conduct computer science experiments, perform automated tests,
    etc. The core python package is ``execo``. The ``execo_g5k`` package
    provides a set of tools and extensions for the `Grid5000
    <https://www.grid5000.fr>`_ testbed. The ``execo_engine`` package
    provides tools to ease the development of computer sciences
    experiments.
    
    License
    =======
    
    Execo is copyright INRIA Rhone-Alpes, Service Experimentation et
    Developpement.
    
    Execo is free software: you can redistribute it and/or modify it under
    the terms of the GNU General Public License as published by the Free
    Software Foundation, either version 3 of the License, or (at your
    option) any later version.
    
    Execo is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.
    
    You should have received a copy of the GNU General Public License
    along with Execo.  If not, see <http://www.gnu.org/licenses/>
    
    Versions
    ========
    
    latest stable version: v2.8.2 (2025-03-18)
    
    Installation instructions
    =========================
    
    useful links
    ------------
    
    - home page:  https://gitlab.inria.fr/mimbert/execo
    
    - documentation pages: https://mimbert.gitlabpages.inria.fr/execo/
    
    - package download: https://gitlab.inria.fr/mimbert/execo/-/packages
    
    - mailing lists: https://sympa.inria.fr/sympa/info/execo-users
    
    - code repository: git@gitlab.inria.fr:mimbert/execo.git / https://gitlab.inria.fr/mimbert/execo.git
    
    platforms
    ---------
    
    - works on linux (primary development platform), darwin (macosx)
    
    - should work on bsd (not tested)
    
    - don't know on windows or cygwin (not tested)
    
    prerequisites
    -------------
    
    execo installation absolutely requires ``python`` 2.6 / 2.7 or
    >=3.2. ``execo_g5k`` needs ``python-requests``. Optionnal packages are
    (debian package names, in order of decreasing importance):
    
    - under python 2.6, ``python-argparse`` is needed for
      `execo_engine.engine.Engine`
    
    - ``python-keyring`` for allowing storage of `execo_g5k.api_utils` api
      password in the desktop environment keyring (allowing asking it only
      once).
    
    - ``python-psycopg2`` for optimized interface to Grid5000 OAR planning.
    
    - ``sphinx-doc``, ``graphviz`` for building the documentation (usually
      not needed for regular users).
    
    - ``python-matplotlib`` (>= 1.2.0) for some graphical representations.
    
    - ``python-networkx``, ``python-pygraphviz``, ``graphviz`` for module
      ``execo_g5k.topology``. Later versions of networkx (at least v1.11)
      also require ``python-pydotplus``, but this dependency is not
      explicitely listed in the debian package (as of July 2017).
    
    At runtime, connecting to remote hosts requires ``ssh``, ``scp`` or
    similar connection tools, and optionnaly ``taktuk`` (probably >=
    3.6. http://taktuk.gforge.inria.fr/). `execo.action.ChainPut` requires
    bourne shell and ``netcat`` on remote hosts.
    
    installation
    ------------
    
    To install execo from a source package (.tar.gz) or from the git
    tree::
    
     $ python setup.py install [--user]
    
    to build documentation (if sphinx is available)::
    
     $ python setup.py build_doc
    
    to install documentation (if sphinx is available)::
    
     $ python setup.py install_doc
    
    It is possible to install execo automatically with ``pip`` or
    ``easy_install``::
    
     $ pip install --user execo
    
    or::
    
     $ easy_install --user execo
    
    It is possible to generate a debian package. For example, in the execo
    package toplevel dir, run (the .deb will be generated in ../)::
    
     $ dpkg-buildpackage -us -uc
    
    Usage
    =====
    
    See html documentation for module execo and execo_g5k at
    https://mimbert.gitlabpages.inria.fr/execo/
    
    Bugs
    ====
    
    Execo is regularly used to perform advanced experiments and
    administration / monitoring tasks, in and outside Grid5000. We
    actively fix bugs. Bugs should be reported to
    https://gitlab.inria.fr/mimbert/execo/-/issues
    
    Publications
    ============
    
    Matthieu Imbert, Laurent Pouilloux, Jonathan Rouzaud-Cornabas, Adrien
    Lèbre, Takahiro Hirofuchi "`Using the EXECO toolbox to perform
    automatic and reproducible cloud experiments
    <http://hal.inria.fr/hal-00861886/>`_" *1st International Workshop on
    UsiNg and building ClOud Testbeds UNICO, collocated with IEEE CloudCom
    2013* 2013
    
    How to contribute
    =================
    
    - start contributing by sending clean patches or report bugs.
    
    - stay consistent with the coding and naming style
    
    - code must be compatible with python 2.6, 2.7 and 3.2+ (see
      https://mimbert.gitlabpages.inria.fr/execo/python2-python3.html)
    
    - use the core systems provided (eg. the configuration system, the tty
      coloring system, the logger, etc.) instead of developing your own.
    
    - provide documented code (internal documentation as well as user
      documentation where needed)
    
    - ask a core developer before adding a dependency or dealing with
      threads, signals (particularly: creating threads)
    
    - indent with spaces, not tabs. one level of indentation is four
      spaces (if needed: use ``reindent.py -rnv .`` in execo top
      directory)
    
    - recommended commit messages format:
    
      ``[<module_name>] <category>: commit message``.
    
      - <module_name> can be execo, execo_g5k, execo_engine. Omit if
        commit is not specific to a module.
    
      - <category> is free form but should indicate which part(s) of the
        module the commit affects. Omit if a commit is not specific to a
        module part.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

execo-2.8.2.tar.gz (391.2 kB view details)

Uploaded Source

File details

Details for the file execo-2.8.2.tar.gz.

File metadata

  • Download URL: execo-2.8.2.tar.gz
  • Upload date:
  • Size: 391.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for execo-2.8.2.tar.gz
Algorithm Hash digest
SHA256 38ee7d4dc3e5d57e5aeca8e9230fe002129dcbc19778c8a152b12379cee1de5a
MD5 5986f15d472085a6416e99f34f957756
BLAKE2b-256 585fe3b1ac65f9dca8c567365390c7eba33ec598ed6e66328b2b4e6b97c55f1d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page