{ "info": { "author": "Lorenzo Gil Sanchez", "author_email": "lorenzo.gil.sanchez@gmail.com", "bugtrack_url": null, "classifiers": [], "description": ".. contents::\n\n=======\nhghooks\n=======\n\nhghooks is a simple module that adds several useful hooks for use in\nMercurial hooks system.\n\nRight now it includes hooks for:\n\n * pep8 checking of python files\n * pyflakes checking of python files\n * jslint checking of javascript files\n * checking for forgotten pdb statements in python files\n * Trac integration. This includes:\n - Making sure at least a ticket is mentioned in the changeset message\n - Updating the Trac ticket with the changeset\n\n\nDocumentation\n=============\n\nInstallation\n------------\n\nhghooks is distributed as a Python egg so is quite easy to install. You just\nneed to type the following command::\n\n easy_install hghooks\n\nAnd Easy Install will go to the Cheeseshop and grab the last hghooks for you.\nIt will also install it for you at no extra cost :-)\n\n\nUsage\n-----\n\nTo use one of the hooks provided by this package edit your hgrc file of\nyour Mercurial repository and add these lines::\n\n [hooks]\n pretxncommit.pep8 = python:hghooks.code.pep8hook\n pretxncommit.pyflakes = python:hghooks.code.pyflakeshook\n pretxncommit.pdb = python:hghooks.code.pdbhook\n pretxncommit.jslint = python:hghooks.code.jslinthook\n\nYou can add as many hooks as you need. From version 0.2.0 it supports the\npretxnchangegroup hook too.\n\nWhen using the pretxnchangegroup hook, hghooks' default behavior is to check\nonly the last revision being pushed. If you want to check every new revision,\nyou can activate hghooks' strict mode by adding these lines to your hgrc\nfile::\n\n [hghooks]\n strict_checking = true\n\nThis way you will enforce the correctness of every commit. Offending commits\nwould need to be fixed locally using queues.\n\nHow to skip the hooks\n---------------------\n\nIf you need to avoid a hook for a specific changeset you can add one or\nmore of the following keywords to the commit message: no-pep8,\nno-pyflakes and no-pdb.\n\nOn the other hand, if you want to avoid a hook in a specific file you\ncan add a comment somewhere in the file saying so. For example::\n\n # hghooks: no-pyflakes no-pdb no-jslint\n\nin this case the pyflakes and pdb hooks will skip this file. The\n\"``# hghooks:``\" prolog is important and you have to type it exactly\nlike that. Then add the skip keyworkds separated by spaces.\n\nSkipping specific pep8 errors\n-----------------------------\n\nIf you want to ignore some pep8 errors you can do so by adding a [pep8]\nconfiguration section into your hgrc file. For example, if you want\nto allow longer than 79 character lines, you would add this configuration::\n\n [pep8]\n ignore = E501\n\nThe format of the value of the ignore option is a space separate list of\npep8 errors or warnings. Check pep8 documentation to see these codes.\n\nNote: this only works since pep8 0.6.0 and later versions.\n\nTrac integration\n----------------\n\nStarting with version 0.3.0 there is some limited support for Trac integration.\n\nRight now there are two useful hooks for those that use Trac as their project\nsystem. The first one is a hook suitable for the pretxnchangegroup event in the\ncentralized repository that Trac syncs from that checks at least a ticket is\nmentioned in the changeset message. The other one could be used in two ways:\n\n 1. One is suitable for incoming event and will add a comment for every\n changeset in the ticket mentioned in the changeset message. In summary,\n one comment per commit.\n 2. The other one is suitable for changegroup event. It all changesets will\n be grouped in one comment and will be added in every ticket mentioned in\n the changeset message. So for summarizing, it will register comment per\n push.\n\nTo use these hooks you must configure your repository with the Trac environment\npath you want to integrate with. Write this in your .hg/hgrc repository conf::\n\n [trac]\n environment = /full/path/to/your/trac/environment\n\nNow you can add both hooks in the same configuration file::\n\n [hooks]\n pretxnchangegroup.trac = python:hghooks.trachooks.ticket_checker\n incoming.trac = python:hghooks.trachooks.ticket_updater\n\nor \n\n [hooks]\n pretxnchangegroup.trac = python:hghooks.trachooks.ticket_checker\n changegroup.trac = python:hghooks.trachooks.ticket_updater\n\nRight now these hooks checks for the following pattern in your changeset\nmessages: [action] [ticket] [number] where action is any of 'close', 'closed',\n'closes', 'fix', 'fixed', 'fixes', 'addresses', 'references', 'refs', 're'\nand 'see', ticket is any of 'ticket', 'issue' and 'bug' and number is the\nnumber of the ticket with a leading # character.\n\nIn the ticket_checker hook only the presence of a ticket number and any\nof these actions is checked. In the ticket_updater, additional changes\nare done to the ticket depending on the action itself. And a comment\nis added to the ticket with a configurable message.\n\nIf you use Trac 0.12 and have more than one repository configured in\nyour environment you must tell the hook, which one you want to use. To\ndo so add the following option in the [trac] section of the repository hgrc\nconfiguration file::\n\n [trac]\n repo_name = your_repo_name_in_trac\n\nIf you don't specify this option, the repository should be the default\nrepository in Trac. Otherwise, the links to the changeset will not work.\n\nYou can also configure how the messages will look like in the Ticket. There\nare two configuration options for that::\n\n [trac]\n msg_template = (At [%(changeset)s]) %(msg)s\n changeset_style = long-hex\n\nThe msg_template specifies how the text of the comments will looks like. It\nhas two placeholders: one for the changeset id and one for the changeset\ndescription or message. As you can see in the above example, by putting\nthe changeset between brackets we automatically generate a Trac link to\nthat changeset in the ticket comment.\n\nThe other option, changeset_style can have one of these three values:\n\n- number: integer with the revision number\n- long-hex: full hexadecimal hash of the changeset\n- short-hex: the first 12 characters of the long-hex\n\nBy default, short-hex is used as the changeset_style.\n\nYou can also add more actions if the ones supplied with hghooks are not\nenough for you. The extending mechanism used to allow this feature is\nbased in setuptools entry points so you must be familiar with them in\norder to use them. Right now there are two entry points:\n\n- hghooks.trac.ticket_commands\n- hghooks.trac.token_commands\n\nEach of them should point to a callable that returns a dictionary where\nthe keys are the action names and the values are callables that receive\na ticket and can modify them if they need it.\n\n\nChanges\n=======\n\n0.7.0 (2016-05-05)\n------------------\n- Add support for Mercurial >= 3.6.1. Thanks to Ernesto Revilla\n- Add support to detect pudb statements. Thanks to Andrey Kolomoets\n\n0.6.0 (2013-04-17)\n------------------\n- By default only check the last revision of a push. There is a configurable\n option to get back the default strict behavior. Thanks to Gabriel Rodriguez\n- pep257 support. Thanks to pszablow.\n\n0.5.5 (2013-02-01)\n------------------\n- Fix pep8 support for newer versions than 1.2\n\n0.5.4 (2012-10-12)\n------------------\n- Fix documentation rst errors\n\n0.5.3 (2012-10-12)\n------------------\n- Remove pep8, pyflakes and pyjslint from the depenencies since they\n are optional\n- Make Trac an optional dependency\n\n0.5.2 (2012-01-12)\n------------------\n- Fix pyjslint integration. Thanks to Alejandro Blanco.\n\n0.5.1 (2011-11-16)\n------------------\n- Use the new pyjslint 0.3.1.\n\n0.5.0 (2011-11-06)\n------------------\n- Add support to jslint through the pyjslint package. Contribution by Manuel\n Viera and Pablo Mart\u00edn.\n- Add support for the changegroup hook type in the trachooks.ticket_updater\n hook. In this case, merge all changeset messages into one message and\n add just one comment to the Trac ticket. Manuel and Pablo.\n- Use the server time in the trachooks.ticket_updater hook. Manuel and Pablo.\n\n0.4.3 (2011-10-23)\n------------------\n- Works with pyflakes 0.5.0 and backwards compatibility for previous versions\n- Fixed pep8 --ignore handling, by Waldemar Kornewald\n\n0.4.2 (2011-02-24)\n------------------\n- Fix a bug with non ascii characters in the commit message\n\n0.4.1 (2011-01-11)\n------------------\n- Fix a bug when running the pyflakes hook over a syntactically wrong file\n\n0.4.0 (2011-01-09)\n------------------\n- Make pyflakes hook ignore those code lines with a \"pyflakes:ignore\"\n comment\n\n0.3.2 (2010-11-08)\n------------------\n- Fix documentation\n\n0.3.1 (2010-10-21)\n------------------\n- Allow ignoring pep8 erros\n\n0.3.0 (2010-10-17)\n------------------\n- Add hooks for Trac integration:\n\n - A pretxnchangegroup hook that checks a metion to a ticket exist in the\n changeset message.\n - An incoming hook that add a comment to the Trac ticket with the changeset\n message.\n\n0.2.1 (2010-10-14)\n------------------\n- Fixes installation problem because setup.py was importing pep8 and pyflakes\n- Fixes bug in pdb checker when adding new files\n\n0.2.0 (2010-10-14)\n------------------\n- Support for the pretxnchangegroup hook\n\n0.1.2 (2010-08-31)\n------------------\n- Fixes issue #2 about erros when removing files\n\n0.1.1 (2010-06-13)\n------------------\n- Add documentatin about how to skip the checks\n\n0.1.0 (2010-06-13)\n------------------\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitbucket.org/lgs/hghooks/", "keywords": "mercurial pep8 pyflakes trac", "license": "LGPL 3", "maintainer": null, "maintainer_email": null, "name": "hghooks", "package_url": "https://pypi.org/project/hghooks/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/hghooks/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://bitbucket.org/lgs/hghooks/" }, "release_url": "https://pypi.org/project/hghooks/0.7.0/", "requires_dist": null, "requires_python": null, "summary": "A set of useful hooks for Mercurial", "version": "0.7.0" }, "last_serial": 2101990, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "6b7f57f826fac2532929170d8bbd7a7b", "sha256": "947f4d41a2fd6c4abe6c3377358c90ccfd31e108e918eaedd28700b743e75733" }, "downloads": -1, "filename": "hghooks-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6b7f57f826fac2532929170d8bbd7a7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5632, "upload_time": "2010-06-13T20:15:45", "url": "https://files.pythonhosted.org/packages/97/c8/7638a4cbad33821e63486047413004abc5f2fe09e1073280afb51a3e4cf9/hghooks-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "980271d73c2ccc9ccc25631398ac421e", "sha256": "5585924c8b837caa5d3d8fb70223aaa93ed3d03d359ed00c1092ed26ecce0fdc" }, "downloads": -1, "filename": "hghooks-0.1.1.tar.gz", "has_sig": false, "md5_digest": "980271d73c2ccc9ccc25631398ac421e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5950, "upload_time": "2010-06-13T20:42:46", "url": "https://files.pythonhosted.org/packages/d2/4b/56a5831a922df5c7e4fc1674988f39948bb745b42dd8ec3e9012e4adc753/hghooks-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f3a4bf6e9303356d4bb9714c2a477e01", "sha256": "f53db50ac92d50ea0176fafe2187c8e6fc007479b16d8bb70015fe020dc99ef8" }, "downloads": -1, "filename": "hghooks-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f3a4bf6e9303356d4bb9714c2a477e01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6111, "upload_time": "2010-08-31T23:56:47", "url": "https://files.pythonhosted.org/packages/69/a8/485534e5f85fca40f140130bd1bbf1c59300262b2d23dbb1368b9bcf2324/hghooks-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "6f41a74a62e89c6dc4744ae2fe2904cb", "sha256": "6c95eb473f847d770980040b726b7f35402658c78510b20d2b8b18e54e3a5589" }, "downloads": -1, "filename": "hghooks-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6f41a74a62e89c6dc4744ae2fe2904cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6434, "upload_time": "2010-10-14T18:52:12", "url": "https://files.pythonhosted.org/packages/7d/45/d6176dbd1188b01b3b6318bfa995f2edae8b0c3cc02156b22c34365d9eb9/hghooks-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "46f043fc59e1ec2d3b317e7bc42a876f", "sha256": "025d3517efce4173e9a45106f70f7ef2c7d71ece690d4037a9ac4f44929ae64d" }, "downloads": -1, "filename": "hghooks-0.2.1.tar.gz", "has_sig": false, "md5_digest": "46f043fc59e1ec2d3b317e7bc42a876f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7207, "upload_time": "2010-10-14T20:44:43", "url": "https://files.pythonhosted.org/packages/84/40/7436cbfb7bd0f0c42a0925d904354993de5ba3acf2df9b151ffbdbd0b8ba/hghooks-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d21e2bb806d2d6782dc3558fc67650d7", "sha256": "ce80eea0a1a29f1945400952b0537f5e728d2ec6822edb8aa4053a5f30b9143a" }, "downloads": -1, "filename": "hghooks-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d21e2bb806d2d6782dc3558fc67650d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11871, "upload_time": "2010-10-17T19:25:00", "url": "https://files.pythonhosted.org/packages/e3/0b/6238351c9601867b6a0e4b3fb10f92f5de7f15b272032edb4d9c690fed90/hghooks-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "cd7bc2ecff80de34b30a265080f8fe8a", "sha256": "09dd75d5fe22a4aadadba4ec0a2975d531d04fda36f4f581a730aa858d7a71ba" }, "downloads": -1, "filename": "hghooks-0.3.1.tar.gz", "has_sig": false, "md5_digest": "cd7bc2ecff80de34b30a265080f8fe8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12370, "upload_time": "2010-10-21T09:24:09", "url": "https://files.pythonhosted.org/packages/b5/e8/3858decd4f8780751d4e971aa9b286ea5686181f20b8fd73ad90d54613ea/hghooks-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "55392e177691e4f74f191bf20982a807", "sha256": "ac56b29b31ccfaeb8ef45c00810db47e90eb62a68027c4a4621031b607a385b2" }, "downloads": -1, "filename": "hghooks-0.3.2.tar.gz", "has_sig": false, "md5_digest": "55392e177691e4f74f191bf20982a807", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12393, "upload_time": "2010-11-08T20:18:22", "url": "https://files.pythonhosted.org/packages/40/10/e2a2e5bf93ce60a0d06dade1648ac638d245df2d2f7fc678dccc0c18019e/hghooks-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "a1349640af7316b2523966870b1a6e18", "sha256": "f9bfe5e212f0de969f9bc35843debce86c0a3bffc756d322339fb30f2293b8a5" }, "downloads": -1, "filename": "hghooks-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a1349640af7316b2523966870b1a6e18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13257, "upload_time": "2011-01-09T13:51:20", "url": "https://files.pythonhosted.org/packages/a5/2d/320b4364695ae4657d94c1937010d3457e48e9a750e515875c385ef98173/hghooks-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "75563219ce0b05ca20812fc5cfb2997f", "sha256": "b9dcc02de1d0fa32b72c55ee92495160dd065798281f62e377a1c0e881349010" }, "downloads": -1, "filename": "hghooks-0.4.1.tar.gz", "has_sig": false, "md5_digest": "75563219ce0b05ca20812fc5cfb2997f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13319, "upload_time": "2011-01-11T17:43:32", "url": "https://files.pythonhosted.org/packages/22/ec/5d6eb5c62bcdd8c4317b830c6b6e9873ea3e1fac7003b891dc8e5f72a90f/hghooks-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "6a79be6892a3ea1685953a7b8c88885b", "sha256": "7c84dbf0de0867475eef255b6b42898cdbaf27b54bf12e846f441551e9210211" }, "downloads": -1, "filename": "hghooks-0.4.2.tar.gz", "has_sig": false, "md5_digest": "6a79be6892a3ea1685953a7b8c88885b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13369, "upload_time": "2011-02-24T21:35:12", "url": "https://files.pythonhosted.org/packages/10/81/1eb1aebc17990fcae301e9039b0b726fee3310af00a06f64233f5204f824/hghooks-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "187a8c67192f23e0d637fbee45c3617e", "sha256": "bfc7798f6a58ae2b07d8dd60d9ab61af744b821dea5cbf97da3b4cf7b78cfde1" }, "downloads": -1, "filename": "hghooks-0.4.3.tar.gz", "has_sig": false, "md5_digest": "187a8c67192f23e0d637fbee45c3617e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13371, "upload_time": "2011-10-23T12:45:36", "url": "https://files.pythonhosted.org/packages/8d/9c/fbd2f2fdd7cb4126c5215b996da16b2e4a5a9e081f7d6f179ed22569fa2e/hghooks-0.4.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "da6986a5bf93d64543594eda6bb36451", "sha256": "c7e308baa469307606f9c1127200fd14b597fca5641985b6147591ced11fe3b1" }, "downloads": -1, "filename": "hghooks-0.5.0.tar.gz", "has_sig": false, "md5_digest": "da6986a5bf93d64543594eda6bb36451", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14328, "upload_time": "2011-11-06T10:01:22", "url": "https://files.pythonhosted.org/packages/8f/48/e6c5ae8a272b559232c92cb18e5978149ad5419989a91e2e2fc8b7465cc1/hghooks-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "aeb19fedbfd1793815fcb79ffbc424ba", "sha256": "b24d8f460088e3800c327ff71d8e91060a1814e0313a42fd5a545491dbb52dea" }, "downloads": -1, "filename": "hghooks-0.5.1.tar.gz", "has_sig": false, "md5_digest": "aeb19fedbfd1793815fcb79ffbc424ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14352, "upload_time": "2011-11-16T16:08:07", "url": "https://files.pythonhosted.org/packages/a7/73/020298e4ec9f0ea3fe9f12aba2e1b98de3656e3388ca4f3c74d9dd6f35b7/hghooks-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "0dbcb9eb5b3ee0d64c8d05eb6f369b32", "sha256": "11bf29334f72670aa371974b33a7d94ff1f4dcdc9f1c7a8e22e3663a395dde45" }, "downloads": -1, "filename": "hghooks-0.5.2.tar.gz", "has_sig": false, "md5_digest": "0dbcb9eb5b3ee0d64c8d05eb6f369b32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14445, "upload_time": "2012-01-10T17:36:01", "url": "https://files.pythonhosted.org/packages/64/a8/98d04f1b2bd3c773554b74f3b436c60fb9f83b5be86d7f50f759251c3985/hghooks-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "83139168cb017288091fd1072c503a9f", "sha256": "096657ece8061ad989735e4de08c4e95688d0ff33b6890b7645c218a57b07d05" }, "downloads": -1, "filename": "hghooks-0.5.3.tar.gz", "has_sig": false, "md5_digest": "83139168cb017288091fd1072c503a9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15587, "upload_time": "2012-10-12T07:17:01", "url": "https://files.pythonhosted.org/packages/e8/e6/9f509a669c80deba1bd1d18ede5dc1324f1cd83535f8afb65d9d3b9b5c32/hghooks-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "2309bb6d803a3a35ad80e88d78fe1029", "sha256": "c0b788d5ecb33eabb22a9f8ddc70467227c985c61cfd6fefd35dcf62f3f2f3b4" }, "downloads": -1, "filename": "hghooks-0.5.4.tar.gz", "has_sig": false, "md5_digest": "2309bb6d803a3a35ad80e88d78fe1029", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15625, "upload_time": "2012-10-12T07:24:00", "url": "https://files.pythonhosted.org/packages/29/4c/fe42ff3bec51c8fb2a6784f55af143bd14ad7f1e12e6419b34bd16d3d49c/hghooks-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "21ca8dbc0cceabdfd1e7e9791c77e342", "sha256": "e7ccb28fd525bcffe49c72e5b31355b7c167efbfcc903228a15bbe7b143a9be4" }, "downloads": -1, "filename": "hghooks-0.5.5.tar.gz", "has_sig": false, "md5_digest": "21ca8dbc0cceabdfd1e7e9791c77e342", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15829, "upload_time": "2013-02-01T19:11:28", "url": "https://files.pythonhosted.org/packages/f1/d2/194bb39a61c8b371f0e5f973e744f947decfb51e9486ba9c1054006cb5d7/hghooks-0.5.5.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "0e903dc90e06b290f1553f84d56c9f58", "sha256": "88152f5d1b3f05a9188a5d76e95f7fb32996c6a77362e8b1f5afd2e6c3e82b23" }, "downloads": -1, "filename": "hghooks-0.6.0.tar.gz", "has_sig": false, "md5_digest": "0e903dc90e06b290f1553f84d56c9f58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16544, "upload_time": "2013-04-17T10:11:18", "url": "https://files.pythonhosted.org/packages/71/f3/c21d146e4b8abe7242da3325fcee599d1a51dfc491eeb7b8581e516fab99/hghooks-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "d5487d9aa6c26d5d3af75826054401c4", "sha256": "a8f3572d846c1ed6d788ab82fa982de842d7461e5b17428afbb6f985b0bdeba1" }, "downloads": -1, "filename": "hghooks-0.7.0.tar.gz", "has_sig": false, "md5_digest": "d5487d9aa6c26d5d3af75826054401c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17004, "upload_time": "2016-05-06T03:36:22", "url": "https://files.pythonhosted.org/packages/bc/d7/e8bb274c350f5a89545408557e345a5cf6adb77c6d14141ced6046ba8522/hghooks-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d5487d9aa6c26d5d3af75826054401c4", "sha256": "a8f3572d846c1ed6d788ab82fa982de842d7461e5b17428afbb6f985b0bdeba1" }, "downloads": -1, "filename": "hghooks-0.7.0.tar.gz", "has_sig": false, "md5_digest": "d5487d9aa6c26d5d3af75826054401c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17004, "upload_time": "2016-05-06T03:36:22", "url": "https://files.pythonhosted.org/packages/bc/d7/e8bb274c350f5a89545408557e345a5cf6adb77c6d14141ced6046ba8522/hghooks-0.7.0.tar.gz" } ] }