Update HACKING.rst per recent changes

Added "is not" usage with examples
* https://review.openstack.org/#/c/20865/

Fixed "not in" usage description
* https://review.openstack.org/#/c/20875/

Fixed some "not X in Y" corner cases.

Change-Id: I7534ef73e6fd525fd8f4bee594a4b37524699c08
This commit is contained in:
Zhongyue Luo 2013-02-04 10:07:08 +08:00
parent ee955d272a
commit 896295844a
3 changed files with 12 additions and 5 deletions

View File

@ -28,16 +28,23 @@ General
mylist = Foo().list() # OKAY, does not shadow built-in
- Use the "is not" operator when testing for unequal identities. Example::
- Use the "not in" operator for collection membership evaluation. Example::
if not X is Y: # BAD, intended behavior is ambiguous
pass
if not X in Y: # BAD, hard to understand
if X is not Y: # OKAY, intuitive
pass
- Use the "not in" operator for evaluating membership in a collection. Example::
if not X in Y: # BAD, intended behavior is ambiguous
pass
if X not in Y: # OKAY, intuitive
pass
if not (X in Y or X is Z): # OKAY, still better than all those 'not's
if not (X in Y or X in Z): # OKAY, still better than all those 'not's
pass

View File

@ -1172,7 +1172,7 @@ class Controller(wsgi.Controller):
def _action_change_password(self, req, id, body):
context = req.environ['nova.context']
if (not 'changePassword' in body
or not 'adminPass' in body['changePassword']):
or 'adminPass' not in body['changePassword']):
msg = _("No adminPass was specified")
raise exc.HTTPBadRequest(explanation=msg)
password = body['changePassword']['adminPass']

View File

@ -32,7 +32,7 @@ class JsonFilter(filters.BaseHostFilter):
if len(args) < 2:
return False
if op is operator.contains:
bad = not args[0] in args[1:]
bad = args[0] not in args[1:]
else:
bad = [arg for arg in args[1:]
if not op(args[0], arg)]