@wichert Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.linkintegrity/1/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/exceptions.py:8:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/exceptions.py:10:1: W391 blank line at end of file
plone/app/linkintegrity/handlers.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/handlers.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/handlers.py:18:12: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:19:9: B901 blind except: statement
plone/app/linkintegrity/handlers.py:19:15: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:28:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/handlers.py:32:5: F841 local variable 'site' is assigned to but never used
plone/app/linkintegrity/handlers.py:35:80: E501 line too long (87 > 79 characters)
plone/app/linkintegrity/handlers.py:73:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/handlers.py:83:12: P002 found "hasattr", consider replacing it
plone/app/linkintegrity/handlers.py:113:78: W291 trailing whitespace
plone/app/linkintegrity/handlers.py:122:45: W602 deprecated form of raising exception
plone/app/linkintegrity/handlers.py:123:1: W391 blank line at end of file
plone/app/linkintegrity/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/interfaces.py:42:1: W391 blank line at end of file
plone/app/linkintegrity/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/__init__.py:6:1: W391 blank line at end of file
plone/app/linkintegrity/info.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/info.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:12:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/info.py:42:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:46:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/info.py:100:1: W391 blank line at end of file
plone/app/linkintegrity/utils.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/utils.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:16:1: W391 blank line at end of file
plone/app/linkintegrity/parser.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/parser.py:37:1: W391 blank line at end of file
plone/app/linkintegrity/monkey.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/monkey.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:34:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:34:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:35:1: E302 expected 2 blank lines, found 0
plone/app/linkintegrity/monkey.py:64:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/linkintegrity/monkey.py:64:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:64:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/confirmation.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/confirmation.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/confirmation.py:32:19: W601 .has_key() is deprecated, use 'in'
plone/app/linkintegrity/browser/confirmation.py:46:41: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:57:56: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:63:57: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:65:1: W391 blank line at end of file
plone/app/linkintegrity/browser/remove.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/remove.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:24:9: F841 local variable 'context' is assigned to but never used
plone/app/linkintegrity/browser/remove.py:39:39: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:40:45: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:51:1: W391 blank line at end of file
plone/app/linkintegrity/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:9:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:17:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:17:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:20:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:20:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:25:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:48:48: S001 found module formatter
plone/app/linkintegrity/tests/testDocTests.py:75:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:81:16: E713 test for membership should be 'not in'
plone/app/linkintegrity/tests/testDocTests.py:83:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:84:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:85:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:87:1: W391 blank line at end of file
plone/app/linkintegrity/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:25: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:6:35: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:7:1: W391 blank line at end of file
plone/app/linkintegrity/tests/layer.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/layer.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:24:80: E501 line too long (96 > 79 characters)
plone/app/linkintegrity/tests/layer.py:31:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:33:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:34:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:35:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:36:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:38:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:39:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:40:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:41:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:42:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:43:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:67:1: W391 blank line at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@witsch Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.linkintegrity/2/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/exceptions.py:8:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/exceptions.py:10:1: W391 blank line at end of file
plone/app/linkintegrity/handlers.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/handlers.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/handlers.py:18:12: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:19:9: B901 blind except: statement
plone/app/linkintegrity/handlers.py:19:15: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:28:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/handlers.py:32:5: F841 local variable 'site' is assigned to but never used
plone/app/linkintegrity/handlers.py:35:80: E501 line too long (87 > 79 characters)
plone/app/linkintegrity/handlers.py:73:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/handlers.py:83:12: P002 found "hasattr", consider replacing it
plone/app/linkintegrity/handlers.py:113:78: W291 trailing whitespace
plone/app/linkintegrity/handlers.py:122:45: W602 deprecated form of raising exception
plone/app/linkintegrity/handlers.py:123:1: W391 blank line at end of file
plone/app/linkintegrity/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/interfaces.py:42:1: W391 blank line at end of file
plone/app/linkintegrity/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/__init__.py:6:1: W391 blank line at end of file
plone/app/linkintegrity/info.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/info.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:12:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/info.py:42:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:46:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/info.py:100:1: W391 blank line at end of file
plone/app/linkintegrity/utils.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/utils.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:16:1: W391 blank line at end of file
plone/app/linkintegrity/parser.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/parser.py:37:1: W391 blank line at end of file
plone/app/linkintegrity/monkey.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/monkey.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:34:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:34:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:35:1: E302 expected 2 blank lines, found 0
plone/app/linkintegrity/monkey.py:64:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/linkintegrity/monkey.py:64:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:64:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/confirmation.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/confirmation.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/confirmation.py:32:19: W601 .has_key() is deprecated, use 'in'
plone/app/linkintegrity/browser/confirmation.py:46:41: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:57:56: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:63:57: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:65:1: W391 blank line at end of file
plone/app/linkintegrity/browser/remove.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/remove.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:24:9: F841 local variable 'context' is assigned to but never used
plone/app/linkintegrity/browser/remove.py:39:39: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:40:45: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:51:1: W391 blank line at end of file
plone/app/linkintegrity/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:9:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:17:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:17:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:20:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:20:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:25:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:43:48: S001 found module formatter
plone/app/linkintegrity/tests/testDocTests.py:70:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:76:16: E713 test for membership should be 'not in'
plone/app/linkintegrity/tests/testDocTests.py:78:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:79:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:80:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:82:1: W391 blank line at end of file
plone/app/linkintegrity/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:25: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:6:35: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:7:1: W391 blank line at end of file
plone/app/linkintegrity/tests/layer.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/layer.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:24:80: E501 line too long (96 > 79 characters)
plone/app/linkintegrity/tests/layer.py:31:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:33:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:34:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:35:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:36:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:38:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:39:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:40:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:41:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:42:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:43:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:50:80: E501 line too long (89 > 79 characters)
plone/app/linkintegrity/tests/layer.py:74:1: W391 blank line at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


