{ "info": { "author": "Simon Redding", "author_email": "s1m0n.r3dd1ng@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# tasker\n\n## Creative Tool Test\u202f \n\n## Easy Job Scheduler \n\nWe want you to write a simple program that is able to execute a task which may or may not have dependencies on other tasks to be executed before. \n\nA task is executed at the command line and is defined in a regular text ASCII file as follows: \n\n- the name of the task \n- the command of the task \n- a comma-separated list of task dependencies \n\nFor Example: \n\nA.task: \n\n> A \necho 'I am task A'`\n\nB.task: \n\n> B \necho 'I am task B' \n\nC.task: \n\n> C \necho 'I am task C' \nA, B \n\nThe program is invoked to execute the task(s) thus: \n\n> ./job_scheduler \u202f [TASK_FILE_0,\u202f...] \n\nwhere first argument \u202fit is the name of the task to be run and the other argument are file paths of the task definition\u202ffiles. \n\n \n\nSo, with the given task sample files, you might run for example: \n\n> ./job_scheduler A A.task B.task C.task \nI am A \n\n> ./job_scheduler C A.task B.task C.task \nI am A \nI am B \nI am C \n\n> ./job_scheduler B A.task\u202fC.task \nError! \n\n### Delivery: \n\nYou are expected to deliver your solution in a gitlab, github or bitbucket repository accessible to us. The commit history of the repo will form part of our analysis of your work. \n\n### General Notes: \n\nThis exercise should not take you more than 5 hours. \n\nYou are expected to write testable and documented code where you explain the design and the implementation. \n\nThe C++ code and its compilation process should be as portable as possible. \n\n \n\nSpecifically: \n\nyou are free to adopt data structure and algorithms you see fit the purpose. \n\nyou can use the C++ standand level you prefer (C++11, C++14, C++17) \n\nyou can make use of\u202fstd::system\u202f in \u202ffor executing the command of a task or you are free to use other framework. \n\nyou are free to use external libraries as far as those are portable, you understand clearly what they do and you are able to argument the reason of why you choose them before other approaches. \n\n \n\nIn your interview we will discuss your solution, its corner cases, possible pitfall, test case that you did not handle, and any sort of future improvements that you or us see as valid or important. \n\n \n\nGood Luck!", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://gitlab.com/OldIronHorse/tasker", "keywords": "", "license": "GPL3", "maintainer": "", "maintainer_email": "", "name": "ct-tasker", "package_url": "https://pypi.org/project/ct-tasker/", "platform": "", "project_url": "https://pypi.org/project/ct-tasker/", "project_urls": { "Homepage": "http://gitlab.com/OldIronHorse/tasker" }, "release_url": "https://pypi.org/project/ct-tasker/0.1/", "requires_dist": null, "requires_python": "", "summary": "Creative Tools interview exercise", "version": "0.1" }, "last_serial": 5387385, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "3fb87d1f589f393c3c1ee6028634ff3b", "sha256": "04e3192ffbb64f7fdd119ce28fc8e4f3fc6da974656ffdc8c6d08b0178793517" }, "downloads": -1, "filename": "ct-tasker-0.1.tar.gz", "has_sig": false, "md5_digest": "3fb87d1f589f393c3c1ee6028634ff3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3013, "upload_time": "2019-06-11T16:33:18", "url": "https://files.pythonhosted.org/packages/73/0c/975f3652c25d7d6d38e4dd58925d1829a29993c7cbc384d8cbaa6c25482e/ct-tasker-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3fb87d1f589f393c3c1ee6028634ff3b", "sha256": "04e3192ffbb64f7fdd119ce28fc8e4f3fc6da974656ffdc8c6d08b0178793517" }, "downloads": -1, "filename": "ct-tasker-0.1.tar.gz", "has_sig": false, "md5_digest": "3fb87d1f589f393c3c1ee6028634ff3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3013, "upload_time": "2019-06-11T16:33:18", "url": "https://files.pythonhosted.org/packages/73/0c/975f3652c25d7d6d38e4dd58925d1829a29993c7cbc384d8cbaa6c25482e/ct-tasker-0.1.tar.gz" } ] }