Pylint for job_obsevent_dispatcher.py
authorLingchaox Xin <lingchaox.xin@intel.com>
Mon, 17 Jun 2013 06:44:33 +0000 (14:44 +0800)
committerLingchaox Xin <lingchaox.xin@intel.com>
Mon, 17 Jun 2013 08:24:14 +0000 (16:24 +0800)
Use pylint disable-msg=E1101 since sys.setdefaultencoding is special
and gets removed from the namespace.

In dict, `in` is not just pythonic but also in performance than `has_key`, e.g.:

$ python -mtimeit -s'd=dict.fromkeys(range(99))' '12 in d'
10000000 loops, best of 3: 0.0492 usec per loop
$ python -mtimeit -s'd=dict.fromkeys(range(99))' 'd.has_key(12)'
10000000 loops, best of 3: 0.0937 usec per loop

In addition, has_key() is deprecated in favor of key in d:

http://docs.python.org/2/library/stdtypes.html#dict.has_key

Change-Id: Ic8b087d99ff8557c0c7f6a786478c037be03f0cf
Signed-off-by: Lingchaox Xin <lingchaox.xin@intel.com>
job_obsevent_dispatcher.py

index 27c09ad..0dd4a59 100755 (executable)
@@ -1,11 +1,15 @@
 #!/usr/bin/env python
 
+"""This job is used to dispatch obs events."""
+
 import os
 
 # set default char-set endcoding to utf-8
 import sys
 reload(sys)
+# pylint: disable-msg=E1101
 sys.setdefaultencoding('utf-8')
+# pylint: enable-msg=E1101
 
 try:
     import json
@@ -15,27 +19,26 @@ except ImportError:
 from common.buildtrigger import trigger_next
 
 def main():
+    """The main body"""
+
     event_dict = json.loads(os.getenv('OBS_EVENT_STRING'))
     buildcheck_job = os.getenv('BUILDCHECK_JOB_NAME') or 'buildcheck-post'
     requests_job = os.getenv('REQUESTS_JOB_NAME') or 'requests'
     repomaker_job = os.getenv('REPOMAKER_JOB_NAME') or 'repomaker'
 
-    if event_dict and event_dict.has_key('fields'):
-        if event_dict['fields'].has_key('obsEvent'):
-            event_type = event_dict['fields']['obsEvent']['type']
-            if 'OBS_SRCSRV_REQUEST' in event_type:
-                trigger_next(requests_job, event_dict['fields']['obsEvent'])
-            elif 'OBS_REPO_PUBLISH' in event_type:
-                event_prj = event_dict['fields']['obsEvent']['project']
-                if event_type == 'OBS_REPO_PUBLISHED':
-                    trigger_next(repomaker_job, event_dict['fields']['obsEvent'])
-                elif event_type == 'OBS_REPO_PUBLISH_STATE':
-                    if 'buildcheck' in event_prj:
-                        trigger_next(buildcheck_job, event_dict['fields']['obsEvent'])
-            #elif 'OBS_BUILD' in event_type:
-            #    event_prj = event_dict['fields']['obsEvent']['project']
-            #    if 'buildcheck' in event_prj:
-            #        write_to('%s.env' % buildcheck_job, event_dict['fields']['obsEvent'])
+    if 'fields' in event_dict and 'obsEvent' in event_dict['fields']:
+        event_fields = event_dict['fields']
+        event_type = event_fields['obsEvent']['type']
+
+        if 'OBS_SRCSRV_REQUEST' in event_type:
+            trigger_next(requests_job, event_fields['obsEvent'])
+        elif 'OBS_REPO_PUBLISH' in event_type:
+            event_prj = event_fields['obsEvent']['project']
+            if event_type == 'OBS_REPO_PUBLISHED':
+                trigger_next(repomaker_job, event_fields['obsEvent'])
+            elif event_type == 'OBS_REPO_PUBLISH_STATE':
+                if 'buildcheck' in event_prj:
+                    trigger_next(buildcheck_job, event_fields['obsEvent'])
 
 if __name__ == '__main__':
     main()