/ ghmeta / __init__.py
__init__.py
 1  '''
 2  Access to github metadata as exported by ghrip (https://github.com/zw/ghrip).
 3  '''
 4  import json
 5  
 6  class GhMeta:
 7      def __init__(self, paths):
 8          self.paths = paths
 9  
10      def __getitem__(self, idx):
11          (repo, pull) = idx
12          base = self.paths[repo]
13  
14          filename = f'{base}/issues/{pull//100}xx/{pull}.json'
15          try:
16              with open(filename, 'r') as f:
17                  data0 = json.load(f)
18          except IOError as e:
19              raise KeyError
20  
21          filename = f'{base}/issues/{pull//100}xx/{pull}-PR.json'
22          try:
23              with open(filename, 'r') as f:
24                  data1 = json.load(f)
25          except IOError as e:
26              data1 = None
27  
28          data0['pr'] = data1
29          return data0
30  
31      def get(self, pull, default=None):
32          try:
33              return self[pull]
34          except KeyError:
35              return default