# Path: conjureup/app_config.py
# class AppConfig:
#     def __setattr__(self, name, value):
#     def _internal_state_key(self):
#     def all_steps(self):
#     def has_bundle_modifications(self):
#     async def save(self):
#     async def restore(self):
# 
# Path: conjureup/ui/widgets/base.py
# class ContainerWidgetWrap(WidgetWrap, WidgetContainerMixin):
#     """
#     Base for WidgetWraps that wrap containers and want container methods
#     to pass through.
#     """
# 
#     def __init__(self, *args, **kwargs):
#         super().__init__(*args, **kwargs)
# 
#     @property
#     def contents(self):
#         return self._w.contents
# 
#     @property
#     def focus(self):
#         return self._w.focus
# 
#     @property
#     def focus_position(self):
#         return self._w.focus_position
# 
#     @focus_position.setter
#     def focus_position(self, value):
#         self._w.focus_position = value
# 
# Path: conjureup/ui/widgets/buttons.py
# class SecondaryButton(StyledButton):
#     enabled_styles = ('button_secondary', 'button_secondary focus')
#     disabled_styles = ('disabled_button', 'disabled_button focus')


from theblues.errors import EntityNotFound
from urwid import Columns, Text
from conjureup.app_config import app
from conjureup.ui.views.base import BaseView
from conjureup.ui.widgets.base import ContainerWidgetWrap
from conjureup.ui.widgets.buttons import SecondaryButton
        self.after_keypress()  # force footer update

    def build_widget(self):
        ws = []
        max_app_name_len = max(
            [len(app.name) for app in self.applications])
        for application in sorted(self.applications, key=lambda app: app.name):
            ws.append(Text(""))
            ws.append(ApplicationWidget(application,
                                        max_app_name_len,
                                        self._config_cb))
        return ws

    def build_buttons(self):
        label = 'DEPLOY'
        return [self.button(label, self.submit)]

    def after_keypress(self):
        "Check if focused widget changed, then update readme."
        fw = self.widget.focus
        if not isinstance(fw, ApplicationWidget):
            self.set_footer("No selected application")
        else:
            self.set_footer(self.get_readme(fw.application.charm))

    def get_readme(self, application):
        return readme_cache[application]

    async def _load_readme(self, charm):
        try:

# Path: conjureup/app_config.py
# class AppConfig:
#     def __setattr__(self, name, value):
#     def _internal_state_key(self):
#     def all_steps(self):
#     def has_bundle_modifications(self):
#     async def save(self):
#     async def restore(self):
# 
# Path: conjureup/ui/widgets/base.py
# class ContainerWidgetWrap(WidgetWrap, WidgetContainerMixin):
#     """
#     Base for WidgetWraps that wrap containers and want container methods
#     to pass through.
#     """
# 
#     def __init__(self, *args, **kwargs):
#         super().__init__(*args, **kwargs)
# 
#     @property
#     def contents(self):
#         return self._w.contents
# 
#     @property
#     def focus(self):
#         return self._w.focus
# 
#     @property
#     def focus_position(self):
#         return self._w.focus_position
# 
#     @focus_position.setter
#     def focus_position(self, value):
#         self._w.focus_position = value
# 
# Path: conjureup/ui/widgets/buttons.py
# class SecondaryButton(StyledButton):
#     enabled_styles = ('button_secondary', 'button_secondary focus')
#     disabled_styles = ('disabled_button', 'disabled_button focus')


# Path: conjureup/ui/views/applicationlist.py
from theblues.errors import EntityNotFound
from urwid import Columns, Text
from conjureup.app_config import app
from conjureup.ui.views.base import BaseView
from conjureup.ui.widgets.base import ContainerWidgetWrap
from conjureup.ui.widgets.buttons import SecondaryButton

        self.after_keypress()  # force footer update

    def build_widget(self):
        ws = []
        max_app_name_len = max(
            [len(app.name) for app in self.applications])
        for application in sorted(self.applications, key=lambda app: app.name):
            ws.append(Text(""))
            ws.append(ApplicationWidget(application,
                                        max_app_name_len,
                                        self._config_cb))
        return ws

    def build_buttons(self):
        label = 'DEPLOY'
        return [self.button(label, self.submit)]

    def after_keypress(self):
        "Check if focused widget changed, then update readme."
        fw = self.widget.focus
        if not isinstance(fw, ApplicationWidget):
            self.set_footer("No selected application")
        else:
            self.set_footer(self.get_readme(fw.application.charm))

    def get_readme(self, application):
        return readme_cache[application]

    async def _load_readme(self, charm):
        try:

            readme = await app.juju.charmstore.entity_readme_content(charm)