Le problème du Input est résolu, mais pour le reste je verrai plus tard pour utiliser la documentation récente (5.3).
En effet je viens d'apprendre que Mr Ritiner ne pourra pas nous aider à finir le projet. Je vais donc me concentrer sur la finalisation de celui-ci (intégration principalement).


Derp :(

I fix


Good question. I have switched gradually from running `[build_region.R](https://github.com/npct/pct-load/blob/master/build_region.R)` alone to always calling it from `[buildmaster.R](https://github.com/npct/pct-load/blob/master/buildmaster.R)`. My tentative view is that it's best to build regions (whether one or many) through a single script and at the moment that's `buildmaster.R`. Both scripts are a little messy and we could tidy them up individually and the links between them. With your Comp. Sci. hat on what's your recommendation Ali? Also @nikolai-b may have a view on this with his professional developer hat on.


@kennethgeerts

Not so happy with following code:
the trick with this code is to make distinction between a submit coming in from pressing the delete button (in which case ingredient_attributes[_destroy] will contain the label of the delete button), and a commit to save the meal (in which case the possible values for ingredient_attributes will only be 'true' or nil).


maybe add the other flag? the "let user remember the browser"? we should have all options explicit imho


Updated functions in RobotController.java for polling sensors.


![alt text](https://qph.ec.quoracdn.net/main-qimg-7c6148068e8b37e4818dbbb90c816398?convert_to_webp=true "Logo Title Text 1")


Markus

I'm working on getting Git Polling to work in BuildBot. I'm a little in the
dark about why but this order stops the bot from breaking. Once I have
solved some more problems (or moved to hooks) we should be able to return
it to the optimum.

Cheers

Nigel

---
Nigel W. Moriarty
Building 33R0349, Molecular Biophysics and Integrated Bioimaging
Lawrence Berkeley National Laboratory
Berkeley, CA 94720-8235
Phone : 510-486-5709     Email : NWMoriarty@LBL.gov
Fax   : 510-486-5909       Web  : CCI.LBL.gov

On Tue, Dec 6, 2016 at 1:29 PM, Markus Gerstel <notifications@github.com>
wrote:

> Hi Nigel,
>
> may I ask what the reason for this reordering is?
> The git@-URL would only be used with the -git-ssh command line switch (
> eb6f05f#diff-33c38ed4befaefe0c80e7b3b77d39922L429
> <https://github.com/cctbx/cctbx_project/commit/eb6f05f971a52ac06d126703e89e6ad30152d31e#diff-33c38ed4befaefe0c80e7b3b77d39922L429>),
> should however be preferred to the https://-URL due to speed and usability
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/cctbx/cctbx_project/commit/eb6f05f971a52ac06d126703e89e6ad30152d31e#commitcomment-20094392>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AA-IPPc_tCDWOtQs1mbknoCx93ckIb1rks5rFdPUgaJpZM4LF5_1>
> .
>


Should be noted that this commit includes a lot of nonfunctional / debug stuff. Also some new avatars for new dummy players.


@Grix I updated the Changelog on the wiki to include your changes: https://github.com/mstop4/FMODGMS/wiki/Changelog
Did I miss anything?


## This is a markdown file


Efectivamente, es un token privado revocado. Te aconsejo mirar la rama dev! Pero gracias por el aviso XD


The two overloads of the public method `AddSupertype` do two completely unrelated things as tested by the four tests `AddSupertypeForDeclarationsAddsClassToSupertypes`, `AddSupertypeForStringsAddsTypenameToSupertypeNames`, `AddSupertypeForDeclarationsHasNoEffectOnSupertypeNames`, and `AddSupertypeForStringsHasNoEffectsOnSupertypes`.
Is this really a good idea? Would it not be better to call the overload for String `AddSupertypeName`?


@adifucan I don't know if you are affiliated with Magento or not, but how can they expect us to wait for 2.2 for a problem that was reported in a "current" version? Seems that the development process is a bit backwards. That being said, how safe is this fixed code for a 2.1.2 production environment with a live website? Is there any confirmation this code works?


commit comment #nohashtag


Ufff menos mal qué susto. Bien hecho 👌


should it be sanitizeUserGroupTask instead of sanitizeUserChallengeTask?


Good news and bad news:
The good news is that I ran your script on my Xubuntu VirtualBox and it ran perfectly!
Bad news is that when I run execute.py, I still get the same TypeError about bytes patterns on string-like objects. I'm assuming this issue isn't about your script anymore though.


@bszymik  bruh, instead of this, I think it should just log the user in.


@jrevillas digamos que a los miembros mas jovenes de ACM les cuesta eso de no subir el token xD


As Dr. Yerraballi showed us during the lecture, the SINGLY_SIZE and DOUBLY_SIZE would need to change:
```
define SINGLY_SIZE (BLOCK_SECTOR_SIZE * 128)
define DOUBLY_SIZE (BLOCK_SECTOR_SIZE * 128 * 128)
```
The reason is that we need to multiply by sector size which would be 128 pointers ( = 512/4 ).


Your PhD thesis is available, great news!


@sgpyc @yzhwang Negative result of the day: average node degree does a horrible job of predicting the best-performing `do_a` and `do_b` on scale-free graphs.

![do_ab_random_do_b](https://cloud.githubusercontent.com/assets/976970/20944933/32a0f9b6-bbba-11e6-9366-de747c1e334c.png)
![do_ab_random_do_a](https://cloud.githubusercontent.com/assets/976970/20944932/329d089c-bbba-11e6-9188-7270e7537e10.png)


Thanks for spotting that!


Super su ti liste! Efikasne i elegantne :tada:
Resavac je samo jedan prolazak kroz listu. Nije najefikasniji, ali radice.
U pravu si, postoji mogucnost da ti pukne program zbog memorije. Bilo bi dobro da ubacis neku granicu koliko moze poteza da se pamti, a kada se predje granica onda skidas element sa kraja i stavljas novi na pocetak. Mada to bi zahtevalo drugaciju implementaciju, mozda preko dvostruko povezanih listi ili preko niza (sto mozda nije dobro jer neces uvek koristiti toliko memorije). Ali to bi cinilo resavac neupotrebljivim, osim ako moooozda neces da razvijas neke naprednije metode :wink:


![image](https://cloud.githubusercontent.com/assets/9699815/20945018/e5053df6-bc05-11e6-8499-154cb13e7e68.png)

La lección esta más que aprendida @rockneurotiko


어우..몇시야 주비야..멋져..


I would have extracted quantity from Product class, passed it as param to this method and stored in Shop.
Benefits:
-  flexibility: you can pass arbitrarily value, not just the one embedded in the product.
-  symmetry: you specify quantity when sell product ("minus" operation), it is expected that you also specify quantity when add product ("add" operation).


![](https://github.trello.services/images/mini-trello-icon.png) [Write down current idea for solution.](https://trello.com/c/5vDQLQuA/16-write-down-current-idea-for-solution)


![](https://github.trello.services/images/mini-trello-icon.png) [Research similarity measures.](https://trello.com/c/Li4zY0N7/17-research-similarity-measures)


![](https://github.trello.services/images/mini-trello-icon.png) [Write the thesis proposal.](https://trello.com/c/bqZtLuVa/13-write-the-thesis-proposal)


should we add a test case for an array version of the configs?

do you need to update the docs to clarify what animation configs can be?


Looks good.


The following doc(s) have been deployed to the [peterpanth](https://peterpanth-static-docs.pantheonsite.io/docs) Multidev environment:
- [docs/upstream-updates](https://peterpanth-static-docs.pantheonsite.io/docs/upstream-updates)


![](https://github.trello.services/images/mini-trello-icon.png) [Summarize related work.](https://trello.com/c/e7xPs0XR/7-summarize-related-work)


This is great. Maybe make a `piecetable/implementation.md` and link to it.


Indeed 👌


@Harrisonl If you're still using this fork, just wanted to let you know latest version 0.3.0 also has removed the fastly logging along with some new features.


I did end up reverting this because C# 7 is still in preview / early release, and the build server I'm using doesn't support it so it breaks builds. Also added a test case to this a2cde57


LGTM


Hi.


Tout à fait d'accord.
Même si dans le cas des constantes ci-dessus, je pense les avoir copier par erreur.


Err, what is this?


Yes, +1 this is actually a fail, this commit shouldn't have been pushed ^^" - Personal curiosity to compare the real benefits of enabling/disabling this.


Pas de problème


Perfect!


cc @jpetazzo


@mauritsvanrees Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.behavior/3/violations
```
plone/behavior/tests.py:70:40: Q000 Remove bad quotes.
plone/behavior/tests.py:70:63: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:26:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:27:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:31:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:32:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:36:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:37:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:41:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:42:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:43:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:47:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:48:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:52:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:53:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:54:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:58:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:59:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:60:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:61:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:65:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:66:15: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:67:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:68:21: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:72:1: C901 'behaviorDirective' is too complex (11)
plone/behavior/metaconfigure.py:81:13: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:123:17: Q000 Remove bad quotes.
plone/behavior/metaconfigure.py:135:17: Q000 Remove bad quotes.
plone/behavior/interfaces.py:88:15: Q000 Remove bad quotes.
plone/behavior/registration.py:9:1: I003 isort expected 1 blank line in imports, found 0
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


Parece que sim cara.


Currently the value of `IsGlobalClassModule` gets cached although the return value depends partly on the subtypes added via the public method `AddSubtype` and their subtypes. This means that after calling the `IsGlobalClassModule` the return value does not change anymore, even if subsequently global classes are added somewhere down the subtype chain. Is this really intended?

This behaviour is described by the three admittedly very lengthily named tests `ClassModulesWithASubtypeBelowInTheHiearchyThatIsAGlobalClassAndThatHasBeenAddedBeforeCallingIsGlobalClassTheFirstTimeIsAGlobalClass`, `ClassModulesDoNotBecomeAGlobalClassIfASubtypeBelowInTheHiearchyIsAddedThatIsAGlobalClassAfterIsAGlobalClassHasAlreadyBeenCalled`, and `ClassModulesDoNotBecomeAGlobalClassIfBelowInTheHierarchyASubtypeIsAddedThatIsAGlobalClassAfterIsAGlobalClassHasAlreadyBeenCalled`.

The only reasonable way I can see to change this behaviour is not to cache the return value if false is returned. Since subtypes and attributes cannot be removed (Well, at least not without holding on to a reference to the attributes after passing the collection into the constructor.), `IsGlobalClassModule` will always return true after it did so once, even without caching.


Here is the logic:
- simple quotes: no variables used inside
- double quotes: variable used


i have already remove text relocation and i have camera.apq8084 and camera.vendor.apq8084,the both


😱 nice!


Add solvuu-build


Now, inside my roles, I quote all the strings, to uniformize the style, highlight, and it is also a valid syntax


Same response than before


@sir-sigurd Do you think those imports and `isinstance` calls are preferable to checking type with the `geom_type` property?


really? what build server are you using then?


Also cleaned up indenting


@Adam Cheasley Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.api/1/violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/content.py:14:1: I004 isort found an unexpected blank line in imports
src/plone/api/content.py:59:37: Q000 Remove bad quotes.
src/plone/api/content.py:62:37: Q000 Remove bad quotes.
src/plone/api/content.py:65:80: E501 line too long (83 > 79 characters)
src/plone/api/content.py:78:34: F812 list comprehension redefines 'type' from line 25
src/plone/api/content.py:83:13: S001 found module formatter
src/plone/api/content.py:84:13: Q000 Remove bad quotes.
src/plone/api/content.py:85:13: Q000 Remove bad quotes.
src/plone/api/content.py:216:37: Q000 Remove bad quotes.
src/plone/api/content.py:219:37: Q000 Remove bad quotes.
src/plone/api/content.py:325:80: E501 line too long (83 > 79 characters)
src/plone/api/content.py:328:13: S001 found module formatter
src/plone/api/content.py:329:13: Q000 Remove bad quotes.
src/plone/api/content.py:330:13: Q000 Remove bad quotes.
src/plone/api/content.py:349:37: Q000 Remove bad quotes.
src/plone/api/content.py:352:37: Q000 Remove bad quotes.
src/plone/api/content.py:355:37: Q000 Remove bad quotes.
src/plone/api/content.py:366:5: B901 blind except: statement
src/plone/api/content.py:367:80: E501 line too long (80 > 79 characters)
src/plone/api/content.py:369:80: E501 line too long (90 > 79 characters)
src/plone/api/content.py:374:13: S001 found module formatter
src/plone/api/content.py:375:13: Q000 Remove bad quotes.
src/plone/api/content.py:376:13: Q000 Remove bad quotes.
src/plone/api/portal.py:12:1: I004 isort found an unexpected blank line in imports
src/plone/api/portal.py:15:1: I004 isort found an unexpected blank line in imports
src/plone/api/portal.py:25:80: E501 line too long (80 > 79 characters)
src/plone/api/portal.py:35:8: P002 found "hasattr", consider replacing it
src/plone/api/portal.py:41:9: Q000 Remove bad quotes.
src/plone/api/portal.py:42:9: Q000 Remove bad quotes.
src/plone/api/portal.py:43:9: Q000 Remove bad quotes.
src/plone/api/portal.py:60:26: Q000 Remove bad quotes.
src/plone/api/portal.py:78:37: Q000 Remove bad quotes.
src/plone/api/portal.py:92:13: S001 found module formatter
src/plone/api/portal.py:93:13: Q000 Remove bad quotes.
src/plone/api/portal.py:94:13: Q000 Remove bad quotes.
src/plone/api/portal.py:215:37: Q000 Remove bad quotes.
src/plone/api/portal.py:220:28: S001 found module formatter
src/plone/api/portal.py:223:33: Q000 Remove bad quotes.
src/plone/api/portal.py:236:37: Q000 Remove bad quotes.
src/plone/api/portal.py:238:37: Q000 Remove bad quotes.
src/plone/api/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/__init__.py:3:1: I001 isort found an import in the wrong position
src/plone/api/__init__.py:4:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/user.py:58:37: Q000 Remove bad quotes.
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:46:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_user.py:60:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_user.py:82:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_user.py:92:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_user.py:102:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_user.py:115:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_user.py:128:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_user.py:262:80: E501 line too long (85 > 79 characters)
src/plone/api/tests/test_user.py:407:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:409:80: E501 line too long (83 > 79 characters)
src/plone/api/tests/test_user.py:412:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_user.py:413:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_user.py:415:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_user.py:416:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:419:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_user.py:421:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_user.py:422:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:447:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:449:80: E501 line too long (83 > 79 characters)
src/plone/api/tests/test_user.py:451:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_user.py:453:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_user.py:454:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:457:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_user.py:459:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_user.py:463:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_portal.py:9:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:15:1: I004 isort found an unexpected blank line in imports
src/plone/api/tests/test_portal.py:37:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:75:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:76:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:77:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:78:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:79:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:80:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:81:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:82:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:83:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:84:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:85:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:86:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:87:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:88:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:89:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:90:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:91:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:92:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:93:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:94:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:95:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:96:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:147:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:159:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:168:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:170:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:171:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:184:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:185:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:186:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:202:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:203:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:204:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:205:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:219:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:220:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:221:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:314:33: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:16:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_content.py:76:80: E501 line too long (94 > 79 characters)
src/plone/api/tests/test_content.py:81:80: E501 line too long (98 > 79 characters)
src/plone/api/tests/test_content.py:100:80: E501 line too long (96 > 79 characters)
src/plone/api/tests/test_content.py:126:41: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:126:80: E501 line too long (80 > 79 characters)
src/plone/api/tests/test_content.py:298:80: E501 line too long (91 > 79 characters)
src/plone/api/tests/test_content.py:398:80: E501 line too long (80 > 79 characters)
src/plone/api/tests/test_content.py:399:80: E501 line too long (97 > 79 characters)
src/plone/api/tests/test_content.py:401:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_content.py:416:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:417:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:418:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:519:13: Q000 Remove bad quotes.
src/plone/api/tests/test_group.py:190:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_group.py:191:80: E501 line too long (85 > 79 characters)
src/plone/api/tests/test_group.py:333:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_group.py:335:80: E501 line too long (83 > 79 characters)
src/plone/api/tests/test_group.py:338:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:339:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_group.py:340:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:341:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_group.py:342:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_group.py:345:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_group.py:346:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:347:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_group.py:348:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_group.py:356:80: E501 line too long (105 > 79 characters)
src/plone/api/tests/test_group.py:357:80: E501 line too long (113 > 79 characters)
src/plone/api/tests/test_group.py:358:80: E501 line too long (94 > 79 characters)
src/plone/api/tests/test_group.py:360:80: E501 line too long (85 > 79 characters)
src/plone/api/tests/test_group.py:361:80: E501 line too long (87 > 79 characters)
src/plone/api/tests/test_group.py:363:80: E501 line too long (89 > 79 characters)
src/plone/api/tests/test_group.py:365:80: E501 line too long (92 > 79 characters)
src/plone/api/tests/test_group.py:366:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:367:80: E501 line too long (94 > 79 characters)
src/plone/api/tests/test_group.py:368:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_group.py:370:80: E501 line too long (83 > 79 characters)
src/plone/api/tests/test_group.py:371:80: E501 line too long (90 > 79 characters)
src/plone/api/tests/test_group.py:372:80: E501 line too long (80 > 79 characters)
src/plone/api/tests/test_group.py:373:80: E501 line too long (92 > 79 characters)
src/plone/api/tests/test_group.py:374:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:377:80: E501 line too long (92 > 79 characters)
src/plone/api/tests/test_group.py:378:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:379:80: E501 line too long (94 > 79 characters)
src/plone/api/tests/test_group.py:380:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_doctests.py:22:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_doctests.py:23:80: E501 line too long (114 > 79 characters)
src/plone/api/tests/test_doctests.py:27:80: E501 line too long (92 > 79 characters)
src/plone/api/tests/test_doctests.py:57:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_doctests.py:94:13: T001 print statement found.
src/plone/api/tests/test_doctests.py:94:19: S001 found module formatter
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@cillianderoiste Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.api/2/violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/content.py:10:1: I001 isort found an import in the wrong position
src/plone/api/content.py:26:41: Q000 Remove bad quotes.
src/plone/api/content.py:28:41: Q000 Remove bad quotes.
src/plone/api/content.py:74:34: F812 list comprehension redefines 'type' from line 26
src/plone/api/content.py:80:13: Q000 Remove bad quotes.
src/plone/api/content.py:81:13: Q000 Remove bad quotes.
src/plone/api/content.py:295:13: Q000 Remove bad quotes.
src/plone/api/content.py:296:13: Q000 Remove bad quotes.
src/plone/api/content.py:324:5: B901 blind except: statement
src/plone/api/content.py:336:13: Q000 Remove bad quotes.
src/plone/api/content.py:337:13: Q000 Remove bad quotes.
src/plone/api/portal.py:5:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:6:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:7:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:19:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/portal.py:20:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/portal.py:51:9: Q000 Remove bad quotes.
src/plone/api/portal.py:52:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:9: Q000 Remove bad quotes.
src/plone/api/portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/portal.py:220:37: Q000 Remove bad quotes.
src/plone/api/portal.py:223:8: E713 test for membership should be 'not in'
src/plone/api/portal.py:229:13: Q000 Remove bad quotes.
src/plone/api/portal.py:230:13: Q000 Remove bad quotes.
src/plone/api/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/env.py:0:1: C101 Coding magic comment not found
src/plone/api/user.py:67:13: Q000 Remove bad quotes.
src/plone/api/user.py:68:13: Q000 Remove bad quotes.
src/plone/api/validation.py:4:1: I001 isort found an import in the wrong position
src/plone/api/validation.py:8:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/validation.py:19:13: Q000 Remove bad quotes.
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:32: Q000 Remove bad quotes.
src/plone/api/validation.py:65:21: Q000 Remove bad quotes.
src/plone/api/validation.py:66:25: Q000 Remove bad quotes.
src/plone/api/validation.py:95:21: Q000 Remove bad quotes.
src/plone/api/validation.py:96:25: Q000 Remove bad quotes.
src/plone/api/validation.py:106:44: Q000 Remove bad quotes.
src/plone/api/validation.py:128:21: Q000 Remove bad quotes.
src/plone/api/validation.py:159:21: Q000 Remove bad quotes.
src/plone/api/validation.py:160:21: Q000 Remove bad quotes.
src/plone/api/validation.py:160:45: Q000 Remove bad quotes.
src/plone/api/tests/test_validation.py:8:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:61:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:68:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:91:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:92:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:99:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:100:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:101:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:124:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:125:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:130:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:131:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:132:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:138:49: Q000 Remove bad quotes.
src/plone/api/tests/test_validation.py:174:28: Q000 Remove bad quotes.
src/plone/api/tests/test_validation.py:180:30: Q000 Remove bad quotes.
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:7:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:36:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:122:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:123:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:124:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:125:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:127:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:178:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:179:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:180:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:181:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:194:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:195:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:196:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:213:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:214:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:228:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:229:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:310:34: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:346:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:353:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:354:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:355:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:356:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:411:19: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:16:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_content.py:136:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:482:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:483:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:484:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:590:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:599:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:600:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:601:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:602:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:603:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:604:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:605:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:606:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:607:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:608:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:609:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:610:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:611:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:612:13: Q000 Remove bad quotes.
src/plone/api/tests/test_env.py:8:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_env.py:29:14: D001 found declarePublic( replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:30:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
src/plone/api/tests/test_doctests.py:22:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


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


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


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


@gforcada Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.api/8/violations
```
src/plone/api/content.py:4:1: I001 isort found an import in the wrong position
src/plone/api/content.py:5:1: I001 isort found an import in the wrong position
src/plone/api/content.py:6:1: I001 isort found an import in the wrong position
src/plone/api/content.py:82:21: S001 found module formatter
src/plone/api/content.py:87:13: Q000 Remove bad quotes.
src/plone/api/content.py:88:13: Q000 Remove bad quotes.
src/plone/api/content.py:89:13: Q000 Remove bad quotes.
src/plone/api/content.py:286:1: C901 '_wf_transitions_for' is too complex (12)
src/plone/api/content.py:378:17: Q000 Remove bad quotes.
src/plone/api/content.py:379:17: Q000 Remove bad quotes.
src/plone/api/content.py:406:17: Q000 Remove bad quotes.
src/plone/api/content.py:431:5: B901 blind except: statement
src/plone/api/content.py:443:13: Q000 Remove bad quotes.
src/plone/api/content.py:444:13: Q000 Remove bad quotes.
src/plone/api/folder.py:5:1: I001 isort found an import in the wrong position
src/plone/api/folder.py:64:34: P101 format string does contain unindexed parameters
src/plone/api/portal.py:5:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:6:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:7:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:9:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:23:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/portal.py:54:9: Q000 Remove bad quotes.
src/plone/api/portal.py:55:9: Q000 Remove bad quotes.
src/plone/api/portal.py:56:9: Q000 Remove bad quotes.
src/plone/api/portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/portal.py:236:37: Q000 Remove bad quotes.
src/plone/api/portal.py:245:13: Q000 Remove bad quotes.
src/plone/api/portal.py:246:13: Q000 Remove bad quotes.
src/plone/api/env.py:18:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/user.py:5:1: I001 isort found an import in the wrong position
src/plone/api/user.py:66:13: Q000 Remove bad quotes.
src/plone/api/user.py:67:13: Q000 Remove bad quotes.
src/plone/api/user.py:353:37: Q000 Remove bad quotes.
src/plone/api/user.py:396:37: Q000 Remove bad quotes.
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:13: Q000 Remove bad quotes.
src/plone/api/validation.py:22:32: Q000 Remove bad quotes.
src/plone/api/validation.py:66:21: Q000 Remove bad quotes.
src/plone/api/validation.py:67:25: Q000 Remove bad quotes.
src/plone/api/validation.py:96:21: Q000 Remove bad quotes.
src/plone/api/validation.py:97:25: Q000 Remove bad quotes.
src/plone/api/validation.py:127:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:45: Q000 Remove bad quotes.
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:65:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:70:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:74:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:79:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:84:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:91:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:98:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:123:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:124:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:131:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:132:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:133:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:159:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:160:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:165:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:166:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:167:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/base.py:10:1: I001 isort found an import in the wrong position
src/plone/api/tests/base.py:11:1: I001 isort found an import in the wrong position
src/plone/api/tests/base.py:23:47: Q000 Remove bad quotes.
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:9:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_user.py:636:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:5:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:6:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:7:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_portal.py:38:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:92:41: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:92:57: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:130:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:131:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:132:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:133:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:134:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:135:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:136:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:137:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:138:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:139:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:140:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:141:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:142:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:143:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:144:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:145:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:146:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:147:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:148:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:149:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:150:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:151:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:152:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:153:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:154:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:155:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:156:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:158:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:159:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:160:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:190:22: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:200:22: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:209:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:210:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:225:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:226:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:241:27: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:242:24: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:243:25: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:244:22: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:257:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:258:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:259:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:391:34: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:427:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:434:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:435:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:436:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:437:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:491:23: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:8:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_content.py:9:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_content.py:19:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_content.py:20:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_content.py:21:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_content.py:26:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_content.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:147:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:249:37: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:630:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:631:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:632:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:766:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:775:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:776:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:777:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:778:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:779:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:780:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:781:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:782:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:783:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:784:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:785:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:786:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:787:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:788:13: Q000 Remove bad quotes.
src/plone/api/tests/test_group.py:4:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_env.py:9:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_env.py:30:14: D001 found declarePublic( replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:34:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
src/plone/api/tests/test_doctests.py:6:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_doctests.py:22:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
src/plone/api/tests/test_folder.py:6:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_folder.py:7:1: I001 isort found an import in the wrong position
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@thet Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.api/6/violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/portal.py:5:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:6:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:7:1: I001 isort found an import in the wrong position
src/plone/api/portal.py:19:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/portal.py:20:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/portal.py:51:9: Q000 Remove bad quotes.
src/plone/api/portal.py:52:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:9: Q000 Remove bad quotes.
src/plone/api/portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/portal.py:220:37: Q000 Remove bad quotes.
src/plone/api/portal.py:223:8: E713 test for membership should be 'not in'
src/plone/api/portal.py:229:13: Q000 Remove bad quotes.
src/plone/api/portal.py:230:13: Q000 Remove bad quotes.
src/plone/api/user.py:65:13: Q000 Remove bad quotes.
src/plone/api/user.py:66:13: Q000 Remove bad quotes.
src/plone/api/content.py:77:13: Q000 Remove bad quotes.
src/plone/api/content.py:78:13: Q000 Remove bad quotes.
src/plone/api/content.py:287:13: Q000 Remove bad quotes.
src/plone/api/content.py:288:13: Q000 Remove bad quotes.
src/plone/api/content.py:310:5: B901 blind except: statement
src/plone/api/content.py:322:13: Q000 Remove bad quotes.
src/plone/api/content.py:323:13: Q000 Remove bad quotes.
src/plone/api/validation.py:4:1: I001 isort found an import in the wrong position
src/plone/api/validation.py:8:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/validation.py:19:13: Q000 Remove bad quotes.
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:32: Q000 Remove bad quotes.
src/plone/api/validation.py:65:21: Q000 Remove bad quotes.
src/plone/api/validation.py:66:25: Q000 Remove bad quotes.
src/plone/api/validation.py:95:21: Q000 Remove bad quotes.
src/plone/api/validation.py:96:25: Q000 Remove bad quotes.
src/plone/api/validation.py:126:21: Q000 Remove bad quotes.
src/plone/api/validation.py:127:21: Q000 Remove bad quotes.
src/plone/api/validation.py:127:45: Q000 Remove bad quotes.
src/plone/api/env.py:0:1: C101 Coding magic comment not found
src/plone/api/env.py:3:1: I001 isort found an import in the wrong position
src/plone/api/env.py:8:1: I001 isort found an import in the wrong position
src/plone/api/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/tests/test_content.py:16:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_content.py:135:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:487:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:488:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:489:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:594:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:603:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:604:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:605:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:606:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:607:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:608:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:609:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:610:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:611:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:612:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:613:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:614:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:615:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:616:13: Q000 Remove bad quotes.
src/plone/api/tests/test_env.py:8:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_env.py:29:14: D001 found declarePublic( replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:30:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected( replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
src/plone/api/tests/test_doctests.py:22:1: I003 isort expected 1 blank line in imports, found 0
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:63:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:68:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:72:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:77:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:82:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:89:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:96:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:119:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:120:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:127:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:128:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:129:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:152:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:153:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:158:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:159:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_validation.py:160:14: D001 found assertEquals( replace it with assertEqual
src/plone/api/tests/test_portal.py:36:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:61:41: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:61:57: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:122:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:123:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:124:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:125:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:127:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:178:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:179:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:180:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:181:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:194:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:195:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:196:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:213:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:214:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:228:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:229:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:339:34: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:375:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:382:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:383:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:384:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:385:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:441:19: Q000 Remove bad quotes.
src/plone/api/tests/base.py:26:80: E501 line too long (80 > 79 characters)
src/plone/api/tests/base.py:48:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:50:28: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:7:1: I001 isort found an import in the wrong position
src/plone/api/tests/test_user.py:524:20: Q000 Remove bad quotes.
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.