)]}'
{"id":"openstack%2Fhacking~148564","triplet_id":"openstack%2Fhacking~master~Ie7cea4156f0da5bf72d16e5eb5f4e13b7c095d3f","project":"openstack/hacking","branch":"master","topic":"jd/fix-new-class","hashtags":[],"change_id":"Ie7cea4156f0da5bf72d16e5eb5f4e13b7c095d3f","subject":"Fix H238 to allow parent classes to be returned by a function","status":"MERGED","created":"2015-01-20 13:47:23.000000000","updated":"2015-01-30 22:16:00.000000000","submitted":"2015-01-30 17:26:16.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":3,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"a0c05af06f9174b59f8cff4947ceef9bfd656926","_number":148564,"virtual_id_number":148564,"owner":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":0,"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},{"value":2,"date":"2015-01-30 17:26:16.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},{"value":0,"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":0,"date":"2015-01-30 18:10:04.000000000","post_submit":true,"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"all":[{"value":2,"date":"2015-01-21 15:32:59.000000000","_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":1,"date":"2015-01-21 17:45:22.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},{"value":2,"date":"2015-01-30 17:18:22.000000000","_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":0,"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"all":[{"value":0,"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":0,"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},{"value":1,"date":"2015-01-30 17:18:22.000000000","_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":0,"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2015-01-21 15:32:59.000000000","updated_by":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"reviewer":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"state":"REVIEWER"},{"updated":"2015-01-21 17:45:22.000000000","updated_by":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"reviewer":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"state":"REVIEWER"},{"updated":"2015-01-30 17:18:22.000000000","updated_by":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"reviewer":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"state":"REVIEWER"},{"updated":"2015-01-30 17:26:16.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"},{"updated":"2015-01-30 18:10:04.000000000","updated_by":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"reviewer":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"state":"REVIEWER"}],"messages":[{"id":"412dcfbdbc44006bb9c25271be8e5f1a2f1683f9","author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"date":"2015-01-20 13:47:23.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"00e2b200d384da75742995655c355e7b867af279","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-01-20 13:55:26.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-hacking-python26 http://logs.openstack.org/64/148564/1/check/gate-hacking-python26/307af0f/ : SUCCESS in 33s\n- gate-hacking-pep8 http://logs.openstack.org/64/148564/1/check/gate-hacking-pep8/a6eb75c/ : SUCCESS in 28s\n- gate-hacking-docs http://docs-draft.openstack.org/64/148564/1/check/gate-hacking-docs/5f9737a//doc/build/html/ : SUCCESS in 31s\n- gate-hacking-python27 http://logs.openstack.org/64/148564/1/check/gate-hacking-python27/fc864b8/ : SUCCESS in 40s\n- gate-hacking-python33 http://logs.openstack.org/64/148564/1/check/gate-hacking-python33/3ff71e7/ : SUCCESS in 1m 42s\n- gate-hacking-pypy http://logs.openstack.org/64/148564/1/check/gate-hacking-pypy/4a00d8a/ : SUCCESS in 53s\n- gate-hacking-python34 http://logs.openstack.org/64/148564/1/check/gate-hacking-python34/7a2d0a8/ : SUCCESS in 2m 08s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/64/148564/1/check/gate-hacking-integration-nova/b345662/ : SUCCESS in 46s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"f3430432795d2fe5690e422d05929af24c2b1553","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2015-01-20 18:20:38.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)\n\nThis looks okay to me, but I think it should have a better commit message explaining why the change is needed.  It\u0027s not unreasonable to think that someday we would want to know why we\u0027re allowing or disallowing something in a hacking rule, and the commit message is going to be about the only way to know.","accounts_in_message":[],"_revision_number":1},{"id":"b81f63e05e79cbf90bc8d7d72523eb4831a02214","author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"date":"2015-01-20 18:31:41.000000000","message":"Patch Set 1:\n\nI\u0027m not sure I understand what you ask for Ben. This is just a fix for the E238 rules which has a false-positive. The reason for adding this rule etc already have been discussed and documented.","accounts_in_message":[],"_revision_number":1},{"id":"f5998b7c8b9ad30bea5d67fc7cbb2d31786aa4a5","author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"date":"2015-01-20 18:58:35.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nCan you at least better describe what is happening in the commit message, e.g.,\n\n   Fix H238 to allow parent classes to be returned by a function\n\n   There was a corner case that wasn\u0027t caught before where\n   you would want to declare a class like this:\n       \u003c\u003cinsert code\u003e\u003e\n   but this falsely triggered H238. This allows for that and\n   adds one more docstring update for a failure case.","accounts_in_message":[],"_revision_number":1},{"id":"772da8ff3fbd0e0fa0c2747c33344466745e3b31","author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"date":"2015-01-20 18:58:51.000000000","message":"Patch Set 1: Code-Review-1","accounts_in_message":[],"_revision_number":1},{"id":"5e0a738809e0d9d1a1cb4bf09cfb7c6015cdfbd2","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2015-01-20 19:29:58.000000000","message":"Patch Set 1:\n\nYep, Ian\u0027s example is exactly what I\u0027m looking for.  If I saw this change in isolation without having also seen the incubator changes that prompted it I would have no idea what problem it\u0027s addressing.","accounts_in_message":[],"_revision_number":1},{"id":"21788138aec8ef55e6a507b4fac9519cf0e2e130","author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"date":"2015-01-21 08:52:51.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"35d6d455482e9cb70ba9ccea3c1151000f3e30dd","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-01-21 08:59:11.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-hacking-python26 http://logs.openstack.org/64/148564/2/check/gate-hacking-python26/012dba7/ : SUCCESS in 31s\n- gate-hacking-pep8 http://logs.openstack.org/64/148564/2/check/gate-hacking-pep8/a05afdd/ : SUCCESS in 20s\n- gate-hacking-docs http://docs-draft.openstack.org/64/148564/2/check/gate-hacking-docs/ba8b051//doc/build/html/ : SUCCESS in 31s\n- gate-hacking-python27 http://logs.openstack.org/64/148564/2/check/gate-hacking-python27/1675e0a/ : SUCCESS in 21s\n- gate-hacking-python33 http://logs.openstack.org/64/148564/2/check/gate-hacking-python33/2da6058/ : SUCCESS in 1m 33s\n- gate-hacking-pypy http://logs.openstack.org/64/148564/2/check/gate-hacking-pypy/fa662f2/ : SUCCESS in 55s\n- gate-hacking-python34 http://logs.openstack.org/64/148564/2/check/gate-hacking-python34/4dd8b14/ : SUCCESS in 2m 25s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/64/148564/2/check/gate-hacking-integration-nova/f40f7de/ : SUCCESS in 58s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"44244aac71457cef9c58c3bb244d405946dd7743","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2015-01-21 15:30:53.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"b2f22249a80a08eff50791b647ac2b6f10023803","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2015-01-21 15:31:33.000000000","message":"Patch Set 3: Commit message was updated","accounts_in_message":[],"_revision_number":3},{"id":"4322255e3fd4a42c40363f54f78cdd00b69f5eb0","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2015-01-21 15:32:59.000000000","message":"Patch Set 3: Code-Review+2\n\nI went ahead and tweaked the commit message.  Otherwise this lgtm.","accounts_in_message":[],"_revision_number":3},{"id":"8d69bec0808b0d9d3c025dc0be381647300c10ed","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-01-21 16:10:11.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-hacking-python26 http://logs.openstack.org/64/148564/3/check/gate-hacking-python26/88eb23d/ : SUCCESS in 31s\n- gate-hacking-pep8 http://logs.openstack.org/64/148564/3/check/gate-hacking-pep8/175c9ce/ : SUCCESS in 20s\n- gate-hacking-docs http://docs-draft.openstack.org/64/148564/3/check/gate-hacking-docs/cb397c9//doc/build/html/ : SUCCESS in 41s\n- gate-hacking-python27 http://logs.openstack.org/64/148564/3/check/gate-hacking-python27/6695ad6/ : SUCCESS in 45s\n- gate-hacking-python33 http://logs.openstack.org/64/148564/3/check/gate-hacking-python33/6e3c0b4/ : SUCCESS in 1m 22s\n- gate-hacking-pypy http://logs.openstack.org/64/148564/3/check/gate-hacking-pypy/7c71418/ : SUCCESS in 1m 03s\n- gate-hacking-python34 http://logs.openstack.org/64/148564/3/check/gate-hacking-python34/2bf6dbb/ : SUCCESS in 2m 09s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/64/148564/3/check/gate-hacking-integration-nova/be263e1/ : SUCCESS in 53s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"896028a2f1657b78923d35ad87912fb85c671399","author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"date":"2015-01-21 17:45:22.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"6d743f3ea3b5bdd4fa206d39de9281702f4c61e9","author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"date":"2015-01-30 17:18:22.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"4dd7c028e517ff708ab75668dceb8e033704d834","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-01-30 17:18:23.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":3},{"id":"a9f3e663c2fdc798354aeca0a543a1ebbf34aa02","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-01-30 17:26:16.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-hacking-python26 http://logs.openstack.org/64/148564/3/gate/gate-hacking-python26/34ee412/ : SUCCESS in 32s\n- gate-hacking-docs http://docs-draft.openstack.org/64/148564/3/gate/gate-hacking-docs/5b175cf//doc/build/html/ : SUCCESS in 39s\n- gate-hacking-pep8 http://logs.openstack.org/64/148564/3/gate/gate-hacking-pep8/2f3867b/ : SUCCESS in 35s\n- gate-hacking-python27 http://logs.openstack.org/64/148564/3/gate/gate-hacking-python27/26ee52f/ : SUCCESS in 44s\n- gate-hacking-python33 http://logs.openstack.org/64/148564/3/gate/gate-hacking-python33/a153137/ : SUCCESS in 1m 59s\n- gate-hacking-pypy http://logs.openstack.org/64/148564/3/gate/gate-hacking-pypy/5a14b0f/ : SUCCESS in 1m 19s","accounts_in_message":[],"_revision_number":3},{"id":"634f4fe265822b1e7ac0d108006618c4524aeeb5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-01-30 17:26:17.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":3},{"id":"2055981bc1e04b53ad1f4baf19e1865c057cd56b","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2015-01-30 18:10:04.000000000","message":"Patch Set 3:\n\nShould we release a new version of hacking with this fix? As this doesn\u0027t make a rule stricter this can be done as a maintenance release 0.10.1","accounts_in_message":[],"_revision_number":3},{"id":"73c812143360bf3f9922c5a670acd83f6adf67eb","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2015-01-30 18:28:32.000000000","message":"Patch Set 3:\n\nI\u0027m sure it wouldn\u0027t hurt.  I don\u0027t know how common this pattern is and there is a workaround using the decorator for adding metaclasses, but it never hurts to make people\u0027s lives easier. :-)","accounts_in_message":[],"_revision_number":3},{"id":"cb4527dbf30bc74c6b0c7cac33b0c15950f731d8","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2015-01-30 22:16:00.000000000","message":"Patch Set 3:\n\nDone, 0.10.1, was just pushed","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"8990ddbb2150c9bcbf77783ad9b562ff2e2028e2","revisions":{"bae8d281cd7c03cf64be9d8651bce0d6ad2ac0d0":{"kind":"REWORK","_number":1,"created":"2015-01-20 13:47:23.000000000","uploader":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"ref":"refs/changes/64/148564/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/64/148564/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/64/148564/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/64/148564/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/64/148564/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/64/148564/1"}}},"commit":{"parents":[{"commit":"ec6048f13558b93653091e83d8d0dc621f3cbefb","subject":"Merge \"Add docstring to is_import_exception\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/ec6048f13558b93653091e83d8d0dc621f3cbefb"}]}],"author":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2015-01-20 13:46:24.000000000","tz":60},"committer":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2015-01-20 13:46:24.000000000","tz":60},"subject":"E238: allow to use a function in parent class","message":"E238: allow to use a function in parent class\n\nChange-Id: Ie7cea4156f0da5bf72d16e5eb5f4e13b7c095d3f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bae8d281cd7c03cf64be9d8651bce0d6ad2ac0d0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bae8d281cd7c03cf64be9d8651bce0d6ad2ac0d0"}]},"branch":"refs/heads/master"},"dc3e9feb30b67a9ae6a8f7cc4330aa7e596c22ec":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2015-01-21 08:52:51.000000000","uploader":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"ref":"refs/changes/64/148564/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/64/148564/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/64/148564/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/64/148564/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/64/148564/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/64/148564/2"}}},"commit":{"parents":[{"commit":"ec6048f13558b93653091e83d8d0dc621f3cbefb","subject":"Merge \"Add docstring to is_import_exception\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/ec6048f13558b93653091e83d8d0dc621f3cbefb"}]}],"author":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2015-01-20 13:46:24.000000000","tz":60},"committer":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2015-01-21 08:52:16.000000000","tz":60},"subject":"Fix H238 to allow parent classes to be returned by a function","message":"Fix H238 to allow parent classes to be returned by a function\n\nThere was a corner case that wasn\u0027t caught before where\nyou would want to declare a class like this:\n\n    class Foo(somefunc()):\n\nbut this falsely triggered H238. This allows for that and\nadds one more docstring update for a failure case.\n\nChange-Id: Ie7cea4156f0da5bf72d16e5eb5f4e13b7c095d3f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/dc3e9feb30b67a9ae6a8f7cc4330aa7e596c22ec"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/dc3e9feb30b67a9ae6a8f7cc4330aa7e596c22ec"}]},"branch":"refs/heads/master"},"8990ddbb2150c9bcbf77783ad9b562ff2e2028e2":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2015-01-21 15:31:33.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/64/148564/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/64/148564/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/64/148564/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/64/148564/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/64/148564/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/64/148564/3"}}},"commit":{"parents":[{"commit":"ec6048f13558b93653091e83d8d0dc621f3cbefb","subject":"Merge \"Add docstring to is_import_exception\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/ec6048f13558b93653091e83d8d0dc621f3cbefb"}]}],"author":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2015-01-20 13:46:24.000000000","tz":60},"committer":{"name":"Ben Nemec","email":"openstack@nemebean.com","date":"2015-01-21 15:31:33.000000000","tz":0},"subject":"Fix H238 to allow parent classes to be returned by a function","message":"Fix H238 to allow parent classes to be returned by a function\n\nThere was a corner case that wasn\u0027t caught before where\nyou would want to declare a class like this:\n\n    class Foo(six.with_metaclass(abc.ABCMeta, object)):\n\nbut this falsely triggered H238. This allows for that and\nadds one more docstring update for a failure case.\n\nChange-Id: Ie7cea4156f0da5bf72d16e5eb5f4e13b7c095d3f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/8990ddbb2150c9bcbf77783ad9b562ff2e2028e2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/8990ddbb2150c9bcbf77783ad9b562ff2e2028e2"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
