# Path: pyanaconda/constants.py
# ANACONDA_ENVIRON = "anaconda"
# 
# FIRSTBOOT_ENVIRON = "firstboot"
# 
# Path: pyanaconda/errors.py
# class RemovedModuleError(ImportError):
#     pass


import os
import imp
import inspect
import copy
import sys
import types
import logging
from pyanaconda.constants import ANACONDA_ENVIRON, FIRSTBOOT_ENVIRON
from pyanaconda.errors import RemovedModuleError
from pykickstart.constants import FIRSTBOOT_RECONFIG
           to display this UI object.
        """
        raise TypeError("UIObject.window has to be overriden")

    @property
    def data(self):
        return self._data

class FirstbootSpokeMixIn(object):
    """This MixIn class marks Spokes as usable for Firstboot
       and Anaconda.
    """
    @classmethod
    def should_run(cls, environment, data):
        """This method is responsible for beginning Spoke initialization
           in the firstboot environment (even before __init__).

           It should return True if the spoke is to be shown
           and False if it should be skipped.

           It might be called multiple times, with or without (None)
           the data argument.
        """

        if environment == ANACONDA_ENVIRON:
            return True
        elif environment == FIRSTBOOT_ENVIRON and data is None:
            # cannot decide, stay in the game and let another call with data
            # available (will come) decide
            return True

# Path: pyanaconda/constants.py
# ANACONDA_ENVIRON = "anaconda"
# 
# FIRSTBOOT_ENVIRON = "firstboot"
# 
# Path: pyanaconda/errors.py
# class RemovedModuleError(ImportError):
#     pass


# Path: pyanaconda/ui/common.py
import os
import imp
import inspect
import copy
import sys
import types
import logging
from pyanaconda.constants import ANACONDA_ENVIRON, FIRSTBOOT_ENVIRON
from pyanaconda.errors import RemovedModuleError
from pykickstart.constants import FIRSTBOOT_RECONFIG

           to display this UI object.
        """
        raise TypeError("UIObject.window has to be overriden")

    @property
    def data(self):
        return self._data

class FirstbootSpokeMixIn(object):
    """This MixIn class marks Spokes as usable for Firstboot
       and Anaconda.
    """
    @classmethod
    def should_run(cls, environment, data):
        """This method is responsible for beginning Spoke initialization
           in the firstboot environment (even before __init__).

           It should return True if the spoke is to be shown
           and False if it should be skipped.

           It might be called multiple times, with or without (None)
           the data argument.
        """

        if environment == ANACONDA_ENVIRON:
            return True
        elif environment == FIRSTBOOT_ENVIRON and data is None:
            # cannot decide, stay in the game and let another call with data
            # available (will come) decide
            return True

        elif environment == FIRSTBOOT_ENVIRON and \