@vangheem Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.discussion/16/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/discussion/events.py:0:1: C101 Coding magic comment not found
plone/app/discussion/events.py:14:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/events.py:31:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/events.py:37:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/events.py:43:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/events.py:49:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/conversation.py:0:1: C101 Coding magic comment not found
plone/app/discussion/conversation.py:23:1: I001 isort found an import in the wrong position
plone/app/discussion/conversation.py:53:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/conversation.py:57:27: Q000 Remove bad quotes.
plone/app/discussion/conversation.py:334:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/conversation.py:335:5: D001 found adapts( replace it with zope.component.adapter
plone/app/discussion/conversation.py:411:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/conversation.py:417:5: D001 found adapts( replace it with zope.component.adapter
plone/app/discussion/conversation.py:428:29: Q000 Remove bad quotes.
plone/app/discussion/testing.py:0:1: C101 Coding magic comment not found
plone/app/discussion/testing.py:1:1: I001 isort found an import in the wrong position
plone/app/discussion/testing.py:14:1: I003 isort expected 1 blank line in imports, found 0
plone/app/discussion/testing.py:17:23: Q000 Remove bad quotes.
plone/app/discussion/testing.py:18:1: B901 blind except: statement
plone/app/discussion/testing.py:19:23: Q000 Remove bad quotes.
plone/app/discussion/testing.py:41:9: D001 found xmlconfig.file( replace it with self.loadZCML(
plone/app/discussion/testing.py:80:14: Q000 Remove bad quotes.
plone/app/discussion/testing.py:110:10: Q000 Remove bad quotes.
plone/app/discussion/testing.py:113:10: Q000 Remove bad quotes.
plone/app/discussion/testing.py:119:10: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:33:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:39:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:44:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:50:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:51:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:132:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:133:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:137:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:139:40: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:142:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:145:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:150:47: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:153:43: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:154:44: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:156:37: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:157:45: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:159:42: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:159:65: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:162:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:163:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:169:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:174:39: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:175:41: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:176:45: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:182:39: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:198:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:199:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:201:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:202:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:203:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:204:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:205:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:212:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:213:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:215:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:216:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:217:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:218:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:219:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:227:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:228:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:231:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:233:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:236:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:237:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:238:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:245:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:246:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:247:23: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:248:31: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:250:23: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:256:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:257:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:258:23: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:259:31: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:260:23: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:267:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:268:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:270:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:271:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:272:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:275:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:276:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:277:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:284:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:285:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:287:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:288:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:289:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:295:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:296:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:298:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:299:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:300:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:301:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:313:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:314:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:320:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:321:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:324:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:325:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:326:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:332:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:333:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:335:13: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:336:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:337:21: Q000 Remove bad quotes.
plone/app/discussion/subscribers.py:0:1: C101 Coding magic comment not found
plone/app/discussion/contentrules.py:0:1: C101 Coding magic comment not found
plone/app/discussion/contentrules.py:18:5: E731 do not assign a lambda expression, use a def
plone/app/discussion/comment.py:6:1: I001 isort found an import in the wrong position
plone/app/discussion/comment.py:9:1: I001 isort found an import in the wrong position
plone/app/discussion/comment.py:10:1: I001 isort found an import in the wrong position
plone/app/discussion/comment.py:11:1: I001 isort found an import in the wrong position
plone/app/discussion/comment.py:12:1: I001 isort found an import in the wrong position
plone/app/discussion/comment.py:13:1: I001 isort found an import in the wrong position
plone/app/discussion/comment.py:14:1: I001 isort found an import in the wrong position
plone/app/discussion/comment.py:15:1: I001 isort found an import in the wrong position
plone/app/discussion/comment.py:44:5: Q000 Remove bad quotes.
plone/app/discussion/comment.py:45:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:48:5: Q000 Remove bad quotes.
plone/app/discussion/comment.py:50:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:51:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:52:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:53:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:56:5: Q000 Remove bad quotes.
plone/app/discussion/comment.py:58:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:59:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:60:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:61:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:62:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:63:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:65:28: Q000 Remove bad quotes.
plone/app/discussion/comment.py:77:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/comment.py:89:13: Q000 Remove bad quotes.
plone/app/discussion/comment.py:92:12: Q000 Remove bad quotes.
plone/app/discussion/comment.py:160:40: Q000 Remove bad quotes.
plone/app/discussion/comment.py:162:17: S001 found module formatter
plone/app/discussion/comment.py:166:17: S001 found module formatter
plone/app/discussion/comment.py:180:21: Q000 Remove bad quotes.
plone/app/discussion/comment.py:181:29: Q000 Remove bad quotes.
plone/app/discussion/comment.py:201:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
plone/app/discussion/comment.py:219:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/discussion/comment.py:295:21: Q000 Remove bad quotes.
plone/app/discussion/comment.py:349:27: Q000 Remove bad quotes.
plone/app/discussion/comment.py:415:27: Q000 Remove bad quotes.
plone/app/discussion/patches.py:0:1: C101 Coding magic comment not found
plone/app/discussion/patches.py:6:1: I001 isort found an import in the wrong position
plone/app/discussion/patches.py:25:46: Q000 Remove bad quotes.
plone/app/discussion/catalog.py:0:1: C101 Coding magic comment not found
plone/app/discussion/catalog.py:10:1: I001 isort found an import in the wrong position
plone/app/discussion/catalog.py:11:1: I001 isort found an import in the wrong position
plone/app/discussion/catalog.py:12:1: I001 isort found an import in the wrong position
plone/app/discussion/catalog.py:81:17: Q000 Remove bad quotes.
plone/app/discussion/tool.py:0:1: C101 Coding magic comment not found
plone/app/discussion/tool.py:7:1: I001 isort found an import in the wrong position
plone/app/discussion/tool.py:8:1: I001 isort found an import in the wrong position
plone/app/discussion/tool.py:9:1: I001 isort found an import in the wrong position
plone/app/discussion/tool.py:18:15: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/upgrades.py:0:1: C101 Coding magic comment not found
plone/app/discussion/browser/controlpanel.py:2:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/controlpanel.py:3:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/controlpanel.py:4:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/controlpanel.py:5:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/controlpanel.py:6:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/controlpanel.py:26:10: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:27:15: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:29:9: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:30:17: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:31:17: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:32:17: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:33:17: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:34:17: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:35:17: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:36:17: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:37:17: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:38:17: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:68:52: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:69:54: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:70:56: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:72:15: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:74:15: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:83:57: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:84:55: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:85:48: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:89:57: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:90:55: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:91:40: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:91:40: S001 found module formatter
plone/app/discussion/browser/controlpanel.py:107:46: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:113:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:120:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:122:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:125:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:128:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:132:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:138:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:164:46: Q000 Remove bad quotes.
plone/app/discussion/browser/conversation.py:0:1: C101 Coding magic comment not found
plone/app/discussion/browser/conversation.py:8:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/conversation.py:9:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/conversation.py:11:1: I003 isort expected 1 blank line in imports, found 0
plone/app/discussion/browser/conversation.py:15:1: B901 blind except: statement
plone/app/discussion/browser/conversation.py:27:1: C901 'ConversationView._enabled_for_archetypes' is too complex (14)
plone/app/discussion/browser/conversation.py:133:12: P002 found "hasattr", consider replacing it
plone/app/discussion/browser/conversation.py:133:29: Q000 Remove bad quotes.
plone/app/discussion/browser/captcha.py:7:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/captcha.py:15:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/captcha.py:23:15: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/browser/captcha.py:24:5: D001 found adapts( replace it with zope.component.adapter
plone/app/discussion/browser/captcha.py:25:15: Q000 Remove bad quotes.
plone/app/discussion/browser/captcha.py:27:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/discussion/browser/captcha.py:36:5: D001 found adapts( replace it with zope.component.adapter
plone/app/discussion/browser/captcha.py:46:80: E501 line too long (86 > 79 characters)
plone/app/discussion/browser/captcha.py:54:39: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:0:1: C101 Coding magic comment not found
plone/app/discussion/browser/comment.py:7:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/comment.py:8:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/comment.py:9:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/comment.py:44:19: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:44:19: S001 found module formatter
plone/app/discussion/browser/comment.py:46:40: S001 found module formatter
plone/app/discussion/browser/comment.py:52:10: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:69:32: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:70:38: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:91:52: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:94:40: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:94:58: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:105:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/discussion/browser/migration.py:0:1: C101 Coding magic comment not found
plone/app/discussion/browser/migration.py:7:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/migration.py:8:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/migration.py:9:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/migration.py:31:1: C901 'View.__call__' is too complex (32)
plone/app/discussion/browser/migration.py:38:19: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:42:16: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:74:26: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:76:31: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:77:21: S001 found module formatter
plone/app/discussion/browser/migration.py:175:25: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:175:25: S001 found module formatter
plone/app/discussion/browser/migration.py:185:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:185:13: S001 found module formatter
plone/app/discussion/browser/migration.py:199:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:199:13: S001 found module formatter
plone/app/discussion/browser/migration.py:200:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:200:13: S001 found module formatter
plone/app/discussion/browser/migration.py:201:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:201:13: S001 found module formatter
plone/app/discussion/browser/migration.py:203:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:204:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:222:21: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:223:21: S001 found module formatter
plone/app/discussion/browser/migration.py:231:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:232:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:233:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:233:17: S001 found module formatter
plone/app/discussion/browser/migration.py:240:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:242:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:243:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:244:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:246:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:246:13: S001 found module formatter
plone/app/discussion/browser/migration.py:251:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:251:17: S001 found module formatter
plone/app/discussion/browser/migration.py:255:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:256:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:260:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:261:17: Q000 Remove bad quotes.
plone/app/discussion/browser/moderation.py:3:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/moderation.py:10:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/moderation.py:11:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/moderation.py:12:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/moderation.py:104:19: Q000 Remove bad quotes.
plone/app/discussion/browser/moderation.py:105:22: Q000 Remove bad quotes.
plone/app/discussion/browser/moderation.py:182:15: Q000 Remove bad quotes.
plone/app/discussion/browser/moderation.py:183:18: Q000 Remove bad quotes.
plone/app/discussion/browser/traversal.py:0:1: C101 Coding magic comment not found
plone/app/discussion/browser/traversal.py:23:5: D001 found implements( replace it with zope.interface.implementer
plone/app/discussion/browser/traversal.py:24:5: D001 found adapts( replace it with zope.component.adapter
plone/app/discussion/browser/traversal.py:32:20: Q000 Remove bad quotes.
plone/app/discussion/browser/traversal.py:33:20: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:6:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/comments.py:7:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/comments.py:8:1: I001 isort found an import in the wrong position
plone/app/discussion/browser/comments.py:37:5: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:38:13: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:39:13: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:42:5: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:43:13: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:44:13: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:45:13: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:48:5: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:49:13: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:50:13: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:51:13: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:54:5: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:55:13: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:62:15: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:84:39: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:85:53: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:90:35: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:124:41: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:125:41: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:126:42: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:128:1: C901 'CommentForm.handleComment' is too complex (17)
plone/app/discussion/browser/comments.py:128:32: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:128:63: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:137:32: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:138:32: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:154:35: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:163:23: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:210:53: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:226:17: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:227:17: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:258:19: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:259:22: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:265:32: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:359:39: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:362:41: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:370:41: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:378:37: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:448:20: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:448:20: S001 found module formatter
plone/app/discussion/browser/comments.py:494:16: S001 found module formatter
plone/app/discussion/tests/test_comments_viewlet.py:5:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_comments_viewlet.py:6:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_comments_viewlet.py:52:45: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:83:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:91:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:97:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:105:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:111:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:118:44: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:119:47: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:120:64: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:147:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:154:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:163:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:169:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:177:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:183:59: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:185:14: D001 found assertEquals( replace it with assertEqual
plone/app/discussion/tests/test_comments_viewlet.py:185:41: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:192:44: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:193:47: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:195:64: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:222:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:231:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:237:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:244:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:251:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:280:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:289:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:295:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:302:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:310:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:341:29: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:351:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:357:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:364:44: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:388:29: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:394:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:406:27: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:427:29: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:432:44: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:441:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:522:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:523:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:528:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:533:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:534:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:535:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:546:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:547:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:548:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:604:13: S001 found module formatter
plone/app/discussion/tests/test_conversation.py:0:1: C101 Coding magic comment not found
plone/app/discussion/tests/test_conversation.py:3:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_conversation.py:27:1: B901 blind except: statement
plone/app/discussion/tests/test_conversation.py:85:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:87:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:90:27: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:437:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:442:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:447:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:452:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:842:13: S001 found module formatter
plone/app/discussion/tests/test_conversation.py:846:13: S001 found module formatter
plone/app/discussion/tests/test_conversation.py:851:13: S001 found module formatter
plone/app/discussion/tests/test_moderation_view.py:2:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_moderation_view.py:78:13: S001 found module formatter
plone/app/discussion/tests/test_moderation_view.py:86:13: S001 found module formatter
plone/app/discussion/tests/test_moderation_view.py:94:13: S001 found module formatter
plone/app/discussion/tests/test_indexers.py:0:1: C101 Coding magic comment not found
plone/app/discussion/tests/test_indexers.py:42:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:43:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:50:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:51:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:58:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:59:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:121:27: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:122:31: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:152:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:152:41: Q000 Remove bad quotes.
plone/app/discussion/tests/test_controlpanel.py:32:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_controlpanel.py:39:56: Q000 Remove bad quotes.
plone/app/discussion/tests/test_workflow.py:5:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_workflow.py:6:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_workflow.py:90:27: Q000 Remove bad quotes.
plone/app/discussion/tests/test_workflow.py:129:13: S001 found module formatter
plone/app/discussion/tests/test_workflow.py:195:13: S001 found module formatter
plone/app/discussion/tests/test_catalog.py:0:1: C101 Coding magic comment not found
plone/app/discussion/tests/test_catalog.py:3:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_catalog.py:77:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:95:13: S001 found module formatter
plone/app/discussion/tests/test_catalog.py:102:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:123:13: S001 found module formatter
plone/app/discussion/tests/test_catalog.py:130:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:146:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:161:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:179:13: S001 found module formatter
plone/app/discussion/tests/test_catalog.py:187:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:200:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:212:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:223:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:231:41: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:238:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:265:13: S001 found module formatter
plone/app/discussion/tests/test_catalog.py:284:13: S001 found module formatter
plone/app/discussion/tests/test_catalog.py:292:47: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:332:40: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:365:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:371:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:414:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:421:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:435:41: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:435:49: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:538:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:6:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_notifications.py:8:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_notifications.py:9:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_notifications.py:10:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_notifications.py:35:44: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:59:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:81:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:81:13: S001 found module formatter
plone/app/discussion/tests/test_notifications.py:97:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:127:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:142:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:147:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:174:44: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:222:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:222:13: S001 found module formatter
plone/app/discussion/tests/test_notifications.py:228:13: S001 found module formatter
plone/app/discussion/tests/test_notifications.py:232:13: S001 found module formatter
plone/app/discussion/tests/test_comment.py:2:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_comment.py:44:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:45:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:46:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:95:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:97:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:103:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:113:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:115:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:125:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:127:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:131:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:132:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:136:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:137:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:159:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:167:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:180:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:183:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:188:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:232:13: S001 found module formatter
plone/app/discussion/tests/test_comment.py:263:13: S001 found module formatter
plone/app/discussion/tests/test_comment.py:268:23: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:305:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:330:13: S001 found module formatter
plone/app/discussion/tests/test_comment.py:367:13: S001 found module formatter
plone/app/discussion/tests/test_comment.py:403:13: S001 found module formatter
plone/app/discussion/tests/test_comment.py:438:13: S001 found module formatter
plone/app/discussion/tests/test_comment.py:446:13: S001 found module formatter
plone/app/discussion/tests/test_comment.py:455:13: S001 found module formatter
plone/app/discussion/tests/test_comment.py:464:13: S001 found module formatter
plone/app/discussion/tests/test_events.py:2:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_events.py:89:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_events.py:142:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_events.py:155:13: S001 found module formatter
plone/app/discussion/tests/test_events.py:175:13: S001 found module formatter
plone/app/discussion/tests/test_contentrules.py:4:1: I001 isort found an import in the wrong position
plone/app/discussion/tests/test_contentrules.py:40:24: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:41:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:42:31: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:43:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:55:38: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:60:40: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:61:42: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:65:43: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:66:45: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:70:49: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:71:51: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:75:46: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:76:48: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:98:13: S001 found module formatter
plone/app/discussion/tests/test_contentrules.py:102:38: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:103:34: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:104:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:113:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:121:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:123:40: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:129:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:131:43: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:137:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:139:49: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:145:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:147:46: Q000 Remove bad quotes.
plone/app/discussion/tests/test_robot.py:0:1: C101 Coding magic comment not found
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


Yeah - also check yo emailllllll - maybe you can recommit in the new year via a pull request or something so you get the github credit