@gotcha Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.users/7/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/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:174:21: S001 found module formatter
plone/app/users/browser/register.py:184:13: Q000 Remove bad quotes.
plone/app/users/browser/register.py:185:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:187:1: C901 'BaseRegistrationForm.form_fields' is too complex (12)
plone/app/users/browser/register.py:199:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:205:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:211:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:219:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:224:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:245:80: E501 line too long (85 > 79 characters)
plone/app/users/browser/register.py:246:80: E501 line too long (96 > 79 characters)
plone/app/users/browser/register.py:248:37: E231 missing whitespace after ','
plone/app/users/browser/register.py:253:80: E501 line too long (100 > 79 characters)
plone/app/users/browser/register.py:277:1: C901 'BaseRegistrationForm.validate_registration' is too complex (22)
plone/app/users/browser/register.py:293:26: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:306:49: E502 the backslash is redundant between brackets
plone/app/users/browser/register.py:322:16: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:333:9: E303 too many blank lines (2)
plone/app/users/browser/register.py:350:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:352:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:353:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:359:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:361:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:362:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:368:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:376:35: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:381:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:382:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:387:47: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:392:37: Q000 Remove bad quotes.
plone/app/users/browser/register.py:393:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:416:1: C901 'BaseRegistrationForm.handle_join_success' is too complex (18)
plone/app/users/browser/register.py:449:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:456:80: E501 line too long (88 > 79 characters)
plone/app/users/browser/register.py:457:24: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:506:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:507:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:508:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:518:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:519:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:520:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:529:1: E303 too many blank lines (3)
plone/app/users/browser/register.py:534:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:579:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:638:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:642: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:437:29: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:439:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:450:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:452:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:475:64: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:478:57: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:479:59: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:479: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.


