{ "info": { "author": "Big Data", "author_email": "bigdata@corp.globo.com", "bugtrack_url": null, "classifiers": [], "description": "# Auror Core\n\nSimple Flow creation for Azkaban\n\n![auror](https://pm1.narvii.com/6278/52c20397d131f309c687f0baa5125968cf79aea3_hq.jpg)\n\n## Install\n```\npip install auror_core\n```\n\n## Usage\n\n### Creating a simple Azkaban flow with one command \n\nYou just need to import job type and project\n\n```\nfrom auror_core.v1.job import Job, Command\nfrom auror_core import Project\n\ncom1 = Job()\\\n.as_type(Command)\\\n.with_name(\"commands job\")\\\n.with_command(\"bash echo 1\")\\\n.with_another_command(\"bash echo 2\")\n\nProject(\"folder_to_generate_files\", com1).write()\n\n```\n\n### Creating a simple V2 Azkaban flow with one command \n\nV2 flow is implemented under v2 subfolder with same job types\n\n```\nfrom auror_core.v2.job import Job, Command\nfrom auror_core import Project\n\ncom1 = Job()\\\n.as_type(Command)\\\n.with_name(\"commands job\")\\\n.with_command(\"bash echo 1\")\\\n.with_another_command(\"bash echo 2\")\n\nProject(\"folder_to_generate_files\", com1).is_v2().write()\n\n```\n\n### Creating Flows with dependencies\n\n```\nfrom auror_core.v2.job import Job, Command\nfrom auror_core import Project\n\ncom1 = Job()\\\n.as_type(Command)\\\n.with_name(\"commands job\")\\\n.with_command(\"bash echo 1\")\\\n.with_another_command(\"bash echo 2\")\n\ncom2 = Command()\\\n.with_name(\"sub command job\")\\\n.with_command(\"bash echo 1\")\\\n.with_dependencies(com1)\n\nProject(\"folder_to_generate_files\", com1, com2).is_v2().write()\n\n```\n\n### Sharing job attributes\n\nOrganize jobs with same configuration\n\n```\nfrom auror_core.v2.job import Command\nfrom auror_core import Project\n\ncom = Command()\\\n.with_command(\"bash echo 1\")\n\ncom1 = com.with_name(\"commands job\")\\\n.with_another_command(\"bash echo 2\")\n\ncom2 = com.with_name(\"sub command job\")\\\n.with_dependencies(com1)\n\nProject(\"folder_to_generate_files\", com1, com2).is_v2().write()\n\n```\n\n### Job with extra customization and configuration \n\nSimulating a Command with base Job (NOT RECOMMENDED)\n\n```\nfrom auror_core.v1.job import Job\nfrom auror_core import Project\n\ncom1 = Job()\\\n.with_name(\"commands job\")\\\n.with_(command=\"bash echo 1\")\n\ncom1._type = \"command\"\n\nProject(\"folder_to_generate_files\", com1).write()\n\n```\n\n### Integrating with Flow (just for V1)\n\nV2 already have flow included\n\n```\nfrom auror_core.v1.job import Command, Flow, Job\nfrom auror_core import Project\n\ncom1 = Command()\\\n.with_name(\"commands job\")\\\n.with_command(\"bash echo 1\")\n\nflow = Job()\\\n.as_type(Flow)\\\n.with_name(\"flow\")\\\n.with_dependencies(com1)\n\nProject(\"folder_to_generate_files\", com1, flow).write()\n\n```\n\n### Using Flow Params\n\n```\nfrom auror_core.v2.job import Command\nfrom auror_core.v2.params import Params\nfrom auror_core import Project\n\nparams = Params(\n teste1=\"my test\",\n variable=\"my variable\"\n)\n\ncom = Command()\\\n.with_command(\"bash echo ${variable}\")\n\nProject(\"folder_to_generate_files\", com)\\\n.is_v2()\\\n.with_params(params)\\\n.write()\n\n```\n\n### Using Flow Environment Variables\n\n\n```\nfrom auror_core.v2.job import Command\nfrom auror_core.v2.params import Env\nfrom auror_core import Project\n\nenv = Env(\n TESTE=\"my test\",\n VARIABLE=\"my variable\"\n)\n\ncom = Command()\\\n.with_command(\"bash echo $VARIABLE\")\n\nProject(\"folder_to_generate_files\", com)\\\n.is_v2()\\\n.with_params(env)\\\n.write()\n\n```\n\n### Using Flow Environment Variables and Params\n\n\n```\nfrom auror_core.v2.job import Command\nfrom auror_core.v2.params import Env, Params\nfrom auror_core import Project\n\nenv = Env(\n TESTE=\"my test\",\n VARIABLE=\"my variable\"\n)\n\nparams = Params(\n teste1=\"my test\",\n variable=\"my variable\"\n)\n\ncom = Command()\\\n.with_command(\"bash echo $VARIABLE ${variable}\")\n\nProject(\"folder_to_generate_files\", com)\\\n.is_v2()\\\n.with_params(params, env)\\\n.write()\n\n```\n\n### Join multiple variables in one\n\n```\nfrom auror_core.v2.job import Command\nfrom auror_core.v2.params import Env\nfrom auror_core import Project\n\nenv = Env(\n TESTE=\"env test\",\n VARIABLE=\"env variable\"\n)\n\nparams = Params(\n teste1=\"my test\",\n variable=\"my variable\"\n)\n\none_param = ParamsJoin(\"params_strange_name\", \",\") ## param name and separator\n\ncom = Command()\\\n.with_command(\"bash echo ${params_strange_name}\") \n## it will print: my test,my variable,env test,env variable\n## THERE IS NO ORDER GUARANTEE, JUST Python 3.6 >\n\nProject(\"folder_to_generate_files\", com)\\\n.is_v2()\\\n.with_params(one_param(params, env))\\\n.write()\n\n```\n\n## Plugins\n\nPlugins are just extensions from auror_core\n\nThere is a cookiecutter for new azkaban jobtypes with Auror template too: https://github.com/globocom/azkaban-jobtype-cookiecutter\n\nWe already have email plugin: https://github.com/globocom/azkaban-jobtype-email\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "auror_core", "package_url": "https://pypi.org/project/auror_core/", "platform": "", "project_url": "https://pypi.org/project/auror_core/", "project_urls": null, "release_url": "https://pypi.org/project/auror_core/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "Doing Jobs Dinamically with Azkaban", "version": "1.1.0" }, "last_serial": 4642167, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "d4d0820f99841b5714c3ead50db56123", "sha256": "47482b04617550c4f9fcc462061dc020d65d377ad653fb97da40235ad5160926" }, "downloads": -1, "filename": "auror_core-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d4d0820f99841b5714c3ead50db56123", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8231, "upload_time": "2018-11-22T20:36:23", "url": "https://files.pythonhosted.org/packages/dd/f1/eb7a4322b1d21e8917375321477226e16d0c90a82dff4a24b04f0b4b49ac/auror_core-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "0840c0fbc99f4d58558968be4f433ed1", "sha256": "3d8559a68134f9203a8ff4d1d2bd8e7f2ae2c28ca5276dfc17abc7117277957b" }, "downloads": -1, "filename": "auror_core-1.1.0.tar.gz", "has_sig": false, "md5_digest": "0840c0fbc99f4d58558968be4f433ed1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6810, "upload_time": "2018-12-15T19:54:02", "url": "https://files.pythonhosted.org/packages/84/6f/da53a45359aba2626866f78aa63e578080ab4ec919aa04c210e10cbd6adc/auror_core-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0840c0fbc99f4d58558968be4f433ed1", "sha256": "3d8559a68134f9203a8ff4d1d2bd8e7f2ae2c28ca5276dfc17abc7117277957b" }, "downloads": -1, "filename": "auror_core-1.1.0.tar.gz", "has_sig": false, "md5_digest": "0840c0fbc99f4d58558968be4f433ed1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6810, "upload_time": "2018-12-15T19:54:02", "url": "https://files.pythonhosted.org/packages/84/6f/da53a45359aba2626866f78aa63e578080ab4ec919aa04c210e10cbd6adc/auror_core-1.1.0.tar.gz" } ] }