Beispiel #1
0
 def run(self):
     chdir(self.base_dir)
     if self.virgin:
         change = True
         if not isdir(self.output_dir):
             makedirs(self.output_dir)
         self.manifest = self.data.setdefault('manifest', {})
         self.output_data = self.data.setdefault('output_data', {})
         self.prereq_data = self.data.setdefault('prereq_data', {})
         self.virgin = False
     else:
         change = False
     self.manifest_changed = False
     self.mtime_cache = {}
     self.prereq = True
     for asset in self.prereqs:
         if not asset.is_fresh():
             change = True
             asset.generate()
     self.prereq = None
     for asset in self.generate:
         if not asset.is_fresh():
             change = True
             asset.generate()
     manifest_path = self.manifest_path
     if manifest_path and self.manifest_changed:
         print "=> Updated manifest:", manifest_path
         manifest_file = open(manifest_path, 'wb')
         encode_json(self.manifest, manifest_file)
         manifest_file.close()
     if change:
         data_file = open(self.data_path, 'wb')
         dump(self.data, data_file, 2)
         data_file.close()
Beispiel #2
0
 def run(self):
     chdir(self.base_dir)
     if self.virgin:
         change = True
         if not isdir(self.output_dir):
             makedirs(self.output_dir)
         self.manifest = self.data.setdefault('manifest', {})
         self.output_data = self.data.setdefault('output_data', {})
         self.prereq_data = self.data.setdefault('prereq_data', {})
         self.virgin = False
     else:
         change = False
     self.manifest_changed = False
     self.change_checker = FileChangeDetector()
     self.prereq = True
     for asset in self.prereqs:
         if not asset.is_fresh():
             change = True
             asset.generate()
     self.prereq = None
     for asset in self.generate:
         if not asset.is_fresh():
             change = True
             asset.generate()
     manifest_path = self.manifest_path
     if manifest_path and (self.manifest_changed or self.manifest_force or not isfile(manifest_path)):
         log.info("Updated manifest: %s" % manifest_path)
         manifest_file = open(manifest_path, 'wb')
         encode_json(self.manifest, manifest_file)
         manifest_file.close()
     if change:
         data_file = open(self.data_path, 'wb')
         dump(self.data, data_file, 2)
         data_file.close()
Beispiel #3
0
 def run(self):
     chdir(self.base_dir)
     if self.virgin:
         change = True
         if not isdir(self.output_dir):
             makedirs(self.output_dir)
         self.manifest = self.data.setdefault('manifest', {})
         self.output_data = self.data.setdefault('output_data', {})
         self.prereq_data = self.data.setdefault('prereq_data', {})
         self.virgin = False
     else:
         change = False
     self.manifest_changed = False
     self.mtime_cache = {}
     self.prereq = True
     for asset in self.prereqs:
         if not asset.is_fresh():
             change = True
             asset.generate()
     self.prereq = None
     for asset in self.generate:
         if not asset.is_fresh():
             change = True
             asset.generate()
     manifest_path = self.manifest_path
     if manifest_path and (self.manifest_changed or self.manifest_force
                           or self.force):
         log.info("Updated manifest: %s" % manifest_path)
         manifest_file = open(manifest_path, 'wb')
         encode_json(self.manifest, manifest_file)
         manifest_file.close()
     if change:
         data_file = open(self.data_path, 'wb')
         dump(self.data, data_file, 2)
         data_file.close()
Beispiel #4
0
def main():
    data = {}
    info = ElementTree.fromstring(urlopen(feedburner).read())
    data['rss'] = int(info.find('feed/entry').get('circulation'))
    info = decode_json(urlopen(twitter).read())
    data['twitter'] = info['followers_count']
    info = decode_json(urlopen(github).read())
    data['github'] = info['user']['followers_count']
    for key, val in data.items():
        if key in prev_data:
            prev_val = prev_data[key]
            if prev_val > val:
                val = prev_val
            else:
                prev_data[key] = val
        if val > 1000:
            val = '%s,%03d' % divmod(val, 1000)
        else:
            val = str(val)
        data[key] = val
    js = open(output, 'wb')
    js.write('loadMetrics(')
    js.write(encode_json(data))
    js.write(');\n')
    js.close()
    print time(), data
Beispiel #5
0
def get_data(authors, stories):
    return encode_json(
        dict(authors=authors, stories=stories)
        ).replace('/', r'\/')