@vincentfretin Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.users/2/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/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:21:80: E501 line too long (88 > 79 characters)
plone/app/users/registrationschema.py:23:23: Q000 Remove bad quotes.
plone/app/users/registrationschema.py:24:13: E128 continuation line under-indented for visual indent
plone/app/users/registrationschema.py:24:22: 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:13: Q000 Remove bad quotes.
plone/app/users/registrationschema.py:25:80: E501 line too long (85 > 79 characters)
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:26:80: E501 line too long (81 > 79 characters)
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:27:80: E501 line too long (87 > 79 characters)
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/userdataschema.py:0:1: C101 Coding magic comment not found
plone/app/users/userdataschema.py:2:1: I004 isort found an unexpected blank line in imports
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: I001 isort found an import in the wrong position
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:25:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/userdataschema.py:35:17: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:40:17: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:41:19: E127 continuation line over-indented for visual indent
plone/app/users/userdataschema.py:41:19: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:42:19: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:83:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:95:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:96:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:102:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:103:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:104:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:110:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:111:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:112:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:116: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: I001 isort found an import in the wrong position
plone/app/users/registration.py:9:1: I004 isort found an unexpected blank line in imports
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:12:1: I001 isort found an import in the wrong position
plone/app/users/registration.py:19:1: E302 expected 2 blank lines, found 1
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:34:5: E303 too many blank lines (2)
plone/app/users/registration.py:36:65: E231 missing whitespace after ','
plone/app/users/registration.py:38:80: E501 line too long (95 > 79 characters)
plone/app/users/registration.py:42:1: E303 too many blank lines (3)
plone/app/users/registration.py:51:15: Q000 Remove bad quotes.
plone/app/users/registration.py:52:21: Q000 Remove bad quotes.
plone/app/users/registration.py:53: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:3:1: I001 isort found an import in the wrong position
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: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:8: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:16:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:18:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:19:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:19:80: E501 line too long (83 > 79 characters)
plone/app/users/browser/account.py:36:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:46:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:63:61: Q000 Remove bad quotes.
plone/app/users/browser/account.py:64:64: Q000 Remove bad quotes.
plone/app/users/browser/account.py:68:61: Q000 Remove bad quotes.
plone/app/users/browser/account.py:68:80: E501 line too long (80 > 79 characters)
plone/app/users/browser/account.py:69:64: Q000 Remove bad quotes.
plone/app/users/browser/account.py:72:5: E303 too many blank lines (2)
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/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/interfaces.py:1:1: I001 isort found an import in the wrong position
plone/app/users/browser/interfaces.py:1:80: E501 line too long (92 > 79 characters)
plone/app/users/browser/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/interfaces.py:3:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/interfaces.py:11:1: W293 blank line contains whitespace
plone/app/users/browser/interfaces.py:17:1: W293 blank line contains whitespace
plone/app/users/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/app/users/browser/__init__.py:1:2: W292 no newline at end of file
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:6:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:7:1: I001 isort found an import in the wrong position
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: 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:15:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:17:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:19:1: I004 isort found an unexpected blank line in imports
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: I004 isort found an unexpected blank line in imports
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: I004 isort found an unexpected blank line in imports
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: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:28: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:33:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/register.py:44:31: Q000 Remove bad quotes.
plone/app/users/browser/register.py:45:32: E127 continuation line over-indented for visual indent
plone/app/users/browser/register.py:46:32: Q000 Remove bad quotes.
plone/app/users/browser/register.py:47:32: Q000 Remove bad quotes.
plone/app/users/browser/register.py:48:32: Q000 Remove bad quotes.
plone/app/users/browser/register.py:49:32: Q000 Remove bad quotes.
plone/app/users/browser/register.py:60:31: Q000 Remove bad quotes.
plone/app/users/browser/register.py:61:23: Q000 Remove bad quotes.
plone/app/users/browser/register.py:65:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:65:80: E501 line too long (85 > 79 characters)
plone/app/users/browser/register.py:87:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:88:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:89:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:90:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:100:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:101:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:102:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:113:16: Q000 Remove bad quotes.
plone/app/users/browser/register.py:123:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:124:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:125:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:142:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:143:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:144:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:145:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:154:80: E501 line too long (86 > 79 characters)
plone/app/users/browser/register.py:160:25: S001 found module formatter
plone/app/users/browser/register.py:170:13: Q000 Remove bad quotes.
plone/app/users/browser/register.py:171:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:185:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:191:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:197: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:210:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:235:1: C901 'BaseRegistrationForm.validate_registration' is too complex (21)
plone/app/users/browser/register.py:251:26: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:264:49: E502 the backslash is redundant between brackets
plone/app/users/browser/register.py:280:16: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:307:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:309:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:310:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:316:9: E303 too many blank lines (2)
plone/app/users/browser/register.py:317:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:319:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:320:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:326:9: E303 too many blank lines (2)
plone/app/users/browser/register.py:327:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:335:47: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:340:37: Q000 Remove bad quotes.
plone/app/users/browser/register.py:341:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:358:1: C901 'BaseRegistrationForm.handle_join_success' is too complex (11)
plone/app/users/browser/register.py:384:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:395:80: E501 line too long (87 > 79 characters)
plone/app/users/browser/register.py:424:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:425:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:426:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:436:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:437:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:438:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:451:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:461:80: E501 line too long (92 > 79 characters)
plone/app/users/browser/register.py:464:80: E501 line too long (99 > 79 characters)
plone/app/users/browser/register.py:494:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:531:9: F841 local variable 'errors' is assigned to but never used
plone/app/users/browser/register.py:546:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:550: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:16:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/personalpreferences.py:17:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:17:80: E501 line too long (87 > 79 characters)
plone/app/users/browser/personalpreferences.py:18:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:19:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/personalpreferences.py:23:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:26:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/personalpreferences.py:27:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/personalpreferences.py:33:13: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:36:16: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:37:16: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:37:80: E501 line too long (81 > 79 characters)
plone/app/users/browser/personalpreferences.py:43:80: E501 line too long (81 > 79 characters)
plone/app/users/browser/personalpreferences.py:44:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:50:80: E501 line too long (93 > 79 characters)
plone/app/users/browser/personalpreferences.py:51:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:52:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:53:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:54:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:55:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:56:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:57:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:63:80: E501 line too long (80 > 79 characters)
plone/app/users/browser/personalpreferences.py:64:32: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:71:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:75:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/personalpreferences.py:81:80: E501 line too long (99 > 79 characters)
plone/app/users/browser/personalpreferences.py:90:5: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:99:5: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:108:5: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:117:5: E303 too many blank lines (2)
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:141:32: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:142:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:142:25: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:145:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/personalpreferences.py:148:15: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:148:50: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:149:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:149:60: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:149:80: E501 line too long (86 > 79 characters)
plone/app/users/browser/personalpreferences.py:157:5: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:169:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/personalpreferences.py:204:5: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:213:5: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:222:5: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:252:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/personalpreferences.py:254:80: E501 line too long (82 > 79 characters)
plone/app/users/browser/personalpreferences.py:274:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:279:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:280:80: E501 line too long (106 > 79 characters)
plone/app/users/browser/personalpreferences.py:286:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/personalpreferences.py:292:17: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:307:14: E271 multiple spaces after keyword
plone/app/users/browser/personalpreferences.py:311:1: E302 expected 2 blank lines, found 1
plone/app/users/browser/personalpreferences.py:316:53: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:316:80: E501 line too long (81 > 79 characters)
plone/app/users/browser/personalpreferences.py:317:34: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:318:53: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:318:80: E501 line too long (93 > 79 characters)
plone/app/users/browser/personalpreferences.py:319:34: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:319:34: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:322:80: E501 line too long (91 > 79 characters)
plone/app/users/browser/personalpreferences.py:324:53: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:324:61: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:324:80: E501 line too long (88 > 79 characters)
plone/app/users/browser/personalpreferences.py:325:62: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:325:62: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:325:80: E501 line too long (86 > 79 characters)
plone/app/users/browser/personalpreferences.py:328:80: E501 line too long (103 > 79 characters)
plone/app/users/browser/personalpreferences.py:329:34: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:330:53: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:330:61: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:330:80: E501 line too long (86 > 79 characters)
plone/app/users/browser/personalpreferences.py:331:61: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:331:80: E501 line too long (102 > 79 characters)
plone/app/users/browser/personalpreferences.py:336:1: E303 too many blank lines (3)
plone/app/users/browser/personalpreferences.py:338:5: D001 found adapts( replace it with zope.component.adapter
plone/app/users/browser/personalpreferences.py:339:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/personalpreferences.py:346:5: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:353:5: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:367:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:383:29: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:385:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:389:9: E303 too many blank lines (2)
plone/app/users/browser/personalpreferences.py:397:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:399:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:405:73: E203 whitespace before ','
plone/app/users/browser/personalpreferences.py:405:74: E231 missing whitespace after ','
plone/app/users/browser/personalpreferences.py:405:80: E501 line too long (126 > 79 characters)
plone/app/users/browser/personalpreferences.py:414:24: E225 missing whitespace around operator
plone/app/users/browser/personalpreferences.py:414:80: E501 line too long (156 > 79 characters)
plone/app/users/browser/personalpreferences.py:417:64: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:420:57: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:421:59: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:421: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:27:5: E303 too many blank lines (2)
plone/app/users/tests/base.py:43:80: E501 line too long (87 > 79 characters)
plone/app/users/tests/base.py:46:5: E303 too many blank lines (2)
plone/app/users/tests/base.py:53:1: W391 blank line at end of file
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_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:13:1: E302 expected 2 blank lines, found 1
plone/app/users/tests/test_doctests.py:25:13: E128 continuation line under-indented for visual indent
plone/app/users/tests/test_doctests.py:26:13: E128 continuation line under-indented for visual indent
plone/app/users/tests/test_doctests.py:26:21: Q000 Remove bad quotes.
plone/app/users/tests/test_doctests.py:27: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
plone/app/users/tests/test_account.py:31:1: W293 blank line contains whitespace
plone/app/users/tests/test_account.py:39:1: W293 blank line contains whitespace
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


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


@esteele Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.users/3/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/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:4:1: I004 isort found an unexpected blank line in imports
plone/app/users/userdataschema.py:22:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/userdataschema.py:48:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:60:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:61:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:67:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:68:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:69:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:75:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:76:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:77:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:81: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: I001 isort found an import in the wrong position
plone/app/users/registration.py:9:1: I004 isort found an unexpected blank line in imports
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:12:1: I001 isort found an import in the wrong position
plone/app/users/registration.py:19:1: E302 expected 2 blank lines, found 1
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:34:5: E303 too many blank lines (2)
plone/app/users/registration.py:36:65: E231 missing whitespace after ','
plone/app/users/registration.py:38:80: E501 line too long (95 > 79 characters)
plone/app/users/registration.py:42:1: E303 too many blank lines (3)
plone/app/users/registration.py:51:15: Q000 Remove bad quotes.
plone/app/users/registration.py:52:21: Q000 Remove bad quotes.
plone/app/users/registration.py:53: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:3:1: I001 isort found an import in the wrong position
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: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:8: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:16:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:18:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:19:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:20:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:29:44: E127 continuation line over-indented for visual indent
plone/app/users/browser/account.py:38:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:48:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:66:19: Q000 Remove bad quotes.
plone/app/users/browser/account.py:66:43: Q000 Remove bad quotes.
plone/app/users/browser/account.py:71:19: Q000 Remove bad quotes.
plone/app/users/browser/account.py:71:45: Q000 Remove bad quotes.
plone/app/users/browser/account.py:77:57: Q000 Remove bad quotes.
plone/app/users/browser/account.py:78:60: Q000 Remove bad quotes.
plone/app/users/browser/account.py:93:12: E713 test for membership should be 'not in'
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: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:21:1: I001 isort found an import in the wrong position
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: I004 isort found an unexpected blank line in imports
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: I004 isort found an unexpected blank line in imports
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: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:28:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:29:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:30:1: I001 isort found an import in the wrong position
plone/app/users/browser/register.py:31:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/register.py:32: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:37:1: I003 isort expected 1 blank line in imports, found 0
plone/app/users/browser/register.py:48:31: Q000 Remove bad quotes.
plone/app/users/browser/register.py:49:32: E127 continuation line over-indented for visual indent
plone/app/users/browser/register.py:50:32: Q000 Remove bad quotes.
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:64:31: Q000 Remove bad quotes.
plone/app/users/browser/register.py:65:23: Q000 Remove bad quotes.
plone/app/users/browser/register.py:69:25: Q000 Remove bad quotes.
plone/app/users/browser/register.py:70:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:93:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:94:9: 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:106:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:107:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:108:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:119:16: Q000 Remove bad quotes.
plone/app/users/browser/register.py:129:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:130:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:131:9: Q000 Remove bad quotes.
plone/app/users/browser/register.py:148:17: Q000 Remove bad quotes.
plone/app/users/browser/register.py:149:9: 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:173:21: S001 found module formatter
plone/app/users/browser/register.py:183:13: Q000 Remove bad quotes.
plone/app/users/browser/register.py:184:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:186:1: C901 'BaseRegistrationForm.form_fields' is too complex (12)
plone/app/users/browser/register.py:198:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:204:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:210:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:218:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:223:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:244:80: E501 line too long (85 > 79 characters)
plone/app/users/browser/register.py:245:80: E501 line too long (96 > 79 characters)
plone/app/users/browser/register.py:247:37: E231 missing whitespace after ','
plone/app/users/browser/register.py:251:80: E501 line too long (94 > 79 characters)
plone/app/users/browser/register.py:252:80: E501 line too long (88 > 79 characters)
plone/app/users/browser/register.py:259:1: C901 'BaseRegistrationForm.validate_registration' is too complex (22)
plone/app/users/browser/register.py:275:26: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:288:49: E502 the backslash is redundant between brackets
plone/app/users/browser/register.py:304:16: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:315:9: E303 too many blank lines (2)
plone/app/users/browser/register.py:334:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:336:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:337:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:343:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:345:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:346:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:352:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:360:47: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:365:37: Q000 Remove bad quotes.
plone/app/users/browser/register.py:366:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:389:1: C901 'BaseRegistrationForm.handle_join_success' is too complex (11)
plone/app/users/browser/register.py:415:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:458:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:459:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:460:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:470:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:471:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:472:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:481:1: E303 too many blank lines (3)
plone/app/users/browser/register.py:486:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:531:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:585:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:589: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: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:3:1: I004 isort found an unexpected blank line in imports
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: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:14:1: I004 isort found an unexpected blank line in imports
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: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:17: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: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:271:42: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:272:42: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:289:37: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:290:37: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:291:37: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:304:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:309:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:336:17: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:351:14: E271 multiple spaces after keyword
plone/app/users/browser/personalpreferences.py:362:18: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:364:24: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:365:9: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:372:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:379:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:380:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:386:5: D001 found adapts( replace it with zope.component.adapter
plone/app/users/browser/personalpreferences.py:387:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/personalpreferences.py:409:21: E222 multiple spaces after operator
plone/app/users/browser/personalpreferences.py:412:80: E501 line too long (85 > 79 characters)
plone/app/users/browser/personalpreferences.py:413:80: E501 line too long (96 > 79 characters)
plone/app/users/browser/personalpreferences.py:419:13: E122 continuation line missing indentation or outdented
plone/app/users/browser/personalpreferences.py:426:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:442:29: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:444:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:455:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:457:35: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:478:64: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:481:57: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:482:59: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:482: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:7:80: E501 line too long (91 > 79 characters)
plone/app/users/tests/test_new_user.py:19:13: E128 continuation line under-indented for visual indent
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.


@lentinj Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.users/4/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/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:4:1: I004 isort found an unexpected blank line in imports
plone/app/users/userdataschema.py:22:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/userdataschema.py:48:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:60:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:61:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:67:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:68:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:69:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:75:31: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:76:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:77:23: Q000 Remove bad quotes.
plone/app/users/userdataschema.py:81: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: I001 isort found an import in the wrong position
plone/app/users/registration.py:9:1: I004 isort found an unexpected blank line in imports
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:12:1: I001 isort found an import in the wrong position
plone/app/users/registration.py:19:1: E302 expected 2 blank lines, found 1
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:34:5: E303 too many blank lines (2)
plone/app/users/registration.py:36:65: E231 missing whitespace after ','
plone/app/users/registration.py:38:80: E501 line too long (95 > 79 characters)
plone/app/users/registration.py:42:1: E303 too many blank lines (3)
plone/app/users/registration.py:51:15: Q000 Remove bad quotes.
plone/app/users/registration.py:52:21: Q000 Remove bad quotes.
plone/app/users/registration.py:53: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:3:1: I001 isort found an import in the wrong position
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: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:8: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:16:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:18:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/account.py:19:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:20:1: I001 isort found an import in the wrong position
plone/app/users/browser/account.py:29:44: E127 continuation line over-indented for visual indent
plone/app/users/browser/account.py:38:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:48:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/account.py:66:19: Q000 Remove bad quotes.
plone/app/users/browser/account.py:66:43: Q000 Remove bad quotes.
plone/app/users/browser/account.py:71:19: Q000 Remove bad quotes.
plone/app/users/browser/account.py:71:45: Q000 Remove bad quotes.
plone/app/users/browser/account.py:77:57: Q000 Remove bad quotes.
plone/app/users/browser/account.py:78:60: Q000 Remove bad quotes.
plone/app/users/browser/account.py:84:40: S001 found module formatter
plone/app/users/browser/account.py:98:12: E713 test for membership should be 'not in'
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: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:265:1: C901 'BaseRegistrationForm.validate_registration' is too complex (21)
plone/app/users/browser/register.py:281:26: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:294:49: E502 the backslash is redundant between brackets
plone/app/users/browser/register.py:310:16: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:335:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:337:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:338:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:344:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:346:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:347:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:353:12: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:361:35: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:366:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:367:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:372:47: E713 test for membership should be 'not in'
plone/app/users/browser/register.py:377:37: Q000 Remove bad quotes.
plone/app/users/browser/register.py:378:29: Q000 Remove bad quotes.
plone/app/users/browser/register.py:401:1: C901 'BaseRegistrationForm.handle_join_success' is too complex (18)
plone/app/users/browser/register.py:434:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:441:80: E501 line too long (88 > 79 characters)
plone/app/users/browser/register.py:442:24: P002 found "hasattr", consider replacing it
plone/app/users/browser/register.py:491:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:492:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:493:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:503:35: Q000 Remove bad quotes.
plone/app/users/browser/register.py:504:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:505:27: Q000 Remove bad quotes.
plone/app/users/browser/register.py:518:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:563:19: Q000 Remove bad quotes.
plone/app/users/browser/register.py:617:69: Q000 Remove bad quotes.
plone/app/users/browser/register.py:621: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:20:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/personalpreferences.py:21:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:22:1: I004 isort found an unexpected blank line in imports
plone/app/users/browser/personalpreferences.py:26:1: I001 isort found an import in the wrong position
plone/app/users/browser/personalpreferences.py:37:13: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:50:24: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:51:20: Q000 Remove bad quotes.
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:65:12: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:71:13: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:72:13: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:79:20: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:138:32: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:139:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:139:25: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:148:32: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:149:25: E128 continuation line under-indented for visual indent
plone/app/users/browser/personalpreferences.py:149:25: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:156:15: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:156:50: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:157:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:158:29: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:302:33: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:303:33: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:304:33: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:315:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:320:13: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:347:17: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:362:14: E271 multiple spaces after keyword
plone/app/users/browser/personalpreferences.py:373:18: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:375:24: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:376:9: E265 block comment should start with '# '
plone/app/users/browser/personalpreferences.py:383:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:390:21: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:391:13: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:397:5: D001 found adapts( replace it with zope.component.adapter
plone/app/users/browser/personalpreferences.py:398:5: D001 found implements( replace it with zope.interface.implementer
plone/app/users/browser/personalpreferences.py:421: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:473:64: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:476:57: Q000 Remove bad quotes.
plone/app/users/browser/personalpreferences.py:477:59: E127 continuation line over-indented for visual indent
plone/app/users/browser/personalpreferences.py:477: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:27:5: E303 too many blank lines (2)
plone/app/users/tests/base.py:43:80: E501 line too long (87 > 79 characters)
plone/app/users/tests/base.py:46:5: E303 too many blank lines (2)
plone/app/users/tests/base.py:53:1: W391 blank line at end of file
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:7:80: E501 line too long (91 > 79 characters)
plone/app/users/tests/test_new_user.py:19:13: E128 continuation line under-indented for visual indent
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.


# Антон, ну!
Вот тут неправильно, я готов поспорить.

Надо писать так:
`prosto jotel skazat 4to ti krut`