{ "info": { "author": "Dalibor Novak", "author_email": "BorePlusPlus@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Whippet - like husky, but leaner\n################################\nUse `make `_ targets to execute git hooks. Inspired by `husky `_.\n\n.. image:: https://travis-ci.org/BorePlusPlus/whippet.svg?branch=master\n :target: https://travis-ci.org/BorePlusPlus/whippet\n :alt: Automatic build\n\n.. image:: https://img.shields.io/pypi/v/whippet\n :target: https://pypi.org/project/whippet/\n :alt: PyPI version\n\n.. image:: https://img.shields.io/pypi/dw/whippet\n :target: https://pypi.org/project/whippet/\n :alt: PyPI downloads\n\n\nRationale\n*********\nWhen working on `Node.js `_ projects, I liked the simplicity of setting up git hooks using husky. Since I failed to find a similar tool in python ecosystem, I decided to write one myself.\n\nAs far as I know, there is no standard equivalent to `npm scripts `_ in python, so I chose to rely on make which seems to be a popular way to organise project-related tasks in the python world.\n\nNote\n----\nDevelopment follows my needs at work, which means whippet might be a bit light on features. Feel free to make a suggestion if you're missing something.\n\nInstallation\n************\nWhippet is available as a `PyPI package `_. Use a tool that can install packages from it, like for instance `pip `_.\n\n.. code-block:: bash\n\n $ pip install whippet\n\nUsage\n*****\n\nInstall hooks\n-------------\nOnce whippet is installed, it is used by invoking ``whippet`` executable in the directory where you wish to install hooks. Whippet checks if that directory (or its ancestor) contains a ``.git`` directory and offers to install hooks into it.\n\n.. code-block:: bash\n\n $ cd demo\n $ whippet\n whippet - Are you sure you want to install hooks in /home/bpp/demo/.git? [Y/n] y\n\nSetup target\n------------\nWhippet hooks are scripts that check for the existence of make targets with the same name as git hooks. If such a target exists, the script executes it. Let's take ``pre-commit`` as an example. Once whippet hooks are installed, we simply add ``pre-commit`` target to the Makefile like so:\n\n.. code-block:: make\n\n pre-commit:\n @echo \"Whippet says: Woof!\"\n\n\nThen the target will be executed on ``pre-commit``:\n\n.. code-block:: bash\n\n $ git commit -m 'Testing whippet'\n pre-commit\n Whippet says: Woof!\n [master d654d33] Bar\n 1 file changed, 12 insertions(+)\n create mode 100644 Makefile\n $\n\n\nUninstall hooks\n---------------\nIf you had enough and want to remove whippet git hooks invoke ``whippet`` and pass ``uninstall`` command\n\n.. code-block:: bash\n\n $ whippet uninstall\n whippet - Are you sure you want to uninstall hooks in /home/bpp/demo/.git? [Y/n] y\n\n\nNon-interactive\n---------------\nTo avoid the prompt pass the ``--assume-yes`` argument to whippet. This can be useful when adding whippet to initialisation target in Makefile. Example:\n\n.. code-block:: make\n\n init:\n poetry install\n whippet --assume-yes\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/BorePlusPlus/whippet", "keywords": "", "license": "MIT", "maintainer": "Dalibor Novak", "maintainer_email": "BorePlusPlus@gmail.com", "name": "whippet", "package_url": "https://pypi.org/project/whippet/", "platform": "", "project_url": "https://pypi.org/project/whippet/", "project_urls": { "Homepage": "https://github.com/BorePlusPlus/whippet" }, "release_url": "https://pypi.org/project/whippet/0.3.2/", "requires_dist": null, "requires_python": ">=3.6,<4.0", "summary": "Install make based git hooks with ease.", "version": "0.3.2" }, "last_serial": 5831942, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d0fa5f69762fa35a1091759bedc867f4", "sha256": "84cf60fa4c9712cf77b7c4cd39d4c26e237e9135eab6dfe1ca3a086a5f9c4efe" }, "downloads": -1, "filename": "whippet-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d0fa5f69762fa35a1091759bedc867f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 2963, "upload_time": "2019-09-06T16:55:11", "url": "https://files.pythonhosted.org/packages/21/19/382299a93559b989481e7fb59d2c3b453f7c85fead75cea85dfae2f4e1df/whippet-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e5a1defca108d4b03cf376424a32b0a", "sha256": "910c73cf0a8cec4c9222b63b32f748efad11bd634160ba250d16d3d8ad48f29c" }, "downloads": -1, "filename": "whippet-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4e5a1defca108d4b03cf376424a32b0a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 2049, "upload_time": "2019-09-06T16:55:14", "url": "https://files.pythonhosted.org/packages/b3/f7/7915fb52d6bc7f9ae7a83353e5ea22caf0f4c5d0f0af55ac08e3528765c6/whippet-0.1.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "49ca0b54aa5df7d6b022160a72bb2cfd", "sha256": "c20c4595074c80e3fc278fcb87b04a0b4cf312b7fb102ad7772a4941b6394a16" }, "downloads": -1, "filename": "whippet-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "49ca0b54aa5df7d6b022160a72bb2cfd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 3394, "upload_time": "2019-09-10T04:25:17", "url": "https://files.pythonhosted.org/packages/9b/5c/dbe2715f8a77d82338d1ea52997b692bb2410ecd2860be6ca0f911569d15/whippet-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3ea70772701f9a074c3c0df233ca0dcb", "sha256": "ec97a1b3de588d88680daa8a5f5fbf1d9b74cf0e6d305c5114d812d45ecd1296" }, "downloads": -1, "filename": "whippet-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3ea70772701f9a074c3c0df233ca0dcb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 2541, "upload_time": "2019-09-10T04:25:19", "url": "https://files.pythonhosted.org/packages/5a/e8/ef5c52831de5292e912fa8fbd4db69a8e3194330776013128629d28aa36b/whippet-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "ef7accfb169f97acea83375ee5ed0032", "sha256": "ab4fe4a3670f3822b7f7935008adab904addfe90a37a1d61f6e1e99b3c175e00" }, "downloads": -1, "filename": "whippet-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ef7accfb169f97acea83375ee5ed0032", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 3409, "upload_time": "2019-09-10T04:37:04", "url": "https://files.pythonhosted.org/packages/ac/91/248461b24cf9dbba6d81b682100af6ffdd0eef32b7a12deeee329634afe0/whippet-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "314c8fcd1bb8679fd9f7dc74ba1b19fe", "sha256": "f5e31f8dbb12008e74992fc7a88437fb02f18b5f6debabb40390c377703a004f" }, "downloads": -1, "filename": "whippet-0.2.2.tar.gz", "has_sig": false, "md5_digest": "314c8fcd1bb8679fd9f7dc74ba1b19fe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 2547, "upload_time": "2019-09-10T04:37:05", "url": "https://files.pythonhosted.org/packages/2f/70/f6db2d15d4844f19636dd87b12dad8acedda0720cec4571081790f85fccf/whippet-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "c5a33f01da254f9439cf7c16999a9d28", "sha256": "d5adaa745ae7ee923935394c92efa5bd9c3cae636c321699b9e9fb5656cf5104" }, "downloads": -1, "filename": "whippet-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c5a33f01da254f9439cf7c16999a9d28", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 4166, "upload_time": "2019-09-10T20:14:18", "url": "https://files.pythonhosted.org/packages/06/65/92c184ecb4122a98b5d2cabfc53e539f646788d4131c90e982f31230cd75/whippet-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "880a877125bd041c3b0b66220b896229", "sha256": "6dafd7c08a6cb882fc557b2c547f4b704eb2c9920aa3f23f02410fc45de76451" }, "downloads": -1, "filename": "whippet-0.2.3.tar.gz", "has_sig": false, "md5_digest": "880a877125bd041c3b0b66220b896229", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3476, "upload_time": "2019-09-10T20:14:20", "url": "https://files.pythonhosted.org/packages/87/1a/642eede0c0aba7818e417cf1d2bb141f78218b173a9f764ec436f5ce42e7/whippet-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "38378dc30bbbdc8b5084238b0f557c8c", "sha256": "9795773715771c935615e4181d30c324ca61701e25aadab1523f309665912555" }, "downloads": -1, "filename": "whippet-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "38378dc30bbbdc8b5084238b0f557c8c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 5266, "upload_time": "2019-09-10T20:56:37", "url": "https://files.pythonhosted.org/packages/db/42/ee0593be4329949e5cbb527b5647bde7e94e0c7e0ae1dd656459187f8c5c/whippet-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db77865683f809565a0d5011bbd31b1b", "sha256": "19c64c4fa965e37741fe3fcd0e23a1ab66d59c8478a40ae75f947bf57225d355" }, "downloads": -1, "filename": "whippet-0.2.4.tar.gz", "has_sig": false, "md5_digest": "db77865683f809565a0d5011bbd31b1b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4488, "upload_time": "2019-09-10T20:56:39", "url": "https://files.pythonhosted.org/packages/2f/54/53602f2edbfd19ef037acafafd7dcecfea662db842d87b9029db0b5ba55b/whippet-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "25339acc3280e17624bf868bf37f3756", "sha256": "a940d5ca58e40fa2e1ce765a8efae7865eb2cb279b62f3645d650a0851408179" }, "downloads": -1, "filename": "whippet-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "25339acc3280e17624bf868bf37f3756", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 5479, "upload_time": "2019-09-12T16:15:26", "url": "https://files.pythonhosted.org/packages/72/4c/29350c8e533b53135686384a5634f107582a2456320beb94c236c3cdba26/whippet-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cad2c03603fd2f5aafdb3de07ddbab89", "sha256": "08479f37470e8f34fd3e3cb93e875e384309d4a994d2b27a10c0daf68efac397" }, "downloads": -1, "filename": "whippet-0.3.0.tar.gz", "has_sig": false, "md5_digest": "cad2c03603fd2f5aafdb3de07ddbab89", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4673, "upload_time": "2019-09-12T16:15:28", "url": "https://files.pythonhosted.org/packages/c0/b7/2c676f045cbfd8d6488dbe4d4e2fc978513b43c513eac354f0b1d0cdeb3d/whippet-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "80cd834b3f1823f1d65833f1ae3d8377", "sha256": "e15bbe993eaa6b4511821ad483eb0471ea7c15f8d54e376cdac3bbed2dad3d79" }, "downloads": -1, "filename": "whippet-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "80cd834b3f1823f1d65833f1ae3d8377", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 5815, "upload_time": "2019-09-15T13:20:44", "url": "https://files.pythonhosted.org/packages/a9/17/854f56931fef76b0855b60d6ff889ceccb457d638e1fa0af36da710e69d2/whippet-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1517b43d24277496ddaa684134be0be", "sha256": "7d1b874d53d3803363ddf41ff262fd714807701cee839758c555112df9627def" }, "downloads": -1, "filename": "whippet-0.3.1.tar.gz", "has_sig": false, "md5_digest": "f1517b43d24277496ddaa684134be0be", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 5176, "upload_time": "2019-09-15T13:20:45", "url": "https://files.pythonhosted.org/packages/b1/4c/71b41c500fc66df5d3ee8821b9d861dcd6e19eef8c10c845420c411f57e9/whippet-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "46815970b0810c3e242a4fdecc4615ab", "sha256": "de06836b8e4af756eb61f6006db3195e346271ec3840c381647747c784387162" }, "downloads": -1, "filename": "whippet-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "46815970b0810c3e242a4fdecc4615ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 5816, "upload_time": "2019-09-15T13:32:57", "url": "https://files.pythonhosted.org/packages/e7/22/acaa5604ac8975c3b8cd8b4bc56e5422b59e8b5f7b40e0fcb2eac7d0faa2/whippet-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "837b370f940c9fa0af2cd8870850425b", "sha256": "d450e4f279af436ed2fa431ff12e2820e6361ac41d51c30e2b69242499c0cb82" }, "downloads": -1, "filename": "whippet-0.3.2.tar.gz", "has_sig": false, "md5_digest": "837b370f940c9fa0af2cd8870850425b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 5074, "upload_time": "2019-09-15T13:32:59", "url": "https://files.pythonhosted.org/packages/e0/2c/f7327f99f1284c3c256cd6bd87d615e05c95bc5905a46e640202b7364ca9/whippet-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "46815970b0810c3e242a4fdecc4615ab", "sha256": "de06836b8e4af756eb61f6006db3195e346271ec3840c381647747c784387162" }, "downloads": -1, "filename": "whippet-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "46815970b0810c3e242a4fdecc4615ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 5816, "upload_time": "2019-09-15T13:32:57", "url": "https://files.pythonhosted.org/packages/e7/22/acaa5604ac8975c3b8cd8b4bc56e5422b59e8b5f7b40e0fcb2eac7d0faa2/whippet-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "837b370f940c9fa0af2cd8870850425b", "sha256": "d450e4f279af436ed2fa431ff12e2820e6361ac41d51c30e2b69242499c0cb82" }, "downloads": -1, "filename": "whippet-0.3.2.tar.gz", "has_sig": false, "md5_digest": "837b370f940c9fa0af2cd8870850425b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 5074, "upload_time": "2019-09-15T13:32:59", "url": "https://files.pythonhosted.org/packages/e0/2c/f7327f99f1284c3c256cd6bd87d615e05c95bc5905a46e640202b7364ca9/whippet-0.3.2.tar.gz" } ] }