def init_app(self, app):
if len(self._attached_bundles) == <NUM_LIT:0>:<EOL><INDENT>raise NoBundlesAttached("<STR_LIT>")<EOL><DEDENT>for bundle in self._attached_bundles:<EOL><INDENT>processed_bundle = {<EOL>'<STR_LIT:path>': bundle.path,<EOL>'<STR_LIT:description>': bundle.description,<EOL>'<STR_LIT>': []<EOL>}<EOL>for (bp, description) in bundle.blueprints:<EOL><INDENT>blueprint = self._register_blueprint(app, bp, bundle.path,<EOL>self.get_bp_path(bp), description)<EOL>processed_bundle['<STR_LIT>'].append(blueprint)<EOL><DEDENT>self._registered_bundles.append(processed_bundle)<EOL><DEDENT>
Initializes Journey extension

        :param app: App passed from constructor or directly to init_app
        :raises:
            - NoBundlesAttached if no bundles has been attached attached