It was removed in the next commit to this file


@witsch Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.linkintegrity/3/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/exceptions.py:8:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/exceptions.py:10:1: W391 blank line at end of file
plone/app/linkintegrity/handlers.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/handlers.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/handlers.py:18:12: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:19:9: B901 blind except: statement
plone/app/linkintegrity/handlers.py:19:15: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:28:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/handlers.py:32:5: F841 local variable 'site' is assigned to but never used
plone/app/linkintegrity/handlers.py:35:80: E501 line too long (87 > 79 characters)
plone/app/linkintegrity/handlers.py:73:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/handlers.py:83:12: P002 found "hasattr", consider replacing it
plone/app/linkintegrity/handlers.py:113:78: W291 trailing whitespace
plone/app/linkintegrity/handlers.py:122:45: W602 deprecated form of raising exception
plone/app/linkintegrity/handlers.py:123:1: W391 blank line at end of file
plone/app/linkintegrity/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/interfaces.py:42:1: W391 blank line at end of file
plone/app/linkintegrity/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/__init__.py:6:1: W391 blank line at end of file
plone/app/linkintegrity/info.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/info.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:13:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/info.py:27:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:44:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:48:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/info.py:102:1: W391 blank line at end of file
plone/app/linkintegrity/utils.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/utils.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:9:19: S001 found module formatter
plone/app/linkintegrity/utils.py:50:1: W391 blank line at end of file
plone/app/linkintegrity/parser.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/parser.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/parser.py:40:1: W391 blank line at end of file
plone/app/linkintegrity/monkey.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/monkey.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:34:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:34:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:35:1: E302 expected 2 blank lines, found 0
plone/app/linkintegrity/monkey.py:64:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/linkintegrity/monkey.py:64:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:64:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/confirmation.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/confirmation.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/confirmation.py:32:19: W601 .has_key() is deprecated, use 'in'
plone/app/linkintegrity/browser/confirmation.py:46:41: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:57:56: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:63:57: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:65:1: W391 blank line at end of file
plone/app/linkintegrity/browser/remove.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/remove.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:24:9: F841 local variable 'context' is assigned to but never used
plone/app/linkintegrity/browser/remove.py:39:39: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:40:45: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:51:1: W391 blank line at end of file
plone/app/linkintegrity/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/update.py:19:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:19:80: E501 line too long (84 > 79 characters)
plone/app/linkintegrity/browser/update.py:20:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:39:1: W391 blank line at end of file
plone/app/linkintegrity/tests/testDocTests.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:9:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:18:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:18:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:21:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:21:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:26:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:44:48: S001 found module formatter
plone/app/linkintegrity/tests/testDocTests.py:69:80: E501 line too long (103 > 79 characters)
plone/app/linkintegrity/tests/testDocTests.py:78:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:86:16: E713 test for membership should be 'not in'
plone/app/linkintegrity/tests/testDocTests.py:88:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:89:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:90:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:92:1: W391 blank line at end of file
plone/app/linkintegrity/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:25: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:6:35: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:7:1: W391 blank line at end of file
plone/app/linkintegrity/tests/layer.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/layer.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:26:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:28:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:29:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:30:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:31:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:33:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:34:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:35:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:36:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:37:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:38:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:45:80: E501 line too long (89 > 79 characters)
plone/app/linkintegrity/tests/layer.py:69:1: W391 blank line at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@witsch Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.linkintegrity/4/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/exceptions.py:8:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/exceptions.py:10:1: W391 blank line at end of file
plone/app/linkintegrity/handlers.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/handlers.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/handlers.py:18:12: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:19:9: B901 blind except: statement
plone/app/linkintegrity/handlers.py:19:15: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:28:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/handlers.py:32:5: F841 local variable 'site' is assigned to but never used
plone/app/linkintegrity/handlers.py:35:80: E501 line too long (87 > 79 characters)
plone/app/linkintegrity/handlers.py:73:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/handlers.py:83:12: P002 found "hasattr", consider replacing it
plone/app/linkintegrity/handlers.py:113:78: W291 trailing whitespace
plone/app/linkintegrity/handlers.py:122:45: W602 deprecated form of raising exception
plone/app/linkintegrity/handlers.py:123:1: W391 blank line at end of file
plone/app/linkintegrity/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/interfaces.py:42:1: W391 blank line at end of file
plone/app/linkintegrity/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/__init__.py:6:1: W391 blank line at end of file
plone/app/linkintegrity/info.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/info.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:13:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/info.py:27:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:44:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:48:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/info.py:102:1: W391 blank line at end of file
plone/app/linkintegrity/utils.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/utils.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:9:19: S001 found module formatter
plone/app/linkintegrity/utils.py:50:1: W391 blank line at end of file
plone/app/linkintegrity/parser.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/parser.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/parser.py:40:1: W391 blank line at end of file
plone/app/linkintegrity/monkey.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/monkey.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:34:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:34:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:35:1: E302 expected 2 blank lines, found 0
plone/app/linkintegrity/monkey.py:64:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/linkintegrity/monkey.py:64:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:64:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/confirmation.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/confirmation.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/confirmation.py:32:19: W601 .has_key() is deprecated, use 'in'
plone/app/linkintegrity/browser/confirmation.py:46:41: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:57:56: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:63:57: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:65:1: W391 blank line at end of file
plone/app/linkintegrity/browser/remove.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/remove.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:24:9: F841 local variable 'context' is assigned to but never used
plone/app/linkintegrity/browser/remove.py:39:39: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:40:45: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:51:1: W391 blank line at end of file
plone/app/linkintegrity/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/update.py:19:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:19:80: E501 line too long (84 > 79 characters)
plone/app/linkintegrity/browser/update.py:20:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:39:1: W391 blank line at end of file
plone/app/linkintegrity/tests/testDocTests.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:9:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:18:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:18:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:21:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:21:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:26:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:44:48: S001 found module formatter
plone/app/linkintegrity/tests/testDocTests.py:69:80: E501 line too long (103 > 79 characters)
plone/app/linkintegrity/tests/testDocTests.py:78:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:86:16: E713 test for membership should be 'not in'
plone/app/linkintegrity/tests/testDocTests.py:88:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:89:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:90:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:92:1: W391 blank line at end of file
plone/app/linkintegrity/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:25: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:6:35: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:7:1: W391 blank line at end of file
plone/app/linkintegrity/tests/layer.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/layer.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:24:80: E501 line too long (96 > 79 characters)
plone/app/linkintegrity/tests/layer.py:31:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:33:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:34:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:35:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:36:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:38:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:39:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:40:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:41:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:42:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:43:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:50:80: E501 line too long (89 > 79 characters)
plone/app/linkintegrity/tests/layer.py:74:1: W391 blank line at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@witsch Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.linkintegrity/5/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/exceptions.py:8:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/exceptions.py:10:1: W391 blank line at end of file
plone/app/linkintegrity/handlers.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/handlers.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/handlers.py:18:12: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:19:9: B901 blind except: statement
plone/app/linkintegrity/handlers.py:19:15: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:28:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/handlers.py:32:5: F841 local variable 'site' is assigned to but never used
plone/app/linkintegrity/handlers.py:35:80: E501 line too long (87 > 79 characters)
plone/app/linkintegrity/handlers.py:73:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/handlers.py:83:12: P002 found "hasattr", consider replacing it
plone/app/linkintegrity/handlers.py:113:78: W291 trailing whitespace
plone/app/linkintegrity/handlers.py:122:45: W602 deprecated form of raising exception
plone/app/linkintegrity/handlers.py:123:1: W391 blank line at end of file
plone/app/linkintegrity/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/interfaces.py:42:1: W391 blank line at end of file
plone/app/linkintegrity/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/__init__.py:6:1: W391 blank line at end of file
plone/app/linkintegrity/info.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/info.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:12:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/info.py:26:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:43:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:47:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/info.py:101:1: W391 blank line at end of file
plone/app/linkintegrity/utils.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/utils.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:16:1: W391 blank line at end of file
plone/app/linkintegrity/parser.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/parser.py:37:1: W391 blank line at end of file
plone/app/linkintegrity/monkey.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/monkey.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:34:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:34:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:35:1: E302 expected 2 blank lines, found 0
plone/app/linkintegrity/monkey.py:64:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/linkintegrity/monkey.py:64:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:64:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/confirmation.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/confirmation.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/confirmation.py:32:19: W601 .has_key() is deprecated, use 'in'
plone/app/linkintegrity/browser/confirmation.py:46:41: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:57:56: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:63:57: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:65:1: W391 blank line at end of file
plone/app/linkintegrity/browser/remove.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/remove.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:24:9: F841 local variable 'context' is assigned to but never used
plone/app/linkintegrity/browser/remove.py:39:39: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:40:45: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:51:1: W391 blank line at end of file
plone/app/linkintegrity/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/update.py:19:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:19:80: E501 line too long (84 > 79 characters)
plone/app/linkintegrity/browser/update.py:20:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:39:1: W391 blank line at end of file
plone/app/linkintegrity/tests/testDocTests.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:9:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:17:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:17:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:20:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:20:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:25:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:43:48: S001 found module formatter
plone/app/linkintegrity/tests/testDocTests.py:70:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:76:16: E713 test for membership should be 'not in'
plone/app/linkintegrity/tests/testDocTests.py:78:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:79:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:80:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:82:1: W391 blank line at end of file
plone/app/linkintegrity/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:25: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:6:35: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:7:1: W391 blank line at end of file
plone/app/linkintegrity/tests/layer.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/layer.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:24:80: E501 line too long (96 > 79 characters)
plone/app/linkintegrity/tests/layer.py:31:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:33:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:34:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:35:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:36:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:38:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:39:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:40:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:41:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:42:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:43:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:50:80: E501 line too long (89 > 79 characters)
plone/app/linkintegrity/tests/layer.py:74:1: W391 blank line at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@witsch Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.linkintegrity/6/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/exceptions.py:8:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/exceptions.py:10:1: W391 blank line at end of file
plone/app/linkintegrity/handlers.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/handlers.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:5:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/handlers.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:9:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:20:12: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:21:9: B901 blind except: statement
plone/app/linkintegrity/handlers.py:21:15: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:30:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/handlers.py:34:5: F841 local variable 'site' is assigned to but never used
plone/app/linkintegrity/handlers.py:37:80: E501 line too long (87 > 79 characters)
plone/app/linkintegrity/handlers.py:75:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/handlers.py:82:1: W293 blank line contains whitespace
plone/app/linkintegrity/handlers.py:92:1: W293 blank line contains whitespace
plone/app/linkintegrity/handlers.py:100:1: W293 blank line contains whitespace
plone/app/linkintegrity/handlers.py:106:1: W293 blank line contains whitespace
plone/app/linkintegrity/handlers.py:113:1: W293 blank line contains whitespace
plone/app/linkintegrity/handlers.py:115:78: W291 trailing whitespace
plone/app/linkintegrity/handlers.py:118:1: W293 blank line contains whitespace
plone/app/linkintegrity/handlers.py:124:45: W602 deprecated form of raising exception
plone/app/linkintegrity/handlers.py:125:1: W391 blank line at end of file
plone/app/linkintegrity/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/interfaces.py:15:1: W293 blank line contains whitespace
plone/app/linkintegrity/interfaces.py:18:1: W293 blank line contains whitespace
plone/app/linkintegrity/interfaces.py:21:1: W293 blank line contains whitespace
plone/app/linkintegrity/interfaces.py:24:1: W293 blank line contains whitespace
plone/app/linkintegrity/interfaces.py:27:1: W293 blank line contains whitespace
plone/app/linkintegrity/interfaces.py:31:1: W293 blank line contains whitespace
plone/app/linkintegrity/interfaces.py:34:1: W293 blank line contains whitespace
plone/app/linkintegrity/interfaces.py:43:1: W391 blank line at end of file
plone/app/linkintegrity/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/__init__.py:2:1: W293 blank line contains whitespace
plone/app/linkintegrity/__init__.py:6:1: W391 blank line at end of file
plone/app/linkintegrity/info.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/info.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:10:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/info.py:11:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:13:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:16:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:20:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:24:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:31:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:35:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/info.py:39:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:45:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:49:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:55:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:60:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:69:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:74:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:82:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:89:1: W293 blank line contains whitespace
plone/app/linkintegrity/info.py:90:1: W391 blank line at end of file
plone/app/linkintegrity/utils.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/utils.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:16:1: W391 blank line at end of file
plone/app/linkintegrity/parser.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/parser.py:6:1: W293 blank line contains whitespace
plone/app/linkintegrity/parser.py:10:1: W293 blank line contains whitespace
plone/app/linkintegrity/parser.py:14:1: W293 blank line contains whitespace
plone/app/linkintegrity/parser.py:21:1: W293 blank line contains whitespace
plone/app/linkintegrity/parser.py:37:1: W391 blank line at end of file
plone/app/linkintegrity/monkey.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/monkey.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:34:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:34:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:35:1: E302 expected 2 blank lines, found 0
plone/app/linkintegrity/monkey.py:64:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/linkintegrity/monkey.py:64:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:64:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/confirmation.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/confirmation.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/confirmation.py:10:1: W293 blank line contains whitespace
plone/app/linkintegrity/browser/confirmation.py:21:1: W293 blank line contains whitespace
plone/app/linkintegrity/browser/confirmation.py:31:19: W601 .has_key() is deprecated, use 'in'
plone/app/linkintegrity/browser/confirmation.py:34:1: W293 blank line contains whitespace
plone/app/linkintegrity/browser/confirmation.py:45:41: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:46:1: W293 blank line contains whitespace
plone/app/linkintegrity/browser/confirmation.py:51:1: W293 blank line contains whitespace
plone/app/linkintegrity/browser/confirmation.py:53:56: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:55:1: W293 blank line contains whitespace
plone/app/linkintegrity/browser/confirmation.py:59:57: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:61:1: W293 blank line contains whitespace
plone/app/linkintegrity/browser/confirmation.py:62:1: W391 blank line at end of file
plone/app/linkintegrity/browser/remove.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/remove.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:24:9: F841 local variable 'context' is assigned to but never used
plone/app/linkintegrity/browser/remove.py:39:39: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:40:45: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:51:1: W391 blank line at end of file
plone/app/linkintegrity/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:9:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:17:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:17:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:20:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:20:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:25:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:28:1: W293 blank line contains whitespace
plone/app/linkintegrity/tests/testDocTests.py:36:1: W293 blank line contains whitespace
plone/app/linkintegrity/tests/testDocTests.py:43:48: S001 found module formatter
plone/app/linkintegrity/tests/testDocTests.py:45:1: W293 blank line contains whitespace
plone/app/linkintegrity/tests/testDocTests.py:49:1: W293 blank line contains whitespace
plone/app/linkintegrity/tests/testDocTests.py:70:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:76:16: E713 test for membership should be 'not in'
plone/app/linkintegrity/tests/testDocTests.py:78:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:79:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:80:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:25: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:6:35: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:7:1: W391 blank line at end of file
plone/app/linkintegrity/tests/layer.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/layer.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:24:80: E501 line too long (96 > 79 characters)
plone/app/linkintegrity/tests/layer.py:31:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:33:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:34:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:35:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:36:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:38:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:39:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:40:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:41:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:42:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:43:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:67:1: W391 blank line at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@witsch Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.linkintegrity/7/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/exceptions.py:8:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/exceptions.py:10:1: W391 blank line at end of file
plone/app/linkintegrity/handlers.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/handlers.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/handlers.py:18:12: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:19:9: B901 blind except: statement
plone/app/linkintegrity/handlers.py:19:15: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:28:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/handlers.py:32:5: F841 local variable 'site' is assigned to but never used
plone/app/linkintegrity/handlers.py:35:80: E501 line too long (87 > 79 characters)
plone/app/linkintegrity/handlers.py:74:12: P002 found "hasattr", consider replacing it
plone/app/linkintegrity/handlers.py:78:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/handlers.py:88:12: P002 found "hasattr", consider replacing it
plone/app/linkintegrity/handlers.py:118:78: W291 trailing whitespace
plone/app/linkintegrity/handlers.py:127:45: W602 deprecated form of raising exception
plone/app/linkintegrity/handlers.py:128:1: W391 blank line at end of file
plone/app/linkintegrity/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/interfaces.py:42:1: W391 blank line at end of file
plone/app/linkintegrity/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/__init__.py:6:1: W391 blank line at end of file
plone/app/linkintegrity/info.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/info.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:13:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/info.py:27:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:44:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:48:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/info.py:102:1: W391 blank line at end of file
plone/app/linkintegrity/utils.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/utils.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:9:19: S001 found module formatter
plone/app/linkintegrity/utils.py:50:1: W391 blank line at end of file
plone/app/linkintegrity/parser.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/parser.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/parser.py:40:1: W391 blank line at end of file
plone/app/linkintegrity/monkey.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/monkey.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:34:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:34:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:35:1: E302 expected 2 blank lines, found 0
plone/app/linkintegrity/monkey.py:64:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/linkintegrity/monkey.py:64:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:64:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/confirmation.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/confirmation.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/confirmation.py:32:19: W601 .has_key() is deprecated, use 'in'
plone/app/linkintegrity/browser/confirmation.py:38:9: E731 do not assign a lambda expression, use a def
plone/app/linkintegrity/browser/confirmation.py:38:27: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:47:41: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:58:56: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:64:57: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/remove.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/remove.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:24:9: F841 local variable 'context' is assigned to but never used
plone/app/linkintegrity/browser/remove.py:39:39: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:40:45: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:51:1: W391 blank line at end of file
plone/app/linkintegrity/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/update.py:19:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:19:80: E501 line too long (84 > 79 characters)
plone/app/linkintegrity/browser/update.py:20:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:39:1: W391 blank line at end of file
plone/app/linkintegrity/tests/testDocTests.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:9:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:18:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:18:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:21:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:21:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:26:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:44:48: S001 found module formatter
plone/app/linkintegrity/tests/testDocTests.py:69:80: E501 line too long (103 > 79 characters)
plone/app/linkintegrity/tests/testDocTests.py:78:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:86:16: E713 test for membership should be 'not in'
plone/app/linkintegrity/tests/testDocTests.py:88:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:89:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:90:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:92:1: W391 blank line at end of file
plone/app/linkintegrity/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:25: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:6:35: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:7:1: W391 blank line at end of file
plone/app/linkintegrity/tests/layer.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/layer.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:26:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:28:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:29:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:30:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:31:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:33:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:34:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:35:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:36:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:37:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:38:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:45:80: E501 line too long (89 > 79 characters)
plone/app/linkintegrity/tests/layer.py:69:1: W391 blank line at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


