      def build_page(self, container, category):
          """ Build a plugin config page """
          logger.debug("Building plugin config page: '%s'", category)
          plugins = sorted(list(key for key in self.config_cpanel_dict[category].keys()))
          panel_kwargs = dict(columns=2, option_columns=2, blank_nones=False)
          if any(plugin != category for plugin in plugins):
              page = ttk.Notebook(container)
              page.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
              for plugin in plugins:
                  cp_options = [opt for opt in self.config_cpanel_dict[category][plugin].values()]
 
</s> remove                 cp_options = [opt for opt in self.config_cpanel_dict[category][plugin].values()]
 </s> add                 cp_options = list(self.config_cpanel_dict[category][plugin].values()) </s> remove             cp_options = [opt for opt in self.config_cpanel_dict[category][plugins[0]].values()]
 </s> add             cp_options = list(self.config_cpanel_dict[category][plugins[0]].values()) </s> remove         self.add_scrollbar()
        self.canvas.bind("<Configure>", self.resize_frame)
 </s> add         if scrollbar:
            self.add_scrollbar()
        self._canvas.bind("<Configure>", self.resize_frame) </s> remove         logger.trace("Requested color format '%s' for frame '%s'", colorformat, self._filename)
        image = getattr(self, "_image_as_{}".format(colorformat.lower()))()
 </s> add         logger.trace("Requested color format '%s' for frame '%s'", color_format, self._filename)
        image = getattr(self, "_image_as_{}".format(color_format.lower()))()
        panel_kwargs = dict(columns=2, max_columns=2, option_columns=2, blank_nones=False)
      def build_page(self, container, category):
          """ Build a plugin config page """
          logger.debug("Building plugin config page: '%s'", category)
          plugins = sorted(list(key for key in self.config_cpanel_dict[category].keys()))
        panel_kwargs = dict(columns=2, max_columns=2, option_columns=2, blank_nones=False)
          if any(plugin != category for plugin in plugins):
              page = ttk.Notebook(container)
              page.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
              for plugin in plugins:
                  cp_options = [opt for opt in self.config_cpanel_dict[category][plugin].values()]
keep keep keep keep replace keep keep keep keep keep
 Core updates (#982)

* plugins.extract.align
  - Expose normalization method

* lib.gui core updates
  - Minor updates to support future development. 
lib/gui/popup_configure.py