{ "info": { "author": "Hugo Martiniano", "author_email": "hugomartiniano@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Build Tools" ], "description": "===============================\nfaz\n===============================\n\n.. image:: https://badge.fury.io/py/faz.png\n :target: http://badge.fury.io/py/faz\n\n.. image:: https://travis-ci.org/hmartiniano/faz.png?branch=master\n :target: https://travis-ci.org/hmartiniano/faz\n\n.. image:: https://badge.fury.io/py/faz.svg\n :target: https://badge.fury.io/py/faz\n\n\nFaz is a data workflow tool heavily inspired in \n.. _Drake: https://github.com/Factual/drake\n\nThe intended use is combining data treatment scripts in bash, python, ruby (or anything else, with a little coding) into a single text file.\n\nThe name \"faz\" is portuguese for \"do\" or \"make\".\n\nThe various steps can be separated into tasks, with defined inputs and outputs. Dependencies between the tasks are determined from inputs and outputs of every task. The program executes all tasks in the appropriate order, checking for the existence of output and input files.\n\n\nWhy?\n----\n\n* Because I like Drake but can't stand the startup time of java.\n* Because I can (actually to see if I can, but it turns out I can).\n\nFeatures\n--------\n\n* simple but robust functionality\n* easy to use and extend (the code, minus the tests, is around 300 lines of python)\n* fast startup time (compared to Drake)\n* Documentation: https://faz.readthedocs.org.\n\nInstallation\n------------\n\nUsing pypi\n\n.. code-block:: bash\n\n pip install faz\n\n\nUsage\n-----\n\nFrom the command line, just type\n\n.. code-block:: bash\n\n faz\n\nwithout arguments, the program will read the tasks from a file called \"fazfile\".\nIf you want to use another filename, just give that as an argumento to the program\n\n.. code-block:: bash\n\n faz \n\nto get a list of command line arguments type\n\n.. code-block:: bash\n\n faz -h\n\nTask file basics\n----------------\n\nThe task file is a plain text file, with a syntax similar to Drake input files.\nThe following is an example with two tasks\n\n.. code-block:: python\n\n # file1 <-\n touch file1\n\n # file2 <- file1\n cat file1 > file2\n\nLines starting with \"#\" and having the symbols \"<-\" signal a task.\nOn the left of the \"<-\" is a (comma separated) list of the files produced by the task.\nOn the right are the task dependencies, the files needed to run that task.\nIn the above example the first task has no dependencies, and produces a file called \"file1\".\nThe second task has \"file1\" as a dependency, and has as output a file called \"file2\".\n\nThe outputs and inputs and inputs of each task are used by the program to estabilish the order \nby which the tasks have to be run, and if they need to be run. In the example above, if a file\ncalled \"file1\" was already present in the directory the program was run, the first task would not be executed.\n\nThe code sections, are all the lines in betweeen the two task lines. \nIn these two tasks, they are just are just plain bash commands but could be, for example, python code\n\n.. code-block:: python\n\n # file1 <-\n touch file1\n\n # file2 <- file1 :python\n f1 = open(\"file1\")\n text = file1.read()\n f2 = open(\"file2\", \"w\")\n f2.write(text)\n\nnote that, in the second task, there's an extra option \":python\", wich indicates to the program that\nthe code from this task is python code.\nOptions are a list of (comma separated) keywords follwing the \":\", and must be placed after the inputs.\n\n\n\n\n\n\nHistory\n-------\n\n0.1.0 (2014-01-11)\n---------------------\n\n* First release.\n\n0.1.1 (2015-03-20)\n---------------------\n\n* Bug fixes.\n\n0.1.2 (2015-10-17)\n---------------------\n\n* Project name change.\n\n0.1.3 (2016-03-26)\n---------------------\n\n* NetworkX dependency removed.\n\n0.1.4 (2016-05-19)\n---------------------\n\n* Input and output names added to task environment.\n\n0.1.5 (2016-05-19)\n---------------------\n\n* Bug Fixes in variable expansion code.\n\n0.1.6 (2016-07-18)\n---------------------\n\n* Added a mechanism to include other task files.\n\n0.1.7 (2016-07-20)\n---------------------\n\n* dependencies and outputs can now be on different directories.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hmartiniano/faz", "keywords": "faz", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "faz", "package_url": "https://pypi.org/project/faz/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/faz/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/hmartiniano/faz" }, "release_url": "https://pypi.org/project/faz/0.1.7/", "requires_dist": null, "requires_python": null, "summary": "\"A Make-like tool with a syntax similar to Drake.\"", "version": "0.1.7" }, "last_serial": 2233378, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "c308d287c92a56558be60819e2cee7a2", "sha256": "40e9ab4f781267a2c6773e4522de06042d792e1f3bb5e486e28b4d5e3083f60b" }, "downloads": -1, "filename": "faz-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c308d287c92a56558be60819e2cee7a2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11023, "upload_time": "2015-10-17T10:59:21", "url": "https://files.pythonhosted.org/packages/17/27/d7fde0af34a3bcd58ba458470fff8ff2b7a68a17aeac4106feeb0bfbb0b0/faz-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3957ec9abee426c22b14c2bcd10bbbcf", "sha256": "b7c510a4b170cb5601a9c3a0af7ecea2af2ee992d0434302e0d35cf38c6e0274" }, "downloads": -1, "filename": "faz-0.1.2.tar.gz", "has_sig": false, "md5_digest": "3957ec9abee426c22b14c2bcd10bbbcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20291, "upload_time": "2015-10-17T10:58:56", "url": "https://files.pythonhosted.org/packages/b1/cd/8cd8646d9a1ce3854133cc222d3f34874442ddfa4691384ecfcb223e9d0e/faz-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ec74176adafab4865ad0ec33bce22a3a", "sha256": "37810f678d8a0882cf4225706d93f945c52be542dd63416f106aa7c5fef1cd11" }, "downloads": -1, "filename": "faz-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ec74176adafab4865ad0ec33bce22a3a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11248, "upload_time": "2016-03-26T16:55:33", "url": "https://files.pythonhosted.org/packages/78/70/4c9dc30ab4540d40e2479431144e42dda1b84a592c53e42f73504833af9d/faz-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba61986bb4f468b8d6045e2d27b90454", "sha256": "5b451eb7ffae2a5cf4d8c354b226d94b47c658986349091e3625e3bca3f32593" }, "downloads": -1, "filename": "faz-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ba61986bb4f468b8d6045e2d27b90454", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20538, "upload_time": "2016-03-26T16:55:06", "url": "https://files.pythonhosted.org/packages/d0/1b/7236bcf2901ff8df59fc06e61266c4775e273062936ed156a031f4b909e3/faz-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "6e68368b4503ab110e211480955bec0c", "sha256": "ee88e4b729df4ef46f5998054c4cb38cb479eb91ca7ec86560b7653a661ed145" }, "downloads": -1, "filename": "faz-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e68368b4503ab110e211480955bec0c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11325, "upload_time": "2016-05-19T16:12:44", "url": "https://files.pythonhosted.org/packages/59/5d/65f4c2daaebd2686e1d30d46ad65094e51b0aa395a8150b08e91aca01aa6/faz-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a287ed4839c233fa3a29bf8ce1d28ac", "sha256": "1f52216e355a3f84f3a7800042b4da9cfbf7d97b29b8714f27f44c89d974bd5c" }, "downloads": -1, "filename": "faz-0.1.4.tar.gz", "has_sig": false, "md5_digest": "2a287ed4839c233fa3a29bf8ce1d28ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20721, "upload_time": "2016-05-19T16:12:33", "url": "https://files.pythonhosted.org/packages/51/59/9b427c439ef837df57168e72f09d15f3fcf4219795da79de4995a521f0bc/faz-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "a554ee8dcf11e289581780c7a4ddc479", "sha256": "dc38717ca4f66cd4f215e443c13975a4491c165459125fb51ddfb5ff1f7c63b2" }, "downloads": -1, "filename": "faz-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a554ee8dcf11e289581780c7a4ddc479", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11375, "upload_time": "2016-05-19T17:45:01", "url": "https://files.pythonhosted.org/packages/a3/5d/1ab8f9bf51ba9efd57fa731b3590eab0eef6b70c02613cd6dc814045cc3b/faz-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84624774492fa2a708e12ff4211dad3e", "sha256": "eff5409795fbefcf959722fe715a2873a6fc1384a53fa342f751542c1cdf8983" }, "downloads": -1, "filename": "faz-0.1.5.tar.gz", "has_sig": false, "md5_digest": "84624774492fa2a708e12ff4211dad3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20765, "upload_time": "2016-05-19T17:44:30", "url": "https://files.pythonhosted.org/packages/2c/0c/5b3981ece7f3d71aaf278658f84a742aa9b8075b2b0f110db9379c07b023/faz-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "f901a771deff322fcc6c2f9891cb8856", "sha256": "9dbbc1c57f3e80ad4a7ff99bb618eccf99d9213cbb681918344701c0a9dc71eb" }, "downloads": -1, "filename": "faz-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f901a771deff322fcc6c2f9891cb8856", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11569, "upload_time": "2016-07-18T23:05:27", "url": "https://files.pythonhosted.org/packages/a1/75/86eefd7e6d69a1b3b059db5bc12c075cd3719a2fa85413214f7a5b6e5987/faz-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb610e80a71a206cd1cc79d6bf6867a2", "sha256": "52da5a66de24a54d7d449d0666abf511a27c90ec581a9db04dc1aa912a0b4e54" }, "downloads": -1, "filename": "faz-0.1.6.tar.gz", "has_sig": false, "md5_digest": "eb610e80a71a206cd1cc79d6bf6867a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21052, "upload_time": "2016-07-18T23:05:23", "url": "https://files.pythonhosted.org/packages/7d/d2/963fed2cd87bbae9cdf3d9943d1dfdfb4f1825f3eed6f2ab21ccf5d049cf/faz-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "8de3c5f8481604cc8b09d35882b1be52", "sha256": "15b1e6c4bf385260c24bba072e96268a802c4cda3c6f386015d8b1e735693cae" }, "downloads": -1, "filename": "faz-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8de3c5f8481604cc8b09d35882b1be52", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11644, "upload_time": "2016-07-20T15:58:05", "url": "https://files.pythonhosted.org/packages/72/07/317d69156ed2c96cb926c0533cf115debfdcfd373d521032f6a41da96c80/faz-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba1d3052f9cf527ebdce7e6ea5170c78", "sha256": "1fbb111342fca023434e458c9f102a474187a1219b5a4f06357ebebb10a0d337" }, "downloads": -1, "filename": "faz-0.1.7.tar.gz", "has_sig": false, "md5_digest": "ba1d3052f9cf527ebdce7e6ea5170c78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21233, "upload_time": "2016-07-20T15:58:02", "url": "https://files.pythonhosted.org/packages/41/ce/15e8ae74952df9f3a08f4359289d0d851fdbbf2f2d4e75d1385f8c819401/faz-0.1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8de3c5f8481604cc8b09d35882b1be52", "sha256": "15b1e6c4bf385260c24bba072e96268a802c4cda3c6f386015d8b1e735693cae" }, "downloads": -1, "filename": "faz-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8de3c5f8481604cc8b09d35882b1be52", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11644, "upload_time": "2016-07-20T15:58:05", "url": "https://files.pythonhosted.org/packages/72/07/317d69156ed2c96cb926c0533cf115debfdcfd373d521032f6a41da96c80/faz-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba1d3052f9cf527ebdce7e6ea5170c78", "sha256": "1fbb111342fca023434e458c9f102a474187a1219b5a4f06357ebebb10a0d337" }, "downloads": -1, "filename": "faz-0.1.7.tar.gz", "has_sig": false, "md5_digest": "ba1d3052f9cf527ebdce7e6ea5170c78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21233, "upload_time": "2016-07-20T15:58:02", "url": "https://files.pythonhosted.org/packages/41/ce/15e8ae74952df9f3a08f4359289d0d851fdbbf2f2d4e75d1385f8c819401/faz-0.1.7.tar.gz" } ] }