@tisto Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.users/8/violations
```
plone/app/users/testing.py:3:1: I001 isort found an import in the wrong position
plone/app/users/testing.py:23:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/testing.py:31:10: Q000 Remove bad quotes.
plone/app/users/testing.py:33:80: E501 line too long (99 > 79 characters)
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:7:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:8:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:9: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:12: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:19:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:21:21: Q000 Remove bad quotes.
plone/app/users/schema.py:23:16: Q000 Remove bad quotes.
plone/app/users/schema.py:51:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/schema.py:77:31: Q000 Remove bad quotes.
plone/app/users/schema.py:96:21: Q000 Remove bad quotes.
plone/app/users/schema.py:97:21: Q000 Remove bad quotes.
plone/app/users/schema.py:98:21: Q000 Remove bad quotes.
plone/app/users/schema.py:111:31: Q000 Remove bad quotes.
plone/app/users/schema.py:112:23: Q000 Remove bad quotes.
plone/app/users/schema.py:116:25: Q000 Remove bad quotes.
plone/app/users/schema.py:117:17: Q000 Remove bad quotes.
plone/app/users/schema.py:157:16: S001 found module formatter
plone/app/users/schema.py:174:13: Q000 Remove bad quotes.
plone/app/users/schema.py:175:22: Q000 Remove bad quotes.
plone/app/users/schema.py:176:22: Q000 Remove bad quotes.
plone/app/users/schema.py:177:22: Q000 Remove bad quotes.
plone/app/users/schema.py:178:22: Q000 Remove bad quotes.
plone/app/users/schema.py:179:22: Q000 Remove bad quotes.
plone/app/users/schema.py:180:22: Q000 Remove bad quotes.
plone/app/users/vocabularies.py:8: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:15:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:41:80: E501 line too long (130 > 79 characters)
plone/app/users/vocabularies.py:48:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/vocabularies.py:63:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/vocabularies.py:96:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/vocabularies.py:116:25: S001 found module formatter
plone/app/users/field_extender.py:0:1: C101 Coding magic comment not found
plone/app/users/field_extender.py:1:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:2:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:3:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:5:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:6:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:11:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:12:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:13:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:14:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:15:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:16:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:17:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:18:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:19:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:32:15: Q000 Remove bad quotes.
plone/app/users/field_extender.py:33:21: Q000 Remove bad quotes.
plone/app/users/field_extender.py:43:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/field_extender.py:54:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/field_extender.py:62:5: D001 found adapts( replace it with zope.component.adapter
plone/app/users/field_extender.py:76:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/field_extender.py:80:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/field_extender.py:93:56: Q000 Remove bad quotes.
plone/app/users/field_extender.py:95:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/setuphandlers.py:0:1: C101 Coding magic comment not found
plone/app/users/setuphandlers.py:3:1: I001 isort found an import in the wrong position
plone/app/users/upgrades.py:0:1: C101 Coding magic comment not found
plone/app/users/upgrades.py:1:1: I001 isort found an import in the wrong position
plone/app/users/upgrades.py:5:1: I001 isort found an import in the wrong position
plone/app/users/upgrades.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/upgrades.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/upgrades.py:12:25: Q000 Remove bad quotes.
plone/app/users/upgrades.py:35:31: Q000 Remove bad quotes.
plone/app/users/upgrades.py:36:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:47:31: Q000 Remove bad quotes.
plone/app/users/upgrades.py:48:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:49:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:60:31: Q000 Remove bad quotes.
plone/app/users/upgrades.py:61:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:62:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:93:33: Q000 Remove bad quotes.
plone/app/users/upgrades.py:109:9: E128 continuation line under-indented for visual indent
plone/app/users/browser/account.py:4:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:6:1: I001 isort found an import in the wrong position
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: 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:31:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:32:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:36:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:37:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:38:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:86:39: P002 found "hasattr", consider replacing it
plone/app/users/browser/account.py:124:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:130:24: Q000 Remove bad quotes.
plone/app/users/browser/account.py:131:26: Q000 Remove bad quotes.
plone/app/users/browser/account.py:160:12: P002 found "hasattr", consider replacing it
plone/app/users/browser/account.py:180:41: Q000 Remove bad quotes.
plone/app/users/browser/account.py:219:57: Q000 Remove bad quotes.
plone/app/users/browser/account.py:220:60: Q000 Remove bad quotes.
plone/app/users/browser/account.py:222:13: S001 found module formatter
plone/app/users/browser/membersearch.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/membersearch.py:3: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:23: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:25:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:26:1: I001 isort found an import in the wrong position
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: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:31:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/register.py:33:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:34: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:36:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:37:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:38:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:39:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:40:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:41:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:42:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:43:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:44:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:45:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:46:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:54:13: Q000 Remove bad quotes.
plone/app/users/browser/register.py:55:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:74:62: Q000 Remove bad quotes.
plone/app/users/browser/register.py:112:59: Q000 Remove bad quotes.
plone/app/users/browser/register.py:113:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:114:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:115:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:120:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:121:25: 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:141:1: C901 'BaseRegistrationForm.generate_user_id' is too complex (12)
plone/app/users/browser/register.py:218:12: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:229:22: Q000 Remove bad quotes.
plone/app/users/browser/register.py:229:22: S001 found module formatter
plone/app/users/browser/register.py:288:1: C901 'BaseRegistrationForm.validate_registration' is too complex (17)
plone/app/users/browser/register.py:364:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:365:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:372:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:373:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:383:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:384:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:392:37: Q000 Remove bad quotes.
plone/app/users/browser/register.py:393:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:425:1: C901 'BaseRegistrationForm.handle_join_success' is too complex (12)
plone/app/users/browser/register.py:461:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:504:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:505:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:506:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:516:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:517:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:518:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:572:19: 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:632:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:633:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:640:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:692:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:693:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:694:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:695:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:730:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:734:15: Q000 Remove bad quotes.
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:10:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/personalpreferences.py:18:5: F401 'plone.app.vocabularies.datetimerelated' imported but unused
plone/app/users/browser/personalpreferences.py:35:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:42:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:94:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:95:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:98:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:99:13: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/registersettingspanel.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/registersettingspanel.py:16:15: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:17:21: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:18:19: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:51:21: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:53:21: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:54:65: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:61:15: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:61:42: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/passwordpanel.py:7:1: I001 isort found an import in the wrong position
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:59:21: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:91:29: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:137:38: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:142:15: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:142:41: Q000 Remove bad quotes.
plone/app/users/browser/schemaprovider.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/schemaprovider.py:1:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/schemaprovider.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:3:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:4:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/schemaprovider.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:8:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:14:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaprovider.py:22:41: Q000 Remove bad quotes.
plone/app/users/browser/schemaprovider.py:22:41: S001 found module formatter
plone/app/users/browser/schemaprovider.py:42:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/schemaprovider.py:47:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/schemaeditor.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/schemaeditor.py:1:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:3:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/schemaeditor.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:8:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:9:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:12:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/schemaeditor.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:14:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:16:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/schemaeditor.py:18:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:19:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:23:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:24:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:27:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:28:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:29:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:30:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:31:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:32:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:54:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:55:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:56:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:57:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:58:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:59:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:60:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:61:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:62:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:63:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:64:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:65:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:66:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:115:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/schemaeditor.py:117:15: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:130:21: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:160:30: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:167:17: S001 found module formatter
plone/app/users/browser/schemaeditor.py:216:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/schemaeditor.py:249:33: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:254:28: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:255:31: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:258:17: B901 blind except: statement
plone/app/users/browser/schemaeditor.py:261:26: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:262:26: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:267:31: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:267:46: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:269:21: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:269:21: S001 found module formatter
plone/app/users/browser/schemaeditor.py:271:21: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:271:21: S001 found module formatter
plone/app/users/browser/schemaeditor.py:280:25: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:280:25: S001 found module formatter
plone/app/users/browser/userdatapanel.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:3: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:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:14:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/userdatapanel.py:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:36:37: Q000 Remove bad quotes.
plone/app/users/tests/__init__.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_schema_types.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_schema_types.py:2:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_schema_types.py:7:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/tests/test_schema_types.py:16:80: E501 line too long (438 > 79 characters)
plone/app/users/tests/test_schema_types.py:18:80: E501 line too long (81 > 79 characters)
plone/app/users/tests/test_schema_types.py:25:80: E501 line too long (84 > 79 characters)
plone/app/users/tests/test_schema_types.py:33:80: E501 line too long (85 > 79 characters)
plone/app/users/tests/test_schema_types.py:41:80: E501 line too long (101 > 79 characters)
plone/app/users/tests/test_schema_types.py:115:27: Q000 Remove bad quotes.
plone/app/users/tests/test_schema_types.py:121:41: Q000 Remove bad quotes.
plone/app/users/tests/test_schema_types.py:121:80: E501 line too long (80 > 79 characters)
plone/app/users/tests/test_schema_types.py:122:80: E501 line too long (116 > 79 characters)
plone/app/users/tests/test_schema_types.py:122:87: Q000 Remove bad quotes.
plone/app/users/tests/test_schema_types.py:122:100: Q000 Remove bad quotes.
plone/app/users/tests/test_schema_types.py:142:80: E501 line too long (84 > 79 characters)
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


/join


@vangheem Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.users/9/violations
```
plone/app/users/testing.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/testing.py:17:10: Q000 Remove bad quotes.
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:7:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:8:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:9: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:12: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:19:1: I001 isort found an import in the wrong position
plone/app/users/schema.py:21:21: Q000 Remove bad quotes.
plone/app/users/schema.py:23:16: Q000 Remove bad quotes.
plone/app/users/schema.py:51:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/schema.py:77:31: Q000 Remove bad quotes.
plone/app/users/schema.py:96:21: Q000 Remove bad quotes.
plone/app/users/schema.py:97:21: Q000 Remove bad quotes.
plone/app/users/schema.py:98:21: Q000 Remove bad quotes.
plone/app/users/schema.py:111:31: Q000 Remove bad quotes.
plone/app/users/schema.py:112:23: Q000 Remove bad quotes.
plone/app/users/schema.py:116:25: Q000 Remove bad quotes.
plone/app/users/schema.py:117:17: Q000 Remove bad quotes.
plone/app/users/schema.py:157:16: S001 found module formatter
plone/app/users/schema.py:174:13: Q000 Remove bad quotes.
plone/app/users/schema.py:175:22: Q000 Remove bad quotes.
plone/app/users/schema.py:176:22: Q000 Remove bad quotes.
plone/app/users/schema.py:177:22: Q000 Remove bad quotes.
plone/app/users/schema.py:178:22: Q000 Remove bad quotes.
plone/app/users/schema.py:179:22: Q000 Remove bad quotes.
plone/app/users/schema.py:180:22: Q000 Remove bad quotes.
plone/app/users/schema.py:195:39: W292 no newline at end of file
plone/app/users/vocabularies.py:11:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:14:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:15:1: I001 isort found an import in the wrong position
plone/app/users/vocabularies.py:41:80: E501 line too long (130 > 79 characters)
plone/app/users/vocabularies.py:48:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/vocabularies.py:62:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/vocabularies.py:95:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/vocabularies.py:115:25: S001 found module formatter
plone/app/users/field_extender.py:0:1: C101 Coding magic comment not found
plone/app/users/field_extender.py:1:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:2:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:3:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:4:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:5:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:9:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:10:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:11:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:12:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:13:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:14:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:15:1: I004 isort found an unexpected blank line in imports
plone/app/users/field_extender.py:16:1: I001 isort found an import in the wrong position
plone/app/users/field_extender.py:29:15: Q000 Remove bad quotes.
plone/app/users/field_extender.py:30:21: Q000 Remove bad quotes.
plone/app/users/field_extender.py:45:5: D001 found adapts( replace it with zope.component.adapter
plone/app/users/field_extender.py:61:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/field_extender.py:74:56: Q000 Remove bad quotes.
plone/app/users/setuphandlers.py:0:1: C101 Coding magic comment not found
plone/app/users/setuphandlers.py:3:1: I001 isort found an import in the wrong position
plone/app/users/upgrades.py:0:1: C101 Coding magic comment not found
plone/app/users/upgrades.py:1:1: I001 isort found an import in the wrong position
plone/app/users/upgrades.py:5:1: I001 isort found an import in the wrong position
plone/app/users/upgrades.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/upgrades.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/upgrades.py:12:25: Q000 Remove bad quotes.
plone/app/users/upgrades.py:35:31: Q000 Remove bad quotes.
plone/app/users/upgrades.py:36:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:47:31: Q000 Remove bad quotes.
plone/app/users/upgrades.py:48:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:49:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:60:31: Q000 Remove bad quotes.
plone/app/users/upgrades.py:61:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:62:23: Q000 Remove bad quotes.
plone/app/users/upgrades.py:93:33: Q000 Remove bad quotes.
plone/app/users/upgrades.py:109:9: E128 continuation line under-indented for visual indent
plone/app/users/browser/account.py:4:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:6:1: I001 isort found an import in the wrong position
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: 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:31:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:32:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:36:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:37:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:38:16: Q000 Remove bad quotes.
plone/app/users/browser/account.py:91:39: P002 found "hasattr", consider replacing it
plone/app/users/browser/account.py:133:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:139:24: Q000 Remove bad quotes.
plone/app/users/browser/account.py:140:26: Q000 Remove bad quotes.
plone/app/users/browser/account.py:169:12: P002 found "hasattr", consider replacing it
plone/app/users/browser/account.py:189:41: Q000 Remove bad quotes.
plone/app/users/browser/account.py:232:57: Q000 Remove bad quotes.
plone/app/users/browser/account.py:233:60: Q000 Remove bad quotes.
plone/app/users/browser/account.py:235:13: S001 found module formatter
plone/app/users/browser/membersearch.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/membersearch.py:3: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: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:7:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:8:1: I001 isort found an import in the wrong position
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:17:1: I001 isort found an import in the wrong position
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: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:33:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:34: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:36:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:37:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:38:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:39:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:40:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:48:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:49:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:50:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:51:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:52:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:53:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:57:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:58:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:59:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:60:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/register.py:60:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/register.py:94:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:161:13: Q000 Remove bad quotes.
plone/app/users/browser/register.py:162:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:178:62: Q000 Remove bad quotes.
plone/app/users/browser/register.py:199:59: Q000 Remove bad quotes.
plone/app/users/browser/register.py:200:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:201:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:202:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:207:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:208:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:209:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:210:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:228:1: C901 'BaseRegistrationForm.generate_user_id' is too complex (12)
plone/app/users/browser/register.py:305:12: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:316:22: Q000 Remove bad quotes.
plone/app/users/browser/register.py:316:22: S001 found module formatter
plone/app/users/browser/register.py:375:1: C901 'BaseRegistrationForm.validate_registration' is too complex (17)
plone/app/users/browser/register.py:451:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:452:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:459:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:460:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:470:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:471:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:479:37: Q000 Remove bad quotes.
plone/app/users/browser/register.py:480:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:512:1: C901 'BaseRegistrationForm.handle_join_success' is too complex (12)
plone/app/users/browser/register.py:548:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:591:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:592:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:593:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:603:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:604:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:605:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:651:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:692:47: Q000 Remove bad quotes.
plone/app/users/browser/register.py:713:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:714:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:715:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:716:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:723:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:775:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:776:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:777:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:778:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:813:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:817:15: Q000 Remove bad quotes.
plone/app/users/browser/register.py:826:15: Q000 Remove bad quotes.
plone/app/users/browser/register.py:827:21: Q000 Remove bad quotes.
plone/app/users/browser/register.py:827:80: E501 line too long (82 > 79 characters)
plone/app/users/browser/register.py:828:21: Q000 Remove bad quotes.
plone/app/users/browser/register.py:839:80: E501 line too long (86 > 79 characters)
plone/app/users/browser/register.py:846:28: Q000 Remove bad quotes.
plone/app/users/browser/register.py:849:15: S001 found module formatter
plone/app/users/browser/register.py:853:0: S001 found module formatter
plone/app/users/browser/register.py:860:0: S001 found module formatter
plone/app/users/browser/register.py:905:80: E501 line too long (83 > 79 characters)
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:10:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/personalpreferences.py:35:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:42:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:94:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:95:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:98:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:99:13: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/registersettingspanel.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/registersettingspanel.py:12:1: F401 'zope.component.getMultiAdapter' imported but unused
plone/app/users/browser/registersettingspanel.py:16:15: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:17:21: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:18:19: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:32:80: E501 line too long (94 > 79 characters)
plone/app/users/browser/registersettingspanel.py:51:21: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:53:21: Q000 Remove bad quotes.
plone/app/users/browser/registersettingspanel.py:54:65: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/passwordpanel.py:7:1: I001 isort found an import in the wrong position
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:59:21: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:91:29: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:137:38: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:142:15: Q000 Remove bad quotes.
plone/app/users/browser/passwordpanel.py:142:41: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/schemaeditor.py:1:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:3:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/schemaeditor.py:5:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:7:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:8:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/schemaeditor.py:10:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:14:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/schemaeditor.py:17:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:18:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:22:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:25:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/schemaeditor.py:25:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:26:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:27:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:28:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:29:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:30:1: I001 isort found an import in the wrong position
plone/app/users/browser/schemaeditor.py:50:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:51:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:52:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:53:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:54:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:55:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:56:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:57:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:58:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:59:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:60:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:61:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:62:5: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:96:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/schemaeditor.py:98:15: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:111:21: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:139:30: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:146:17: S001 found module formatter
plone/app/users/browser/schemaeditor.py:187:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/schemaeditor.py:220:33: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:225:28: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:226:31: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:229:17: B901 blind except: statement
plone/app/users/browser/schemaeditor.py:232:26: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:233:26: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:238:31: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:238:46: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:240:21: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:240:21: S001 found module formatter
plone/app/users/browser/schemaeditor.py:242:21: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:242:21: S001 found module formatter
plone/app/users/browser/schemaeditor.py:251:25: Q000 Remove bad quotes.
plone/app/users/browser/schemaeditor.py:251:25: S001 found module formatter
plone/app/users/browser/userdatapanel.py:2:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:3:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:4:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:11:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:12:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:13:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:14:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/userdatapanel.py:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:16:1: I001 isort found an import in the wrong position
plone/app/users/browser/userdatapanel.py:33:37: Q000 Remove bad quotes.
plone/app/users/tests/base.py:11:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:15:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:19:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:20:1: I001 isort found an import in the wrong position
plone/app/users/tests/base.py:23:1: I004 isort found an unexpected blank line in imports
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:40:50: W291 trailing whitespace
plone/app/users/tests/base.py:68:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
plone/app/users/tests/base.py:90:1: E302 expected 2 blank lines, found 1
plone/app/users/tests/base.py:97:1: E302 expected 2 blank lines, found 1
plone/app/users/tests/base.py:102:1: E302 expected 2 blank lines, found 1
plone/app/users/tests/base.py:113:5: E265 block comment should start with '# '
plone/app/users/tests/base.py:119:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/users/tests/base.py:121:1: E302 expected 2 blank lines, found 1
plone/app/users/tests/base.py:123:58: Q000 Remove bad quotes.
plone/app/users/tests/base.py:125:1: E302 expected 2 blank lines, found 1
plone/app/users/tests/base.py:132:1: E302 expected 2 blank lines, found 1
plone/app/users/tests/base.py:137:1: W391 blank line at end of file
plone/app/users/tests/test_exportimport.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_exportimport.py:1:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_exportimport.py:2:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_exportimport.py:3:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_exportimport.py:6:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_exportimport.py:17:80: E501 line too long (438 > 79 characters)
plone/app/users/tests/test_exportimport.py:19:80: E501 line too long (81 > 79 characters)
plone/app/users/tests/test_exportimport.py:26:80: E501 line too long (84 > 79 characters)
plone/app/users/tests/test_exportimport.py:34:80: E501 line too long (85 > 79 characters)
plone/app/users/tests/test_exportimport.py:42:80: E501 line too long (101 > 79 characters)
plone/app/users/tests/test_exportimport.py:106:41: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:109:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:111:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:114:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:116:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:119:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:121:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:124:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:128:26: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:130:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:132:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:135:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:136:80: E501 line too long (81 > 79 characters)
plone/app/users/tests/test_exportimport.py:137:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:140:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:142:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:145:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:147:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:150:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:152:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:155:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:157:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:160:23: Q000 Remove bad quotes.
plone/app/users/tests/test_exportimport.py:162:23: Q000 Remove bad quotes.
plone/app/users/tests/__init__.py:0:1: C101 Coding magic comment not found
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:45:29: W291 trailing whitespace
plone/app/users/tests/test_new_user.py:64:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:66:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:67:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:84:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:85:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:87:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:88:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:104:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:105:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:107:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:108:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:126:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:127:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:129:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:130:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:148:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:150:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:154:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:172:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:173:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:175:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_new_user.py:179:14: D001 found assertEquals( replace it with assertEqual
plone/app/users/tests/test_schema_types.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_schema_types.py:2:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_schema_types.py:8:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/tests/test_schema_types.py:16:80: E501 line too long (438 > 79 characters)
plone/app/users/tests/test_schema_types.py:18:80: E501 line too long (81 > 79 characters)
plone/app/users/tests/test_schema_types.py:25:80: E501 line too long (84 > 79 characters)
plone/app/users/tests/test_schema_types.py:33:80: E501 line too long (85 > 79 characters)
plone/app/users/tests/test_schema_types.py:41:80: E501 line too long (101 > 79 characters)
plone/app/users/tests/test_schema_types.py:113:27: Q000 Remove bad quotes.
plone/app/users/tests/test_schema_types.py:119:41: Q000 Remove bad quotes.
plone/app/users/tests/test_schema_types.py:119:80: E501 line too long (80 > 79 characters)
plone/app/users/tests/test_schema_types.py:120:80: E501 line too long (116 > 79 characters)
plone/app/users/tests/test_schema_types.py:120:87: Q000 Remove bad quotes.
plone/app/users/tests/test_schema_types.py:120:100: Q000 Remove bad quotes.
plone/app/users/tests/test_schema_types.py:140:80: E501 line too long (84 > 79 characters)
plone/app/users/tests/test_userid_generator.py:3:1: F401 'Products.CMFPlone.interfaces.ISecuritySchema' imported but unused
plone/app/users/tests/test_userid_generator.py:3:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_userid_generator.py:8:1: F401 'plone.registry.interfaces.IRegistry' imported but unused
plone/app/users/tests/test_userid_generator.py:10:1: F401 'zope.component.getUtility' imported but unused
plone/app/users/tests/test_doctests.py:3:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_robot.py:0:1: C101 Coding magic comment not found
plone/app/users/tests/test_robot.py:1:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_robot.py:2:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/tests/test_robot.py:3:1: F401 'robotsuite' imported but unused
plone/app/users/tests/test_robot.py:4:1: F401 'plone.app.users.testing.PLONE_APP_USERS_ROBOT' imported but unused
plone/app/users/tests/test_robot.py:4:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_robot.py:5:1: F401 'plone.testing.layered' imported but unused
plone/app/users/tests/test_robot.py:5:1: I001 isort found an import in the wrong position
plone/app/users/tests/test_robot.py:11:53: Q000 Remove bad quotes.
plone/app/users/tests/test_robot.py:12:9: F841 local variable 'testfilepath' is assigned to but never used
plone/app/users/tests/test_robot.py:12:37: Q000 Remove bad quotes.
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@pmoulon
when the subdir is one character, such as '1',the wildcard() will return false, and i think is_folder() is enough, so i delete it