"""Digital ETL specific s3 utility functions.""" import json from flows import s3 def get_manifest_objects(url): """Generate the s3 object(s) listed in a manifest file. Args: url (str): manifest object url. Yields: dict: boto.S3.Object.get() data. """ manifest = s3.get_object(url).get() content = manifest['Body'].read() data = json.loads(str(content, 'ascii')) for entry in data['entries']: entry_object = s3.get_object(entry['url']) entry_data = entry_object.get() entry_data['name'] = entry_object.key yield entry_data