@mauritsvanrees Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.vocabularies/4/violations
```
plone/app/vocabularies/actions.py:19:9: B901 blind except: statement
plone/app/vocabularies/groups.py:51:45: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:161:19: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:162:38: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/security.py:62:26: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:62:39: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:72:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:131:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:98:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:149:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:189:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:240:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:244:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:245:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:246:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:247:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:248:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:249:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:250:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:251:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:252:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:253:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:254:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:255:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:256:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:257:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:258:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:307:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:18:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:21:10: Q000 Remove bad quotes.
plone/app/vocabularies/syndication.py:11:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/syndication.py:42:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/syndication.py:54:22: Q000 Remove bad quotes.
plone/app/vocabularies/syndication.py:60:21: S001 found module formatter
plone/app/vocabularies/syndication.py:65:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/interfaces.py:12:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:24:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:33:9: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:51:45: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:71:46: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:83:40: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:113:40: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:205:19: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:206:38: Q000 Remove bad quotes.
plone/app/vocabularies/__init__.py:20:13: D001 found directlyProvides( replace it with zope.interface.provider
plone/app/vocabularies/editors.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/editors.py:54:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/datetimerelated.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/datetimerelated.py:10:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/datetimerelated.py:42:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:21:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/catalog.py:25:36: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:83:12: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:86:31: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:86:48: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:90:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:90:27: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:54: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:62: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:149:47: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:150:51: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:154:26: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:341:28: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:341:49: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:360:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:361:38: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:366:32: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:371:21: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:373:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:443:44: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:464:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/catalog.py:519:20: P002 found "hasattr", consider replacing it
plone/app/vocabularies/catalog.py:519:34: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:525:20: P002 found "hasattr", consider replacing it
plone/app/vocabularies/catalog.py:525:34: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:532:16: P002 found "hasattr", consider replacing it
plone/app/vocabularies/catalog.py:532:30: Q000 Remove bad quotes.
plone/app/vocabularies/workflow.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/workflow.py:71:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:133:33: S001 found module formatter
plone/app/vocabularies/workflow.py:138:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:233:26: Q000 Remove bad quotes.
plone/app/vocabularies/workflow.py:233:26: S001 found module formatter
plone/app/vocabularies/workflow.py:238:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/skins.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/skins.py:71:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/tests/base.py:58:16: S001 found module formatter
plone/app/vocabularies/tests/test_vocabularies.py:96:1: W391 blank line at end of file
plone/app/vocabularies/tests/test_timezonevocabularies.py:6:1: I003 isort expected 1 blank line in imports, found 0
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@vangheem Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.vocabularies/5/violations
```
plone/app/vocabularies/actions.py:19:9: B901 blind except: statement
plone/app/vocabularies/groups.py:51:45: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:161:19: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:162:38: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/security.py:62:26: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:62:39: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:72:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:131:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:98:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:149:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:189:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:240:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:244:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:245:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:246:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:247:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:248:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:249:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:250:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:251:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:252:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:253:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:254:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:255:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:256:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:257:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:258:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:307:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:18:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:21:10: Q000 Remove bad quotes.
plone/app/vocabularies/syndication.py:11:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/syndication.py:42:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/syndication.py:54:22: Q000 Remove bad quotes.
plone/app/vocabularies/syndication.py:60:21: S001 found module formatter
plone/app/vocabularies/syndication.py:65:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/interfaces.py:12:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:24:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:33:9: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:51:45: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:71:46: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:83:40: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:113:40: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:205:19: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:206:38: Q000 Remove bad quotes.
plone/app/vocabularies/__init__.py:20:13: D001 found directlyProvides( replace it with zope.interface.provider
plone/app/vocabularies/editors.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/editors.py:54:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/datetimerelated.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/datetimerelated.py:10:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/datetimerelated.py:42:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:21:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/catalog.py:25:36: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:83:12: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:86:31: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:86:48: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:90:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:90:27: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:54: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:62: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:149:47: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:150:51: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:154:26: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:341:28: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:341:49: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:360:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:361:38: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:366:32: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:371:21: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:373:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:443:44: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:464:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/catalog.py:510:20: P002 found "hasattr", consider replacing it
plone/app/vocabularies/catalog.py:510:34: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:516:20: P002 found "hasattr", consider replacing it
plone/app/vocabularies/catalog.py:516:34: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:523:16: P002 found "hasattr", consider replacing it
plone/app/vocabularies/catalog.py:523:30: Q000 Remove bad quotes.
plone/app/vocabularies/workflow.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/workflow.py:71:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:133:33: S001 found module formatter
plone/app/vocabularies/workflow.py:138:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:233:26: Q000 Remove bad quotes.
plone/app/vocabularies/workflow.py:233:26: S001 found module formatter
plone/app/vocabularies/workflow.py:238:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/skins.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/skins.py:71:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/tests/base.py:58:16: S001 found module formatter
plone/app/vocabularies/tests/test_vocabularies.py:96:1: W391 blank line at end of file
plone/app/vocabularies/tests/test_timezonevocabularies.py:6:1: I003 isort expected 1 blank line in imports, found 0
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@iham Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.vocabularies/7/violations
```
plone/app/vocabularies/actions.py:20:9: B901 blind except: statement
plone/app/vocabularies/actions.py:52:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/groups.py:51:45: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:161:19: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:162:38: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/security.py:62:26: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:62:39: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:72:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:131:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:142:13: E128 continuation line under-indented for visual indent
plone/app/vocabularies/security.py:145:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:98:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:149:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:189:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:240:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:244:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:245:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:246:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:247:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:248:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:249:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:250:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:251:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:252:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:253:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:254:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:255:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:256:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:257:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:258:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:307:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:18:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:21:10: Q000 Remove bad quotes.
plone/app/vocabularies/syndication.py:11:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/syndication.py:42:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/syndication.py:54:22: Q000 Remove bad quotes.
plone/app/vocabularies/syndication.py:60:21: S001 found module formatter
plone/app/vocabularies/syndication.py:65:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/images.py:8:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/interfaces.py:12:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:24:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:33:9: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:18:44: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:23:80: E501 line too long (86 > 79 characters)
plone/app/vocabularies/users.py:62:45: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:82:46: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:115:40: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:203:19: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:204:38: Q000 Remove bad quotes.
plone/app/vocabularies/__init__.py:20:13: D001 found directlyProvides( replace it with zope.interface.provider
plone/app/vocabularies/editors.py:9:1: I001 isort found an import in the wrong position
plone/app/vocabularies/editors.py:10:1: I001 isort found an import in the wrong position
plone/app/vocabularies/editors.py:24:20: Q000 Remove bad quotes.
plone/app/vocabularies/editors.py:33:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/utils.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/datetimerelated.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/datetimerelated.py:10:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/datetimerelated.py:42:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:31:36: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:89:12: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:92:31: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:92:48: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:96:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:96:27: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:97:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:97:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:97:54: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:97:62: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:155:47: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:156:51: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:343:28: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:343:49: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:362:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:363:38: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:368:32: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:373:21: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:375:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:499:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/catalog.py:605:80: E501 line too long (81 > 79 characters)
plone/app/vocabularies/workflow.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/workflow.py:71:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:133:33: S001 found module formatter
plone/app/vocabularies/workflow.py:138:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:233:26: Q000 Remove bad quotes.
plone/app/vocabularies/workflow.py:233:26: S001 found module formatter
plone/app/vocabularies/workflow.py:238:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/skins.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/skins.py:71:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/tests/test_editors.py:5:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/tests/test_editors.py:19:59: Q000 Remove bad quotes.
plone/app/vocabularies/tests/test_imagesvocabularies.py:5:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/tests/base.py:3:1: I001 isort found an import in the wrong position
plone/app/vocabularies/tests/base.py:4:1: I001 isort found an import in the wrong position
plone/app/vocabularies/tests/base.py:74:16: S001 found module formatter
plone/app/vocabularies/tests/test_subjects_under_context.py:4:1: I001 isort found an import in the wrong position
plone/app/vocabularies/tests/test_vocabularies.py:90:1: W391 blank line at end of file
plone/app/vocabularies/tests/test_timezonevocabularies.py:6:1: I003 isort expected 1 blank line in imports, found 0
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@vincentfretin Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.vocabularies/6/violations
```
plone/app/vocabularies/actions.py:19:9: B901 blind except: statement
plone/app/vocabularies/groups.py:51:45: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:161:19: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:162:38: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/security.py:62:26: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:62:39: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:72:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:131:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:98:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:149:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:189:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:240:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:244:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:245:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:246:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:247:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:248:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:249:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:250:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:251:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:252:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:253:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:254:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:255:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:256:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:257:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:258:5: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:307:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:18:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:21:10: Q000 Remove bad quotes.
plone/app/vocabularies/syndication.py:11:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/syndication.py:42:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/syndication.py:54:22: Q000 Remove bad quotes.
plone/app/vocabularies/syndication.py:60:21: S001 found module formatter
plone/app/vocabularies/syndication.py:65:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/images.py:8:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/interfaces.py:12:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:24:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:33:9: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:51:45: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:71:46: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:83:40: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:113:40: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:205:19: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:206:38: Q000 Remove bad quotes.
plone/app/vocabularies/__init__.py:20:13: D001 found directlyProvides( replace it with zope.interface.provider
plone/app/vocabularies/editors.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/editors.py:54:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/datetimerelated.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/datetimerelated.py:10:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/datetimerelated.py:42:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:22:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/catalog.py:26:36: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:84:12: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:87:31: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:87:48: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:27: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:92:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:92:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:92:54: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:92:62: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:150:47: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:151:51: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:155:26: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:342:28: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:342:49: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:361:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:362:38: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:367:32: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:372:21: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:374:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:444:44: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:465:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/catalog.py:511:20: P002 found "hasattr", consider replacing it
plone/app/vocabularies/catalog.py:511:34: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:517:20: P002 found "hasattr", consider replacing it
plone/app/vocabularies/catalog.py:517:34: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:524:16: P002 found "hasattr", consider replacing it
plone/app/vocabularies/catalog.py:524:30: Q000 Remove bad quotes.
plone/app/vocabularies/workflow.py:12:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/workflow.py:71:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:133:33: S001 found module formatter
plone/app/vocabularies/workflow.py:138:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:233:26: Q000 Remove bad quotes.
plone/app/vocabularies/workflow.py:233:26: S001 found module formatter
plone/app/vocabularies/workflow.py:238:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/skins.py:9:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/skins.py:71:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/tests/test_imagesvocabularies.py:3:1: F401 'plone.registry.interfaces.IRegistry' imported but unused
plone/app/vocabularies/tests/test_imagesvocabularies.py:6:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/tests/base.py:3:1: I001 isort found an import in the wrong position
plone/app/vocabularies/tests/base.py:4:1: I001 isort found an import in the wrong position
plone/app/vocabularies/tests/base.py:40:1: E303 too many blank lines (3)
plone/app/vocabularies/tests/base.py:82:16: S001 found module formatter
plone/app/vocabularies/tests/base.py:111:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/tests/base.py:149:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/tests/test_vocabularies.py:96:1: W391 blank line at end of file
plone/app/vocabularies/tests/test_timezonevocabularies.py:6:1: I003 isort expected 1 blank line in imports, found 0
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


__API Description file syntax error on line 26__: the use of tab(s) '\t' in source data isn't currently supported, please contact makers (Autogenerated message from apiary.io)


@hannosch Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.vocabularies/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/vocabularies/types.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/types.py:4:1: I001 isort found an import in the wrong position
plone/app/vocabularies/types.py:5:1: I001 isort found an import in the wrong position
plone/app/vocabularies/types.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/types.py:7:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/types.py:8:1: I001 isort found an import in the wrong position
plone/app/vocabularies/types.py:41:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/types.py:50:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:93:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/types.py:102:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:134:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/types.py:147:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:185:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/types.py:199:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:202:14: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:202:36: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:202:54: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:203:14: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:203:33: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:203:58: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:203:80: E501 line too long (80 > 79 characters)
plone/app/vocabularies/types.py:204:14: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:204:38: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:204:62: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:205:14: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:205:41: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:205:60: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:206:14: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:206:33: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:206:47: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:207:14: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:207:33: Q000 Remove bad quotes.
plone/app/vocabularies/types.py:242:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/types.py:254:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/terms.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/terms.py:1:1: I001 isort found an import in the wrong position
plone/app/vocabularies/terms.py:2:1: I001 isort found an import in the wrong position
plone/app/vocabularies/terms.py:18:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/terms.py:21:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/terms.py:48:80: E501 line too long (81 > 79 characters)
plone/app/vocabularies/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/interfaces.py:1:1: I001 isort found an import in the wrong position
plone/app/vocabularies/interfaces.py:9:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:14:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/interfaces.py:20:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:29:9: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/catalog.py:1:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/catalog.py:2:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:3:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/catalog.py:5:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:7:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/catalog.py:8:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/catalog.py:10:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:11:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:14:36: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:72:12: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:75:31: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:75:46: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:76:13: W601 .has_key() is deprecated, use 'in'
plone/app/vocabularies/catalog.py:79:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:79:27: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:80:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:80:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:80:54: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:80:62: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:140:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/catalog.py:147:47: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:148:51: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:152:26: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:176:80: E501 line too long (90 > 79 characters)
plone/app/vocabularies/catalog.py:180:17: W601 .has_key() is deprecated, use 'in'
plone/app/vocabularies/catalog.py:232:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/catalog.py:310:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/catalog.py:323:16: E127 continuation line over-indented for visual indent
plone/app/vocabularies/catalog.py:336:13: E265 block comment should start with '# '
plone/app/vocabularies/catalog.py:339:28: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:339:49: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:358:17: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:359:36: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:364:30: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:369:21: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:371:21: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/users.py:1:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:2:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/users.py:5:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:7:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/users.py:8:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:41:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/users.py:46:45: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:122:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/users.py:149:17: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:150:36: Q000 Remove bad quotes.
plone/app/vocabularies/skins.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/skins.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/skins.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/skins.py:42:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/skins.py:54:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/workflow.py:5:1: I001 isort found an import in the wrong position
plone/app/vocabularies/workflow.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/workflow.py:8:1: I001 isort found an import in the wrong position
plone/app/vocabularies/workflow.py:10:1: I001 isort found an import in the wrong position
plone/app/vocabularies/workflow.py:53:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/workflow.py:65:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:101:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/workflow.py:112:80: E501 line too long (87 > 79 characters)
plone/app/vocabularies/workflow.py:115:38: S001 found module formatter
plone/app/vocabularies/workflow.py:115:80: E501 line too long (81 > 79 characters)
plone/app/vocabularies/workflow.py:118:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:178:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/workflow.py:194:80: E501 line too long (97 > 79 characters)
plone/app/vocabularies/workflow.py:195:73: E128 continuation line under-indented for visual indent
plone/app/vocabularies/workflow.py:195:80: E501 line too long (89 > 79 characters)
plone/app/vocabularies/workflow.py:200:42: E251 unexpected spaces around keyword / parameter equals
plone/app/vocabularies/workflow.py:200:44: E251 unexpected spaces around keyword / parameter equals
plone/app/vocabularies/workflow.py:201:16: E128 continuation line under-indented for visual indent
plone/app/vocabularies/workflow.py:201:21: E251 unexpected spaces around keyword / parameter equals
plone/app/vocabularies/workflow.py:201:23: E251 unexpected spaces around keyword / parameter equals
plone/app/vocabularies/workflow.py:202:16: E128 continuation line under-indented for visual indent
plone/app/vocabularies/workflow.py:202:21: E251 unexpected spaces around keyword / parameter equals
plone/app/vocabularies/workflow.py:202:23: E251 unexpected spaces around keyword / parameter equals
plone/app/vocabularies/workflow.py:202:24: Q000 Remove bad quotes.
plone/app/vocabularies/workflow.py:202:24: S001 found module formatter
plone/app/vocabularies/workflow.py:206:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/groups.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/groups.py:1:1: F401 'itertools' imported but unused
plone/app/vocabularies/groups.py:1:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:2:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:3:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:7:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:8:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/groups.py:9:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:45:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/groups.py:50:45: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:134:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/groups.py:161:17: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:162:36: Q000 Remove bad quotes.
plone/app/vocabularies/security.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/security.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/security.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/security.py:42:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/security.py:54:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:102:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/security.py:109:80: E501 line too long (80 > 79 characters)
plone/app/vocabularies/security.py:114:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/language.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/language.py:5:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/language.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/language.py:47:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/language.py:60:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/language.py:60:80: E501 line too long (80 > 79 characters)
plone/app/vocabularies/language.py:96:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/language.py:108:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/language.py:108:80: E501 line too long (80 > 79 characters)
plone/app/vocabularies/__init__.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/__init__.py:1:2: W292 no newline at end of file
plone/app/vocabularies/tests/test_vocabularies.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/tests/test_vocabularies.py:1:1: I001 isort found an import in the wrong position
plone/app/vocabularies/tests/test_vocabularies.py:2:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/tests/test_vocabularies.py:3:1: I001 isort found an import in the wrong position
plone/app/vocabularies/tests/test_vocabularies.py:4:1: I001 isort found an import in the wrong position
plone/app/vocabularies/tests/test_vocabularies.py:23:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/tests/test_vocabularies.py:27:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/tests/test_vocabularies.py:31:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/tests/test_vocabularies.py:35:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/tests/test_vocabularies.py:39:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/tests/test_vocabularies.py:44:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/tests/test_vocabularies.py:48:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/tests/test_vocabularies.py:52:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/tests/test_vocabularies.py:55:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/tests/base.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/tests/base.py:2:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/tests/base.py:40:16: S001 found module formatter
plone/app/vocabularies/tests/__init__.py:0:1: C101 Coding magic comment not found
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@rockyburt Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.vocabularies/1/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/types.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/types.py:4:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/types.py:5:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/types.py:8:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/types.py:12:17: F821 undefined name 'getToolByName'
plone/app/vocabularies/types.py:13:18: E201 whitespace after '['
plone/app/vocabularies/types.py:14:52: E202 whitespace before ']'
plone/app/vocabularies/types.py:18:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:24:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/types.py:28:17: F821 undefined name 'getToolByName'
plone/app/vocabularies/types.py:29:17: F821 undefined name 'getToolByName'
plone/app/vocabularies/types.py:30:18: E201 whitespace after '['
plone/app/vocabularies/types.py:31:56: E202 whitespace before ']'
plone/app/vocabularies/types.py:35:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/terms.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/terms.py:1:1: I001 isort found an import in the wrong position
plone/app/vocabularies/terms.py:2:1: I001 isort found an import in the wrong position
plone/app/vocabularies/terms.py:5:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/terms.py:6:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/terms.py:7:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/terms.py:8:1: W293 blank line contains whitespace
plone/app/vocabularies/terms.py:10:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/terms.py:13:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/terms.py:16:64: W291 trailing whitespace
plone/app/vocabularies/terms.py:17:80: E501 line too long (81 > 79 characters)
plone/app/vocabularies/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/interfaces.py:1:1: I001 isort found an import in the wrong position
plone/app/vocabularies/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/interfaces.py:3:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/interfaces.py:6:1: W293 blank line contains whitespace
plone/app/vocabularies/interfaces.py:8:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:13:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/interfaces.py:19:9: Q000 Remove bad quotes.
plone/app/vocabularies/interfaces.py:28:9: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/catalog.py:1:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/catalog.py:2:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:3:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:4:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/catalog.py:5:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:7:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/catalog.py:8:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:9:1: I004 isort found an unexpected blank line in imports
plone/app/vocabularies/catalog.py:10:1: I001 isort found an import in the wrong position
plone/app/vocabularies/catalog.py:13:36: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:71:12: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:74:31: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:74:46: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:75:13: W601 .has_key() is deprecated, use 'in'
plone/app/vocabularies/catalog.py:78:19: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:78:27: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:79:15: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:79:23: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:79:54: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:79:62: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:84:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/catalog.py:90:47: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:91:51: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:104:1: W293 blank line contains whitespace
plone/app/vocabularies/catalog.py:105:80: E501 line too long (86 > 79 characters)
plone/app/vocabularies/catalog.py:106:17: W601 .has_key() is deprecated, use 'in'
plone/app/vocabularies/catalog.py:112:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/catalog.py:115:1: W293 blank line contains whitespace
plone/app/vocabularies/catalog.py:122:1: W293 blank line contains whitespace
plone/app/vocabularies/catalog.py:125:1: W293 blank line contains whitespace
plone/app/vocabularies/catalog.py:126:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/catalog.py:127:1: W293 blank line contains whitespace
plone/app/vocabularies/catalog.py:130:1: W293 blank line contains whitespace
plone/app/vocabularies/catalog.py:133:1: W293 blank line contains whitespace
plone/app/vocabularies/catalog.py:136:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/catalog.py:162:28: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:162:49: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:163:62: W291 trailing whitespace
plone/app/vocabularies/catalog.py:179:17: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:180:36: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:187:30: Q000 Remove bad quotes.
plone/app/vocabularies/catalog.py:192:40: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/users.py:1:1: F401 'itertools' imported but unused
plone/app/vocabularies/users.py:1:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:2:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:3:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:7:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:9:1: I001 isort found an import in the wrong position
plone/app/vocabularies/users.py:11:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/users.py:12:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/users.py:17:45: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:28:1: W293 blank line contains whitespace
plone/app/vocabularies/users.py:34:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/users.py:61:17: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:62:36: Q000 Remove bad quotes.
plone/app/vocabularies/users.py:66:54: W292 no newline at end of file
plone/app/vocabularies/skins.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/skins.py:5:1: I001 isort found an import in the wrong position
plone/app/vocabularies/skins.py:7:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/skins.py:10:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/skins.py:15:18: E201 whitespace after '['
plone/app/vocabularies/skins.py:16:53: E202 whitespace before ']'
plone/app/vocabularies/skins.py:20:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/workflow.py:5:1: I001 isort found an import in the wrong position
plone/app/vocabularies/workflow.py:7:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/workflow.py:10:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/workflow.py:19:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:21:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/workflow.py:24:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/workflow.py:31:80: E501 line too long (96 > 79 characters)
plone/app/vocabularies/workflow.py:33:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:39:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/workflow.py:40:1: W293 blank line contains whitespace
plone/app/vocabularies/workflow.py:44:1: W293 blank line contains whitespace
plone/app/vocabularies/workflow.py:46:1: W293 blank line contains whitespace
plone/app/vocabularies/workflow.py:53:80: E501 line too long (97 > 79 characters)
plone/app/vocabularies/workflow.py:53:98: W291 trailing whitespace
plone/app/vocabularies/workflow.py:54:73: E128 continuation line under-indented for visual indent
plone/app/vocabularies/workflow.py:54:80: E501 line too long (89 > 79 characters)
plone/app/vocabularies/workflow.py:59:27: Q000 Remove bad quotes.
plone/app/vocabularies/workflow.py:59:27: S001 found module formatter
plone/app/vocabularies/workflow.py:59:80: E501 line too long (84 > 79 characters)
plone/app/vocabularies/workflow.py:60:1: W293 blank line contains whitespace
plone/app/vocabularies/workflow.py:63:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/groups.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/groups.py:1:1: F401 'itertools' imported but unused
plone/app/vocabularies/groups.py:1:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:2:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:3:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:6:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:7:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:9:1: I001 isort found an import in the wrong position
plone/app/vocabularies/groups.py:11:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/groups.py:12:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/groups.py:17:45: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:30:1: W293 blank line contains whitespace
plone/app/vocabularies/groups.py:35:1: W293 blank line contains whitespace
plone/app/vocabularies/groups.py:37:1: W293 blank line contains whitespace
plone/app/vocabularies/groups.py:43:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/groups.py:70:17: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:71:36: Q000 Remove bad quotes.
plone/app/vocabularies/groups.py:75:54: W292 no newline at end of file
plone/app/vocabularies/security.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/security.py:5:1: I001 isort found an import in the wrong position
plone/app/vocabularies/security.py:7:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/security.py:10:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/security.py:15:18: E201 whitespace after '['
plone/app/vocabularies/security.py:15:57: E202 whitespace before ']'
plone/app/vocabularies/security.py:19:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:21:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/security.py:24:5: D001 found implements( replace it with zope.interface.implementer
plone/app/vocabularies/security.py:29:18: E201 whitespace after '['
plone/app/vocabularies/security.py:29:80: E501 line too long (82 > 79 characters)
plone/app/vocabularies/security.py:29:81: E202 whitespace before ']'
plone/app/vocabularies/security.py:32:1: W293 blank line contains whitespace
plone/app/vocabularies/security.py:33:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/__init__.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/__init__.py:1:2: W292 no newline at end of file
plone/app/vocabularies/tests/test_catalog.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/tests/test_catalog.py:1:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/tests/test_catalog.py:2:1: I001 isort found an import in the wrong position
plone/app/vocabularies/tests/test_catalog.py:3:1: I003 isort expected 1 blank line in imports, found 0
plone/app/vocabularies/tests/test_catalog.py:4:1: E302 expected 2 blank lines, found 1
plone/app/vocabularies/tests/test_catalog.py:9:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/tests/__init__.py:0:1: C101 Coding magic comment not found
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@vangheem Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.vocabularies/8/violations
```
plone/app/vocabularies/types.py:98:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:149:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:189:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:240:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:307:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/syndication.py:43:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/syndication.py:68:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/actions.py:52:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/catalog.py:511:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/skins.py:72:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:72:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:139:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:239:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:73:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:137:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:151:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:18:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/__init__.py:20:13: D001 found directlyProvides( replace it with zope.interface.provider
plone/app/vocabularies/editors.py:33:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/principals.py:0:1: C101 Coding magic comment not found
plone/app/vocabularies/principals.py:125:80: E501 line too long (81 > 79 characters)
plone/app/vocabularies/principals.py:129:80: E501 line too long (83 > 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.


@vangheem Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.vocabularies/9/violations
```
plone/app/vocabularies/types.py:98:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:149:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:189:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:240:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/types.py:307:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/syndication.py:43:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/syndication.py:68:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/actions.py:52:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/catalog.py:546:21: F821 undefined name 'query'
plone/app/vocabularies/skins.py:72:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:72:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:139:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/workflow.py:239:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:73:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:132:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/security.py:146:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/testing.py:18:1: E305 expected 2 blank lines after class or function definition, found 1
plone/app/vocabularies/__init__.py:20:13: D001 found directlyProvides( replace it with zope.interface.provider
plone/app/vocabularies/editors.py:33:1: E305 expected 2 blank lines after class or function definition, found 1
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


// I know this is only the skeleton, thus TODO.
// TODO: make this per bundle?


TeamCity Chorus :: chorus-win32-master Continuous [Build 2.6.314.62b9dded771ebd5373f3f8fc9467d368a20c03a5](http://build.palaso.org/viewLog.html?buildId=80311&buildTypeId=bt2) outcome was **SUCCESS**
Summary: Tests passed: 946, ignored: 50 Build time: 00:28:17


thanks a lot @igrigorik, appreciate the help.


TeamCity OTA+ :: rvi_sota_server :: ci [Build 1725](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=18960&buildTypeId=ota_plus_RviSotaServer_Ci) is now running


TeamCity OTA+ :: rvi_sota_server :: ci [Build 1725](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=18960&buildTypeId=ota_plus_RviSotaServer_Ci) outcome was **FAILURE**
Summary: Exit code 1 Build time: 00:00:37


The different info class was deliberate -- without alternating group recognition available, nor predefined date from the TOM available, this will a significant performance hit (of taking hours or longer instead of seconds). I will change this to `InfoPerformance` in my next PR.


I do not like mutating config object from non-config place :(


Gracias!


@ChristopherHammond13 no worries, @mohsinasdf knows how to fix it.


while looking at the url you mention, i see that py2app does the patching a little different.. then noticed their other hack -- passing unicode arguments..  which prob needs to be looked at on our end as well

https://github.com/devos50/tribler/blob/8c4b11b72ebe9e9a2e068f3b53e23445353e4385/Tribler/Main/hacks.py#L72


@michbarsinai @scolapasta here's the fix I implemented for lack of bean validation regression: 3b29569

While I was testing I also noticed that another regression was introduced in the c64fd62 rewrite. Builtin users could no longer change their name or email address. I fixed this in 752b6a9.


Ah okay awesome then :) I'll wait for our Mohsin our Saviour™

Sent from my Cyanogen phone

On 28 Nov 2016 17:20, Jaromir Latal <notifications@github.com> wrote:

@ChristopherHammond13 no worries, @mohsinasdf knows how to fix it.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


<iframe width="560" height="315" src="https://www.youtube.com/embed/FEeTLopLkEo" frameborder="0" allowfullscreen></iframe>


I would appreciate a verification @jeffstokes72. I cannot see that the device client is defined for the message class - at least not in nodejs. This it not a real problem for me. I had som issues getting the SDK to work as expected and spent som time investigate this "note" while I hunted my issue down. It turned out to be something else - but the quality of the documentation could perhaps be increased if the note was validated :) Thanx.


https://github.com/Blood-Asp/GT5-Unofficial/blob/13155cb4da72e5eefe162cda935cb790edf2376b/src/main/java/gregtech/common/render/blocks/IBlockIconProvider.java
Just did same 2nd October. Even some names are equal =P


Здесь тоже точки быть не должно


"tmpfile" という名前のファイルに書いています。（なので `src/testdir/tmpfile` がテスト後に残ります）


Yeah, I suspect 6 bytes is a good idea too. In lua (at least in the version we are targeting) all numbers are double-precision floating point values, so we only really have slightly more than 6 bytes of precision anyway.

One issue we'll need to work around is that many of the functions, notably `tohex` and I think also `shl`/`shr` assume 4-byte inputs. We may need to roll our own versions of these.


Hi...

Actually that is the answer that makes me laugh. Please next time I would appreciate that you try to ask me first before answering for me.

Best regards


In `tools` directory there is a script `smv-pytest` that tests python methods provided by SMV.  It hasn't been integrated into the SMV build yet.  So for now we have to run it by hand to make sure the test passes.  Sorry this hasn't been documented either.

See commit 5eaf224


Similar thing.... missing if-clause?
https://github.com/cmangos/mangos-classic/blob/34066b5b75e3f119b3465485d395608ed3b18225/src/game/Spell.cpp#L4513


Looks like only single quotes are handled. Don't double quotes need to be handled as well?


Not sure I understand the issue.

NanoGUI includes NanoVG and actually links it in such a way that all of the NanoVG symbols are part of the .dylib/.so/.dll shared library. On Windows, it includes GLAD and ensures that the OpenGL symbols are also available. Basically you just need to ship one dynamic library with your applications which includes everything needed to create a portable GUI on each of the three supported platforms.

To use NanoGUI correctly from another library, you have to set a few flags so that these symbols are correctly imported (e.g. via ``__declspec(dllimport)`` on windows).  How to do that with cmake is covered in the [documentation](http://nanogui.readthedocs.io/en/latest/compilation.html).


In Haskell you can lift functions over Maybe iirc. Python totally needs that.


@alexstsv2  does it works ?


I feel that if we implicitly handle the network association within CloudBridge, we may be overstepping the expected boundary for the library. In other words, it's a composite functionality that may be not be expected by a user from a 'simple' API library. Hence, I feel exposing a network ID is the right approach - it gives the user access to the info and they can do with it as needed. I'll poke around the OpenStack's case now to see it in action, but the fact OpenStack doesn't have an ID associated with the SG metadata would imply the actions performed either don't require the ID or the ID needs to be obtained through different means. I'll take a look now and possibly the ID can be retrieved some other way to be made available here.


(In other words, you may want to reconsider how NanoGUI is linked into libigl. Re-adding NanoVG implementation details in libigl doesn't seem right if you already have NanoGUI as a dependency)