{ "info": { "author": "Adam Kewley", "author_email": "contact@adamkewley.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python :: 3" ], "description": "Luigi on Rails\n==============\n\n|Build Status|\n\nALPHA BUILD: A framework for rapidly developing pipelines with Luigi\n\n[`documentation `_]\n\nFeatures:\n\n- Convention-over-configuration approach to Luigi projects\n- Standard workspace creation (``lor new``)\n- Configuration loading\n- A workspace-centric command-line (``new``, ``explain``, ``ls``, ``run``, etc.)\n- Utility tasks (e.g. ``EnsureExistsOnLocalFilesystemTask``)\n- Other utilities for managing long-running subprocesses, building a CLI, etc.\n\n\nInstallation\n------------\n\nTo install use pip:\n\n $ pip install lor\n\n\nOr clone the repo:\n\n $ git clone https://github.com/adamkewley/lor.git\n\n $ python setup.py install\n\n\nUsage\n-----\n\nOnce installed, ``lor`` can be used from the command-line:\n\n $ lor new foo\n\nThis creates a ``lor`` workspace at ``foo/``. A ``lor`` workspace is a standard python3 pip project which depends on\n``lor`` as a dependency (this can be removed if you don't need it). The ``lor`` command-line command can detect if the\nterminal is in a ``lor`` workspace and provides convenience commands for working in a standard workspace.\n\nTasks written for ``lor`` are just standard Luigi tasks. The ``lor`` library provides various utility methods that a\ntypical project *might* find useful (all opt-in). For example, ``lor`` provides a ``props`` module that you can use to\nload configuration properties at runtime:\n\n.. code:: python\n\n # foo/tasks/bar\n\n import lor.props\n import luigi\n\n\n class BarTask(luigi.Task):\n output_path = luigi.Parameter()\n\n def run(self):\n with open(str(self.output_path), \"w\") as f:\n config_prop = lor.props.get(\"CONFIG_PROP\")\n f.write(config_prop)\n\n def output(self):\n return luigi.LocalTarget(self.output_path)\n\nThe above is a standard Luigi task that uses ``lor`` to load a configuration property called ``CONFIG_PROP`` from the\nworkspace (held at ``etc/properties.yml`` in the workspace). The task is a standard Luigi task, so it can be ran from\nLuigi directly:\n\n $ luigi --module foo.tasks.bar BarTask --output-path some/path\n\nThe ``lor run`` command can also be used to run the task:\n\n $ lor run --module foo.tasks.bar BarTask --output-path some/path\n\nThe ``lor run`` command runs ``luigi`` by proxy, so it effectively has the same interface. However, ``lor run`` also\nadds useful functionality, such as the ability to override a variable's value at runtime:\n\n $ lor run --properties CONFIG_PROP=overridden --module foo.tasks.bar BarTask --output-path some/path\n\nThe task will then write \"overridden\" to the output file instead of whatever was loaded from the workspace's configuration\nfile. This is because ``lor run`` bootstraps the workspace global with the override before running Luigi.\n\nTODO: This documentation is work in progress\n\n\n.. |Build Status| image:: https://travis-ci.org/adamkewley/lor.svg?branch=master\n :target: https://travis-ci.org/adamkewley/lor", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "Luigi", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "lor", "package_url": "https://pypi.org/project/lor/", "platform": "", "project_url": "https://pypi.org/project/lor/", "project_urls": null, "release_url": "https://pypi.org/project/lor/0.0.14/", "requires_dist": null, "requires_python": ">=3.4", "summary": "A framework for rapidly developing pipelines with Luigi", "version": "0.0.14" }, "last_serial": 4032880, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "9d35d5ff919461bf5d849520981637c4", "sha256": "256da1bbb0f18e71ce8a992dcfaf2068a807cf9dcc342f555352c3c21cc6d5cf" }, "downloads": -1, "filename": "lor-0.0.1.tar.gz", "has_sig": false, "md5_digest": "9d35d5ff919461bf5d849520981637c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19262, "upload_time": "2018-04-13T09:10:07", "url": "https://files.pythonhosted.org/packages/29/bd/4e1528102b0f954aefbf8ce990416003f16ea1bbee2a5b786ea523213548/lor-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "f3fb8b152dbf05440fbdd36786e6c7d0", "sha256": "6dac4aa5d4ef650e729c35f3ea2d3c7f36fd0dfdf11c1772acc5aba783ddc346" }, "downloads": -1, "filename": "lor-0.0.10.tar.gz", "has_sig": false, "md5_digest": "f3fb8b152dbf05440fbdd36786e6c7d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 21480, "upload_time": "2018-04-24T16:30:32", "url": "https://files.pythonhosted.org/packages/24/b8/116da90c66467c05ca667503639b368c66395565d2bed96698c33789b8b7/lor-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "94fb5e350a058980340542e5ea3e725d", "sha256": "ef9baba4d6b4cd058e08e5f69785c1fcc805c43dfc1f2e3895a39a8a5f767901" }, "downloads": -1, "filename": "lor-0.0.11.tar.gz", "has_sig": false, "md5_digest": "94fb5e350a058980340542e5ea3e725d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 21485, "upload_time": "2018-04-24T16:35:27", "url": "https://files.pythonhosted.org/packages/c8/cd/7047581f8f7b32ec26b7af240760affd73a2c5bf7967fb0100d44eb9a5b4/lor-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "2c5099b583feaf40d8163024a6873577", "sha256": "9405b1e15b68c2ab036dbe9ed9b7d1bfb808d55f13effe2b042058d1a5827030" }, "downloads": -1, "filename": "lor-0.0.12.tar.gz", "has_sig": false, "md5_digest": "2c5099b583feaf40d8163024a6873577", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 21481, "upload_time": "2018-04-24T17:18:42", "url": "https://files.pythonhosted.org/packages/1f/29/a1e0d9d947b01c8c400524c5feffa1c647fb072becd37634b7ad55f8d684/lor-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "a46bbf8941cabc331de1d8af3095de27", "sha256": "8e54cd481e11ba9dec70f7fa45cc8b457009d115d4540354acddc9433030bfde" }, "downloads": -1, "filename": "lor-0.0.13.tar.gz", "has_sig": false, "md5_digest": "a46bbf8941cabc331de1d8af3095de27", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 21637, "upload_time": "2018-04-25T11:14:21", "url": "https://files.pythonhosted.org/packages/de/aa/bad109e9025a68b1bef5b6898488f4ca44befd8939e81e775c3a4340500a/lor-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "d3dd4920cc9da248f88cb483b578c312", "sha256": "2902d952c9ea78a4c3d6daac2e8695f498c48958baa2697039dbdf2d7e2d5d31" }, "downloads": -1, "filename": "lor-0.0.14.tar.gz", "has_sig": false, "md5_digest": "d3dd4920cc9da248f88cb483b578c312", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 21796, "upload_time": "2018-07-05T11:31:23", "url": "https://files.pythonhosted.org/packages/b1/9f/7d458337e09f1b9055739bf0fb3263bba16f3ebe0dab6e8b7745d7606d97/lor-0.0.14.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "f5c6723cfd8a7b529bae3ae95fce9090", "sha256": "ef66a74f1be9c9af1c679e09d1459b57cbdb95e3007ac8e4078b61f7c571108a" }, "downloads": -1, "filename": "lor-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f5c6723cfd8a7b529bae3ae95fce9090", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 19544, "upload_time": "2018-04-13T12:38:25", "url": "https://files.pythonhosted.org/packages/1a/33/53ab00fa410ee1a2eb52a9dc441dd10cebe953f62db1269bca53abe080b4/lor-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "904ada6b9764e0d9ad86455f2af4b71e", "sha256": "356cf6b3f37898ee487dd86ebf69303948cf0fbe6501cf9cb561d9b2ddcb491b" }, "downloads": -1, "filename": "lor-0.0.3.tar.gz", "has_sig": false, "md5_digest": "904ada6b9764e0d9ad86455f2af4b71e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 22584, "upload_time": "2018-04-16T18:21:48", "url": "https://files.pythonhosted.org/packages/b0/7f/d0d9e4393ce4269137c53e1adee848294bd4fd5a124aa505be6158d71a86/lor-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "233752fe306213202838faee55286ccf", "sha256": "cdc10b816c98eef03f0f8e916adf2e89b62269cb80545cf37bc3a68af905fb7f" }, "downloads": -1, "filename": "lor-0.0.4.tar.gz", "has_sig": false, "md5_digest": "233752fe306213202838faee55286ccf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 22586, "upload_time": "2018-04-16T18:26:56", "url": "https://files.pythonhosted.org/packages/a4/7c/0bab58ede1ac38df10bb122b932663c40294533bc7306b6776887b1498f9/lor-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "dfa3e6aa261402bfe300bc8b8a6db0df", "sha256": "5a522ee95420986de72f3cc7c22ed7363eaae5eaf360e635cef31c72c7407fcf" }, "downloads": -1, "filename": "lor-0.0.5.tar.gz", "has_sig": false, "md5_digest": "dfa3e6aa261402bfe300bc8b8a6db0df", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 25072, "upload_time": "2018-04-16T18:35:20", "url": "https://files.pythonhosted.org/packages/aa/53/06f5a9fac21a72260bb8505cd1f92bab646c6f008108bfdf4e515fb54314/lor-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "c2bfd567b6aadc486b772553cc686307", "sha256": "9f51a24f3549768c1058a9497a59e326c24ba2915413c6577d3257400a78f210" }, "downloads": -1, "filename": "lor-0.0.6.tar.gz", "has_sig": false, "md5_digest": "c2bfd567b6aadc486b772553cc686307", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24803, "upload_time": "2018-04-18T14:37:05", "url": "https://files.pythonhosted.org/packages/19/f9/175c911b182defa0aed9fabefd4f94779a369e119aeb332ff45d1e869da8/lor-0.0.6.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "7a375f980d2ad83a5f9a77141fa9cc01", "sha256": "69813fec6c5dd3e6435dd1e5a43ceb38bab36078aac07a1bed678ff12e5bc2b0" }, "downloads": -1, "filename": "lor-0.0.9.tar.gz", "has_sig": false, "md5_digest": "7a375f980d2ad83a5f9a77141fa9cc01", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 22014, "upload_time": "2018-04-24T12:57:32", "url": "https://files.pythonhosted.org/packages/da/33/ec7e439f070dacf5ec14d261a0d72c9dfd73c4974299819361ea9f8bd5c7/lor-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d3dd4920cc9da248f88cb483b578c312", "sha256": "2902d952c9ea78a4c3d6daac2e8695f498c48958baa2697039dbdf2d7e2d5d31" }, "downloads": -1, "filename": "lor-0.0.14.tar.gz", "has_sig": false, "md5_digest": "d3dd4920cc9da248f88cb483b578c312", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 21796, "upload_time": "2018-07-05T11:31:23", "url": "https://files.pythonhosted.org/packages/b1/9f/7d458337e09f1b9055739bf0fb3263bba16f3ebe0dab6e8b7745d7606d97/lor-0.0.14.tar.gz" } ] }