@tomgross Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.transformchain/30/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/transformchain/tests.py:0:1: C101 Coding magic comment not found
plone/transformchain/tests.py:1:1: I001 isort found an import in the wrong position
plone/transformchain/tests.py:3:1: I004 isort found an unexpected blank line in imports
plone/transformchain/tests.py:4:1: I001 isort found an import in the wrong position
plone/transformchain/tests.py:5:1: I001 isort found an import in the wrong position
plone/transformchain/tests.py:6:1: I004 isort found an unexpected blank line in imports
plone/transformchain/tests.py:7:1: F401 'ZPublisher.interfaces' imported but unused
plone/transformchain/tests.py:7:1: I001 isort found an import in the wrong position
plone/transformchain/tests.py:8:1: I004 isort found an unexpected blank line in imports
plone/transformchain/tests.py:9:1: I001 isort found an import in the wrong position
plone/transformchain/tests.py:10:1: I001 isort found an import in the wrong position
plone/transformchain/tests.py:11:1: I004 isort found an unexpected blank line in imports
plone/transformchain/tests.py:12:1: I001 isort found an import in the wrong position
plone/transformchain/tests.py:15:1: I004 isort found an unexpected blank line in imports
plone/transformchain/tests.py:19:1: I003 isort expected 1 blank line in imports, found 0
plone/transformchain/tests.py:26:1: E302 expected 2 blank lines, found 1
plone/transformchain/tests.py:29:1: E302 expected 2 blank lines, found 1
plone/transformchain/tests.py:32:1: E302 expected 2 blank lines, found 1
plone/transformchain/tests.py:40:5: E301 expected 1 blank line, found 0
plone/transformchain/tests.py:43:1: E302 expected 2 blank lines, found 1
plone/transformchain/tests.py:53:1: E302 expected 2 blank lines, found 1
plone/transformchain/tests.py:56:1: E302 expected 2 blank lines, found 1
plone/transformchain/tests.py:59:1: E302 expected 2 blank lines, found 1
plone/transformchain/tests.py:69:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:70:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:79:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:82:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:87:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:91:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:95:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:95:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:100:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:101:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:110:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:113:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:118:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:124:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:128:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:132:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:134:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:139:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:140:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:149:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:157:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:161:18: Q000 Remove bad quotes.
plone/transformchain/tests.py:165:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:165:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:169:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:170:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:182:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:187:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:191:18: Q000 Remove bad quotes.
plone/transformchain/tests.py:195:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:195:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:199:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:200:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:215:34: Q000 Remove bad quotes.
plone/transformchain/tests.py:217:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:221:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:225:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:225:28: Q000 Remove bad quotes.
plone/transformchain/tests.py:225:36: Q000 Remove bad quotes.
plone/transformchain/tests.py:227:5: C901 'TestTransformChain.test_transform_mixed' is too complex (13)
plone/transformchain/tests.py:230:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:231:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:246:43: Q000 Remove bad quotes.
plone/transformchain/tests.py:249:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:250:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:268:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:269:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:278:50: Q000 Remove bad quotes.
plone/transformchain/tests.py:286:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:287:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:288:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:292:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:296:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:296:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:301:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:302:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:319:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:323:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:327:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:327:28: Q000 Remove bad quotes.
plone/transformchain/tests.py:329:5: C901 'TestTransformChain.test_abort_chain' is too complex (13)
plone/transformchain/tests.py:332:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:333:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:342:24: Q000 Remove bad quotes.
plone/transformchain/tests.py:345:24: Q000 Remove bad quotes.
plone/transformchain/tests.py:348:24: Q000 Remove bad quotes.
plone/transformchain/tests.py:351:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:352:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:370:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:371:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:380:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:383:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:386:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:388:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:389:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:390:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:394:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:398:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:398:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:400:5: C901 'TestTransformChain.test_ordering' is too complex (13)
plone/transformchain/tests.py:403:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:404:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:413:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:416:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:419:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:422:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:423:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:432:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:435:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:438:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:441:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:442:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:451:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:454:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:457:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:459:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:460:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:461:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:465:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:469:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:469:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:471:5: C901 'TestTransformChain.test_request_marker' is too complex (13)
plone/transformchain/tests.py:474:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:475:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:484:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:487:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:490:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:493:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:494:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:503:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:506:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:509:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:512:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:513:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:522:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:525:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:528:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:530:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:531:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:532:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:536:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:540:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:540:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:545:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:549:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:549:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:551:5: C901 'TestTransformChain.test_published_marker' is too complex (13)
plone/transformchain/tests.py:554:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:555:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:564:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:567:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:570:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:573:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:574:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:583:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:586:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:589:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:592:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:593:13: D001 found adapts( replace it with zope.component.adapter
plone/transformchain/tests.py:602:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:605:33: Q000 Remove bad quotes.
plone/transformchain/tests.py:608:42: Q000 Remove bad quotes.
plone/transformchain/tests.py:610:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:611:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:612:41: Q000 Remove bad quotes.
plone/transformchain/tests.py:616:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:620:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:620:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:625:19: Q000 Remove bad quotes.
plone/transformchain/tests.py:629:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:629:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:631:1: E302 expected 2 blank lines, found 1
plone/transformchain/tests.py:640:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:642:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:655:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:657:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:670:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:672:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:690:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:692:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:702:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:706:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:708:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:719:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:719:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:723:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:725:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:736:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:736:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:740:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:741:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:751:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:755:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:756:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:767:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:771:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:772:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:782:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:789:13: T001 print statement found.
plone/transformchain/tests.py:789:27: Q000 Remove bad quotes.
plone/transformchain/tests.py:793:17: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:794:17: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:804:18: D001 found failUnless( replace it with assertTrue
plone/transformchain/tests.py:804:80: E501 line too long (89 > 79 characters)
plone/transformchain/tests.py:810:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:811:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:821:34: Q000 Remove bad quotes.
plone/transformchain/tests.py:826:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/tests.py:830:13: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/tests.py:831:13: E306 expected 1 blank line before a nested definition, found 0
plone/transformchain/tests.py:841:34: Q000 Remove bad quotes.
plone/transformchain/tests.py:846:14: D001 found assertEquals( replace it with assertEqual
plone/transformchain/transformer.py:0:1: C101 Coding magic comment not found
plone/transformchain/transformer.py:1:1: I003 isort expected 1 blank line in imports, found 0
plone/transformchain/transformer.py:3:1: I001 isort found an import in the wrong position
plone/transformchain/transformer.py:4:1: I001 isort found an import in the wrong position
plone/transformchain/transformer.py:5:1: I004 isort found an unexpected blank line in imports
plone/transformchain/transformer.py:6:1: I001 isort found an import in the wrong position
plone/transformchain/transformer.py:7:1: I001 isort found an import in the wrong position
plone/transformchain/transformer.py:8:1: I004 isort found an unexpected blank line in imports
plone/transformchain/transformer.py:9:1: I001 isort found an import in the wrong position
plone/transformchain/transformer.py:10:1: I001 isort found an import in the wrong position
plone/transformchain/transformer.py:12:1: E302 expected 2 blank lines, found 1
plone/transformchain/transformer.py:15:1: E305 expected 2 blank lines after class or function definition, found 1
plone/transformchain/transformer.py:17:1: E302 expected 2 blank lines, found 1
plone/transformchain/transformer.py:22:5: D001 found implements( replace it with zope.interface.implementer
plone/transformchain/transformer.py:27:9: E303 too many blank lines (2)
plone/transformchain/transformer.py:38:80: E501 line too long (85 > 79 characters)
plone/transformchain/transformer.py:56:27: F841 local variable 'e' is assigned to but never used
plone/transformchain/transformer.py:57:30: Q000 Remove bad quotes.
plone/transformchain/transformer.py:57:80: E501 line too long (88 > 79 characters)
plone/transformchain/interfaces.py:0:1: C101 Coding magic comment not found
plone/transformchain/interfaces.py:2:1: I001 isort found an import in the wrong position
plone/transformchain/interfaces.py:3:1: I003 isort expected 1 blank line in imports, found 0
plone/transformchain/interfaces.py:11:1: E302 expected 2 blank lines, found 1
plone/transformchain/interfaces.py:24:30: Q000 Remove bad quotes.
plone/transformchain/interfaces.py:53:1: E302 expected 2 blank lines, found 1
plone/transformchain/zpublisher.py:0:1: C101 Coding magic comment not found
plone/transformchain/zpublisher.py:1:1: I001 isort found an import in the wrong position
plone/transformchain/zpublisher.py:2:1: I001 isort found an import in the wrong position
plone/transformchain/zpublisher.py:3:1: I004 isort found an unexpected blank line in imports
plone/transformchain/zpublisher.py:4:1: F401 'zope.interface.Interface' imported but unused
plone/transformchain/zpublisher.py:6:1: I001 isort found an import in the wrong position
plone/transformchain/zpublisher.py:8:1: I001 isort found an import in the wrong position
plone/transformchain/zpublisher.py:9:1: I001 isort found an import in the wrong position
plone/transformchain/zpublisher.py:11:1: I001 isort found an import in the wrong position
plone/transformchain/zpublisher.py:12:1: I004 isort found an unexpected blank line in imports
plone/transformchain/zpublisher.py:13:1: I001 isort found an import in the wrong position
plone/transformchain/zpublisher.py:14:1: I001 isort found an import in the wrong position
plone/transformchain/zpublisher.py:16:80: E501 line too long (118 > 79 characters)
plone/transformchain/zpublisher.py:18:1: E302 expected 2 blank lines, found 1
plone/transformchain/zpublisher.py:29:1: E302 expected 2 blank lines, found 1
plone/transformchain/zpublisher.py:41:1: E302 expected 2 blank lines, found 1
plone/transformchain/zpublisher.py:44:1: E302 expected 2 blank lines, found 1
plone/transformchain/zpublisher.py:71:1: E302 expected 2 blank lines, found 1
plone/transformchain/zpublisher.py:79:80: E501 line too long (97 > 79 characters)
plone/transformchain/zpublisher.py:80:52: E272 multiple spaces before keyword
plone/transformchain/zpublisher.py:80:80: E501 line too long (100 > 79 characters)
plone/transformchain/zpublisher.py:81:10: E128 continuation line under-indented for visual indent
plone/transformchain/zpublisher.py:81:80: E501 line too long (105 > 79 characters)
plone/transformchain/zpublisher.py:82:9: E124 closing bracket does not match visual indentation
plone/transformchain/zpublisher.py:84:80: E501 line too long (92 > 79 characters)
plone/transformchain/zpublisher.py:91:1: E302 expected 2 blank lines, found 1
plone/transformchain/zpublisher.py:99:42: E261 at least two spaces before inline comment
plone/transformchain/zpublisher.py:99:80: E501 line too long (90 > 79 characters)
plone/transformchain/zpublisher.py:106:80: E501 line too long (82 > 79 characters)
plone/transformchain/zpublisher.py:108:14: E261 at least two spaces before inline comment
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@jensens Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.app.relationfield/42/violations
```
plone/app/relationfield/widget.py:31:19: T000 Todo note found.
plone/app/relationfield/widget.py:71:19: T000 Todo note found.
plone/app/relationfield/widget.py:129:19: T000 Todo note found.
plone/app/relationfield/widget.py:166:19: T000 Todo note found.
plone/app/relationfield/behavior.py:22:74: C812 missing trailing comma
plone/app/relationfield/behavior.py:31:33: C812 missing trailing comma
plone/app/relationfield/behavior.py:36:78: C812 missing trailing comma
plone/app/relationfield/testing.py:67:64: C812 missing trailing comma
plone/app/relationfield/source.py:27:60: C812 missing trailing comma
plone/app/relationfield/source.py:36:72: C812 missing trailing comma
plone/app/relationfield/demo.py:15:75: C812 missing trailing comma
plone/app/relationfield/supermodel.py:19:10: C812 missing trailing comma
plone/app/relationfield/supermodel.py:46:23: C812 missing trailing comma
plone/app/relationfield/supermodel.py:51:43: C812 missing trailing comma
plone/app/relationfield/supermodel.py:60:76: C812 missing trailing comma
plone/app/relationfield/schemaeditor.py:66:65: C812 missing trailing comma
plone/app/relationfield/schemaeditor.py:100:60: C812 missing trailing comma
plone/app/relationfield/event.py:9:1: C901 'extract_relations' is too complex (13)
plone/app/relationfield/tests/test_supermodel.py:33:14: C812 missing trailing comma
plone/app/relationfield/tests/test_supermodel.py:34:10: C812 missing trailing comma
plone/app/relationfield/tests/test_marshall.py:11:73: C812 missing trailing comma
plone/app/relationfield/tests/test_marshall.py:26:10: C812 missing trailing comma
plone/app/relationfield/tests/test_schemaeditor.py:23:14: C812 missing trailing comma
plone/app/relationfield/tests/test_schemaeditor.py:24:10: C812 missing trailing comma
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


I guess. I didn't want to make any changes to the file at that time, but I guess renaming it makes sense.


@s-pace thanks for the updates. We published a new load, and the event references were appearing in search ( only for a couple minutes). For some reason, however,  the event references do not appear in the search anymore.
Here is the latest load that we published https://docs.solace.com/


@dmitrygladkov - This commit also eliminates an issue I see using OSU benchmarks/MPICH with manual progress and RXM/Verbs where on a rare occasion at termination I hit a condition where the Verbs CQ is busy and can not be destroyed. Not sure if it fixes the root cause of this error or if just the fact the CQ is progressed eliminates a race.


I'm probably going to split it into Base/Properties soon, so I'll do this in a not too distant future


k


@kakshay21 Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.transformchain/31/violations
```
plone/transformchain/tests.py:661:40: C812 missing trailing comma
plone/transformchain/tests.py:662:18: C812 missing trailing comma
plone/transformchain/transformer.py:40:34: C812 missing trailing comma
plone/transformchain/transformer.py:60:17: Q000 Remove bad quotes.
plone/transformchain/transformer.py:60:75: C812 missing trailing comma
plone/transformchain/interfaces.py:28:30: Q000 Remove bad quotes.
plone/transformchain/zpublisher.py:24:18: C812 missing trailing comma
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


Thanks for working on this @mikedarcy !

I tested on Ubuntu 12.04 and all seems fine except for a small issue:
```console
$ docker pull ubuntu:trusty
$ docker run -it ubuntu:trusty bash
root@548cd7420aae:/# apt update
...
root@548cd7420aae:/# apt upgrade -y
...
root@548cd7420aae:/# apt install -y git python2.7 python-pip
...
root@548cd7420aae:/# python --version
Python 2.7.6
root@548cd7420aae:/# pip install --upgrade pip setuptools
...
root@33d2366d80de:/# pip install bdbag==1.5.1
...
root@33d2366d80de:/# python
Python 2.7.6 (default, Nov 13 2018, 12:45:42)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bdbag.bdbagit
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/bdbag/bdbagit.py", line 18, in <module>
    import bagit
  File "/usr/local/lib/python2.7/dist-packages/bagit.py", line 125, in <module>
    CHECKSUM_ALGOS = hashlib.algorithms_guaranteed
AttributeError: 'module' object has no attribute 'algorithms_guaranteed'
>>>
root@33d2366d80de:/# pip install git+https://github.com/fair-research/bdbag
...
root@33d2366d80de:/# python
Python 2.7.6 (default, Nov 13 2018, 12:45:42)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bdbag.bdbagit
>>> import bdbag.fetch.resolvers.doi_resolver
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/.venv/local/lib/python2.7/site-packages/bdbag/fetch/resolvers/doi_resolver.py", line 19, in <module>
    from bagit import CHECKSUM_ALGOS
  File "/.venv/local/lib/python2.7/site-packages/bagit.py", line 125, in <module>
    CHECKSUM_ALGOS = hashlib.algorithms_guaranteed
AttributeError: 'module' object has no attribute 'algorithms_guaranteed'
>>>
```

The latest issue is fixed by https://github.com/fair-research/bdbag/pull/30 .


@esteele Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.transformchain/32/violations
```
plone/transformchain/tests.py:661:40: C812 missing trailing comma
plone/transformchain/tests.py:662:18: C812 missing trailing comma
plone/transformchain/transformer.py:13:1: I001 isort found an import in the wrong position
plone/transformchain/transformer.py:41:34: C812 missing trailing comma
plone/transformchain/transformer.py:61:17: Q000 Remove bad quotes.
plone/transformchain/transformer.py:61:75: C812 missing trailing comma
plone/transformchain/interfaces.py:28:30: Q000 Remove bad quotes.
plone/transformchain/interfaces.py:77:80: E501 line too long (81 > 79 characters)
plone/transformchain/zpublisher.py:25:18: C812 missing trailing comma
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@gforcada Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.transformchain/33/violations
```
plone/transformchain/tests.py:674:40: C812 missing trailing comma
plone/transformchain/tests.py:675:18: C812 missing trailing comma
plone/transformchain/transformer.py:12:1: I001 isort found an import in the wrong position
plone/transformchain/transformer.py:14:1: I001 isort found an import in the wrong position
plone/transformchain/transformer.py:15:1: I003 isort expected 1 blank line in imports, found 0
plone/transformchain/transformer.py:50:34: C812 missing trailing comma
plone/transformchain/transformer.py:70:17: Q000 Remove bad quotes.
plone/transformchain/transformer.py:70:75: C812 missing trailing comma
plone/transformchain/interfaces.py:28:30: Q000 Remove bad quotes.
plone/transformchain/interfaces.py:77:80: E501 line too long (81 > 79 characters)
plone/transformchain/zpublisher.py:25:18: C812 missing trailing comma
plone/transformchain/zpublisher.py:104:24: C812 missing trailing comma
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@jensens Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.app.relationfield/43/violations
```
plone/app/relationfield/widget.py:31:19: T000 Todo note found.
plone/app/relationfield/widget.py:71:19: T000 Todo note found.
plone/app/relationfield/widget.py:129:19: T000 Todo note found.
plone/app/relationfield/widget.py:166:19: T000 Todo note found.
plone/app/relationfield/behavior.py:22:74: C812 missing trailing comma
plone/app/relationfield/behavior.py:31:33: C812 missing trailing comma
plone/app/relationfield/behavior.py:36:78: C812 missing trailing comma
plone/app/relationfield/testing.py:67:64: C812 missing trailing comma
plone/app/relationfield/source.py:27:60: C812 missing trailing comma
plone/app/relationfield/source.py:36:72: C812 missing trailing comma
plone/app/relationfield/demo.py:15:75: C812 missing trailing comma
plone/app/relationfield/supermodel.py:19:10: C812 missing trailing comma
plone/app/relationfield/supermodel.py:46:23: C812 missing trailing comma
plone/app/relationfield/supermodel.py:51:43: C812 missing trailing comma
plone/app/relationfield/supermodel.py:60:76: C812 missing trailing comma
plone/app/relationfield/schemaeditor.py:66:65: C812 missing trailing comma
plone/app/relationfield/schemaeditor.py:100:60: C812 missing trailing comma
plone/app/relationfield/event.py:9:1: C901 'extract_relations' is too complex (13)
plone/app/relationfield/tests/test_supermodel.py:33:14: C812 missing trailing comma
plone/app/relationfield/tests/test_supermodel.py:34:10: C812 missing trailing comma
plone/app/relationfield/tests/test_marshall.py:11:73: C812 missing trailing comma
plone/app/relationfield/tests/test_marshall.py:26:10: C812 missing trailing comma
plone/app/relationfield/tests/test_schemaeditor.py:23:14: C812 missing trailing comma
plone/app/relationfield/tests/test_schemaeditor.py:24:10: C812 missing trailing comma
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


We can also just move the `stdlib.h` and `cstdlib` in their own top-level module if we don't want these duplicates. But it will probably complicate the setup a bit by having an additional `cppstdlib.pcm` file that needs to be installed and so on. I don't have any objection against doing that.


it's general best practice to never push commented-out code, try to avoid it!


Deployment failed with the following error:

~~~
One or more invalid routes were found
~~~


Hmmm, in the style of #698 I wonder if it'd be worth adding a `.sources` property-setter, so that doing:
```python
led = RGBLED(2, 3, 4)
red_pot = MCP3008(0)
green_pot = MCP3008(1)
blue_pot = MCP3008(2)
led.sources = (red_pot, green_pot, blue_pot)
```
would have the same effect as:
```python
led = RGBLED(2, 3, 4)
red_pot = MCP3008(0)
green_pot = MCP3008(1)
blue_pot = MCP3008(2)
led.source = zip_values(red_pot, green_pot, blue_pot)
```
?

Might be easier to understand for newcomers to Python? Or maybe it just counts as API-bloat? :man_shrugging:


PR_opened/Fix_6164_BoilerPumpFlowErrors (jmarrec) - i386-Windows-7-VisualStudio-14: OK (3078 of 3078 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


good


function willDuplicate เราใช้ตรวจสอบว่า field ทั้งหลายของ user ที่เราต้องการให้มัน unique นั้น จะเกิดการซ้ำไหมกับข้อมูลที่กำลังทำ register
สมมติ $field => name, $value => nongnapat.som มันก็จะไปเช็คกับ users ทั้งหมดว่ามีใครใช้ username เป็น nongnapat.som หรือเปล่า ถ้าเจอก็ตอบกลับไปว่ามีคนใช้แล้ว
เหตุผลที่ต้องวนลูปแทนการใช้ select from where ก็เพราะว่า เราเข้ารหัสไว้ ไม่สามารถ search ด้วย sql ได้นั่นเอง
ส่วนการ commit นี้ ทำแค่เปลี่ยนค่า $value เป็นตัวเล็กก่อนในกรณีที่ $field = name จากนั้นไปวนลูปเทียบตามปรกติ แค่ clean code เท่านั้นแต่ขั้นตอนการทำงานยังเท่าเดิมนะ


This can be shortened to:

```scala
Try(f(s)).toOption
```
:)


钢甲卡卡龙


Mom?


@jacksgt Das war mein Fehler. Hab ich hier gefixt: https://github.com/martialblog/docker-limesurvey/commit/1e66840c63366f5e12fd9a8376b8ff663d6437ac


PR_opened/Fix_6164_BoilerPumpFlowErrors (jmarrec) - x86_64-MacOS-10.13-clang: OK (3078 of 3078 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


It's abstract (IMixinConfigPlugin doesn't have defaults).


realized my previous change in checkKVMEntry would still not return false, now it should..


Maybe I should try again with HEAD detached to the commit df8389b5ac


Zitat von Jonathan Frech <notifications@github.com>:

> Das ist nicht der Standardkonstruktor sondern ein leerer Konstruktor
> ohne Bedeutung, der meiner Meinung nach unter undefiniertes
> Verhalten fällt.
>
> --
> You are receiving this because you authored the thread.
> Reply to this email directly or view it on GitHub:
> https://github.com/cryoEncryp/Compiler_Bau/commit/42f0a003289a618c88f3f09303464c6c43093192#commitcomment-3220449S

So wie ich das verstehe gibt es in unserer abstrakten Syntax die
Constructor declaration, als Sonderfall der Method declaration bei der
der Ausgabetyp, also das Klassenobjekt schon implizit festgelegt ist.
Der Standard Konstruktor hat keine Eingabevariablen, darum die erste
leere Liste und da die Testklassen die ich übersetzt habe keine Felder
haben, gibt es auch nichts was im Konstruktor body auf JNull
initialisiert werden müsste. So weit ich sehe haben wir keine
abstrakte Syntax für das Instanziieren eines Klassenobjektes, es sei
denn InstVar ist nicht für Field Variablen gedacht sondern für class
Objekte. Darum bin ich davon ausgegangen, dass das auftreten eines
Constructor Objekts automatisch in eine Methode übersetzt wird, die
ein Klassenobjekt instanziiert und diese Methode dann im Fall von im
Code definierten Konstruktoren durch die Liste aus Eingabevariablen
und dem folgenden Statementblock modifiziert wird.

Wenn ich das falsch verstanden habe, bin ich gerne offen für
konstruktive Kritik, aber deine Email lässt sich im Prinzip mit den
Worten "Der Standardkonstruktor ist falsch" zusammenfassen. Und das
hilft mir nicht dabei ihn zu fixen.


Oh, didn't know. ;)


❌ [Build was (probably) aborted](https://jenkins.internalx.com/job/macios/job/d16-bump-maccore/1/display/redirect)

🔥 [Jenkins job](https://jenkins.internalx.com/job/macios/job/d16-bump-maccore/1/display/redirect) (on internal Jenkins) failed in stage(s) 'Running XM tests on '10.14', Running XM tests on '10.12'' 🔥 : hudson.AbortException: script returned exit code 1

✅ [Build succeeded](https://jenkins.internalx.com/job/macios/job/d16-bump-maccore/1//console)
✅ [API Diff (from stable)](http://xamarin-storage/jenkins/xamarin-macios/d16-bump-maccore/f6e208210ed0c8002c2000a7f475efed799a43a5/1/jenkins-results/api-diff/index.html)
ℹ [API Diff (from PR only)](http://xamarin-storage/jenkins/xamarin-macios/d16-bump-maccore/f6e208210ed0c8002c2000a7f475efed799a43a5/1/jenkins-results/apicomparison/api-diff.html) (please review changes)
✅ [Generator Diff](http://xamarin-storage/jenkins/xamarin-macios/d16-bump-maccore/f6e208210ed0c8002c2000a7f475efed799a43a5/1/jenkins-results/generator-diff/index.html) (no change)
🔥 [script returned exit code 1](https://jenkins.internalx.com/job/macios/job/d16-bump-maccore/1/display/redirect) 🔥
🔥 [null](https://jenkins.internalx.com/job/macios/job/d16-bump-maccore/1/display/redirect) 🔥


Great progress man! Proud of you.


การ commit นี้ปรับปรุง performance โดยตรง จากเดิมจะเห็นว่ามี code ส่วนที่ comment อยู่ นั่นเป็น code เบื้องต้น คือหลังจากดึง users ทั้งหมดมาแล้วก็ลูปเช็คว่า filed ที่ต้องการให้ unique จะมีข้อมูลตรงกับค่าที่เอามาทดสอบหรือยัง
แต่ตอนหลังไปเขียน willDuplicate มาใช้แทน ซึ่งตัวมันเองก็ลูป users ทั้งหมดอยู่แล้ว ดังนั้นโค้ดที่เหมาะสมก็คืออันที่แก้มานี้ คือเอาลูปออก เพราะตัว willDuplicate มันก็ลูปอยู่แล้ว


Now could not deploy this pull request since it contains the following references to invalid secrets in the `env` sections of the `now.json` file:

* `stripe-secret-key` (in env: `STRIPE_SECRET_KEY)`
* `hasura-access-key` (in env: `X_HASURA_ACCESS_KEY)`
* `sendgrid-username` (in env: `SENDGRID_USERNAME)`
* `sendgrid-password` (in env: `SENDGRID_PASSWORD)`
* `token-secret` (in env: `TOKEN_SECRET)`

Add those secrets or remove them from the `env` maps in the `now.json` file.


Today with the new /var layout: yes.
At the time the pull request was accepted: no.


Se agregaron los siguientes valores al final del archivo **Messages_es_PE.properties**

- jsp.dspace.authority-list.selectallbutton =	Seleccionar todos los \u00EDtems
- jsp.dspace.authority-list.deselectallbutton = Seleccione ninguno
- jsp.authority.listclaim.no-selected = Ning\u00FAn art\u00EDculo (s) seleccionado (s)
- jsp.authority.listclaim.no-selected-body = Por favor seleccione al menos una publicaci\u00F3n para trabajar
- jsp.authority.listclaim.no-selected-body-dismissmodal = Cancelar
- jsp.layout.navbar-default.language.br_PT=Portugu\u00E9s
- browse.type.item.eventsnombrecorto=Nombre Corto del Evento
- itemlist.crisevents.eventslocation=Ubicaci\u00F3n
- browse.sort-by.crisjournals= Revista
- browse.sort-by.eventsnombrecorto=Nombre Corto del Evento


Luckily, team doesn't matter:

`self.current_team_id = check_for_none(
            int, data.get('team_id', data.get('team')), Unknown.TINY)`


不错


Nor does raid end:

`data.get('end') or data.get('raid_end'))`

I think both were used as they were different in RM & Monocle


Figured out how to get the correct ultrasonic sensor values...
On pg. 2 under the explanation of Pin 3, it tells us how to work with the voltage, which is easier than interpreting the analog values.


## Lipsum really?

so we_really_were not able


Basically since we are using a 12-bit ADC to receive values, the range is 0-4096, so when we divide 5/4096 * 1000, it is 1.22 mV, which is ~0.00122 V. We want the value in volts so the V5mm variable should just be equal to 5/4096.


Same for egg hatch:

`data.get('start') or data.get('raid_begin'))`

pokemon_id not used for eggs so no bother either way.


@ArshRai17
Thanks for the update. Updated [thanks to this crawl](https://github.com/algolia/docsearch-configs/commit/84fbb92fb580c613a4f9474810ab6ea8162ed225).

Please use your footer using [the following logo](https://www.algolia.com/press#resources). You can also copy [the one from our custom UI](https://github.com/algolia/docsearch/blob/master/src/lib/templates.js#L71).


Created multidev environment [newupstream#ci-711](https://dashboard.pantheon.io/sites/8be50dbc-4463-43b5-bd18-d83046623820#ci-711).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-711-newupstream.pantheonsite.io/)


IBM Cloud [toolchain](https://console.bluemix.net/devops/toolchains/9d7bedb0-e0a8-4a1b-a456-8bfdd7670a1f?env_id=ibm%3Ayp%3Aeu-gb "Slack-Meetings-bot"): [Delivery Pipeline](https://console.bluemix.net/devops/pipelines/9d8ad8b2-000e-4f92-af5d-41058bfb45b7?env_id=ibm%3Ayp%3Aeu-gb "Slack-Meetings-bot") deployed [Slack-Meetings-bot](https://github.com/WilliamHolmes/Slack-Meetings-bot/releases/tag/deploy-ibm-yp-eu-gb-holmesw-ie.ibm.com-dev-20190208-154830 "deploy-ibm-yp-eu-gb-holmesw-ie.ibm.com-dev-20190208-154830") to [dev](https://console.bluemix.net/apps/0bcf1139-d922-4468-bc45-39475f74ca88?env_id=ibm:yp:eu-gb "ibm:yp:eu-gb:holmesw@ie.ibm.com:dev"), including this commit


Ich würde den Standardkonstruktor als `cls () { super(); }` auffassen, nicht `cls () {}`. Letzteres hätte ich als syntaktischen Zucker eingestuft; wir können aber natürlich auch den Leeren Konstruktor als Standardkonstruktor zulassen.


Revert This Commit to avoid error


Aaron you messed this up


This code doesn't compile/ I'm not grading it. Try again


@ben-adazza 	Should not have been merged without updating Dockerfile.  Only updating package.json has no effect.


@kusor says:
my only comment regarding customer_uuid
that assumes all those request are made by an application using top level customer account
and that it can never happen using a "sub-user" associated to that account, ie, different uuid
If that's true, then it has no sense on keeping the customer_uuid around
but if it's possible to use RBAC for the customer
I'd keep the uuid then, specially for auditing purposes


Successfully aliased the URL <https://dk3-bgp55k3nc.now.sh> to the following alias.

* https://stage.dk3.tech


IBM Cloud [toolchain](https://console.bluemix.net/devops/toolchains/9d7bedb0-e0a8-4a1b-a456-8bfdd7670a1f?env_id=ibm%3Ayp%3Aeu-gb "Slack-Meetings-bot"): [Delivery Pipeline](https://console.bluemix.net/devops/pipelines/9d8ad8b2-000e-4f92-af5d-41058bfb45b7?env_id=ibm%3Ayp%3Aeu-gb "Slack-Meetings-bot") deployed [Slack-Meetings-bot](https://github.com/WilliamHolmes/Slack-Meetings-bot/releases/tag/deploy-ibm-yp-eu-gb-holmesw-ie.ibm.com-dev-20190208-155338 "deploy-ibm-yp-eu-gb-holmesw-ie.ibm.com-dev-20190208-155338") to [dev](https://console.bluemix.net/apps/0bcf1139-d922-4468-bc45-39475f74ca88?env_id=ibm:yp:eu-gb "ibm:yp:eu-gb:holmesw@ie.ibm.com:dev"), including this commit


❌ [Build was (probably) aborted](https://jenkins.internalx.com/job/macios/job/xcode10.2/39/display/redirect)

🔥 [Jenkins job](https://jenkins.internalx.com/job/macios/job/xcode10.2/39/display/redirect) (on internal Jenkins) failed in stage(s) 'Install Provisioning Profiles' 🔥 : hudson.AbortException: script returned exit code 1

✅ [Build succeeded](https://jenkins.internalx.com/job/macios/job/xcode10.2/39//console)


Deployment failed with the following error:

~~~
You defined 1 build that did not match any source files (please ensure they are NOT defined in .nowignore):
~~~


Now could not deploy this pull request since it contains the following references to invalid secrets in the `env` sections of the `now.json` file:

* `stripe-secret-key` (in env: `STRIPE_SECRET_KEY)`
* `hasura-access-key` (in env: `X_HASURA_ACCESS_KEY)`
* `sendgrid-username` (in env: `SENDGRID_USERNAME)`
* `sendgrid-password` (in env: `SENDGRID_PASSWORD)`
* `token-secret` (in env: `TOKEN_SECRET)`

Add those secrets or remove them from the `env` maps in the `now.json` file.


Lol, that's terrible. The actual LICENSE file (MIT) is not even in that list: https://github.com/Dav1dde/glad/blob/master/LICENSE


could we use `default` here?


Created multidev environment [newupstream#ci-713](https://dashboard.pantheon.io/sites/8be50dbc-4463-43b5-bd18-d83046623820#ci-713).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-713-newupstream.pantheonsite.io/)


Oh, yes I see now. Then better to leave it.


Chat room is cool! Next time I will be posting in chat room, just singed up to gitter using my github :)


The LICENSE file only applies to the sources for the GLAD generator itself. The *generated* files in contrast are licensed under a more permissive term.


Hi @kookma the `split` operator exposes the underlying JavaScript split function, which has some unexpected behaviour:

```
"John. Paul. George. Ringo.".split(".") --> ["John", " Paul", " George", " Ringo", ""]
```

I think we can fix it by adding a filter to remove empty strings from the output.


Successfully aliased the URL <https://yld-storybook-h9s0x66eq.now.sh> to the following alias.

* https://yld-storybook.now.sh


Well done, @kerryhite!


Картинка должна растягивается на весь экран при этом не важно каких размеров экран пользователя это может быть телефон или телевизор


Hi! This is the friendly automated conda-forge-webservice.

I updated the Github team because of this commit.

- @rpep, @davidcortesortuno were added to conda-forge. Welcome to conda-forge!
  Go to https://github.com/orgs/conda-forge/invitation see your invitation.

- @sergii-mamedov was added to this feedstock maintenance team.

You should get push access to this feedstock and CI services.

Feel free to join the community [chat room](https://gitter.im/conda-forge/conda-forge.github.io).

NOTE: Please make sure to not push to the repository directly.
      Use branches in your fork for any changes and send a PR.
      More details [here](https://conda-forge.org/docs/conda-forge_gotchas.html#using-a-fork-vs-a-branch-when-updating-a-recipe)


Hey, this is just a small test. :)


This is the project of Hit-or-Miss transformation.


Successfully aliased the URL <https://labs9-wedding-site-lb8s782gy.now.sh> to the following alias.

* https://vbeloved.now.sh


На данном этапе мы не будем использовать сторонних зависимости. Все зависимости нужно удалить((


Maybe also test with a "pos.non_pawn_material(Us) > BishopValueMg" condition


Hi! This is the friendly automated conda-forge-webservice.

I updated the Github team because of this commit.

- @henryiii was added to this feedstock maintenance team.

You should get push access to this feedstock and CI services.

Feel free to join the community [chat room](https://gitter.im/conda-forge/conda-forge.github.io).

NOTE: Please make sure to not push to the repository directly.
      Use branches in your fork for any changes and send a PR.
      More details [here](https://conda-forge.org/docs/conda-forge_gotchas.html#using-a-fork-vs-a-branch-when-updating-a-recipe)


Out of curiosity, what does "SALC" mean?


Successfully aliased the URL <https://good-commit-oqzda72k0.now.sh> to the following aliases.

* https://goodcommit.com
* https://www.goodcommit.com


Successfully aliased the URL <https://malloc-9oh9ipjl1.now.sh> to the following alias.

* https://malloc.now.sh


Deployment failed with the following error:

~~~
You defined 1 build that did not match any source files (please ensure they are NOT defined in .nowignore):
~~~


proj_def.dat should be superfluous after we retired the `+no_defs` predicate


This will "break" exisiting Gadgets, who have the CheckerBoard mode active... Because currently BuildingMode.name() is used for writing it to the TagCompound (I know that's not good, but it is as it is) this change will result in in all Checkerboard BuildinGadgets being resetted to BuildToMe.

I guess this is ok though, as a user can always just reapply it?


idk, yet another property...


Выровняй


Zitat von Jonathan Frech <notifications@github.com>:

> Ich würde den Standardkonstruktor als `cls () { super(); }`
> auffassen, nicht `cls () {}`. Letzteres hätte ich als syntaktischen
> Zucker eingestuft; wir können aber natürlich auch den Leeren
> Konstruktor als Standardkonstruktor zulassen.
>
> --
> You are receiving this because you authored the thread.
> Reply to this email directly or view it on GitHub:
> https://github.com/jfrech/Compiler_Bau/commit/42f0a003289a618c88f3f09303464c6c43093192#commitcomment-32247347

Ich denke halt, wie wir den automatisch generierten Konstruktor, der
nur entsteht, wenn im Javacode keine Konstruktoren stehen, innerhalb
des Compilers handhaben ist ziemlich irrelevant so lange am Ende
funktionierender Bytecode im classfile steht. Also würde ich so wenig
wie möglich redundante Information mitschleppen.


Attempt


@jmroot ?


Successfully aliased the URL <https://quotegen-1fx6cu0kv.now.sh> to the following aliases.

* https://jordanwb.design
* https://www.jordanwb.design


what's this


split test


Мы смотрим каждый раз какая сторона больше и в каждом условии проверяем гипотенузу, а давай мы сперва узнаем какая самая большая сторона (гипотенуза), а решение типа
```ruby
 	if (hypotenuse**2) - (side_1**2) + (side_2**2) == 0
 		puts "треугольник прямоугольный"
	else (hypotenuse**2) - (side_1**2) + (side_2**2) != 0
  		puts "треугольник непрямоугольный"
	end