странное название класса... рекомендую элементы, относящиеся к главной сетке называть примерно так: page-header, page-footer, page-content


growing a footprint is now called dilate, and it happens in place. When converting the code I attempted to do the minimal amount of changes to minimize other potential side effects. As the code was expecting was expecting a new footprint that was a grown version of the other, I did not use the in place dilate function, but instead created a new footprint that was dilated, mimicing the old behavior


@witsch Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.linkintegrity/9/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/exceptions.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/exceptions.py:8:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/exceptions.py:10:1: W391 blank line at end of file
plone/app/linkintegrity/handlers.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/handlers.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/handlers.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/handlers.py:18:12: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:19:9: B901 blind except: statement
plone/app/linkintegrity/handlers.py:19:15: E701 multiple statements on one line (colon)
plone/app/linkintegrity/handlers.py:28:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/handlers.py:32:5: F841 local variable 'site' is assigned to but never used
plone/app/linkintegrity/handlers.py:35:80: E501 line too long (87 > 79 characters)
plone/app/linkintegrity/handlers.py:74:12: P002 found "hasattr", consider replacing it
plone/app/linkintegrity/handlers.py:78:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/handlers.py:88:12: P002 found "hasattr", consider replacing it
plone/app/linkintegrity/handlers.py:118:78: W291 trailing whitespace
plone/app/linkintegrity/handlers.py:127:45: W602 deprecated form of raising exception
plone/app/linkintegrity/handlers.py:128:1: W391 blank line at end of file
plone/app/linkintegrity/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/interfaces.py:42:1: W391 blank line at end of file
plone/app/linkintegrity/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/__init__.py:6:1: W391 blank line at end of file
plone/app/linkintegrity/info.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/info.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/info.py:13:5: D001 found implements( replace it with zope.interface.implementer
plone/app/linkintegrity/info.py:27:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:44:80: E501 line too long (82 > 79 characters)
plone/app/linkintegrity/info.py:48:80: E501 line too long (81 > 79 characters)
plone/app/linkintegrity/info.py:102:1: W391 blank line at end of file
plone/app/linkintegrity/utils.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/utils.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/utils.py:9:19: S001 found module formatter
plone/app/linkintegrity/utils.py:50:1: W391 blank line at end of file
plone/app/linkintegrity/parser.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/parser.py:1:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/parser.py:40:1: W391 blank line at end of file
plone/app/linkintegrity/monkey.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/monkey.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:34:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:34:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:35:1: E302 expected 2 blank lines, found 0
plone/app/linkintegrity/monkey.py:64:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/linkintegrity/monkey.py:64:1: E402 module level import not at top of file
plone/app/linkintegrity/monkey.py:64:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/monkey.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/confirmation.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/confirmation.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/confirmation.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/confirmation.py:32:19: W601 .has_key() is deprecated, use 'in'
plone/app/linkintegrity/browser/confirmation.py:38:9: E731 do not assign a lambda expression, use a def
plone/app/linkintegrity/browser/confirmation.py:38:27: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:47:41: E231 missing whitespace after ','
plone/app/linkintegrity/browser/confirmation.py:58:56: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:64:57: Q000 Remove bad quotes.
plone/app/linkintegrity/browser/confirmation.py:66:1: W391 blank line at end of file
plone/app/linkintegrity/browser/remove.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/remove.py:3:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:4:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/linkintegrity/browser/remove.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/remove.py:24:9: F841 local variable 'context' is assigned to but never used
plone/app/linkintegrity/browser/remove.py:39:39: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:40:45: S001 found module formatter
plone/app/linkintegrity/browser/remove.py:51:1: W391 blank line at end of file
plone/app/linkintegrity/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/browser/update.py:7:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/browser/update.py:19:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:19:80: E501 line too long (84 > 79 characters)
plone/app/linkintegrity/browser/update.py:20:17: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/browser/update.py:39:1: W391 blank line at end of file
plone/app/linkintegrity/tests/testDocTests.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/testDocTests.py:5:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:8:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:9:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:10:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:11:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:18:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:18:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:21:1: E402 module level import not at top of file
plone/app/linkintegrity/tests/testDocTests.py:21:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/testDocTests.py:26:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:44:48: S001 found module formatter
plone/app/linkintegrity/tests/testDocTests.py:69:80: E501 line too long (103 > 79 characters)
plone/app/linkintegrity/tests/testDocTests.py:78:1: E302 expected 2 blank lines, found 1
plone/app/linkintegrity/tests/testDocTests.py:86:16: E713 test for membership should be 'not in'
plone/app/linkintegrity/tests/testDocTests.py:88:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:89:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:90:21: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/testDocTests.py:92:1: W391 blank line at end of file
plone/app/linkintegrity/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/linkintegrity/tests/__init__.py:6:25: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:6:35: Q000 Remove bad quotes.
plone/app/linkintegrity/tests/__init__.py:7:1: W391 blank line at end of file
plone/app/linkintegrity/tests/layer.py:0:1: C101 Coding magic comment not found
plone/app/linkintegrity/tests/layer.py:2:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:6:1: I001 isort found an import in the wrong position
plone/app/linkintegrity/tests/layer.py:26:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:28:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:29:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:30:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:31:80: E501 line too long (83 > 79 characters)
plone/app/linkintegrity/tests/layer.py:33:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:34:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:35:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:36:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:37:80: E501 line too long (80 > 79 characters)
plone/app/linkintegrity/tests/layer.py:38:13: E128 continuation line under-indented for visual indent
plone/app/linkintegrity/tests/layer.py:45:80: E501 line too long (89 > 79 characters)
plone/app/linkintegrity/tests/layer.py:69:1: W391 blank line at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.