template.render(datapackage=datapackage, date=datetime.datetime.now()).encode('utf8')) # Strip out unnecessary data from datapackage for res in datapackage['resources']: del res['has_data'] if 'cache_filepath' in res: del res['cache_filepath'] if 'reason' in res: del res['reason'] if 'detected_format' in res: del res['detected_format'] zipf.writestr('datapackage.json', json.dumps(datapackage, indent=4)) statinfo = os.stat(filepath) filesize = statinfo.st_size package_zip = PackageZip.get_for_package(package_id) if not package_zip: PackageZip.create(package_id, filepath, filesize, has_data=any_have_data) log.info('Package zip created: %s', filepath) else: package_zip.filepath = filepath package_zip.updated = datetime.datetime.now() package_zip.size = filesize package_zip.has_data = any_have_data log.info('Package zip updated: %s', filepath) model.Session.add(package_zip) model.Session.commit()