```
мы вынесем в конец


```ruby
f = Math.sqrt(d)
```
пробел после `=`


PR_opened/Enable_Transition_to_Current_Iter (jmarrec) - x86_64-MacOS-10.13-clang: Build Failed

![Build Badge](http://img.shields.io/badge/build%20status-failing-red.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


Pauuuuuu
NO pones en el commit el archivo que has creado
y... podrias poner los deportes en el personas??????


Also changed from tab to space indent


#57 issue tracked down to this commit.


@zupo Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.api/149/violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/content.py:33:13: C816 missing trailing comma in Python 3.6+
src/plone/api/content.py:78:13: Q000 Remove bad quotes.
src/plone/api/content.py:79:13: Q000 Remove bad quotes.
src/plone/api/content.py:79:57: C812 missing trailing comma
src/plone/api/content.py:294:13: Q000 Remove bad quotes.
src/plone/api/content.py:295:13: Q000 Remove bad quotes.
src/plone/api/content.py:295:69: C812 missing trailing comma
src/plone/api/content.py:316:7: T000 Todo note found.
src/plone/api/content.py:323:5: B901 blind except: statement
src/plone/api/content.py:335:13: Q000 Remove bad quotes.
src/plone/api/content.py:336:13: Q000 Remove bad quotes.
src/plone/api/content.py:336:63: C812 missing trailing comma
src/plone/api/env.py:0:1: C101 Coding magic comment not found
src/plone/api/env.py:3:1: I001 isort found an import in the wrong position
src/plone/api/env.py:8:1: I001 isort found an import in the wrong position
src/plone/api/group.py:19:14: C812 missing trailing comma
src/plone/api/group.py:43:32: C812 missing trailing comma
src/plone/api/portal.py:5:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:6:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:7:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:19:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/portal.py:20:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/portal.py:29:51: C812 missing trailing comma
src/plone/api/portal.py:51:9: Q000 Remove bad quotes.
src/plone/api/portal.py:52:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:46: C812 missing trailing comma
src/plone/api/portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/portal.py:100:49: C812 missing trailing comma
src/plone/api/portal.py:153:23: C812 missing trailing comma
src/plone/api/portal.py:199:20: T000 Todo note found.
src/plone/api/portal.py:220:37: Q000 Remove bad quotes.
src/plone/api/portal.py:223:8: E713 test for membership should be 'not in'
src/plone/api/portal.py:229:13: Q000 Remove bad quotes.
src/plone/api/portal.py:230:13: Q000 Remove bad quotes.
src/plone/api/portal.py:230:51: C812 missing trailing comma
src/plone/api/user.py:25:20: C812 missing trailing comma
src/plone/api/user.py:65:13: Q000 Remove bad quotes.
src/plone/api/user.py:66:13: Q000 Remove bad quotes.
src/plone/api/user.py:66:64: C812 missing trailing comma
src/plone/api/user.py:84:30: C812 missing trailing comma
src/plone/api/validation.py:4:1: I001 isort found an import in the wrong position
src/plone/api/validation.py:8:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/validation.py:19:13: Q000 Remove bad quotes.
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:32: Q000 Remove bad quotes.
src/plone/api/validation.py:21:54: C812 missing trailing comma
src/plone/api/validation.py:65:21: Q000 Remove bad quotes.
src/plone/api/validation.py:66:25: Q000 Remove bad quotes.
src/plone/api/validation.py:66:44: C812 missing trailing comma
src/plone/api/validation.py:95:21: Q000 Remove bad quotes.
src/plone/api/validation.py:96:25: Q000 Remove bad quotes.
src/plone/api/validation.py:96:50: C812 missing trailing comma
src/plone/api/validation.py:126:21: Q000 Remove bad quotes.
src/plone/api/validation.py:127:21: Q000 Remove bad quotes.
src/plone/api/validation.py:127:45: Q000 Remove bad quotes.
src/plone/api/validation.py:127:73: C812 missing trailing comma
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:16:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_content.py:93:49: C812 missing trailing comma
src/plone/api/tests/test_content.py:103:26: C812 missing trailing comma
src/plone/api/tests/test_content.py:114:26: C812 missing trailing comma
src/plone/api/tests/test_content.py:130:26: C812 missing trailing comma
src/plone/api/tests/test_content.py:135:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:159:38: C812 missing trailing comma
src/plone/api/tests/test_content.py:487:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:488:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:489:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:489:22: C812 missing trailing comma
src/plone/api/tests/test_content.py:588:32: C812 missing trailing comma
src/plone/api/tests/test_content.py:595:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:596:21: C812 missing trailing comma
src/plone/api/tests/test_content.py:597:14: C812 missing trailing comma
src/plone/api/tests/test_content.py:604:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:605:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:606:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:607:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:608:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:609:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:610:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:611:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:612:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:613:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:614:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:615:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:616:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:617:13: Q000 Remove bad quotes.
src/plone/api/tests/test_doctests.py:22:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_doctests.py:66:72: C812 missing trailing comma
src/plone/api/tests/test_doctests.py:92:36: C812 missing trailing comma
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
src/plone/api/tests/test_env.py:8:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_env.py:29:14: D001 found declarePublic( replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:30:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
src/plone/api/tests/test_group.py:194:29: C812 missing trailing comma
src/plone/api/tests/test_portal.py:36:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:61:41: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:61:57: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:122:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:123:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:124:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:125:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:127:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:178:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:179:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:180:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:181:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:194:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:195:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:196:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:213:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:214:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:228:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:229:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:339:34: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:375:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:376:52: C812 missing trailing comma
src/plone/api/tests/test_portal.py:377:14: C812 missing trailing comma
src/plone/api/tests/test_portal.py:382:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:383:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:384:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:385:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:441:19: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:7:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_user.py:32:48: C812 missing trailing comma
src/plone/api/tests/test_user.py:40:53: C812 missing trailing comma
src/plone/api/tests/test_user.py:54:30: C812 missing trailing comma
src/plone/api/tests/test_user.py:67:56: C812 missing trailing comma
src/plone/api/tests/test_user.py:102:42: C812 missing trailing comma
src/plone/api/tests/test_user.py:111:41: C812 missing trailing comma
src/plone/api/tests/test_user.py:115:52: C812 missing trailing comma
src/plone/api/tests/test_user.py:124:21: C812 missing trailing comma
src/plone/api/tests/test_user.py:128:32: C812 missing trailing comma
src/plone/api/tests/test_user.py:138:25: C812 missing trailing comma
src/plone/api/tests/test_user.py:246:24: C812 missing trailing comma
src/plone/api/tests/test_user.py:258:24: C812 missing trailing comma
src/plone/api/tests/test_user.py:270:24: C812 missing trailing comma
src/plone/api/tests/test_user.py:287:30: T000 Todo note found.
src/plone/api/tests/test_user.py:289:51: C812 missing trailing comma
src/plone/api/tests/test_user.py:308:21: C812 missing trailing comma
src/plone/api/tests/test_user.py:328:72: C812 missing trailing comma
src/plone/api/tests/test_user.py:332:65: C812 missing trailing comma
src/plone/api/tests/test_user.py:524:20: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:531:63: C812 missing trailing comma
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:63:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:68:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:72:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:77:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:82:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:89:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:96:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:119:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:120:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:127:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:128:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:129:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:152:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:153:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:158:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:159:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:160:14: D001 found assertEquals( replace it with assertEqual
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@cewing Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.api/150/violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/content.py:4:1: I001 isort found an import in the wrong position
src/plone/api/content.py:5:1: I001 isort found an import in the wrong position
src/plone/api/content.py:6:1: I001 isort found an import in the wrong position
src/plone/api/content.py:32:13: C816 missing trailing comma in Python 3.6+
src/plone/api/content.py:77:21: S001 found module formatter
src/plone/api/content.py:77:72: C812 missing trailing comma
src/plone/api/content.py:82:13: Q000 Remove bad quotes.
src/plone/api/content.py:83:13: Q000 Remove bad quotes.
src/plone/api/content.py:84:13: Q000 Remove bad quotes.
src/plone/api/content.py:84:68: C812 missing trailing comma
src/plone/api/content.py:297:13: Q000 Remove bad quotes.
src/plone/api/content.py:298:13: Q000 Remove bad quotes.
src/plone/api/content.py:298:69: C812 missing trailing comma
src/plone/api/content.py:320:5: B901 blind except: statement
src/plone/api/content.py:332:13: Q000 Remove bad quotes.
src/plone/api/content.py:333:13: Q000 Remove bad quotes.
src/plone/api/content.py:333:63: C812 missing trailing comma
src/plone/api/portal.py:5:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:6:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:7:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:21:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/portal.py:30:51: C812 missing trailing comma
src/plone/api/portal.py:52:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:9: Q000 Remove bad quotes.
src/plone/api/portal.py:54:9: Q000 Remove bad quotes.
src/plone/api/portal.py:54:46: C812 missing trailing comma
src/plone/api/portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/portal.py:101:49: C812 missing trailing comma
src/plone/api/portal.py:154:23: C812 missing trailing comma
src/plone/api/portal.py:200:20: T000 Todo note found.
src/plone/api/portal.py:221:37: Q000 Remove bad quotes.
src/plone/api/portal.py:224:8: E713 test for membership should be 'not in'
src/plone/api/portal.py:230:13: Q000 Remove bad quotes.
src/plone/api/portal.py:231:13: Q000 Remove bad quotes.
src/plone/api/portal.py:231:51: C812 missing trailing comma
src/plone/api/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/env.py:0:1: C101 Coding magic comment not found
src/plone/api/env.py:3:1: I001 isort found an import in the wrong position
src/plone/api/env.py:8:1: I001 isort found an import in the wrong position
src/plone/api/user.py:26:20: C812 missing trailing comma
src/plone/api/user.py:66:13: Q000 Remove bad quotes.
src/plone/api/user.py:67:13: Q000 Remove bad quotes.
src/plone/api/user.py:67:64: C812 missing trailing comma
src/plone/api/user.py:85:30: C812 missing trailing comma
src/plone/api/user.py:112:31: C812 missing trailing comma
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:13: Q000 Remove bad quotes.
src/plone/api/validation.py:22:32: Q000 Remove bad quotes.
src/plone/api/validation.py:22:54: C812 missing trailing comma
src/plone/api/validation.py:66:21: Q000 Remove bad quotes.
src/plone/api/validation.py:67:25: Q000 Remove bad quotes.
src/plone/api/validation.py:67:44: C812 missing trailing comma
src/plone/api/validation.py:96:21: Q000 Remove bad quotes.
src/plone/api/validation.py:97:25: Q000 Remove bad quotes.
src/plone/api/validation.py:97:50: C812 missing trailing comma
src/plone/api/validation.py:127:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:45: Q000 Remove bad quotes.
src/plone/api/validation.py:128:73: C812 missing trailing comma
src/plone/api/group.py:19:14: C812 missing trailing comma
src/plone/api/group.py:43:32: C812 missing trailing comma
src/plone/api/group.py:128:70: C812 missing trailing comma
src/plone/api/group.py:169:70: C812 missing trailing comma
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:63:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:68:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:72:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:77:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:82:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:89:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:96:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:119:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:120:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:127:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:128:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:129:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:152:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:153:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:158:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:159:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:160:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/base.py:10:1: I001 isort found an import in the wrong position
src/plone/api/tests/base.py:11:1: I001 isort found an import in the wrong position
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:7:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_user.py:32:48: C812 missing trailing comma
src/plone/api/tests/test_user.py:49:35: C812 missing trailing comma
src/plone/api/tests/test_user.py:53:35: C812 missing trailing comma
src/plone/api/tests/test_user.py:61:53: C812 missing trailing comma
src/plone/api/tests/test_user.py:75:30: C812 missing trailing comma
src/plone/api/tests/test_user.py:88:56: C812 missing trailing comma
src/plone/api/tests/test_user.py:123:42: C812 missing trailing comma
src/plone/api/tests/test_user.py:132:41: C812 missing trailing comma
src/plone/api/tests/test_user.py:136:52: C812 missing trailing comma
src/plone/api/tests/test_user.py:145:21: C812 missing trailing comma
src/plone/api/tests/test_user.py:149:32: C812 missing trailing comma
src/plone/api/tests/test_user.py:159:25: C812 missing trailing comma
src/plone/api/tests/test_user.py:267:24: C812 missing trailing comma
src/plone/api/tests/test_user.py:279:24: C812 missing trailing comma
src/plone/api/tests/test_user.py:291:24: C812 missing trailing comma
src/plone/api/tests/test_user.py:308:30: T000 Todo note found.
src/plone/api/tests/test_user.py:310:51: C812 missing trailing comma
src/plone/api/tests/test_user.py:329:21: C812 missing trailing comma
src/plone/api/tests/test_user.py:349:72: C812 missing trailing comma
src/plone/api/tests/test_user.py:353:65: C812 missing trailing comma
src/plone/api/tests/test_user.py:545:20: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:552:63: C812 missing trailing comma
src/plone/api/tests/test_portal.py:5:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:6:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:7:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:36:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:61:41: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:61:57: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:122:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:123:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:124:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:125:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:127:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:178:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:179:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:180:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:181:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:194:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:195:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:196:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:213:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:214:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:228:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:229:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:339:34: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:375:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:376:52: C812 missing trailing comma
src/plone/api/tests/test_portal.py:377:14: C812 missing trailing comma
src/plone/api/tests/test_portal.py:382:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:383:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:384:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:385:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:441:19: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:16:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_content.py:94:49: C812 missing trailing comma
src/plone/api/tests/test_content.py:113:30: C812 missing trailing comma
src/plone/api/tests/test_content.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:120:33: C812 missing trailing comma
src/plone/api/tests/test_content.py:136:26: C812 missing trailing comma
src/plone/api/tests/test_content.py:141:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:165:38: C812 missing trailing comma
src/plone/api/tests/test_content.py:497:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:498:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:499:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:499:22: C812 missing trailing comma
src/plone/api/tests/test_content.py:597:32: C812 missing trailing comma
src/plone/api/tests/test_content.py:604:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:605:21: C812 missing trailing comma
src/plone/api/tests/test_content.py:606:14: C812 missing trailing comma
src/plone/api/tests/test_content.py:613:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:614:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:615:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:616:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:617:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:618:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:619:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:620:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:621:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:622:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:623:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:624:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:625:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:626:13: Q000 Remove bad quotes.
src/plone/api/tests/test_group.py:4:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_group.py:112:59: Q000 Remove bad quotes.
src/plone/api/tests/test_group.py:281:60: C812 missing trailing comma
src/plone/api/tests/test_env.py:30:14: D001 found declarePublic( replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:34:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
src/plone/api/tests/test_doctests.py:6:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_doctests.py:22:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_doctests.py:66:72: C812 missing trailing comma
src/plone/api/tests/test_doctests.py:92:36: C812 missing trailing comma
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


Right. Anyway, the change looks good to me (and hope it doesn't break the build on other platforms).


@ale-rt Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.resourceeditor/44/violations
```
plone/resourceeditor/testing.py:17:41: C812 missing trailing comma
plone/resourceeditor/browser.py:11:1: I001 isort found an import in the wrong position
plone/resourceeditor/browser.py:103:56: C812 missing trailing comma
plone/resourceeditor/browser.py:108:55: C812 missing trailing comma
plone/resourceeditor/browser.py:204:71: C812 missing trailing comma
plone/resourceeditor/browser.py:218:32: C812 missing trailing comma
plone/resourceeditor/browser.py:301:60: C812 missing trailing comma
plone/resourceeditor/browser.py:303:45: C812 missing trailing comma
plone/resourceeditor/browser.py:355:25: C812 missing trailing comma
plone/resourceeditor/browser.py:421:60: C812 missing trailing comma
plone/resourceeditor/browser.py:502:5: C901 'FileManagerActions.do_action' is too complex (14)
plone/resourceeditor/browser.py:519:49: C812 missing trailing comma
plone/resourceeditor/browser.py:576:54: C812 missing trailing comma
plone/resourceeditor/browser.py:579:11: T000 Todo note found.
plone/resourceeditor/browser.py:607:27: C812 missing trailing comma
plone/resourceeditor/browser.py:618:25: C812 missing trailing comma
plone/resourceeditor/browser.py:619:14: C812 missing trailing comma
plone/resourceeditor/browser.py:622:5: C901 'FileManager.mode_selector' is too complex (12)
plone/resourceeditor/browser.py:635:65: C812 missing trailing comma
plone/resourceeditor/browser.py:640:63: C812 missing trailing comma
plone/resourceeditor/browser.py:645:56: C812 missing trailing comma
plone/resourceeditor/browser.py:652:58: C812 missing trailing comma
plone/resourceeditor/browser.py:657:56: C812 missing trailing comma
plone/resourceeditor/browser.py:662:58: C812 missing trailing comma
plone/resourceeditor/browser.py:666:56: C812 missing trailing comma
plone/resourceeditor/browser.py:671:66: C812 missing trailing comma
plone/resourceeditor/browser.py:675:56: C812 missing trailing comma
plone/resourceeditor/browser.py:720:44: C812 missing trailing comma
plone/resourceeditor/browser.py:826:75: C812 missing trailing comma
plone/resourceeditor/browser.py:836:29: C812 missing trailing comma
plone/resourceeditor/browser.py:842:33: C812 missing trailing comma
plone/resourceeditor/browser.py:853:25: C812 missing trailing comma
plone/resourceeditor/browser.py:859:29: C812 missing trailing comma
plone/resourceeditor/browser.py:914:60: C812 missing trailing comma
plone/resourceeditor/browser.py:916:45: C812 missing trailing comma
plone/resourceeditor/browser.py:1184:54: C812 missing trailing comma
plone/resourceeditor/browser.py:1187:11: T000 Todo note found.
plone/resourceeditor/browser.py:1257:41: C812 missing trailing comma
plone/resourceeditor/browser.py:1270:48: C812 missing trailing comma
plone/resourceeditor/tests/test_file_manager.py:4:1: F401 'six' imported but unused
plone/resourceeditor/tests/test_file_manager_action.py:3: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.


