{ "info": { "author": "Remi Rampin", "author_email": "remirampin@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Internet", "Topic :: Scientific/Engineering", "Topic :: System :: Distributed Computing", "Topic :: System :: Shells", "Topic :: Utilities" ], "description": "What is this?\n-------------\n\ntej is an easy-to-use job-submission system. It allows you to start scripts or program on remote machine while keeping track of their status and results.\n\nIt is a good replacement for running scripts inside `screen(1) `__ sessions via SSH for example, and can integrate with many backends easily (such as PBS).\n\nIt is meant to be easy to use from scripts, both batch or Python, and will run fine on Windows client.\n\nWhat does it do?\n----------------\n\nClusters typically come with job-submission and queueing systems. These systems handle a queue of jobs, which might spawn multiple nodes, have a priorities, dependencies, expected runtimes, deadlines...\n\nTej doesn't aim at doing any of that. It just allows you to submit a job to a single server, and allow you to check its status and get its results later on. The default runtime simply starts running jobs as soon as they are submitted; if PBS is available on the server, then tej will use that to run the jobs.\n\nOf course, tej is extensible, which allows you to add some queueing and scheduling abilities should you want to (by writing a 'runtime' with more capabilities').\n\nThe goal of tej is to be usable without having to configure the server beforehand; it will setup the structure it needs on the server on the first run if necessary (in its simplest form, a ~/.tej directory on the server, that will contain the jobs).\n\ntej is used by the VisTrails scientific workflow management system to run remote jobs. A VisTrails module signature is mapped to a tej job name, so that the job can be started if it doesn't exist, waited on if it's running, and its results simply retrieved when it's done (from any client's machine).\n\nCommand-line usage\n------------------\n\nSets up tej on the server (optional, else it gets setup on the first run, with default options)::\n\n $ tej setup user@server.hostna.me \\\n --queue /scratch/tejqueue \\\n --make-link ~/.tej \\\n --runtime default\n\nThis takes a destination to SSH into, the location of tej's directory (there can be several on a server; by default, ``~/.tej`` is used), ``--make-link`` creates a link so that the default ``/.tej`` redirects to ``/scratch/tejqueue``, and ``--runtime`` selects which runtime to setup on the server (``default`` starts submitted jobs right away using nohup, ``pbs`` hands them to ``qsub``, ...).\n\nSubmit a simple job::\n\n $ tej submit user@server.hostna.me myjobdir\n Job submitted as:\n myjobdir_user_123456\n\nHere `myjobdir` is assumed to have the default layout, and no metadata is added. The directory will be uploaded in its entirety, and ``start.sh`` will be run.\n\nSubmit a job explicitely::\n\n $ tej submit user@server.hostna.me --queue=/scratch/tejqueue \\\n --id example_job \\\n --script bin/jobinit \\\n myjobdir\n Job submitted as:\n example_job\n\nGet the status of a job::\n\n $ tej status user@server.hostna.me --id myjobdir_user_123456\n Job is still running (1:28:57)\n $ tej status user@server.hostna.me --queue=/scratch/tejqueue \\\n --id example_job\n Job is finished (1:30:01)\n $ tej status user@server.hostna.me --id myjobdir_user_567890\n No job 'myjobdir_user_567890'\n\nDownload the output from a finished job::\n\n $ tej download user@server.hostna.me --id myjobdir_user_123456 \\\n output/log.txt\n $ tej download user@server.hostna.me --id myjobdir_user_123456 \\\n results.csv view.png input.bin\n\nNote that there is no need for the file to be an *output*. The files are downloaded to the current directory.\n\nKill a running job::\n\n $ tej kill user@server.hostna.me --id example_job\n Job 'example_job' has already completed\n $ tej kill user@server.hostna.me --id myjobdir_user_123456\n Job 'myjobdir_user_123456' killed\n $ tej kill user@server.hostna.me --id myjobdir_user_567890\n No job 'myjobdir_user_567890'\n\nCleanup a finished job::\n\n $ tej delete user@server.hostna.me --id example_job\n Deleted job 'example_job'\n\nName\n----\n\n\"tej\" stands for Trivial Extensible Job-submission system.\n\n\"tej\" ``/t\u025b\u0292/`` is also French slang for throwing/casting. It's intended here to be used as a verb (\"let me tej it to the server...\", \"Is it done yet? I tej'd that yesterday!\").\n\nProbably not the best name, but it wasn't taken, and it's short.\n\nDisclaimer\n----------\n\nNote that this software is still beta. While it is already in use by VisTrails, it is still likely to evolve. Feel free to give me your opinion, use cases, or address me your feature requests/patches on Github.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/VisTrails/tej", "keywords": "tej,job,submission,queue,batch,ssh,server,pbs,qsub", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "tej", "package_url": "https://pypi.org/project/tej/", "platform": "", "project_url": "https://pypi.org/project/tej/", "project_urls": { "Homepage": "https://github.com/VisTrails/tej" }, "release_url": "https://pypi.org/project/tej/0.6/", "requires_dist": [ "paramiko", "rpaths", "scp" ], "requires_python": "", "summary": "Trivial Extensible Job-submission system", "version": "0.6" }, "last_serial": 2806251, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "cc798a54a6bb67cc2ea7426e87b4c0ea", "sha256": "7c5bfcfc160203e91f8b32524a7cfc9e5048a46ee4e5a4391c64b3da9bfffd93" }, "downloads": -1, "filename": "tej-0.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "cc798a54a6bb67cc2ea7426e87b4c0ea", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18425, "upload_time": "2014-11-21T18:57:54", "url": "https://files.pythonhosted.org/packages/43/29/aa45814707e0cd4da0881402b81ab21596493e1053a8abaf5fc687c6042b/tej-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e23f89ef99681bfcb7099e00036ae1b0", "sha256": "c49e6e58182195a3a077c2bf740d7c7f459b140995bde85fce4085a37be84e64" }, "downloads": -1, "filename": "tej-0.1.tar.gz", "has_sig": true, "md5_digest": "e23f89ef99681bfcb7099e00036ae1b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13087, "upload_time": "2014-11-21T18:58:07", "url": "https://files.pythonhosted.org/packages/a6/ce/0dbf2268d05914e8e7b66d44bc234feccd09fb3f882be752ef56e7654bad/tej-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "94e22f294625f6adecd3c12d7fed3e50", "sha256": "73b2206dfa3d517f3facd62509d5855d0a66f2889b03f79438b9a398cbf9a6d5" }, "downloads": -1, "filename": "tej-0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "94e22f294625f6adecd3c12d7fed3e50", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19067, "upload_time": "2015-04-06T19:32:24", "url": "https://files.pythonhosted.org/packages/ac/20/f09b332948f0c3aef4b8eb4ba92f70d01235866c803e214d013d1e930310/tej-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8329cfd7ac1b56eb0b416c2c646de3de", "sha256": "0707671f6f24427958e8b59ac96536007e02a506d977f76d9325e6d70a05ef2e" }, "downloads": -1, "filename": "tej-0.2.tar.gz", "has_sig": true, "md5_digest": "8329cfd7ac1b56eb0b416c2c646de3de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15021, "upload_time": "2015-04-06T19:32:14", "url": "https://files.pythonhosted.org/packages/e0/10/03ea33861801390345a70a1a69a249664e5a0622fe2536d30cfcef0f94e3/tej-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "90658099ab687b817b45fe8f89553d73", "sha256": "a9594ca2e6979b0751fd0c9bf78045d3b11c77cddc5b3bee3f85487841065837" }, "downloads": -1, "filename": "tej-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "90658099ab687b817b45fe8f89553d73", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19098, "upload_time": "2015-04-06T19:59:05", "url": "https://files.pythonhosted.org/packages/3e/be/52cce34c263b190028c7dff64bbbaaf3a65cf20683b85bc66636b9c0eb8f/tej-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52ec00ab1beea81d719b720badd8541f", "sha256": "286d67e04cb8dc3fc34f15ba5cadc2aab4c7aabd172a7464a6392326421d0365" }, "downloads": -1, "filename": "tej-0.2.1.tar.gz", "has_sig": true, "md5_digest": "52ec00ab1beea81d719b720badd8541f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15057, "upload_time": "2015-04-06T19:58:53", "url": "https://files.pythonhosted.org/packages/6e/8e/73af8e7e47167bb9631e3637db99546ecf08e29b2f588f980ca02479186d/tej-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "a137ce15667b8bd8744153f475b35ba5", "sha256": "35406f79498036017dc3b81177166c4f9114ea922066b2aeb968281a192c460b" }, "downloads": -1, "filename": "tej-0.2.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a137ce15667b8bd8744153f475b35ba5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19143, "upload_time": "2015-07-16T20:30:38", "url": "https://files.pythonhosted.org/packages/37/bd/8fa5ef61706f273f2ee0b3e3723f4bfa1412a7c7d60cf2af16b8d10f96e6/tej-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8773dfbc8d3299e4e31a9bee23fcf747", "sha256": "8553eb58da375aaa6aaeaf5d89181e6480baffa4a31ea5751b6be4a506543dd0" }, "downloads": -1, "filename": "tej-0.2.2.tar.gz", "has_sig": true, "md5_digest": "8773dfbc8d3299e4e31a9bee23fcf747", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13436, "upload_time": "2015-07-16T20:30:26", "url": "https://files.pythonhosted.org/packages/85/7b/1ed54d6915ccca5cec983814400b13e2b0f8abba601e593c7a2c36e78867/tej-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "5a0ca4a7490ad3067bf287e686f1e969", "sha256": "db3100ac6253e8bc993be1bb5354b6f2e73de74ba001813976f13ee2e0846d14" }, "downloads": -1, "filename": "tej-0.2.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5a0ca4a7490ad3067bf287e686f1e969", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19331, "upload_time": "2015-08-07T20:10:14", "url": "https://files.pythonhosted.org/packages/77/05/860a86ba0e4514a7c48095ae60a621159bfc9a468ac291f23bd1d4c9b54f/tej-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b91970edb2d82d6ce90d5a0a465d05d8", "sha256": "bba20b0c2c04591c50f2214f263d34d84c741af1ba3a658112ac18ce22509827" }, "downloads": -1, "filename": "tej-0.2.3.tar.gz", "has_sig": true, "md5_digest": "b91970edb2d82d6ce90d5a0a465d05d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13627, "upload_time": "2015-08-07T20:10:24", "url": "https://files.pythonhosted.org/packages/e1/9c/1d33b02be23fa2e2883c221d5d659fd9f7064583e67f0fa668bf8c31a9ea/tej-0.2.3.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "ec50ad7388ce88cff5a7bb7458ddecbb", "sha256": "6845285d2228f778685136d4e78df052df051097fa015ef69ceff1a3cadb18a5" }, "downloads": -1, "filename": "tej-0.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "ec50ad7388ce88cff5a7bb7458ddecbb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26731, "upload_time": "2016-02-20T20:51:43", "url": "https://files.pythonhosted.org/packages/2e/22/bd11924cba5bdb149b6db405d75d915081bbeb46917e5795a5d9cf162c5d/tej-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "162e59e19552710a67dd4893a36aa055", "sha256": "c5bbafa2c4dc09f865bb3047b4e92f3d7d008ec6669bbed7d02ad7542848e659" }, "downloads": -1, "filename": "tej-0.3.tar.gz", "has_sig": true, "md5_digest": "162e59e19552710a67dd4893a36aa055", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18314, "upload_time": "2016-02-20T20:52:17", "url": "https://files.pythonhosted.org/packages/f1/a9/f46fd10256af9a698e079ae7cecbb04bd03c12682a6220be84eef7b5bd4f/tej-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "e29d42e67a52ed50cfa9f643abaecedf", "sha256": "6e0d86b6f5987e7a03d1005d1958a51a7dc2d407479c8b6696a4e468d8d3c770" }, "downloads": -1, "filename": "tej-0.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e29d42e67a52ed50cfa9f643abaecedf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26947, "upload_time": "2016-12-08T19:47:11", "url": "https://files.pythonhosted.org/packages/9f/83/2e9e52caf86fef9b2c0c9e2d4f65bcd910ea57267d43615a01e645917b59/tej-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a2c5023c345c947dcc211397c70c2103", "sha256": "db45aba91d117d660dc707b33a096b01347274b066f6a549e76c1027b6384d89" }, "downloads": -1, "filename": "tej-0.4.tar.gz", "has_sig": true, "md5_digest": "a2c5023c345c947dcc211397c70c2103", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21732, "upload_time": "2016-12-08T19:47:23", "url": "https://files.pythonhosted.org/packages/dd/45/07abaffe9ac2cba65fbfc25b73d0e30ff7472c1f7cca4f3a4f67b09ca350/tej-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "dc7bce8aa438e77302c676727e7b90af", "sha256": "f9d110d644ce165be2dc4ad36717f5a7d0941ce886a3ff9a1b3c1e8f66ec48a4" }, "downloads": -1, "filename": "tej-0.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "dc7bce8aa438e77302c676727e7b90af", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27179, "upload_time": "2016-12-23T04:58:16", "url": "https://files.pythonhosted.org/packages/36/db/fbc3cf61cbab9b35b6677d2035953be8cdee7d9fdbb1219656428c05d55c/tej-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a0ec860feca3301fc992c6b847f15f4", "sha256": "55a7da1cad7220187640c2c8bd0d4e38f709e20fb59f608befa342f04e559379" }, "downloads": -1, "filename": "tej-0.5.tar.gz", "has_sig": true, "md5_digest": "9a0ec860feca3301fc992c6b847f15f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21952, "upload_time": "2016-12-23T04:58:38", "url": "https://files.pythonhosted.org/packages/ae/89/855070ccfae1812678ac6591c69fb99a0618aa814234a0ad2931f195b062/tej-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "35e5e7f6c96b06ce524000e0d0992a79", "sha256": "905ca1e35b54eb5bb8c994b1b5cdffe975420c97bb346c49831531512c178ec5" }, "downloads": -1, "filename": "tej-0.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "35e5e7f6c96b06ce524000e0d0992a79", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28000, "upload_time": "2017-04-16T00:41:18", "url": "https://files.pythonhosted.org/packages/ee/da/e5552cd4fb65a94bbc8425c9c7e472e4c37b9d492b9deb04a877b7331dab/tej-0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "240737d903c9bfe9a4647a5ad37f35d4", "sha256": "d19ed81a483514846f15102f8aa9954e6407fe3f17c612be2d9828000554c49b" }, "downloads": -1, "filename": "tej-0.6.tar.gz", "has_sig": true, "md5_digest": "240737d903c9bfe9a4647a5ad37f35d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22094, "upload_time": "2017-04-16T00:41:36", "url": "https://files.pythonhosted.org/packages/57/18/7835dd0c7c75874fadab77c5ea557db9fafbc7eaf65a085aedcef568b5ab/tej-0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "35e5e7f6c96b06ce524000e0d0992a79", "sha256": "905ca1e35b54eb5bb8c994b1b5cdffe975420c97bb346c49831531512c178ec5" }, "downloads": -1, "filename": "tej-0.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "35e5e7f6c96b06ce524000e0d0992a79", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28000, "upload_time": "2017-04-16T00:41:18", "url": "https://files.pythonhosted.org/packages/ee/da/e5552cd4fb65a94bbc8425c9c7e472e4c37b9d492b9deb04a877b7331dab/tej-0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "240737d903c9bfe9a4647a5ad37f35d4", "sha256": "d19ed81a483514846f15102f8aa9954e6407fe3f17c612be2d9828000554c49b" }, "downloads": -1, "filename": "tej-0.6.tar.gz", "has_sig": true, "md5_digest": "240737d903c9bfe9a4647a5ad37f35d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22094, "upload_time": "2017-04-16T00:41:36", "url": "https://files.pythonhosted.org/packages/57/18/7835dd0c7c75874fadab77c5ea557db9fafbc7eaf65a085aedcef568b5ab/tej-0.6.tar.gz" } ] }