@ianderso Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.users/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/users/userdataschema.py:0:1: C101 Coding magic comment not found
plone/app/users/userdataschema.py:1:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:2:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:3:1: F401 'zope.component.provideAdapter' imported but unused
plone/app/users/userdataschema.py:3:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:4:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:5:1: F401 'zope.component.hooks.getSite' imported but unused
plone/app/users/userdataschema.py:5:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:6:1: F401 'zope.annotation.interfaces.IAnnotations' imported but unused
plone/app/users/userdataschema.py:6:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:7:1: I004 isort found an unexpected blank line in imports
plone/app/users/userdataschema.py:10:1: I004 isort found an unexpected blank line in imports
plone/app/users/userdataschema.py:16:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:19:21: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:21:16: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:43:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:55:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:56:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:62:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:63:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:64:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:70:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:71:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:72:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:79:9: E128 continuation line under-indented for visual indent
plone/app/users/userdataschema.py:96:9: E128 continuation line under-indented for visual indent
plone/app/users/userdataschema.py:102:80: E501 line too long (96 > 79 characters)
plone/app/users/userdataschema.py:116:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/userdataschema.py:135:1: W391 blank line at end of file
plone/app/users/schema.py:0:1: C101 Coding magic comment not found
plone/app/users/schema.py:5:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:6:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:10:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:11:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:13:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:14:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:15:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:16:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:38:31: Q000 Remove bad quotes.
plone/app/users/schema.py:50:31: Q000 Remove bad quotes.
plone/app/users/schema.py:51:23: Q000 Remove bad quotes.
plone/app/users/schema.py:57:31: Q000 Remove bad quotes.
plone/app/users/schema.py:58:23: Q000 Remove bad quotes.
plone/app/users/schema.py:59:23: Q000 Remove bad quotes.
plone/app/users/schema.py:65:31: Q000 Remove bad quotes.
plone/app/users/schema.py:66:23: Q000 Remove bad quotes.
plone/app/users/schema.py:67:23: Q000 Remove bad quotes.
plone/app/users/schema.py:89:21: Q000 Remove bad quotes.
plone/app/users/schema.py:90:21: Q000 Remove bad quotes.
plone/app/users/schema.py:91:21: Q000 Remove bad quotes.
plone/app/users/schema.py:104:31: Q000 Remove bad quotes.
plone/app/users/schema.py:105:23: Q000 Remove bad quotes.
plone/app/users/schema.py:109:25: Q000 Remove bad quotes.
plone/app/users/schema.py:110:17: Q000 Remove bad quotes.
plone/app/users/schema.py:150:16: S001 found module formatter
plone/app/users/schema.py:167:13: Q000 Remove bad quotes.
plone/app/users/schema.py:168:22: Q000 Remove bad quotes.
plone/app/users/schema.py:169:22: Q000 Remove bad quotes.
plone/app/users/schema.py:170:22: Q000 Remove bad quotes.
plone/app/users/schema.py:171:22: Q000 Remove bad quotes.
plone/app/users/schema.py:172:22: Q000 Remove bad quotes.
plone/app/users/schema.py:173:22: Q000 Remove bad quotes.
plone/app/users/vocabularies.py:0:1: C101 Coding magic comment not found
plone/app/users/vocabularies.py:1:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:2:1: I004 isort found an unexpected blank line in imports
plone/app/users/vocabularies.py:3:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:4:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:5:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:6:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:7:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:8:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/users/vocabularies.py:10:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:11:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:12:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:13:1: I004 isort found an unexpected blank line in imports
plone/app/users/vocabularies.py:16:1: F401 'plone.app.users.browser.register.RegistrationForm' imported but unused
plone/app/users/vocabularies.py:43:80: E501 line too long (114 > 79 characters)
plone/app/users/vocabularies.py:50:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/vocabularies.py:65:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/vocabularies.py:70:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/vocabularies.py:71:5: E301 expected 1 blank line, found 0
plone/app/users/vocabularies.py:75:29: F821 undefined name 'baseNormalize'
plone/app/users/vocabularies.py:76:29: F821 undefined name 'baseNormalize'
plone/app/users/vocabularies.py:81:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/vocabularies.py:113:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/vocabularies.py:133:25: S001 found module formatter
plone/app/users/__init__.py:0:1: C101 Coding magic comment not found
plone/app/users/utils.py:0:1: C101 Coding magic comment not found
plone/app/users/utils.py:2:1: I001 isort found an import in the wrong position
plone/app/users/utils.py:5:1: I001 isort found an import in the wrong position
plone/app/users/utils.py:6:1: I001 isort found an import in the wrong position
plone/app/users/utils.py:7:1: I004 isort found an unexpected blank line in imports
plone/app/users/utils.py:8:1: I001 isort found an import in the wrong position
plone/app/users/utils.py:19:80: E501 line too long (104 > 79 characters)
plone/app/users/setuphandlers.py:0:1: C101 Coding magic comment not found
plone/app/users/setuphandlers.py:1:1: F401 'copy' imported but unused
plone/app/users/setuphandlers.py:1:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/setuphandlers.py:3:1: F401 'transaction' imported but unused
plone/app/users/setuphandlers.py:4:1: F401 'Products.CMFCore.utils.getToolByName' imported but unused
plone/app/users/setuphandlers.py:4:1: I001 isort found an import in the wrong position
plone/app/users/setuphandlers.py:6:1: I001 isort found an import in the wrong position
plone/app/users/setuphandlers.py:12:1: E302 expected 2 blank lines, found 1
plone/app/users/setuphandlers.py:26:5: F841 local variable 'portal' is assigned to but never used
plone/app/users/setuphandlers.py:32:1: W391 blank line at end of file
plone/app/users/schemaeditor.py:0:1: C101 Coding magic comment not found
plone/app/users/schemaeditor.py:1:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:2:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:3:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:4:1: F401 'copy' imported but unused
plone/app/users/schemaeditor.py:4:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:5:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:6:1: I004 isort found an unexpected blank line in imports
plone/app/users/schemaeditor.py:7:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:8:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:9:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:10:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:11:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:12:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:13:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:14:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:15:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:16:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:17:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:18:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:19:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:20:1: I004 isort found an unexpected blank line in imports
plone/app/users/schemaeditor.py:21:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:22:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:23:1: I004 isort found an unexpected blank line in imports
plone/app/users/schemaeditor.py:27:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:31:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:32:1: I004 isort found an unexpected blank line in imports
plone/app/users/schemaeditor.py:33:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:34:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:35:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:36:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:37:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:38:1: I001 isort found an import in the wrong position
plone/app/users/schemaeditor.py:39:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/schemaeditor.py:48:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:49:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:50:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:51:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:52:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:53:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:54:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:55:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:56:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:57:5: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:61:16: E227 missing whitespace around bitwise or shift operator
plone/app/users/schemaeditor.py:61:21: E227 missing whitespace around bitwise or shift operator
plone/app/users/schemaeditor.py:73:17: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:75:13: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:79:24: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:82:1: E302 expected 2 blank lines, found 1
plone/app/users/schemaeditor.py:85:1: E302 expected 2 blank lines, found 1
plone/app/users/schemaeditor.py:93:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/schemaeditor.py:100:5: D001 found adapts( replace it with zope.component.adapter
plone/app/users/schemaeditor.py:114:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/schemaeditor.py:121:5: E129 visually indented line with same indent as next logical line
plone/app/users/schemaeditor.py:132:1: E302 expected 2 blank lines, found 1
plone/app/users/schemaeditor.py:133:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/schemaeditor.py:145:18: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:164:30: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:171:17: S001 found module formatter
plone/app/users/schemaeditor.py:212:1: E302 expected 2 blank lines, found 1
plone/app/users/schemaeditor.py:224:5: F841 local variable 'annotations' is assigned to but never used
plone/app/users/schemaeditor.py:235:30: E701 multiple statements on one line (colon)
plone/app/users/schemaeditor.py:242:25: S001 found module formatter
plone/app/users/schemaeditor.py:246:23: F841 local variable 'e' is assigned to but never used
plone/app/users/schemaeditor.py:256:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/schemaeditor.py:270:9: B901 blind except: statement
plone/app/users/schemaeditor.py:276:35: E127 continuation line over-indented for visual indent
plone/app/users/schemaeditor.py:301:33: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:306:28: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:307:31: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:310:17: B901 blind except: statement
plone/app/users/schemaeditor.py:313:26: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:313:37: E231 missing whitespace after ':'
plone/app/users/schemaeditor.py:314:26: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:314:38: E231 missing whitespace after ':'
plone/app/users/schemaeditor.py:320:26: E272 multiple spaces before keyword
plone/app/users/schemaeditor.py:320:32: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:320:47: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:322:21: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:322:21: S001 found module formatter
plone/app/users/schemaeditor.py:323:34: E127 continuation line over-indented for visual indent
plone/app/users/schemaeditor.py:325:21: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:325:21: S001 found module formatter
plone/app/users/schemaeditor.py:328:1: E302 expected 2 blank lines, found 1
plone/app/users/schemaeditor.py:347:32: E231 missing whitespace after ':'
plone/app/users/schemaeditor.py:352:27: E251 unexpected spaces around keyword / parameter equals
plone/app/users/schemaeditor.py:352:29: E251 unexpected spaces around keyword / parameter equals
plone/app/users/schemaeditor.py:360:20: E701 multiple statements on one line (colon)
plone/app/users/schemaeditor.py:365:18: Q000 Remove bad quotes.
plone/app/users/schemaeditor.py:370:20: E701 multiple statements on one line (colon)
plone/app/users/schemaeditor.py:374:1: W391 blank line at end of file
plone/app/users/browser/account.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/account.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:16:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:17:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:18:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:23:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:24:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:28:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:29:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:30:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:71:39: P002 found "hasattr", consider replacing it
plone/app/users/browser/account.py:82:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:88:24: Q000 Remove bad quotes.
plone/app/users/browser/account.py:89:26: Q000 Remove bad quotes.
plone/app/users/browser/account.py:107:12: P002 found "hasattr", consider replacing it
plone/app/users/browser/account.py:164:57: Q000 Remove bad quotes.
plone/app/users/browser/account.py:165:60: Q000 Remove bad quotes.
plone/app/users/browser/account.py:167:13: S001 found module formatter
plone/app/users/browser/membersearch.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/membersearch.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/membersearch.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/membersearch.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/membersearch.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/membersearch.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/membersearch.py:10:1: E265 block comment should start with '# '
plone/app/users/browser/membersearch.py:11:1: E265 block comment should start with '# '
plone/app/users/browser/membersearch.py:19:9: E128 continuation line under-indented for visual indent
plone/app/users/browser/membersearch.py:19:17: Q000 Remove bad quotes.
plone/app/users/browser/membersearch.py:19:80: E501 line too long (83 > 79 characters)
plone/app/users/browser/membersearch.py:67:17: Q000 Remove bad quotes.
plone/app/users/browser/membersearch.py:68:17: Q000 Remove bad quotes.
plone/app/users/browser/membersearch.py:69:17: Q000 Remove bad quotes.
plone/app/users/browser/membersearch.py:69:50: E231 missing whitespace after ','
plone/app/users/browser/membersearch.py:93:59: Q000 Remove bad quotes.
plone/app/users/browser/membersearch.py:101:80: E501 line too long (82 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/z3cpersonalpreferences.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:3:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cpersonalpreferences.py:4:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:7:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cpersonalpreferences.py:8:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:12:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cpersonalpreferences.py:14:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:15:80: E501 line too long (86 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:18:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:19:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cpersonalpreferences.py:21:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:22:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cpersonalpreferences.py:24:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:27:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:27:80: E501 line too long (87 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:28:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cpersonalpreferences.py:31:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:32:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:33:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cpersonalpreferences.py:35:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/z3cpersonalpreferences.py:46:44: E127 continuation line over-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:67:80: E501 line too long (82 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:72:39: P002 found "hasattr", consider replacing it
plone/app/users/browser/z3cpersonalpreferences.py:75:80: E501 line too long (82 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:82:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/z3cpersonalpreferences.py:87:24: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:88:23: E222 multiple spaces after operator
plone/app/users/browser/z3cpersonalpreferences.py:88:27: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:91:12: P002 found "hasattr", consider replacing it
plone/app/users/browser/z3cpersonalpreferences.py:91:32: E231 missing whitespace after ','
plone/app/users/browser/z3cpersonalpreferences.py:92:46: E203 whitespace before ':'
plone/app/users/browser/z3cpersonalpreferences.py:92:80: E501 line too long (81 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:111:42: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:112:42: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:130:37: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:131:37: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:132:37: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:137:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:138:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:171:57: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:172:60: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:173:40: S001 found module formatter
plone/app/users/browser/z3cpersonalpreferences.py:174:13: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:179:80: E501 line too long (83 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:187:80: E501 line too long (87 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:217:15: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:217:50: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:225:13: E265 block comment should start with '# '
plone/app/users/browser/z3cpersonalpreferences.py:226:80: E501 line too long (128 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:228:13: E265 block comment should start with '# '
plone/app/users/browser/z3cpersonalpreferences.py:229:80: E501 line too long (86 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:242:53: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:242:80: E501 line too long (132 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:242:98: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:243:59: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:243:80: E501 line too long (118 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:243:99: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:261:5: E303 too many blank lines (2)
plone/app/users/browser/z3cpersonalpreferences.py:267:80: E501 line too long (84 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:296:80: E501 line too long (82 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:302:80: E501 line too long (84 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:303:80: E501 line too long (83 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:310:13: E265 block comment should start with '# '
plone/app/users/browser/z3cpersonalpreferences.py:311:80: E501 line too long (147 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:313:13: E265 block comment should start with '# '
plone/app/users/browser/z3cpersonalpreferences.py:314:80: E501 line too long (106 > 79 characters)
plone/app/users/browser/z3cpersonalpreferences.py:328:21: E222 multiple spaces after operator
plone/app/users/browser/z3cpersonalpreferences.py:338:16: S001 found module formatter
plone/app/users/browser/z3cpersonalpreferences.py:338:52: E231 missing whitespace after ':'
plone/app/users/browser/z3cpersonalpreferences.py:340:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/z3cpersonalpreferences.py:355:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/z3cpersonalpreferences.py:358:21: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:389:29: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:392:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:393:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:410:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:411:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:420:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:421:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:430:9: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:454:64: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:457:57: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:458:59: E127 continuation line over-indented for visual indent
plone/app/users/browser/z3cpersonalpreferences.py:458:64: Q000 Remove bad quotes.
plone/app/users/browser/z3cpersonalpreferences.py:461:63: E231 missing whitespace after ':'
plone/app/users/browser/z3cpersonalpreferences.py:465:65: E231 missing whitespace after ':'
plone/app/users/browser/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/interfaces.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/listing.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/listing.py:2:1: F401 'z3c.form.form' imported but unused
plone/app/users/browser/listing.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/listing.py:3:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/listing.py:4:1: I001 isort found an import in the wrong position
plone/app/users/browser/listing.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/listing.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/listing.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/listing.py:8:1: I001 isort found an import in the wrong position
plone/app/users/browser/listing.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/listing.py:12:1: F401 '..userdataschema.SCHEMATA_KEY' imported but unused
plone/app/users/browser/listing.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/listing.py:13:1: F401 '..schemaeditor.get_ttw_edited_schema' imported but unused
plone/app/users/browser/listing.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/listing.py:15:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/listing.py:15:34: E231 missing whitespace after ':'
plone/app/users/browser/listing.py:15:34: E701 multiple statements on one line (colon)
plone/app/users/browser/listing.py:27:80: E501 line too long (80 > 79 characters)
plone/app/users/browser/listing.py:45:12: E713 test for membership should be 'not in'
plone/app/users/browser/listing.py:46:20: S001 found module formatter
plone/app/users/browser/listing.py:49:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/listing.py:49:43: E231 missing whitespace after ':'
plone/app/users/browser/listing.py:49:43: E701 multiple statements on one line (colon)
plone/app/users/browser/listing.py:51:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/listing.py:54:5: F811 redefinition of unused 'form' from line 2
plone/app/users/browser/listing.py:60:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/listing.py:64:36: Q000 Remove bad quotes.
plone/app/users/browser/listing.py:72:1: W391 blank line at end of file
plone/app/users/browser/register.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/register.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:14:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:16:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:24:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:27:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/register.py:29:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:30:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:38:13: Q000 Remove bad quotes.
plone/app/users/browser/register.py:39:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:54:1: C901 'BaseRegistrationForm.updateFields' is too complex (12)
plone/app/users/browser/register.py:67:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:73:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:79:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:87:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:92:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:115:59: Q000 Remove bad quotes.
plone/app/users/browser/register.py:116:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:117:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:118:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:122:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:123:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:124:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:125:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:148:1: C901 'BaseRegistrationForm.generate_user_id' is too complex (12)
plone/app/users/browser/register.py:224:12: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:235:22: Q000 Remove bad quotes.
plone/app/users/browser/register.py:235:22: S001 found module formatter
plone/app/users/browser/register.py:296:1: C901 'BaseRegistrationForm.validate_registration' is too complex (17)
plone/app/users/browser/register.py:337:16: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:371:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:374:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:375:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:380:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:382:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:383:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:387:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:393:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:394:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:398:47: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:402:37: Q000 Remove bad quotes.
plone/app/users/browser/register.py:403:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:435:1: C901 'BaseRegistrationForm.handle_join_success' is too complex (12)
plone/app/users/browser/register.py:471:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:513:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:514:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:515:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:525:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:526:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:527:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:572:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:628:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:629:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:630:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:631:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:638:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:685:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:686:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:687:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:688:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:723:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:727:15: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/personalpreferences.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:11:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/personalpreferences.py:13:5: F401 'plone.app.event' imported but unused
plone/app/users/browser/personalpreferences.py:42:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:62:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:82:15: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:82:50: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:91:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:98:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:114:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:115:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:118:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:119:13: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/registersettingspanel.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/registersettingspanel.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/registersettingspanel.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/registersettingspanel.py:15:15: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:16:21: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:17:19: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:50:21: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:52:21: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:53:65: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:60:15: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:60:42: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/passwordpanel.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/passwordpanel.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/passwordpanel.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/passwordpanel.py:21:9: E265 block comment should start with '# '
plone/app/users/browser/passwordpanel.py:28:21: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:35:21: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:36:13: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:60:21: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:91:29: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:135:38: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:140:15: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:140:41: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/z3cregister.py:1:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:2:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cregister.py:3:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:4:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:6:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cregister.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:8:1: F401 'zope.interface.implements' imported but unused
plone/app/users/browser/z3cregister.py:8:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:10:1: F401 'zope.component.hooks.getSite' imported but unused
plone/app/users/browser/z3cregister.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:11:1: F401 'zope.annotation.interfaces.IAnnotations' imported but unused
plone/app/users/browser/z3cregister.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:12:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cregister.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:14:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:16:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:17:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cregister.py:18:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:21:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:22:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cregister.py:24:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:25:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:26:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/z3cregister.py:30:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:31:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:32:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:34:1: F401 '.register.JOIN_CONST' imported but unused
plone/app/users/browser/z3cregister.py:34:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:35:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:37:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:38:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:39:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:39:80: E501 line too long (85 > 79 characters)
plone/app/users/browser/z3cregister.py:41:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/z3cregister.py:44:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/browser/z3cregister.py:44:1: E402 module level import not at top of file
plone/app/users/browser/z3cregister.py:44:1: I001 isort found an import in the wrong position
plone/app/users/browser/z3cregister.py:50:13: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:51:19: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:60:5: E301 expected 1 blank line, found 0
plone/app/users/browser/z3cregister.py:72:17: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:84:1: C901 'BaseRegistrationForm.updateFields' is too complex (14)
plone/app/users/browser/z3cregister.py:105:17: E122 continuation line missing indentation or outdented
plone/app/users/browser/z3cregister.py:109:12: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:115:12: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:121:12: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:129:12: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:137:9: E303 too many blank lines (2)
plone/app/users/browser/z3cregister.py:138:12: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:155:13: E124 closing bracket does not match visual indentation
plone/app/users/browser/z3cregister.py:158:16: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:171:59: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:172:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:173:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:174:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:177:17: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:177:25: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:177:80: E501 line too long (80 > 79 characters)
plone/app/users/browser/z3cregister.py:178:17: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:178:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:178:80: E501 line too long (80 > 79 characters)
plone/app/users/browser/z3cregister.py:179:17: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:179:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:192:38: E231 missing whitespace after ','
plone/app/users/browser/z3cregister.py:197:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:202:5: E303 too many blank lines (2)
plone/app/users/browser/z3cregister.py:203:1: C901 'BaseRegistrationForm.validate_registration' is too complex (18)
plone/app/users/browser/z3cregister.py:229:49: E502 the backslash is redundant between brackets
plone/app/users/browser/z3cregister.py:239:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:240:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:249:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:250:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:259:16: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:267:29: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:268:29: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:284:12: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:286:29: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:287:29: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:290:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:291:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:298:12: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:300:29: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:301:29: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:304:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:305:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:312:12: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:318:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:319:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:325:47: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:329:37: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:330:29: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:335:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:336:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:345:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:346:21: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:355:9: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:409:69: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:445:35: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:446:27: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:447:27: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:457:35: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:458:27: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:459:27: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:470:80: E501 line too long (85 > 79 characters)
plone/app/users/browser/z3cregister.py:479:14: E131 continuation line unaligned for hanging indent
plone/app/users/browser/z3cregister.py:479:17: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:488:16: E713 test for membership should be 'not in'
plone/app/users/browser/z3cregister.py:504:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/z3cregister.py:509:19: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:564:17: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:564:25: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:565:17: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:565:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:566:17: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:566:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:570:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/z3cregister.py:573:19: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:611:13: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:618:60: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:618:80: E501 line too long (80 > 79 characters)
plone/app/users/browser/z3cregister.py:619:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:620:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:621:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:622:17: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:627:9: E128 continuation line under-indented for visual indent
plone/app/users/browser/z3cregister.py:656:69: Q000 Remove bad quotes.
plone/app/users/browser/z3cregister.py:660:15: Q000 Remove bad quotes.
plone/app/users/browser/userdatapanel.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/userdatapanel.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:8:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:72:13: E265 block comment should start with '# '
plone/app/users/browser/userdatapanel.py:79:13: E265 block comment should start with '# '
plone/app/users/tests/base.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/base.py:8:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:10:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:13:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/tests/base.py:20:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:21:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:22:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:23:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:24:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:25:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:26:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:27:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:82:13: E265 block comment should start with '# '
plone/app/users/tests/base.py:108:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
plone/app/users/tests/test_loginname_generator.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_loginname_generator.py:2:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_loginname_generator.py:3:1: I004 isort found an unexpected blank line in imports
plone/app/users/tests/test_loginname_generator.py:20:80: E501 line too long (84 > 79 characters)
plone/app/users/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/__init__.py:2:1: F401 'plone.app.users.tests.base.BaseTestCase' imported but unused
plone/app/users/tests/test_new_user.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_new_user.py:3:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/tests/test_new_user.py:4:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_new_user.py:19:27: S001 found module formatter
plone/app/users/tests/test_userid_generator.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_userid_generator.py:2:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_userid_generator.py:3:1: I004 isort found an unexpected blank line in imports
plone/app/users/tests/test_doctests.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_doctests.py:1:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/tests/test_doctests.py:2:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_doctests.py:3:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_doctests.py:4:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_doctests.py:5:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_doctests.py:12:19: F821 undefined name 'TestCase'
plone/app/users/tests/test_doctests.py:36:21: Q000 Remove bad quotes.
plone/app/users/tests/test_z3cdoctests.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_z3cdoctests.py:1:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_z3cdoctests.py:4:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_z3cdoctests.py:5:1: F401 'Testing.ZopeTestCase.placeless.zcml' imported but unused
plone/app/users/tests/test_z3cdoctests.py:5:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_z3cdoctests.py:6:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_z3cdoctests.py:8:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_z3cdoctests.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/users/tests/test_z3cdoctests.py:10:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_z3cdoctests.py:36:13: E128 continuation line under-indented for visual indent
plone/app/users/tests/test_z3cdoctests.py:37:13: E128 continuation line under-indented for visual indent
plone/app/users/tests/test_z3cdoctests.py:37:21: Q000 Remove bad quotes.
plone/app/users/tests/test_z3cdoctests.py:38:13: E128 continuation line under-indented for visual indent
plone/app/users/tests/test_z3cdoctests.py:41:1: W391 blank line at end of file
plone/app/users/tests/test_member_search.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_member_search.py:14:80: E501 line too long (83 > 79 characters)
plone/app/users/tests/test_member_search.py:17:35: Q000 Remove bad quotes.
plone/app/users/tests/test_account.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_account.py:1:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/tests/test_account.py:2:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_account.py:3:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_account.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/users/tests/test_account.py:5:1: I001 isort found an import in the wrong position
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


My interface for what you are trying to do would look like
```
Resource:
  - url: str
  - methods: list
  - http_session: object
  - model: Document
  ...

Api:
  - resources : listOf(Resource)

BaseDocument(Document):
   - save_to_db : method
   - get_from_db : method
    ...
```

Feels like reinventing the wheel =)


@keul Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.users/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/users/registrationschema.py:0:1: C101 Coding magic comment not found
plone/app/users/registrationschema.py:7:1: I001 isort found an import in the wrong position
plone/app/users/registrationschema.py:8:1: I001 isort found an import in the wrong position
plone/app/users/registrationschema.py:10:1: I001 isort found an import in the wrong position
plone/app/users/registrationschema.py:11:1: I001 isort found an import in the wrong position
plone/app/users/registrationschema.py:12:1: I004 isort found an unexpected blank line in imports
plone/app/users/registrationschema.py:13:1: I001 isort found an import in the wrong position
plone/app/users/registrationschema.py:22:18: E127 continuation line over-indented for visual indent
plone/app/users/registrationschema.py:24:23: Q000 Remove bad quotes.
plone/app/users/registrationschema.py:25:13: E128 continuation line under-indented for visual indent
plone/app/users/registrationschema.py:25:22: Q000 Remove bad quotes.
plone/app/users/registrationschema.py:26:13: E128 continuation line under-indented for visual indent
plone/app/users/registrationschema.py:26:13: Q000 Remove bad quotes.
plone/app/users/registrationschema.py:27:13: E128 continuation line under-indented for visual indent
plone/app/users/registrationschema.py:27:13: Q000 Remove bad quotes.
plone/app/users/registrationschema.py:28:13: E128 continuation line under-indented for visual indent
plone/app/users/registrationschema.py:28:13: Q000 Remove bad quotes.
plone/app/users/registrationschema.py:29:13: E128 continuation line under-indented for visual indent
plone/app/users/registrationschema.py:29:13: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:0:1: C101 Coding magic comment not found
plone/app/users/userdataschema.py:1:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:2:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:3:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:5:1: I001 isort found an import in the wrong position
plone/app/users/userdataschema.py:21:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/userdataschema.py:47:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:59:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:60:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:66:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:67:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:68:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:74:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:75:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:76:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:80:9: E128 continuation line under-indented for visual indent
plone/app/users/registration.py:0:1: C101 Coding magic comment not found
plone/app/users/registration.py:6:1: I001 isort found an import in the wrong position
plone/app/users/registration.py:7:1: I001 isort found an import in the wrong position
plone/app/users/registration.py:8:1: I004 isort found an unexpected blank line in imports
plone/app/users/registration.py:9:1: I001 isort found an import in the wrong position
plone/app/users/registration.py:10:1: I001 isort found an import in the wrong position
plone/app/users/registration.py:11:1: I001 isort found an import in the wrong position
plone/app/users/registration.py:21:5: D001 found adapts( replace it with zope.component.adapter
plone/app/users/registration.py:22:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/registration.py:49:15: Q000 Remove bad quotes.
plone/app/users/registration.py:50:21: Q000 Remove bad quotes.
plone/app/users/registration.py:51:19: Q000 Remove bad quotes.
plone/app/users/__init__.py:0:1: C101 Coding magic comment not found
plone/app/users/__init__.py:1:1: W391 blank line at end of file
plone/app/users/browser/account.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/account.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:6:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:8:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:11:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:14:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:16:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:17:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:18:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:19:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:37:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:47:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:65:19: Q000 Remove bad quotes.
plone/app/users/browser/account.py:65:43: Q000 Remove bad quotes.
plone/app/users/browser/account.py:70:19: Q000 Remove bad quotes.
plone/app/users/browser/account.py:70:45: Q000 Remove bad quotes.
plone/app/users/browser/account.py:76:57: Q000 Remove bad quotes.
plone/app/users/browser/account.py:77:60: Q000 Remove bad quotes.
plone/app/users/browser/account.py:92:12: E713 test for membership should be 'not in'
plone/app/users/browser/formlib.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/formlib.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/formlib.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/formlib.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/formlib.py:10:24: Q000 Remove bad quotes.
plone/app/users/browser/formlib.py:20:5: D001 found adapts( replace it with zope.component.adapter
plone/app/users/browser/formlib.py:33:48: Q000 Remove bad quotes.
plone/app/users/browser/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/interfaces.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/register.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/register.py:1:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:3:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:13:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:14:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:16:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:17:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:18:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:19:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:20:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:21:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:22:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:23:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:24:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:25:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:26:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:27:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:28:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:29:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:30:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:31:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:32:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:33:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:35:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:38:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/register.py:49:31: Q000 Remove bad quotes.
plone/app/users/browser/register.py:50:32: E127 continuation line over-indented for visual indent
plone/app/users/browser/register.py:51:32: Q000 Remove bad quotes.
plone/app/users/browser/register.py:52:32: Q000 Remove bad quotes.
plone/app/users/browser/register.py:53:32: Q000 Remove bad quotes.
plone/app/users/browser/register.py:54:32: Q000 Remove bad quotes.
plone/app/users/browser/register.py:65:31: Q000 Remove bad quotes.
plone/app/users/browser/register.py:66:23: Q000 Remove bad quotes.
plone/app/users/browser/register.py:70:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:71:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:94:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:95:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:96:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:97:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:107:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:108:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:109:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:120:16: Q000 Remove bad quotes.
plone/app/users/browser/register.py:130:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:131:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:132:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:149:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:150:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:151:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:152:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:175:21: S001 found module formatter
plone/app/users/browser/register.py:185:13: Q000 Remove bad quotes.
plone/app/users/browser/register.py:186:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:188:1: C901 'BaseRegistrationForm.form_fields' is too complex (12)
plone/app/users/browser/register.py:200:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:206:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:212:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:220:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:225:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:246:80: E501 line too long (85 > 79 characters)
plone/app/users/browser/register.py:247:80: E501 line too long (96 > 79 characters)
plone/app/users/browser/register.py:249:37: E231 missing whitespace after ','
plone/app/users/browser/register.py:254:80: E501 line too long (100 > 79 characters)
plone/app/users/browser/register.py:278:1: C901 'BaseRegistrationForm.validate_registration' is too complex (22)
plone/app/users/browser/register.py:294:26: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:307:49: E502 the backslash is redundant between brackets
plone/app/users/browser/register.py:323:16: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:334:9: E303 too many blank lines (2)
plone/app/users/browser/register.py:351:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:353:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:354:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:360:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:362:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:363:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:369:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:377:35: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:382:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:383:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:388:47: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:393:37: Q000 Remove bad quotes.
plone/app/users/browser/register.py:394:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:417:1: C901 'BaseRegistrationForm.handle_join_success' is too complex (18)
plone/app/users/browser/register.py:450:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:457:80: E501 line too long (88 > 79 characters)
plone/app/users/browser/register.py:458:24: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:507:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:508:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:509:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:519:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:520:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:521:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:530:1: E303 too many blank lines (3)
plone/app/users/browser/register.py:535:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:580:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:634:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:638:15: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/personalpreferences.py:2:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/personalpreferences.py:3:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:4:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:8:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:13:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/personalpreferences.py:14:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:16:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/personalpreferences.py:21:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/personalpreferences.py:22:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:23:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/personalpreferences.py:25:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:36:13: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:49:24: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:50:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:57:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:58:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:59:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:60:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:61:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:62:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:63:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:64:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:70:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:121:32: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:122:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:122:25: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:131:32: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:132:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:132:25: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:139:15: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:139:50: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:140:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:141:29: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:285:33: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:286:33: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:287:33: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:298:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:303:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:330:17: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:345:14: E271 multiple spaces after keyword
plone/app/users/browser/personalpreferences.py:356:18: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:358:24: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:359:9: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:366:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:373:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:374:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:380:5: D001 found adapts( replace it with zope.component.adapter
plone/app/users/browser/personalpreferences.py:381:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/personalpreferences.py:403:21: E222 multiple spaces after operator
plone/app/users/browser/personalpreferences.py:406:80: E501 line too long (85 > 79 characters)
plone/app/users/browser/personalpreferences.py:407:80: E501 line too long (96 > 79 characters)
plone/app/users/browser/personalpreferences.py:412:80: E501 line too long (88 > 79 characters)
plone/app/users/browser/personalpreferences.py:420:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:436:29: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:438:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:449:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:451:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:472:64: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:475:57: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:476:59: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:476:64: Q000 Remove bad quotes.
plone/app/users/tests/base.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/base.py:8:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/users/tests/base.py:11:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:14:1: F401 'Products.CMFCore.utils.getToolByName' imported but unused
plone/app/users/tests/base.py:14:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:15:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/tests/base.py:22:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:23:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:24:1: F401 'Products.PluggableAuthService.interfaces.plugins.IPropertiesPlugin' imported but unused
plone/app/users/tests/base.py:24:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:24:80: E501 line too long (97 > 79 characters)
plone/app/users/tests/base.py:25:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:26:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:27:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:28:1: F401 'zope.component.getAdapter' imported but unused
plone/app/users/tests/base.py:28:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:29:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:36:5: E303 too many blank lines (2)
plone/app/users/tests/base.py:70:13: F841 local variable 'validators' is assigned to but never used
plone/app/users/tests/base.py:71:13: E265 block comment should start with '# '
plone/app/users/tests/base.py:77:80: E501 line too long (87 > 79 characters)
plone/app/users/tests/base.py:81:38: E231 missing whitespace after ','
plone/app/users/tests/base.py:85:13: E265 block comment should start with '# '
plone/app/users/tests/base.py:89:5: E303 too many blank lines (2)
plone/app/users/tests/base.py:101:1: E303 too many blank lines (3)
plone/app/users/tests/base.py:109:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
plone/app/users/tests/base.py:110:5: E301 expected 1 blank line, found 0
plone/app/users/tests/base.py:110:54: E202 whitespace before ')'
plone/app/users/tests/base.py:117:32: E231 missing whitespace after ':'
plone/app/users/tests/base.py:117:43: E231 missing whitespace after ','
plone/app/users/tests/base.py:117:51: E231 missing whitespace after ':'
plone/app/users/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/__init__.py:3:1: F401 'plone.app.users.tests.base.TestCase' imported but unused
plone/app/users/tests/__init__.py:4:1: W391 blank line at end of file
plone/app/users/tests/test_new_user.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_new_user.py:8:80: E501 line too long (91 > 79 characters)
plone/app/users/tests/test_new_user.py:20:13: E128 continuation line under-indented for visual indent
plone/app/users/tests/test_new_user.py:28:80: E501 line too long (82 > 79 characters)
plone/app/users/tests/test_new_user.py:31:80: E501 line too long (91 > 79 characters)
plone/app/users/tests/test_new_user.py:40:19: Q000 Remove bad quotes.
plone/app/users/tests/test_new_user.py:40:19: S001 found module formatter
plone/app/users/tests/test_doctests.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_doctests.py:1:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_doctests.py:4:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_doctests.py:5:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_doctests.py:7:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_doctests.py:32:13: E128 continuation line under-indented for visual indent
plone/app/users/tests/test_doctests.py:33:13: E128 continuation line under-indented for visual indent
plone/app/users/tests/test_doctests.py:33:21: Q000 Remove bad quotes.
plone/app/users/tests/test_doctests.py:34:13: E128 continuation line under-indented for visual indent
plone/app/users/tests/test_account.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_account.py:1:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/tests/test_account.py:2:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_account.py:3:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_account.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/users/tests/test_account.py:5:1: I001 isort found an import in the wrong position
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.