{ "info": { "author": "Gilmore Davidson", "author_email": "gilmoreorless@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: Utilities" ], "description": "yakstack\n========\n\nA command-line utility to help you stack your yaks.\n\nErr... What?\n------------\n\n\u201cYak Shaving\u201d is a common term in the tech industry. As `originally described`_:\n\n | You see, yak shaving is what you are doing when you're doing some\n | stupid, fiddly little task that bears no obvious relationship to what\n | you're supposed to be working on, but yet a chain of twelve causal\n | relations links what you're doing to the original meta-task.\n\nIn other words, Yak Shaving is the series of distractions and/or necessary tasks you find yourself doing while you were *meant* to be doing something else. Each progressive step is logical, but when you end up doing something completely different from what you intended, it\u2019s easy to lose track of how you got there. When you realise you\u2019re getting further and further away from the primary task, you\u2019re yak shaving.\n\nThis phenomenon is so common that it has become the source of meta-jokes about stacks of yaks (where one instance of yak shaving isn\u2019t enough), and more detailed involvement (\u201cI\u2019m not just shaving the yak, I\u2019m grooming it as well\u201d).\n\nThis script helps you keep track of your \u201cyak frames\u201d, or context switches. Got distracted from a task? Add it to the yak stack. Got distracted from the new task? Also add it to the yak stack. Once you\u2019ve finished, shave the yak and go back to the previous task. Originally inspired by this usage of the term:\n\n | yak frame - n. a yak shaving stack frame. ex: \"I'm currently 3-4 yak frames deep\"\n |\n | \u2014 Charlie Somerville (@charliesome) `August 19, 2013 `_\n\n``yakstack`` is not a todo list, or a task management solution. It\u2019s simply a way to keep track of your context switches, so you don\u2019t end up thinking \u201cwhat was I meant to be doing again?\u201d\n\n\nInstallation\n------------\n\n``yakstack`` requires Python with `pip `_:\n\n.. code:: sh\n\n pip install yakstack\n\nPython 2.7 and 3+ are supported.\n\n\nUsage\n-----\n\nOn first usage, ``yakstack`` will have an empty yak stack. You have no tasks in the list.\n\n.. code:: sh\n\n $ yakstack\n No yaks to shave right now!\n\nAdding yak frames\n~~~~~~~~~~~~~~~~~\n\nAny arguments to ``yakstack`` are added as frames on your yak stack.\n\n.. code:: sh\n\n $ yakstack \"Work on super-important project\"\n You are currently 1 yak frame deep\n\n Work on super-important project\n\n $ yakstack \"Show yak script to a colleague\"\n You are currently 2 yak frames deep\n\n Work on super-important project\n \u2937 Show yak script to a colleague\n\nYou can add multiple yak frames in one command.\n\n.. code:: sh\n\n $ yakstack \"Write a README for yakstack\" \"Argument on Twitter\"\n You are currently 4 yak frames deep\n\n Work on super-important project\n \u2937 Show yak script to a colleague\n \u2937 Write a README for yakstack\n \u2937 Argument on Twitter\n\nRemoving yak frames\n~~~~~~~~~~~~~~~~~~~\n\nTo **remove** an item from the stack, use the ``--shave`` (or ``-s``) option.\n\n.. code:: sh\n\n $ yakstack --shave\n You are currently 3 yak frames deep\n\n Work on super-important project\n \u2937 Show yak script to a colleague\n \u2937 Write a README for yakstack\n\n # THIS ALSO WORKS\n $ yakstack -s\n\nYou can also remove multiple yak frames in one command. Use multiple ``--shave`` or ``-s`` options.\n\n.. code:: sh\n\n $ yakstack --shave --shave\n You are currently 1 yak frame deep\n\n Work on super-important project\n\n # THIS ALSO WORKS\n $ yakstack -ss\n\nManaging multiple yak stacks\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSometimes you might have different yak stacks running at the same time, to track distractions from different projects. Perhaps you want to track things separately for your personal projects when you\u2019re not at work.\n\nTo switch to a different profile, use the ``--profile`` (or ``-p``) option with a profile name. Once you have more than one profile, ``yakstack`` will always tell you which profile you\u2019re using.\n\n.. code:: sh\n\n $ yakstack\n You are currently 1 yak frame deep\n\n Write README for yakstack\n\n $ yakstack --profile work\n No yaks to shave right now for profile \"work\"!\n\nThe default profile used by ``yakstack`` is called, unsurprisingly, \u201cdefault\u201d.\n\nYou can switch profiles while adding new yak frames.\n\n.. code:: sh\n\n $ yakstack -p default \"Find out latest sports scores\"\n You are currently 2 yak frames deep for profile \"default\"\n\n Write README for yakstack\n \u2937 Find out latest sports scores\n\n\nOther notes\n-----------\n\nThe arguments to ``yakstack`` follow standard Unix command-line patterns. This means that space characters separate multiple arguments (and therefore multiple yak frames). To add a sentence containing spaces to your yak stack it must be surrounded by quotes.\n\n.. code:: sh\n\n # With quotes\n $ yakstack 'A single sentence with quotes' \"And another one\"\n You are currently 2 yak frames deep\n\n A single sentence with quotes\n \u2937 And another one\n\n # Without quotes\n $ yakstack This adds a whole bunch of frames\n You are currently 9 yak frames deep\n\n A single sentence with quotes\n \u2937 And another one\n \u2937 This\n \u2937 adds\n \u2937 a\n \u2937 whole\n \u2937 bunch\n \u2937 of\n \u2937 frames\n\nOh, and one more thing:\n\n.. code:: sh\n\n $ yakstack --sax\n\nYou\u2019re welcome.\n\n\n.. _originally described: http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gsb2000-02-11.html", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gilmoreorless/yakstack", "keywords": "yak stack,yak frame,cli,tasks", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "yakstack", "package_url": "https://pypi.org/project/yakstack/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/yakstack/", "project_urls": { "Homepage": "https://github.com/gilmoreorless/yakstack" }, "release_url": "https://pypi.org/project/yakstack/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "A command-line utility to help you stack your yaks.", "version": "1.1.0" }, "last_serial": 2305089, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "7d4b99f01abadec6ff74bcdef209f8ea", "sha256": "91d72ceb45b8d6714e645d1affa5c1a0b733f89ef522bd4d03971d4258b78964" }, "downloads": -1, "filename": "yakstack-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7d4b99f01abadec6ff74bcdef209f8ea", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7874, "upload_time": "2016-08-25T23:13:30", "url": "https://files.pythonhosted.org/packages/96/48/95f7ef67f312e7c3fce2e60a9ae63c794ee498c44b63a7563f5a71f31023/yakstack-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0fe1e8969c4173e425d67b464f1e8cf7", "sha256": "6166d4d9a77791ab2bf8499efc52718427c94a0b5e4ad6d283f5fb1ceb3bd2a2" }, "downloads": -1, "filename": "yakstack-1.0.0.tar.gz", "has_sig": false, "md5_digest": "0fe1e8969c4173e425d67b464f1e8cf7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5601, "upload_time": "2016-08-25T23:13:33", "url": "https://files.pythonhosted.org/packages/0c/b5/a5b68c47437f683b7a622795e3b85f5cf87736d4afc5dda2752897a374c9/yakstack-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e42c951611f99936b0bc4c9afd12d5e3", "sha256": "59c35fe81760d182bebba005b1613255622d367093e85801c48ac5047fe6295f" }, "downloads": -1, "filename": "yakstack-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e42c951611f99936b0bc4c9afd12d5e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7878, "upload_time": "2016-08-26T00:04:14", "url": "https://files.pythonhosted.org/packages/51/4b/61d3ca58eefa1e880ba8459da644a445edbd252e5648859688d39da97c3c/yakstack-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "373d2c5ca3be5e74dadf6d4734318006", "sha256": "f9607c5dc765e5615ecef68b00a756589825be31b928d5d70e2b90c7f1cbcaec" }, "downloads": -1, "filename": "yakstack-1.1.0.tar.gz", "has_sig": false, "md5_digest": "373d2c5ca3be5e74dadf6d4734318006", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5650, "upload_time": "2016-08-26T00:04:17", "url": "https://files.pythonhosted.org/packages/b6/cc/70536f9de1c98cf8b8761782fca5ede6f4fbe7c0ffb0fd0bee4512f9d70f/yakstack-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e42c951611f99936b0bc4c9afd12d5e3", "sha256": "59c35fe81760d182bebba005b1613255622d367093e85801c48ac5047fe6295f" }, "downloads": -1, "filename": "yakstack-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e42c951611f99936b0bc4c9afd12d5e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7878, "upload_time": "2016-08-26T00:04:14", "url": "https://files.pythonhosted.org/packages/51/4b/61d3ca58eefa1e880ba8459da644a445edbd252e5648859688d39da97c3c/yakstack-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "373d2c5ca3be5e74dadf6d4734318006", "sha256": "f9607c5dc765e5615ecef68b00a756589825be31b928d5d70e2b90c7f1cbcaec" }, "downloads": -1, "filename": "yakstack-1.1.0.tar.gz", "has_sig": false, "md5_digest": "373d2c5ca3be5e74dadf6d4734318006", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5650, "upload_time": "2016-08-26T00:04:17", "url": "https://files.pythonhosted.org/packages/b6/cc/70536f9de1c98cf8b8761782fca5ede6f4fbe7c0ffb0fd0bee4512f9d70f/yakstack-1.1.0.tar.gz" } ] }