@zupo Jenkins CI reporting about code analysis
See the full report here: https://jenkins.plone.org/job/package-plone.api/151/violations
```
src/plone/api/content.py:4:1: I001 isort found an import in the wrong position
src/plone/api/content.py:5:1: I001 isort found an import in the wrong position
src/plone/api/content.py:6:1: I001 isort found an import in the wrong position
src/plone/api/content.py:32:13: C816 missing trailing comma in Python 3.6+
src/plone/api/content.py:77:21: S001 found module formatter
src/plone/api/content.py:77:72: C812 missing trailing comma
src/plone/api/content.py:82:13: Q000 Remove bad quotes.
src/plone/api/content.py:83:13: Q000 Remove bad quotes.
src/plone/api/content.py:83:57: C812 missing trailing comma
src/plone/api/content.py:292:13: Q000 Remove bad quotes.
src/plone/api/content.py:293:13: Q000 Remove bad quotes.
src/plone/api/content.py:293:69: C812 missing trailing comma
src/plone/api/content.py:315:5: B901 blind except: statement
src/plone/api/content.py:327:13: Q000 Remove bad quotes.
src/plone/api/content.py:328:13: Q000 Remove bad quotes.
src/plone/api/content.py:328:63: C812 missing trailing comma
src/plone/api/env.py:4:1: I001 isort found an import in the wrong position
src/plone/api/env.py:9:1: I001 isort found an import in the wrong position
src/plone/api/group.py:19:14: C812 missing trailing comma
src/plone/api/group.py:43:32: C812 missing trailing comma
src/plone/api/portal.py:5:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:6:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:7:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:21:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/portal.py:30:51: C812 missing trailing comma
src/plone/api/portal.py:52:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:9: Q000 Remove bad quotes.
src/plone/api/portal.py:54:9: Q000 Remove bad quotes.
src/plone/api/portal.py:54:46: C812 missing trailing comma
src/plone/api/portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/portal.py:101:49: C812 missing trailing comma
src/plone/api/portal.py:154:23: C812 missing trailing comma
src/plone/api/portal.py:200:20: T000 Todo note found.
src/plone/api/portal.py:221:37: Q000 Remove bad quotes.
src/plone/api/portal.py:224:8: E713 test for membership should be 'not in'
src/plone/api/portal.py:230:13: Q000 Remove bad quotes.
src/plone/api/portal.py:231:13: Q000 Remove bad quotes.
src/plone/api/portal.py:231:51: C812 missing trailing comma
src/plone/api/user.py:25:20: C812 missing trailing comma
src/plone/api/user.py:65:13: Q000 Remove bad quotes.
src/plone/api/user.py:66:13: Q000 Remove bad quotes.
src/plone/api/user.py:66:64: C812 missing trailing comma
src/plone/api/user.py:84:30: C812 missing trailing comma
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:13: Q000 Remove bad quotes.
src/plone/api/validation.py:22:32: Q000 Remove bad quotes.
src/plone/api/validation.py:22:54: C812 missing trailing comma
src/plone/api/validation.py:66:21: Q000 Remove bad quotes.
src/plone/api/validation.py:67:25: Q000 Remove bad quotes.
src/plone/api/validation.py:67:44: C812 missing trailing comma
src/plone/api/validation.py:96:21: Q000 Remove bad quotes.
src/plone/api/validation.py:97:25: Q000 Remove bad quotes.
src/plone/api/validation.py:97:50: C812 missing trailing comma
src/plone/api/validation.py:127:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:45: Q000 Remove bad quotes.
src/plone/api/validation.py:128:73: C812 missing trailing comma
src/plone/api/tests/base.py:10:1: I001 isort found an import in the wrong position
src/plone/api/tests/base.py:11:1: I001 isort found an import in the wrong position
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:16:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_content.py:93:49: C812 missing trailing comma
src/plone/api/tests/test_content.py:103:26: C812 missing trailing comma
src/plone/api/tests/test_content.py:114:26: C812 missing trailing comma
src/plone/api/tests/test_content.py:130:26: C812 missing trailing comma
src/plone/api/tests/test_content.py:135:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:159:38: C812 missing trailing comma
src/plone/api/tests/test_content.py:487:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:488:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:489:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:489:22: C812 missing trailing comma
src/plone/api/tests/test_content.py:587:32: C812 missing trailing comma
src/plone/api/tests/test_content.py:594:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:595:21: C812 missing trailing comma
src/plone/api/tests/test_content.py:596:14: C812 missing trailing comma
src/plone/api/tests/test_content.py:603:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:604:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:605:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:606:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:607:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:608:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:609:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:610:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:611:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:612:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:613:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:614:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:615:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:616:13: Q000 Remove bad quotes.
src/plone/api/tests/test_doctests.py:6:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_doctests.py:22:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_doctests.py:66:72: C812 missing trailing comma
src/plone/api/tests/test_doctests.py:92:36: C812 missing trailing comma
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
src/plone/api/tests/test_env.py:30:14: D001 found declarePublic( replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:34:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
src/plone/api/tests/test_group.py:4:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_group.py:194:29: C812 missing trailing comma
src/plone/api/tests/test_portal.py:5:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:6:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:7:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:36:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:61:41: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:61:57: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:122:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:123:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:124:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:125:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:127:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:178:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:179:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:180:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:181:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:194:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:195:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:196:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:213:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:214:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:228:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:229:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:339:34: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:375:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:376:52: C812 missing trailing comma
src/plone/api/tests/test_portal.py:377:14: C812 missing trailing comma
src/plone/api/tests/test_portal.py:382:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:383:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:384:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:385:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:441:19: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:33:48: C812 missing trailing comma
src/plone/api/tests/test_user.py:41:53: C812 missing trailing comma
src/plone/api/tests/test_user.py:55:30: C812 missing trailing comma
src/plone/api/tests/test_user.py:68:56: C812 missing trailing comma
src/plone/api/tests/test_user.py:103:42: C812 missing trailing comma
src/plone/api/tests/test_user.py:112:41: C812 missing trailing comma
src/plone/api/tests/test_user.py:116:52: C812 missing trailing comma
src/plone/api/tests/test_user.py:125:21: C812 missing trailing comma
src/plone/api/tests/test_user.py:129:32: C812 missing trailing comma
src/plone/api/tests/test_user.py:139:25: C812 missing trailing comma
src/plone/api/tests/test_user.py:247:24: C812 missing trailing comma
src/plone/api/tests/test_user.py:259:24: C812 missing trailing comma
src/plone/api/tests/test_user.py:271:24: C812 missing trailing comma
src/plone/api/tests/test_user.py:288:30: T000 Todo note found.
src/plone/api/tests/test_user.py:290:51: C812 missing trailing comma
src/plone/api/tests/test_user.py:309:21: C812 missing trailing comma
src/plone/api/tests/test_user.py:329:72: C812 missing trailing comma
src/plone/api/tests/test_user.py:333:65: C812 missing trailing comma
src/plone/api/tests/test_user.py:525:20: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:532:63: C812 missing trailing comma
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:63:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:68:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:72:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:77:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:82:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:89:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:96:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:119:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:120:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:127:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:128:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:129:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:152:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:153:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:158:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:159:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:160:14: D001 found assertEquals( replace it with assertEqual
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.