@WouterVH Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.contentmenu/1/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/__init__.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/__init__.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/__init__.py:1:2: W292 no newline at end of file
plone/app/contentmenu/displayviewsmenu.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/displayviewsmenu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/interfaces.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/interfaces.py:2:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/interfaces.py:34:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/interfaces.py:37:1: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/interfaces.py:58:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/interfaces.py:62:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/interfaces.py:68:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/interfaces.py:75:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/interfaces.py:81:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/interfaces.py:85:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/interfaces.py:92:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/interfaces.py:96:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/interfaces.py:103:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/menu.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/menu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/menu.py:40:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/menu.py:50:80: E501 line too long (91 > 79 characters)
plone/app/contentmenu/menu.py:58:80: E501 line too long (92 > 79 characters)
plone/app/contentmenu/menu.py:73:80: E501 line too long (120 > 79 characters)
plone/app/contentmenu/menu.py:87:80: E501 line too long (85 > 79 characters)
plone/app/contentmenu/menu.py:90:80: E501 line too long (108 > 79 characters)
plone/app/contentmenu/menu.py:100:55: S001 found %s formatter
plone/app/contentmenu/menu.py:101:80: E501 line too long (83 > 79 characters)
plone/app/contentmenu/menu.py:103:29: S001 found %s formatter
plone/app/contentmenu/menu.py:105:33: E201 whitespace after '{'
plone/app/contentmenu/menu.py:105:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:106:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:107:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:108:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:109:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:110:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:110:80: E501 line too long (108 > 79 characters)
plone/app/contentmenu/menu.py:111:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:127:80: E501 line too long (92 > 79 characters)
plone/app/contentmenu/menu.py:136:80: E501 line too long (173 > 79 characters)
plone/app/contentmenu/menu.py:138:80: E501 line too long (143 > 79 characters)
plone/app/contentmenu/menu.py:146:80: E501 line too long (90 > 79 characters)
plone/app/contentmenu/menu.py:165:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/menu.py:216:1: C901 'DisplayMenu.getMenuItems' is too complex (24)
plone/app/contentmenu/menu.py:220:80: E501 line too long (83 > 79 characters)
plone/app/contentmenu/menu.py:258:66: E502 the backslash is redundant between brackets
plone/app/contentmenu/menu.py:267:5: E125 continuation line with same indent as next logical line
plone/app/contentmenu/menu.py:275:33: E201 whitespace after '{'
plone/app/contentmenu/menu.py:275:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:275:80: E501 line too long (109 > 79 characters)
plone/app/contentmenu/menu.py:276:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:277:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:278:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:279:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:280:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:280:80: E501 line too long (117 > 79 characters)
plone/app/contentmenu/menu.py:281:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:286:37: E201 whitespace after '{'
plone/app/contentmenu/menu.py:286:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:287:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:288:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:288:55: S001 found %s formatter
plone/app/contentmenu/menu.py:288:80: E501 line too long (110 > 79 characters)
plone/app/contentmenu/menu.py:289:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:290:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:291:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:291:80: E501 line too long (108 > 79 characters)
plone/app/contentmenu/menu.py:292:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:295:29: E201 whitespace after '{'
plone/app/contentmenu/menu.py:295:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:295:80: E501 line too long (166 > 79 characters)
plone/app/contentmenu/menu.py:295:127: E203 whitespace before ':'
plone/app/contentmenu/menu.py:296:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:297:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:298:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:299:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:300:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:300:80: E501 line too long (143 > 79 characters)
plone/app/contentmenu/menu.py:301:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:305:33: E201 whitespace after '{'
plone/app/contentmenu/menu.py:305:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:305:80: E501 line too long (132 > 79 characters)
plone/app/contentmenu/menu.py:306:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:306:80: E501 line too long (150 > 79 characters)
plone/app/contentmenu/menu.py:307:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:307:51: S001 found %s formatter
plone/app/contentmenu/menu.py:307:80: E501 line too long (89 > 79 characters)
plone/app/contentmenu/menu.py:308:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:309:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:310:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:310:80: E501 line too long (128 > 79 characters)
plone/app/contentmenu/menu.py:311:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:322:33: E201 whitespace after '{'
plone/app/contentmenu/menu.py:322:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:322:80: E501 line too long (105 > 79 characters)
plone/app/contentmenu/menu.py:323:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:324:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:325:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:326:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:327:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:327:80: E501 line too long (118 > 79 characters)
plone/app/contentmenu/menu.py:328:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:331:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/menu.py:342:37: E201 whitespace after '{'
plone/app/contentmenu/menu.py:342:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:343:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:344:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:344:55: S001 found %s formatter
plone/app/contentmenu/menu.py:344:80: E501 line too long (111 > 79 characters)
plone/app/contentmenu/menu.py:345:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:345:80: E501 line too long (94 > 79 characters)
plone/app/contentmenu/menu.py:346:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:347:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:347:80: E501 line too long (96 > 79 characters)
plone/app/contentmenu/menu.py:348:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:356:41: E201 whitespace after '{'
plone/app/contentmenu/menu.py:356:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:356:80: E501 line too long (135 > 79 characters)
plone/app/contentmenu/menu.py:357:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:357:80: E501 line too long (166 > 79 characters)
plone/app/contentmenu/menu.py:358:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:358:59: S001 found %s formatter
plone/app/contentmenu/menu.py:358:80: E501 line too long (98 > 79 characters)
plone/app/contentmenu/menu.py:359:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:360:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:361:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:361:80: E501 line too long (134 > 79 characters)
plone/app/contentmenu/menu.py:362:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:368:28: P002 found "hasattr", consider replacing it
plone/app/contentmenu/menu.py:371:80: E501 line too long (93 > 79 characters)
plone/app/contentmenu/menu.py:373:37: E201 whitespace after '{'
plone/app/contentmenu/menu.py:373:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:373:80: E501 line too long (179 > 79 characters)
plone/app/contentmenu/menu.py:373:135: E203 whitespace before ':'
plone/app/contentmenu/menu.py:374:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:375:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:376:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:377:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:378:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:378:80: E501 line too long (134 > 79 characters)
plone/app/contentmenu/menu.py:379:51: E203 whitespace before ':'
plone/app/contentmenu/menu.py:382:41: E201 whitespace after '{'
plone/app/contentmenu/menu.py:382:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:382:80: E501 line too long (133 > 79 characters)
plone/app/contentmenu/menu.py:383:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:383:80: E501 line too long (158 > 79 characters)
plone/app/contentmenu/menu.py:384:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:384:59: S001 found %s formatter
plone/app/contentmenu/menu.py:384:80: E501 line too long (98 > 79 characters)
plone/app/contentmenu/menu.py:385:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:386:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:387:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:387:80: E501 line too long (137 > 79 characters)
plone/app/contentmenu/menu.py:388:55: E203 whitespace before ':'
plone/app/contentmenu/menu.py:402:80: E501 line too long (92 > 79 characters)
plone/app/contentmenu/menu.py:416:16: E225 missing whitespace around operator
plone/app/contentmenu/menu.py:425:37: E203 whitespace before ':'
plone/app/contentmenu/menu.py:434:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/menu.py:438:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/menu.py:446:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/menu.py:448:80: E501 line too long (89 > 79 characters)
plone/app/contentmenu/menu.py:450:29: S001 found %s formatter
plone/app/contentmenu/menu.py:451:21: S001 found %s formatter
plone/app/contentmenu/menu.py:451:80: E501 line too long (87 > 79 characters)
plone/app/contentmenu/menu.py:453:21: S001 found %s formatter
plone/app/contentmenu/menu.py:482:16: E225 missing whitespace around operator
plone/app/contentmenu/menu.py:492:80: E501 line too long (82 > 79 characters)
plone/app/contentmenu/menu.py:496:80: E501 line too long (81 > 79 characters)
plone/app/contentmenu/menu.py:504:80: E501 line too long (85 > 79 characters)
plone/app/contentmenu/menu.py:506:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/menu.py:521:80: E501 line too long (85 > 79 characters)
plone/app/contentmenu/menu.py:538:20: S001 found %s formatter
plone/app/contentmenu/menu.py:539:29: E201 whitespace after '{'
plone/app/contentmenu/menu.py:539:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:539:80: E501 line too long (90 > 79 characters)
plone/app/contentmenu/menu.py:540:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:540:80: E501 line too long (84 > 79 characters)
plone/app/contentmenu/menu.py:541:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:542:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:543:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:544:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:544:80: E501 line too long (92 > 79 characters)
plone/app/contentmenu/menu.py:545:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:546:29: E124 closing bracket does not match visual indentation
plone/app/contentmenu/menu.py:550:80: E501 line too long (91 > 79 characters)
plone/app/contentmenu/menu.py:551:24: S001 found %s formatter
plone/app/contentmenu/menu.py:551:80: E501 line too long (84 > 79 characters)
plone/app/contentmenu/menu.py:552:46: E203 whitespace before ':'
plone/app/contentmenu/menu.py:552:80: E501 line too long (105 > 79 characters)
plone/app/contentmenu/menu.py:553:46: E203 whitespace before ':'
plone/app/contentmenu/menu.py:553:80: E501 line too long (152 > 79 characters)
plone/app/contentmenu/menu.py:554:46: E203 whitespace before ':'
plone/app/contentmenu/menu.py:555:46: E203 whitespace before ':'
plone/app/contentmenu/menu.py:556:46: E203 whitespace before ':'
plone/app/contentmenu/menu.py:557:46: E203 whitespace before ':'
plone/app/contentmenu/menu.py:557:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/menu.py:558:46: E203 whitespace before ':'
plone/app/contentmenu/menu.py:577:80: E501 line too long (92 > 79 characters)
plone/app/contentmenu/menu.py:583:29: E203 whitespace before ':'
plone/app/contentmenu/menu.py:584:29: E203 whitespace before ':'
plone/app/contentmenu/menu.py:584:39: S001 found %s formatter
plone/app/contentmenu/menu.py:585:29: E203 whitespace before ':'
plone/app/contentmenu/menu.py:586:29: E203 whitespace before ':'
plone/app/contentmenu/menu.py:586:42: E231 missing whitespace after ','
plone/app/contentmenu/menu.py:591:80: E501 line too long (93 > 79 characters)
plone/app/contentmenu/menu.py:611:80: E501 line too long (116 > 79 characters)
plone/app/contentmenu/menu.py:624:28: W601 .has_key() is deprecated, use 'in'
plone/app/contentmenu/menu.py:645:1: C901 'WorkflowMenu.getMenuItems' is too complex (12)
plone/app/contentmenu/menu.py:653:80: E501 line too long (84 > 79 characters)
plone/app/contentmenu/menu.py:663:29: Q000 Remove bad quotes.
plone/app/contentmenu/menu.py:664:30: S001 found %s formatter
plone/app/contentmenu/menu.py:664:80: E501 line too long (114 > 79 characters)
plone/app/contentmenu/menu.py:676:38: S001 found %s formatter
plone/app/contentmenu/menu.py:676:80: E501 line too long (123 > 79 characters)
plone/app/contentmenu/menu.py:677:35: E225 missing whitespace around operator
plone/app/contentmenu/menu.py:681:33: E201 whitespace after '{'
plone/app/contentmenu/menu.py:681:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:682:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:683:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:684:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:685:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:686:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:686:78: S001 found %s formatter
plone/app/contentmenu/menu.py:686:80: E501 line too long (135 > 79 characters)
plone/app/contentmenu/menu.py:687:47: E203 whitespace before ':'
plone/app/contentmenu/menu.py:693:29: E201 whitespace after '{'
plone/app/contentmenu/menu.py:693:44: E203 whitespace before ':'
plone/app/contentmenu/menu.py:693:80: E501 line too long (91 > 79 characters)
plone/app/contentmenu/menu.py:694:44: E203 whitespace before ':'
plone/app/contentmenu/menu.py:695:44: E203 whitespace before ':'
plone/app/contentmenu/menu.py:696:44: E203 whitespace before ':'
plone/app/contentmenu/menu.py:697:44: E203 whitespace before ':'
plone/app/contentmenu/menu.py:698:44: E203 whitespace before ':'
plone/app/contentmenu/menu.py:698:80: E501 line too long (119 > 79 characters)
plone/app/contentmenu/menu.py:699:44: E203 whitespace before ':'
plone/app/contentmenu/menu.py:700:29: E124 closing bracket does not match visual indentation
plone/app/contentmenu/menu.py:702:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/menu.py:703:29: E201 whitespace after '{'
plone/app/contentmenu/menu.py:703:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:703:80: E501 line too long (89 > 79 characters)
plone/app/contentmenu/menu.py:704:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:705:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:705:80: E501 line too long (86 > 79 characters)
plone/app/contentmenu/menu.py:706:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:707:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:708:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:708:80: E501 line too long (103 > 79 characters)
plone/app/contentmenu/menu.py:709:43: E203 whitespace before ':'
plone/app/contentmenu/menu.py:710:29: E124 closing bracket does not match visual indentation
plone/app/contentmenu/tests.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/tests.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/tests.py:6:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:6:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests.py:7:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:9:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:10:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:12:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:13:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:15:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:16:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:18:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:19:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:20:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:21:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:23:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:25:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:26:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:32:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/tests.py:36:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:39:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:43:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:49:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/tests.py:53:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:56:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:63:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:81:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:81:80: E501 line too long (90 > 79 characters)
plone/app/contentmenu/tests.py:82:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:84:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/tests.py:87:49: E251 unexpected spaces around keyword / parameter equals
plone/app/contentmenu/tests.py:87:51: E251 unexpected spaces around keyword / parameter equals
plone/app/contentmenu/tests.py:91:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:91:80: E501 line too long (90 > 79 characters)
plone/app/contentmenu/tests.py:92:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:93:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:96:9: F841 local variable 'layout' is assigned to but never used
plone/app/contentmenu/tests.py:105:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:107:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:107:80: E501 line too long (87 > 79 characters)
plone/app/contentmenu/tests.py:112:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:114:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:114:80: E501 line too long (83 > 79 characters)
plone/app/contentmenu/tests.py:118:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests.py:120:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:120:80: E501 line too long (83 > 79 characters)
plone/app/contentmenu/tests.py:133:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:133:80: E501 line too long (90 > 79 characters)
plone/app/contentmenu/tests.py:139:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:139:80: E501 line too long (89 > 79 characters)
plone/app/contentmenu/tests.py:140:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:140:80: E501 line too long (86 > 79 characters)
plone/app/contentmenu/tests.py:147:49: E251 unexpected spaces around keyword / parameter equals
plone/app/contentmenu/tests.py:147:51: E251 unexpected spaces around keyword / parameter equals
plone/app/contentmenu/tests.py:152:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:153:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:161:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:162:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:167:49: E251 unexpected spaces around keyword / parameter equals
plone/app/contentmenu/tests.py:167:51: E251 unexpected spaces around keyword / parameter equals
plone/app/contentmenu/tests.py:172:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:173:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:178:46: E261 at least two spaces before inline comment
plone/app/contentmenu/tests.py:180:80: E501 line too long (97 > 79 characters)
plone/app/contentmenu/tests.py:182:14: D001 found assertEquals replace it with assertEqual
plone/app/contentmenu/tests.py:182:80: E501 line too long (83 > 79 characters)
plone/app/contentmenu/tests.py:189:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/tests.py:193:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:196:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:200:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:204:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:204:80: E501 line too long (123 > 79 characters)
plone/app/contentmenu/tests.py:213:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:216:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:218:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:223:1: W293 blank line contains whitespace
plone/app/contentmenu/tests.py:226:80: E501 line too long (95 > 79 characters)
plone/app/contentmenu/tests.py:247:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:255:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:256:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:257:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:258:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:272:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests.py:279:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:286:80: E501 line too long (100 > 79 characters)
plone/app/contentmenu/tests.py:290:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:293:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:297:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:299:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:299:80: E501 line too long (119 > 79 characters)
plone/app/contentmenu/tests.py:306:42: Q000 Remove bad quotes.
plone/app/contentmenu/tests.py:308:29: Q000 Remove bad quotes.
plone/app/contentmenu/tests.py:310:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:312:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:312:80: E501 line too long (119 > 79 characters)
plone/app/contentmenu/tests.py:332:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:336:80: E501 line too long (82 > 79 characters)
plone/app/contentmenu/tests.py:337:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:340:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:346:80: E501 line too long (91 > 79 characters)
plone/app/contentmenu/tests.py:353:80: E501 line too long (98 > 79 characters)
plone/app/contentmenu/tests.py:354:80: E501 line too long (100 > 79 characters)
plone/app/contentmenu/tests.py:355:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:361:80: E501 line too long (98 > 79 characters)
plone/app/contentmenu/tests.py:362:80: E501 line too long (104 > 79 characters)
plone/app/contentmenu/tests.py:363:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:366:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/tests.py:369:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/tests.py:371:80: E501 line too long (100 > 79 characters)
plone/app/contentmenu/tests.py:372:80: E501 line too long (81 > 79 characters)
plone/app/contentmenu/tests.py:377:80: E501 line too long (98 > 79 characters)
plone/app/contentmenu/tests.py:378:19: E222 multiple spaces after operator
plone/app/contentmenu/tests.py:384:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/tests.py:389:80: E501 line too long (96 > 79 characters)
plone/app/contentmenu/tests.py:395:80: E501 line too long (96 > 79 characters)
plone/app/contentmenu/tests.py:403:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/tests.py:406:46: E701 multiple statements on one line (colon)
plone/app/contentmenu/tests.py:408:60: E231 missing whitespace after ','
plone/app/contentmenu/tests.py:414:80: E501 line too long (102 > 79 characters)
plone/app/contentmenu/tests.py:415:80: E501 line too long (103 > 79 characters)
plone/app/contentmenu/tests.py:416:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:422:80: E501 line too long (101 > 79 characters)
plone/app/contentmenu/tests.py:429:80: E501 line too long (102 > 79 characters)
plone/app/contentmenu/tests.py:431:80: E501 line too long (84 > 79 characters)
plone/app/contentmenu/tests.py:439:80: E501 line too long (102 > 79 characters)
plone/app/contentmenu/tests.py:441:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/tests.py:445:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests.py:447:80: E501 line too long (99 > 79 characters)
plone/app/contentmenu/tests.py:448:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:458:80: E501 line too long (102 > 79 characters)
plone/app/contentmenu/tests.py:459:80: E501 line too long (118 > 79 characters)
plone/app/contentmenu/tests.py:466:80: E501 line too long (100 > 79 characters)
plone/app/contentmenu/tests.py:467:80: E501 line too long (108 > 79 characters)
plone/app/contentmenu/tests.py:468:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:473:80: E501 line too long (100 > 79 characters)
plone/app/contentmenu/tests.py:488:80: E501 line too long (100 > 79 characters)
plone/app/contentmenu/tests.py:491:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:492:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:500:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:500:80: E501 line too long (88 > 79 characters)
plone/app/contentmenu/tests.py:509:26: Q000 Remove bad quotes.
plone/app/contentmenu/view.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/view.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/view.py:1:1: F401 'Interface' imported but unused
plone/app/contentmenu/view.py:5:1: F401 'adapts' imported but unused
plone/app/contentmenu/view.py:12:1: F401 'utils' imported but unused
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@vangheem Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.contentmenu/2/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/__init__.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/__init__.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/displayviewsmenu.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/displayviewsmenu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/interfaces.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/interfaces.py:5:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/interfaces.py:37:1: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/menu.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/menu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/menu.py:112:55: S001 found %s formatter
plone/app/contentmenu/menu.py:251:1: C901 'DisplayMenu.getMenuItems' is too complex (24)
plone/app/contentmenu/menu.py:324:30: S001 found %s formatter
plone/app/contentmenu/menu.py:359:32: S001 found %s formatter
plone/app/contentmenu/menu.py:407:30: S001 found %s formatter
plone/app/contentmenu/menu.py:433:34: S001 found %s formatter
plone/app/contentmenu/menu.py:447:28: P002 found "hasattr", consider replacing it
plone/app/contentmenu/menu.py:477:40: S001 found %s formatter
plone/app/contentmenu/menu.py:521:14: S001 found %s formatter
plone/app/contentmenu/menu.py:600:20: S001 found %s formatter
plone/app/contentmenu/menu.py:618:24: S001 found %s formatter
plone/app/contentmenu/menu.py:671:1: E302 expected 2 blank lines, found 1
plone/app/contentmenu/menu.py:692:55: S001 found %s formatter
plone/app/contentmenu/menu.py:766:1: C901 'WorkflowMenu.getMenuItems' is too complex (13)
plone/app/contentmenu/menu.py:784:29: Q000 Remove bad quotes.
plone/app/contentmenu/menu.py:785:30: S001 found %s formatter
plone/app/contentmenu/menu.py:812:52: S001 found %s formatter
plone/app/contentmenu/menu.py:941:22: S001 found %s formatter
plone/app/contentmenu/menu.py:949:44: S001 found %s formatter
plone/app/contentmenu/testing.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/testing.py:53:48: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:69:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:72:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:78:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:81:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:88:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:91:10: Q000 Remove bad quotes.
plone/app/contentmenu/view.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/view.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/view.py:33:80: E501 line too long (87 > 79 characters)
plone/app/contentmenu/tests/test_menu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/tests/test_menu.py:23:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:41:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:44:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:48:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:77:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:80:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:87:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:89:13: W503 line break before binary operator
plone/app/contentmenu/tests/test_menu.py:115:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:117:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:155:13: W503 line break before binary operator
plone/app/contentmenu/tests/test_menu.py:164:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:166:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:182:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:184:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:198:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:205:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:207:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:224:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:225:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:235:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:236:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:246:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:247:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:253:35: Q000 Remove bad quotes.
plone/app/contentmenu/tests/test_menu.py:306:28: S001 found %s formatter
plone/app/contentmenu/tests/test_menu.py:324:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:328:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:339:80: E501 line too long (87 > 79 characters)
plone/app/contentmenu/tests/test_menu.py:350:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:353:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:355:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:453:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:461:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:462:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:463:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:466:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:484:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:491:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:501:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:528:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:531:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:550:42: Q000 Remove bad quotes.
plone/app/contentmenu/tests/test_menu.py:552:29: Q000 Remove bad quotes.
plone/app/contentmenu/tests/test_menu.py:554:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:592:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:627:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:630:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:650:23: S001 found %s formatter
plone/app/contentmenu/tests/test_menu.py:651:23: S001 found %s formatter
plone/app/contentmenu/tests/test_menu.py:654:13: W503 line break before binary operator
plone/app/contentmenu/tests/test_menu.py:689:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:699:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:773:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:813:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:817:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:846:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:856:20: Q000 Remove bad quotes.
plone/app/contentmenu/tests/test_menu.py:873:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:874:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:882:14: D001 found failIf( replace it with assertFalse
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@mauritsvanrees Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.contentmenu/3/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/__init__.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/__init__.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/displayviewsmenu.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/displayviewsmenu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/interfaces.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/interfaces.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/interfaces.py:5:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/interfaces.py:37:1: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/menu.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/menu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/menu.py:47:9: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:73:13: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:88:13: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:98:55: S001 found %s formatter
plone/app/contentmenu/menu.py:102:80: E501 line too long (84 > 79 characters)
plone/app/contentmenu/menu.py:104:80: E501 line too long (81 > 79 characters)
plone/app/contentmenu/menu.py:106:37: S001 found %s formatter
plone/app/contentmenu/menu.py:143:17: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:147:17: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:230:1: C901 'DisplayMenu.getMenuItems' is too complex (24)
plone/app/contentmenu/menu.py:273:66: E502 the backslash is redundant between brackets
plone/app/contentmenu/menu.py:282:5: E125 continuation line with same indent as next logical line
plone/app/contentmenu/menu.py:292:33: E127 continuation line over-indented for visual indent
plone/app/contentmenu/menu.py:308:36: S001 found %s formatter
plone/app/contentmenu/menu.py:321:21: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:322:21: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:338:25: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:340:25: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:341:33: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:342:32: S001 found %s formatter
plone/app/contentmenu/menu.py:362:33: E127 continuation line over-indented for visual indent
plone/app/contentmenu/menu.py:389:36: S001 found %s formatter
plone/app/contentmenu/menu.py:408:33: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:414:40: S001 found %s formatter
plone/app/contentmenu/menu.py:427:28: P002 found "hasattr", consider replacing it
plone/app/contentmenu/menu.py:435:29: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:436:29: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:451:33: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:454:33: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:455:41: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:456:40: S001 found %s formatter
plone/app/contentmenu/menu.py:476:9: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:489:17: S001 found %s formatter
plone/app/contentmenu/menu.py:521:25: E127 continuation line over-indented for visual indent
plone/app/contentmenu/menu.py:565:20: S001 found %s formatter
plone/app/contentmenu/menu.py:583:24: S001 found %s formatter
plone/app/contentmenu/menu.py:587:25: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:605:80: E501 line too long (84 > 79 characters)
plone/app/contentmenu/menu.py:608:21: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:647:33: S001 found %s formatter
plone/app/contentmenu/menu.py:655:17: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:710:1: C901 'WorkflowMenu.getMenuItems' is too complex (13)
plone/app/contentmenu/menu.py:728:29: Q000 Remove bad quotes.
plone/app/contentmenu/menu.py:729:30: S001 found %s formatter
plone/app/contentmenu/menu.py:756:52: S001 found %s formatter
plone/app/contentmenu/menu.py:783:33: E127 continuation line over-indented for visual indent
plone/app/contentmenu/tests.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/tests.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/tests.py:7:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:8:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:9:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:10:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:10:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests.py:12:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:13:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:14:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:15:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:16:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:17:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:19:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:20:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:21:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:22:1: E402 module level import not at top of file
plone/app/contentmenu/tests.py:34:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:37:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:41:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:41:80: E501 line too long (96 > 79 characters)
plone/app/contentmenu/tests.py:53:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:56:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:63:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:63:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/tests.py:69:80: E501 line too long (94 > 79 characters)
plone/app/contentmenu/tests.py:81:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:83:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:86:9: E125 continuation line with same indent as next logical line
plone/app/contentmenu/tests.py:93:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:95:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:95:80: E501 line too long (105 > 79 characters)
plone/app/contentmenu/tests.py:96:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:96:80: E501 line too long (101 > 79 characters)
plone/app/contentmenu/tests.py:102:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/tests.py:108:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:110:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:116:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:118:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:123:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests.py:125:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:139:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:146:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:148:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:161:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:162:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:170:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:171:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:181:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:182:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:188:35: Q000 Remove bad quotes.
plone/app/contentmenu/tests.py:194:14: D001 found assertEquals replace it with assertEqual
plone/app/contentmenu/tests.py:208:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:211:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:215:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:221:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:222:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:223:14: S001 found %s formatter
plone/app/contentmenu/tests.py:235:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:236:58: E502 the backslash is redundant between brackets
plone/app/contentmenu/tests.py:237:17: E131 continuation line unaligned for hanging indent
plone/app/contentmenu/tests.py:238:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:244:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:255:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:258:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:260:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:281:80: E501 line too long (81 > 79 characters)
plone/app/contentmenu/tests.py:285:80: E501 line too long (82 > 79 characters)
plone/app/contentmenu/tests.py:290:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:298:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:299:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:300:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:300:80: E501 line too long (88 > 79 characters)
plone/app/contentmenu/tests.py:301:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:301:80: E501 line too long (92 > 79 characters)
plone/app/contentmenu/tests.py:311:80: E501 line too long (81 > 79 characters)
plone/app/contentmenu/tests.py:315:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests.py:322:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:332:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:345:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:348:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:352:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:354:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:362:42: Q000 Remove bad quotes.
plone/app/contentmenu/tests.py:364:29: Q000 Remove bad quotes.
plone/app/contentmenu/tests.py:366:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:368:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:389:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:395:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:400:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:403:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:421:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:431:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:499:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:535:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests.py:539:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:567:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:594:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:595:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests.py:603:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests.py:617:26: Q000 Remove bad quotes.
plone/app/contentmenu/view.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/view.py:0:1: I001 isort found changes, run it on the file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@agitator Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.contentmenu/4/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
plone/app/contentmenu/__init__.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/interfaces.py:6:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/interfaces.py:37:1: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/menu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/menu.py:96:55: S001 found %s formatter
plone/app/contentmenu/menu.py:227:1: C901 'DisplayMenu.getMenuItems' is too complex (24)
plone/app/contentmenu/menu.py:300:30: S001 found %s formatter
plone/app/contentmenu/menu.py:335:32: S001 found %s formatter
plone/app/contentmenu/menu.py:383:30: S001 found %s formatter
plone/app/contentmenu/menu.py:409:34: S001 found %s formatter
plone/app/contentmenu/menu.py:423:28: P002 found "hasattr", consider replacing it
plone/app/contentmenu/menu.py:453:40: S001 found %s formatter
plone/app/contentmenu/menu.py:488:14: S001 found %s formatter
plone/app/contentmenu/menu.py:565:20: S001 found %s formatter
plone/app/contentmenu/menu.py:583:24: S001 found %s formatter
plone/app/contentmenu/menu.py:658:33: S001 found %s formatter
plone/app/contentmenu/menu.py:722:1: C901 'WorkflowMenu.getMenuItems' is too complex (13)
plone/app/contentmenu/menu.py:740:29: Q000 Remove bad quotes.
plone/app/contentmenu/menu.py:741:30: S001 found %s formatter
plone/app/contentmenu/menu.py:768:52: S001 found %s formatter
plone/app/contentmenu/menu.py:892:22: S001 found %s formatter
plone/app/contentmenu/menu.py:899:44: S001 found %s formatter
plone/app/contentmenu/testing.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/testing.py:53:48: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:69:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:72:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:78:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:81:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:88:10: Q000 Remove bad quotes.
plone/app/contentmenu/testing.py:91:10: Q000 Remove bad quotes.
plone/app/contentmenu/tests/test_menu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/tests/test_menu.py:23:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:41:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:44:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:48:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:77:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:80:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:87:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:89:13: W503 line break before binary operator
plone/app/contentmenu/tests/test_menu.py:115:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:117:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:155:13: W503 line break before binary operator
plone/app/contentmenu/tests/test_menu.py:164:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:166:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:182:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:184:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:198:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:205:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:207:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:224:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:225:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:235:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:236:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:246:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:247:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:253:35: Q000 Remove bad quotes.
plone/app/contentmenu/tests/test_menu.py:306:28: S001 found %s formatter
plone/app/contentmenu/tests/test_menu.py:324:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:328:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:350:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:353:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:355:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:453:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:461:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:462:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:463:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:466:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:484:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:491:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:501:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:528:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:531:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:550:42: Q000 Remove bad quotes.
plone/app/contentmenu/tests/test_menu.py:552:29: Q000 Remove bad quotes.
plone/app/contentmenu/tests/test_menu.py:554:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:592:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:627:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:630:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:650:23: S001 found %s formatter
plone/app/contentmenu/tests/test_menu.py:651:23: S001 found %s formatter
plone/app/contentmenu/tests/test_menu.py:654:13: W503 line break before binary operator
plone/app/contentmenu/tests/test_menu.py:689:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:699:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:773:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:813:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:817:14: D001 found failIf( replace it with assertFalse
plone/app/contentmenu/tests/test_menu.py:846:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:856:20: Q000 Remove bad quotes.
plone/app/contentmenu/tests/test_menu.py:873:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:874:14: D001 found failUnless( replace it with assertTrue
plone/app/contentmenu/tests/test_menu.py:882:14: D001 found failIf( replace it with assertFalse
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@MatthewWilkes Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.contentmenu/5/violations
```
plone/app/contentmenu/menu.py:235:1: C901 'DisplayMenu.getMenuItems' is too complex (22)
plone/app/contentmenu/menu.py:737:1: C901 'WorkflowMenu.getMenuItems' is too complex (13)
plone/app/contentmenu/tests/test_menu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/tests/test_menu.py:24:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:189:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:287:13: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:522:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:851:9: D001 found directlyProvides replace it with zope.interface.provider
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@mauritsvanrees Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.contentmenu/6/violations
```
plone/app/contentmenu/menu.py:235:1: C901 'DisplayMenu.getMenuItems' is too complex (22)
plone/app/contentmenu/menu.py:737:1: C901 'WorkflowMenu.getMenuItems' is too complex (13)
plone/app/contentmenu/tests/test_menu.py:23:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:186:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:499:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:828:9: D001 found directlyProvides replace it with zope.interface.provider
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@mauritsvanrees Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.contentmenu/7/violations
```
plone/app/contentmenu/menu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/menu.py:237:1: C901 'DisplayMenu.getMenuItems' is too complex (22)
plone/app/contentmenu/menu.py:747:1: C901 'WorkflowMenu.getMenuItems' is too complex (13)
plone/app/contentmenu/menu.py:938:28: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:938:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/tests/test_menu.py:23:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:186:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:499:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:831:9: D001 found directlyProvides replace it with zope.interface.provider
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


Jeg tror du leder efter `#include <perl.h>`.


articolo su [italicum](http://www.ilpost.it/2015/04/17/italicum/)


@jensens Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.contentmenu/8/violations
```
plone/app/contentmenu/menu.py:0:1: I001 isort found changes, run it on the file
plone/app/contentmenu/menu.py:241:1: C901 'DisplayMenu.getMenuItems' is too complex (22)
plone/app/contentmenu/menu.py:755:1: C901 'WorkflowMenu.getMenuItems' is too complex (13)
plone/app/contentmenu/menu.py:924:28: E128 continuation line under-indented for visual indent
plone/app/contentmenu/menu.py:924:80: E501 line too long (80 > 79 characters)
plone/app/contentmenu/tests/test_menu.py:23:28: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:186:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:499:9: D001 found directlyProvides replace it with zope.interface.provider
plone/app/contentmenu/tests/test_menu.py:831:9: D001 found directlyProvides replace it with zope.interface.provider
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


I know it feels gross to me... I'll think of something.


@mdoron
q can be null and there is a check for this in line 96.
d can never be null or out of index


> This is
  way too hot in my pants. Cool things down.
xD!!!


Oh, is this the death of the follow suggestions feature? :(


Please check your text editor, indentation is not consistent.


Needs latest revision '957ab56caf4d007c2b0' Ver. 3.5.8.3

Thanks Jiro


`npm install --save-dev handlebars-loader`


It would be better if we can avoid `: Winter` here


But ... winter is coming


I tried to reset to default settings, but failed at last. The root cause might be vlan; they have different tagged ports.

BTW, I was against this change before.
ref: https://www.mail-archive.com/lede-dev@lists.infradead.org/msg03701.html


No worries! I ended up adapting an [older version](https://github.com/flavio-fernandes/HT1632-for-Arduino/commits/master) I had and that seemed to work out okay.
For those interested in seeing more on that, here is the link:
   [http://flaviof.com/blog/hacks/office-clock-part2.html](http://flaviof.com/blog/hacks/office-clock-part2.html)


This works pretty good, thanks a lot for your help!! 👍


Ek ka project h


Rollback


Shouldn't we bump the ABI version because of that? Or will all 3rd party plugins still work without this change?


Thanks for flagging @tijmenb.

I'm not sure why this is happening at the moment. I noticed that I mistakenly missed calling the intended method in this spec though. Perhaps it's related. I've made a PR to fix that https://github.com/alphagov/manuals-publisher/pull/775


Fixed!


@FRidh How come the derivation worked even if these inputs were not declared as parameters to the function?


this thing looks like a thermal limit and it will throttle the performance if the heat exceeded


it seems to be bad idea to place this method in CommandFactory class


don't need that, i've never reached full ram anyway


looks like from here to the end of this method ou can refactor into a reusable piece of code. Also spacing is weird with "methods ()" (copied and pasted from somewhere perhaps)


@rsto Line 3508 of the patch (jmap_mail.c:4206) cause the following error when I compile:

imap/jmap_mail.c:4206:58: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses]
     if (JNOTNULL(fetchprops) && !json_typeof(fetchprops) == JSON_ARRAY) {
                                                          ^~
cc1: all warnings being treated as errors

I'm not sure what the logic is supposed to be here.  is the '!' a typo?  Should the comparison be '!='  ?


**Caducità sparsa**
Attenzione che i senatori decadranno quando perdono la carica di consigliere regionale, cioè quando si rivota per la regione. Questo causa variabilità di composizione di senato a legislatura in corso. Quantificare (come sono scadenzate attualmente le elezioni sulle 20 regioni?)


How this callback is supposed to evaluate the response? If errors is `undefined` it means that the JSON is valid?


два пробіли


Good catch! Please make the commit message more description and I will merge it.
Something along lines "Correct name of renew-le.sh script in README" would be sufficient.


I mean just enhance the starts with "xtext-" with something like:
list = [ "xtext-lib","xtext-core", etc]
.filter {
 list.contains([fileName.startsWith(it)])
}


This was an unsuccessful experiment that I forgot to undo before committing :-) I think it should be something like an `Optional<Slice>`, where `Empty` signifies "no data" and a smaller slice indicates "not enough data".

This means the client needs to check for empty *and* size. But I think it's warrented since they're both valid outcomes.


Yes. There are just too many problems with Neo4J:

1) Massive memory hog even when not doing much (though partly because GraphAware NodeRank is constantly computing page rank of people. Which is a cool feature, but overkill)
2) It doesn't reuse existing disk space/memory for new nodes/relationships after old ones are deleted (also possibly same for attribute updates) and so it uses more and more disk space. It can grow to 20GB and when you delete everything and import data from scratch it'll be 79MB. People recommend running an arcane tool called store-utils to periodically clean up the Neo4J database but that whole design is just too much for me
3) Literally nobody complained when I disabled follow suggestions, I had multiple people ask me for an ability to hide them though

RIP


travis


I saw you were still working on it and committing, so I haven't looked very hard yet.

It does look promising. I see you were able to keep the library names. Could you also reproduce the various configurations (Debug/Release, Win32/x64)? How do the generated projects differ from the existing ones?


:-( sorry


There is no decent way to disable maximum life time checking on plugin side.
More information about this feature can be found here: "Maximum authentication time" in http://www.pac4j.org/1.9.x/docs/clients/saml.html


Fixed in 25eca57


ok!


Maybe it will be better to define result variable in this method to remove multiple return statements and invert if statement. Take a look at [this](https://books.google.by/books?id=VJxhAwAAQBAJ&pg=PA57&lpg=PA57&dq=%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE+%D1%88%D0%B0%D0%BC%D0%BF%D1%83%D1%80%D0%B0&source=bl&ots=C2XEKuWkuZ&sig=8PBsODFXyxoZ7T3dCh5g9jIiUtc&hl=ru&sa=X&ved=0ahUKEwiEjIHgi8TQAhXLF5oKHf_GCJcQ6AEIKTAG#v=onepage&q=%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%20%D1%88%D0%B0%D0%BC%D0%BF%D1%83%D1%80%D0%B0&f=false). The main idea is that all "incorrect" branches of your code should be placed under "else" statements. This simple rule will save your time when you decide to modify or add some extra checks.


Oh... Okay.. But still the commit msg 😂😂😂


@CryToCry96  thanks, but copying the TeleService modified by the patch above, to the stockrom, I have FC In com.android.phone when inserting the simcard


Hmm, still.


I'll take a look this week-end.
Why not use scala meta ?


Hoped it would just _work_... Additionally, I don't know where it would be implemented otherwise.


You can also wait for rango given away by Linksys to do more tests if it wouldn't be too late.


It solves it by copying/referencing the boolean value out of `e.target`, so that we can keep a reference to it even after the object `e` is recycled by React's event system.


jhadvJKLHFGJKDHZGJKHNJKXFNGKLXFNK


I like the typeclass because you can use it on any type without extending
anything.

Le ven. 25 nov. 2016 15:19, GOUYETTE Damien <notifications@github.com> a
écrit :

> I'll take a look this week-end.
> Why not use scala meta ?
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <https://github.com/scala-hamsters/hamsters/commit/802267735cc623bd01396fd4ad5a9f96d3d8f5fe#commitcomment-19964330>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AAm8xqia_hk88phc9grl8aUI7L8ONfRgks5rBu5zgaJpZM4K8dy7>
> .
>


@chelmuth: thx


removing the cast might work - was the cast needed to avoid a warning elsewhere?


main-page ещё буду допиливать, само собой. Остальные файлы только создал.


Do they have getter, setter naming conventions?


resuelve el issue #37


But the GG map data are for different resoures, right? Routes, locations, ...?

Each resource should has it owns controller so it fits the REST standard.

You can always have a Map module to interact with Google, but your different controllers will call this Map module to retrieve them.


This is already in the documentation, on the next line.


After composer create-project


rimosso per caricare i jar


assignment 2 입니다


ah, I've understood. I'll create more controllers.


The real issue here was that while thread1 starts its subprocess, thread2 can screw up the current folder setting. The fix is https://github.com/dkrupp/clang/commit/2a76d9271f5c1db41f5afa20db259b80035eebbe


Why was UID and GID 1000 chosen?

This will clash with the default UID/GID assigned to the first user on many Linux distributions. This will result in trouble for images that will create a user to mimic the host.


Alright, fair enough.


Finally got my hands on Swift 3 and the awesome Thread Sanitizer. It caught a race-condition on `private var timer: Timer?`


I think it should be D2L but meh.


add versions number in commit message


Argh! Typoed the PR reference in the title. >_<


Wouldn't simply asking the user to re-authenticate solve the issue? That's essentially what we're doing when clearing session data.


idem


It breakes Y axis graph label values, please fix.


@GEEKIAM писали в классе, сэкономили время. Так конечно асинхронно стоит делать.


![](https://github.trello.services/images/mini-trello-icon.png) [Roadmap](https://trello.com/c/SN48mnfN/2-roadmap)


Maybe add a version tag as well?


You must add TeleService to phoneapps.mk
https://github.com/CryToCry96/miui_patchrom_htc_m8/blob/m6.0/phoneapps.mk#L35


```
MacBook-Air-de-Catarina:bioconda-recipes romanvg$ export BIOCONDA_UTILS_TAG="master"
MacBook-Air-de-Catarina:bioconda-recipes romanvg$ conda install --file https://raw.githubusercontent.com/bioconda/bioconda-utils/${BIOCONDA_UTILS_TAG}/conda-requirements.txt
Fetching package metadata .......
.Solving package specifications: .

PackageNotFoundError: Package not found: '' Packages missing in current osx-64 channels:
  - argh 0.26.2 py35_0
  - galaxy-lib 16.10.9 py35_0
  - pyaml 15.8.2 py35_0
  - pydotplus 2.0.2 py35_0
  - involucro 1.1.2 0

Close matches found; did you mean one of these?

    pyaml: pyyaml, yaml, pysam
    pydotplus: pydot

You can search for packages on anaconda.org with

    anaconda search -t conda pydotplus

(and similarly for the other packages)

You may need to install the anaconda-client command line client with

    conda install anaconda-client
```


This will use the allocation variant of the Enumerator, can we just do stack.GetEnumerator() to get the struct-enumerator returned?

Also, implement a `public ImmutableStack<string>.Enumerator GetEnumerator()` overload?


Here is example:
![11111](https://cloud.githubusercontent.com/assets/909903/20628420/e1869878-b336-11e6-8231-57dbe94a9807.png)


How is 'SELECT pet.name FROM pet WHERE pet.name = ?',[ "dog" ]} even valid syntax?!?!?


Ok got it nice finding !


> That'd mean that even if they're potentially not used elsewhere than HUSL's site, they have to be implemented, right?

That's not my intention, but you are right to point out that people may think so. I expanded the porting instructions on the homepage to make it clear which functions are essential: http://www.husl-colors.org/implementations/ You are right that the color picker code belongs elsewhere but this is convenient for now in terms of building.


I've tried it that way, but if I insert the simcard, I have FC


흠...그럼 이미지의 가장 아래쪽에 숨기는 원리 맞나요?


This looks all a lot like this: https://github.com/Gyarm/sorting-algorithms/commit/0831b64611d3d2b562202fc5f9deb4d0f1deeac4

Please read the comments on the other repo :) Thanks.


Right, my bad, thanks for pointing obvious :)


I think it's so that when you run a command in the container, such as npm install, that end up being on the host, the user on host have access to the file


:astonished:


для чого синхронізація отут? Це перший кейс, тут треба лише `Оновити LAST_MODIFICATION_DATE`


Oh - I was just going by [this](https://github.com/Brightspace/D2L.Services.Core.Extensions/blob/master/src/D2L.Services.Core.Extensions/Properties/AssemblyInfo.cs#L13), but admittedly I'm not sure which is correct :s


Starting a bit early with GitHub, Cedric? LOL


> ...
> src/Widgets/Rundown/TriCaster/RundownPresetWidget.h 100644 → 100755
> src/Widgets/Rundown/TriCaster/RundownTakeWidget.h 100644 → 100755

@dotarmin FYI, you are marking files as executable (`0755`). Is that for a reason or just a byproduct of mounting Windows share on Linux?


http://tsuts.tskoli.is/2t/2202903449/CAH_JSON/anotherCAHjsonDB.json

ANNAÐ URL FYRIR JSON SKJAL

-jso


Ça rend bien.


__API Description file syntax error on line 231__: base type 'Pagination' is not defined in the document (Autogenerated message from apiary.io)


Hi Simon,

  The typo above breaks insight build again.

IDE_CFLAGSv should stay as IDE_CFLAGS

I presume the trailing 'v' is a mistyping of the space insertion.

I tried fixing locally and it works.

Thanks for fixing,

Patrick


converts


I need to de-synch the connection of multiple bots at the same time, otherwise steam holds me off with a no spam warning !


please fix in your CLs ;)


Dowload


Ich glaube, dass das so mit p1, p2, p3, p4 passt. Es gibt ja keinen 0. Spieler


Ahh damn, sorry about that.  I'll fix it right away.


bin


you're missing `if is_unix() begin`


після того, як надіслались якісь зміни до цбд потрібно робити синхронізацію. Тим більше, якщо  наступний тест кейс на відображення проходитиме квінтівський в'ювер


Thanks Marco for fixing this!
System i have test on was a Dual Xeon E5-2699 v4 2x22cores=44cores/88threads
This E7-8890 v4 was a Quad Xeon E7-8890 v4 4x24cores=96cores/192threads i test on before it get to a datacenter..also did runs on a Quad Xeon E7-8870 v3 4x18cores=72cores/144threads.

Ipman.


TeamCity libpalaso :: palaso-win32-master Continuous [Build 3.1.67.213c67723c29d874120bed792f132270f27ff424](http://build.palaso.org/viewLog.html?buildId=80253&buildTypeId=bt223) outcome was **SUCCESS**
Summary: Tests passed: 3469, ignored: 122 Build time: 00:05:19


That makes sense if the user is the mentioned first user on many Linux distributions - and I think that's often the case.

However it makes some use cases impossible. For example our case, where we create the needed users in the entrypoint based on host UID/GID :(


Tmp files may get deleted before the sessions data. So to avoid any errors we are removing sessions


TeamCity libpalaso :: palaso-precise64-libpalaso-2.6 Continuous [Build 2.6.1147.213c67723c29d874120bed792f132270f27ff424](http://build.palaso.org/viewLog.html?buildId=80252&buildTypeId=PalasoPrecise64v26Cont) outcome was **SUCCESS**
Summary: Tests passed: 3476, ignored: 110 Build time: 00:06:36


Test `check-whitespace` failed for this commit.  I suppose there were some tab characters.  If you want to set up emacs to avoid whitespace issues, see file HACKING.


J'ai vu le gros merge qui a été fait aujourd'hui, je me doute bien que ce n'est pas sans conséquences... 😉


Thanks! It's all back up and running again from the original repository.

On Wed, Nov 23, 2016 at 9:52 AM, Rudolf Olah <notifications@github.com>
wrote:

> Much better slogan!
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/ethanwilkins/anrcho/commit/a795ed3ac62346d285b64966f8737adae4ac6425#commitcomment-19939007>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ADStOnPT34lDvv3jGvvQuBmIiQv2jgBKks5rBFM0gaJpZM4K6q4_>
> .
>


Forgot to mention the corresponding issue:
#12


Missing `#` to make this a comment?


nit: I generally use `#! /usr/bin/env bash`


TeamCity libpalaso :: palaso-trusty64-lfmerge Continuous [Build 2.6.117.213c67723c29d874120bed792f132270f27ff424](http://build.palaso.org/viewLog.html?buildId=80255&buildTypeId=PalasoTrusty64lfmergeContinuous) outcome was **FAILURE**
Summary: Tests failed: 174 (174 new), passed: 3229, ignored: 203 Build time: 00:04:23
### Failed tests
```
SIL.Core.Tests.dll: SIL.Tests.Data.RecordTokenComparerTests.Compare_KhmerWordsUsingDefaultCollation_ComparesNotEqual: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByDefinition_CreateItemAfterFirstCall_EntryIsReturnedAndSortedInResultSet: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByDefinition_DeleteAfterFirstCall_EntryIsDeletedInResultSet: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByDefinition_DeleteAllItemsAfterFirstCall_EntryIsDeletedInResultSet: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByDefinition_DeleteByIdAfterFirstCall_EntryIsDeletedInResultSet: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByDefinition_ModifyAndSaveAfterFirstCall_EntryIsModifiedAndSortedInResultSet: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByDefinition_ModifyAndSaveMultipleAfterFirstCall_EntriesModifiedAndSortedInResultSet: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByHeadWord_CreateItemAfterFirstCall_EntryIsReturnedAndSortedInResultSet: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByHeadWord_DeleteAfterFirstCall_EntryIsDeletedInResultSet: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByHeadWord_DeleteAllItemsAfterFirstCall_EntryIsDeletedInResultSet: <no details avaliable>

SIL.DictionaryServices.Tests.dll: SIL.DictionaryServices.Tests.LiftLexEntryRepositoryCachingTests.GetAllEntriesSortedByHeadWord_DeleteByIdAfterFirstCall_EntryIsDeletedInResultSet: <no details avaliable>

##### there are 164 more failed tests, see build details
```


This won't work if someone has done something mean like c:\doom/fred.wad
Have a look at leafname() in doom retro m_misc.c for a better implementation.
It is faster because it only does a single pass through the text (no call to strlen() first)


@tpalli can you check the status with this patch.


Went for this instead: `for i in `cat conda-requirements.txt`; do yes | conda install $i; done`


Is testing for `$1` intentional or did you mean to test the return code in `$?` ?


what does it mean #pad:1?
when i run this code this convolution layer is not getting the data....this layer show only zero values....could you plz tell me?


Thanks, and sorry! I wonder why `fix-agda-whitespace` doesn't seem to spot the problem (for me at least)?


All the source settings from the resinProfiles folder seem to be the exact same as the LC 10 ones. Is that right @kloknibor? I thought due to the increased resolution, the HR was less bright and needed longer curing than the 10?


TeamCity libpalaso :: palaso-precise64-master Continuous [Build 3.1.57.213c67723c29d874120bed792f132270f27ff424](http://build.palaso.org/viewLog.html?buildId=80257&buildTypeId=bt322) outcome was **SUCCESS**
Summary: Tests passed: 3495, ignored: 111 Build time: 00:05:20


to transgress the..?


Twitter is dead, and so is the need of Tweet2RSS.


I wouldn't bother explainin the files, I feel like the explanation should be more casual. I would just write something like

> The `/dist` folder includes portable versions of async including `async.js` and `async.min.js`.
> Async is also hosted on the [jsDelivr CDN](http://www.jsdelivr.com/projects/async).


The Um3NetworkPrinting and OctoPrint plugins also had to be updated.


nit: you could pipe this through `jq` or `python -mjson.tool` to make sure it's proper JSON before uploading it.


korrigiert


thanks, fixed.


一般面试的时候估计不会要写递归方法。会要写非递归算法。


:-P korrigiert


nit: lots of escaping going on, why not use single quotes instead?
```bash
HPKP='Public-Key-Pins: max-age=5184000; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; pin-sha256="r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E="; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg="; pin-sha256="sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis=";'
```


@tpalli This is the right commit. can you check if hwc2 works on us ide.


Refresh Code


jo


schreib doch einfach bei alles


No worries, easy to overlook, and I haven't found a satisfactory way to
automate it.

On 25 Nov 2016 2:52 p.m., "Sergio Silveira" <notifications@github.com>
wrote:

> oops :)
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/damianh/RavenDB.Bundles.Revisions/commit/4e6d8ca07cffd34078960b5faf2ef63c84398f83#commitcomment-19963741>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AADgXHPXgP5WZeWRzYIjeU-x9WShbBtnks5rBuCcgaJpZM4K8bvC>
> .
>


jaja


lalala


gibts hier ein commentrank


Yes, I saw the change in UM3NP. Haven't heard about OctoPrint, but I guess it is needed for all plugins now.


I see it failed on Travis, but for some reason it didn't fail locally for me. Anyway, thanks for fixing it and sorry!


da wusste ich noch nicht was ich da rein schreiben soll mach ich aber noch


I'd like to have a list of user input at the top of the script alongside regexp to make sure we don't operate on junk input. If all we need is an AMO user (an email?) and a secret (`[a-zA-Z0-9]{1,64}`?), regexps shouldn't be too hard to write.


That fixed it


AppKit doesn't build cleanly for anyone right now. @LubosD has some code locally on his machine that isn't in this repository yet. Right now we should focus on getting `Security.framework` and `corecrypto` implemented.


One could use ES6 here to keep things rather more simpler - `x => this.setLeft(x), () => this.left()`. That gets rid of the need for a `myself` variable and also gets rid of a lot of rather verbose syntax. But I can see why you're avoiding ES6 stuff.. Oh well.

(I had originally written this comment mentioning you could just `this.setLeft`/`this.left` but then went over why that A) doesn't *look* good (`this.left` looks like a decimal value, not a function - it should be `this.getLeft` IMO :) ) and B) doesn't even work (because of `this` being rebound, urgh).)


学习


That's a nice commit!


You want to create another user to use instead of the provided `node` user?


C'était mon idée au départ, mais l'arduino c'est du C(++), et Processing du Java.
L'idée est de prévisualiser un dessin à partir des fonctions de dessins.h.
Les soucis : val/défaut des paramètres et types (Java ne fait pas de casting implicite et les fn trigo de Processing prennent des float)...


Does it ever compile? Probably it should be `case WiresharkClassCompiler`?


我看到你的代码中这些空白的配置文件还是在，而且我手动删除空白的.json文件后还是和之前问题一样


mbnmbm


Un coup de SWIG, mais c'est du boulot.


@linhphi9x94 This patch in PackageManagerService.smali, it especially for hdpi devices?


I tried many version of synchronizing,  on lock objects, methods, still did not help, I think the call to emit data for content and headers returns independent of the data actually being sent, I'll play around with it more. I also tried sending ack messages from the server, but that caused requests to be painfully slow.  To be honest i don't fully understand whats going on inside the socket.io libraries, so thats something I need to get up to speed with.   The good new is only the demo server seems to have this issue, its latency is absurdly low, as if its on the same box as the nginx server, less then half of a millisecond.  I'm not 100% sure this is the cause, but its the only difference I can come up with right now.


Strange, but it really compiles.


Not sure where Amazon S3 came from here, js-ipfs-repo-browser would be the for the browser


<?php

$img_w=70;		//初始化验证码图片的宽
$img_h=22;		//初始化验证码图片的高
$char_len = 5;	//初始化码值的长度
$font=5;		//初始化验证码字体大小

//生成码值数组,不需要0，避免与字母o冲突
$char = array_merge(range('A','Z'), range('a','z'),range(1, 9));

//随机获取$char_len个码值的键
$rand_keys = array_rand($char, $char_len);

//判断当码值长度为1时，将其放入数组中
if ($char_len == 1) {
	$rand_keys = array($rand_keys);
}

//打乱随机获取的码值键的数组
shuffle($rand_keys);

//根据键获取对应的码值，并拼接成字符串
$code = '';
foreach($rand_keys as $key) {
	$code .= $char[$key];
}

//将获取的码值字符串保存session中
session_start();
$_SESSION['captcha_code'] = $code;

//将码值写入到画布中并展示

//----1 生成画布

$img = imageCreateTrueColor($img_w, $img_h);
//设置背景
$bg_color = imageColorAllocate($img, 0xcc, 0xcc, 0xcc);
imageFill($img, 0, 0, $bg_color);
//干扰像素
for($i=0; $i<=300; ++$i) {
	$color = imageColorAllocate($img, mt_rand(0, 255), mt_rand(0, 255),mt_rand(0, 255));
	imageSetPixel($img, mt_rand(0, $img_w), mt_rand(0, $img_h), $color);
}

for($i=0; $i<=10; ++$i) {
	//设置直线颜色
	$color = imageColorAllocate($img, mt_rand(0, 255), mt_rand(0, 255),mt_rand(0, 255));
	//在$img图像上随机画一条直线
	imageline($img, mt_rand(0, $img_w), mt_rand(0, $img_h), mt_rand(0, $img_w), mt_rand(0, $img_h),$color);
}

//矩形边框
$rect_color = imageColorAllocate($img, 0x90, 0x90, 0x90);//白
imageRectangle($img, 0, 0, $img_w-1, $img_h-1, $rect_color);

//----2 操作画布

//设定字符串颜色
$str_color = imageColorAllocate($img, mt_rand(0, 100), mt_rand(0, 100),mt_rand(0, 100));
//设定字符串位置
$font_w = imageFontWidth($font);  //字体宽
$font_h = imageFontHeight($font); //字体高
$str_w = $font_w * $char_len;     //字符串宽
imageString($img, $font, ($img_w-$str_w)/2, ($img_h-$font_h)/2, $code, $str_color);

//----3 输出图片内容
header('Content-Type: image/png');
imagepng($img);

//----4 销毁画布
imagedestroy($img);


Ce n'était pas possible d'hériter de jointtrajectory controller plutôt que de copier-coller le code ?


<?php

$img_w=70;		//初始化验证码图片的宽
$img_h=22;		//初始化验证码图片的高
$char_len = 5;	//初始化码值的长度
$font=5;		//初始化验证码字体大小

//生成码值数组,不需要0，避免与字母o冲突
$char = array_merge(range('A','Z'), range('a','z'),range(1, 9));

//随机获取$char_len个码值的键
$rand_keys = array_rand($char, $char_len);

//判断当码值长度为1时，将其放入数组中
if ($char_len == 1) {
	$rand_keys = array($rand_keys);
}

//打乱随机获取的码值键的数组
shuffle($rand_keys);

//根据键获取对应的码值，并拼接成字符串
$code = '';
foreach($rand_keys as $key) {
	$code .= $char[$key];
}

//将获取的码值字符串保存session中
session_start();
$_SESSION['captcha_code'] = $code;

//将码值写入到画布中并展示

//----1 生成画布

$img = imageCreateTrueColor($img_w, $img_h);
//设置背景
$bg_color = imageColorAllocate($img, 0xcc, 0xcc, 0xcc);
imageFill($img, 0, 0, $bg_color);
//干扰像素
for($i=0; $i<=300; ++$i) {
	$color = imageColorAllocate($img, mt_rand(0, 255), mt_rand(0, 255),mt_rand(0, 255));
	imageSetPixel($img, mt_rand(0, $img_w), mt_rand(0, $img_h), $color);
}

for($i=0; $i<=10; ++$i) {
	//设置直线颜色
	$color = imageColorAllocate($img, mt_rand(0, 255), mt_rand(0, 255),mt_rand(0, 255));
	//在$img图像上随机画一条直线
	imageline($img, mt_rand(0, $img_w), mt_rand(0, $img_h), mt_rand(0, $img_w), mt_rand(0, $img_h),$color);
}

//矩形边框
$rect_color = imageColorAllocate($img, 0x90, 0x90, 0x90);//白
imageRectangle($img, 0, 0, $img_w-1, $img_h-1, $rect_color);

//----2 操作画布

//设定字符串颜色
$str_color = imageColorAllocate($img, mt_rand(0, 100), mt_rand(0, 100),mt_rand(0, 100));
//设定字符串位置
$font_w = imageFontWidth($font);  //字体宽
$font_h = imageFontHeight($font); //字体高
$str_w = $font_w * $char_len;     //字符串宽
imageString($img, $font, ($img_w-$str_w)/2, ($img_h-$font_h)/2, $code, $str_color);

//----3 输出图片内容
//header('Content-Type: image/png');
imagepng($img);

//----4 销毁画布
imagedestroy($img);


Since it doesn't work, let's remove it


Heh. My bad.


first git project


We should change signature of AllContestChecking and other Checkin methods to return boolean result with error message (similar to login) and check the result, if success - display confirmation alert, otherwise display error and don't navigate anywhere


this makes alle the reducers available in the state object e.g. as state.books


This should be done on MainThread


TeamCity Shared Libraries :: Plato.NET :: CI [Build 5.0.0.83](http://devbuildmngr.dev.com/viewLog.html?buildId=134907&buildTypeId=Shared_PlatoNet_Ci) is now running


TeamCity Shared Libraries :: Plato.NET :: CI [Build 5.0.0.83.d0c1f4b](http://devbuildmngr.dev.com/viewLog.html?buildId=134907&buildTypeId=Shared_PlatoNet_Ci) outcome was **SUCCESS**
Summary: Running Build time: 00:00:29


C'est une erreur


D'ailleurs, je croise les doigts pour ce que toutes ces modifs d'AI n'explosent pas davantage playerbot. 😛


I raised another fix PR which may aid this (but I'm not totally sure to be honest) https://github.com/alphagov/manuals-publisher/pull/776


Revert lesz belőle.
Egyrészt az acquire, compile és install kivételével mindenhol lefut egy olyan formázás is, ami erre is figyel.
Másrészt az ellenőrzött, formázott fájlokba mászol bele.


Any concern for moving this two package to ```dependencies```?


@Matafou Are you aware of that variables in .dir-local.el are automatically made buffer local?


Really better now :-)
Thanks for your quick action.


lalla d


@drzraf Yes indeed. He has a habit of leaving a snarky comment long enough for the mail notification to trigger, then delete. It's his little way of reminding us that, even though he doesn't work on/at PrestaShop anymore, he still "cares" 😛


run the following commands:
>cd apple/apple
>scrapy crawl applevideo -o result.json -t json


Tests may not work because of variables renamed in some handlers.
Logs are more contextual, the validate variable got some more attention.
Set to true only if the SDK reacts to calls.


Is that only cosmetic ?


Just a quick question, why api 23 on android and not 21?


Changed in https://github.com/contao/manager-bundle/commit/2b018f2ef07cd411cb23bc5fe56704232fe8354c#diff-aa592551ca7d8ad608a7ea424f5bf984R23


Better implement it differently - have the view defined in XAML and show-hide if needed using bindings


I am pleased to announce the software release 0.6.
This release appears in conjunction with our paper about Qudi which will be submitted to SoftwareX with preprints available on arXiv shortly.


oops, should have kept the fully qualified name.


Please use more accurate commit descriptions.

If I would look at the history of this file, I wouldn't know what this commit does...


var signupList = new SignupListView(signups);
Better to define all needed components in XAML and show/hide them if needed using property binding


Should be on MainThread


This was a bad idea, decided to do it the good old way after all.


Hi,

Now Allow cors origin creating problem for me as well, please us dev URL for now. It seems intermittent behaviour.
For safer site please use dev url: http://dev.openbiz.slbr.sl/
This might causing https.
I m looking into it to resolve.


Why?


it's not used, remove?


I did put the variable name in the commit so obviously there were nothing


use binding? it'll automatically format the numbers


Больно много лишних переводов строки)


We need to ditch deskclock


I mean the one from cm


Use binding


PS je kan instellen wat de start en stop tijd moet zijn van de plots
gewoon het cijfertje veranderen, is voor de tijd in aantal periodes, maar werkt niet echt om een of andere reden...


Is it certain that the client object is usable here?


COMMON OBJECT PROPERTIES
If you take time to look through the code for Three.js you’ll see a lot of objects “inherit” from Object3D. This is a base object which contains some very useful properties, such as the position, rotation and scale information. In particular our Sphere is a Mesh which inherits from Object3D, to which it adds its own properties: geometry and materials. Why do I mention these? Well it’s unlikely you’re going to want to just have a sphere on your screen that does nothing, and these properties are worth investigating as they allow you to manipulate the underlying details of the meshes and materials on the fly.

// sphere geometry
sphere.geometry

// which contains the vertices and faces
sphere.geometry.vertices // an array
sphere.geometry.faces // also an array

// its position
sphere.position // contains x, y and z
sphere.rotation // same
sphere.scale // ... same
DIRTY LITTLE SECRETS
I just wanted to quickly point out a quick gotcha for Three.js, which is that if you modify, for example, the vertices of a mesh, you will notice in your render loop that nothing changes. Why? Well because Three.js (as far as I can tell) caches the data for a mesh as something of an optimisation. What you actually need to do is to flag to Three.js that something has changed so it can recalculate whatever it needs to. You do this with the following:

// Changes to the vertices
sphere.geometry.verticesNeedUpdate = true;

// Changes to the normals
sphere.geometry.normalsNeedUpdate = true;


@yopito Now with Void Linux support at last!


Use binding, for profile name we can add Get property FullName to Profile class and mark it as jsonignore


We can let the compiler deduce the `std::shared_ptr<Loop>` also. (Pack it with Args...)
The enforcement will be done in the constructor anyway.


Testing


Use data binding in XAML


Adicionando os arquivos


Das seh ich ja, aber das eine ist Englisch und das andere Deutsch. Da gelten andere Rechtschreibregeln.


Yeah, good point, I'll attempt that next.


Should be on MainThread


Avoid adding the zImage and kernel zip.
Not really needed in the repo


оооочень длинное название у теста получилось)) попробуешь покороче назвать?


Why is that?


Can adults ask more question than children?


Use binding