pyanaconda.ui.tui.spokes package

Submodules

pyanaconda.ui.tui.spokes.askvnc module

class pyanaconda.ui.tui.spokes.askvnc.AskVNCSpoke(app, data, storage=None, payload=None, instclass=None, message=None)

Bases: pyanaconda.ui.tui.spokes.NormalTUISpoke

apply()
indirect
input(args, key)

Override input so that we can launch the VNC password spoke

refresh(args=None)
title = 'VNC'
class pyanaconda.ui.tui.spokes.askvnc.VNCPassSpoke(app, data, storage, payload, instclass, message=None)

Bases: pyanaconda.ui.tui.spokes.NormalTUISpoke

apply()
completed
indirect
prompt(args=None)

Override prompt as password typing is special.

refresh(args=None)
title = 'VNC Password'
pyanaconda.ui.tui.spokes.askvnc.exception_msg_handler_and_exit(event, data)

Display an exception and exit so that we don’t end up in a loop.

pyanaconda.ui.tui.spokes.langsupport module

class pyanaconda.ui.tui.spokes.langsupport.LangSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.common.FirstbootSpokeMixIn, pyanaconda.ui.tui.spokes.NormalTUISpoke

This spoke allows a user to select their installed language. Note that this does not affect the display of the installer, it only will affect the system post-install, because it’s too much of a pain to make other languages work in text-mode.

Also this doesn’t allow for selection of multiple languages like in the GUI.

apply()

Store the selected langsupport locales

category

alias of LocalizationCategory

completed
input(args, key)

Handle user input.

mandatory
prompt(args=None)

Override default prompt with a custom prompt.

refresh(args=None)

args is None if we want a list of languages; or, it is a list of all locales for a language.

status
title = 'Language settings'

pyanaconda.ui.tui.spokes.network module

class pyanaconda.ui.tui.spokes.network.NetworkSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.tui.spokes.EditTUISpoke

Spoke used to configure network settings.

apply()

Apply all of our settings.

category

alias of SystemCategory

completed

Check whether this spoke is complete or not. Do an additional check if we’re installing from CD/DVD, since a network connection should not be required in this case.

initialize()
input(args, key)

Handle the input.

mandatory

This spoke should only be necessary if we’re using an installation source that requires a network connection.

refresh(args=None)

Refresh screen.

status

Short msg telling what devices are active.

title = 'Network configuration'

pyanaconda.ui.tui.spokes.password module

class pyanaconda.ui.tui.spokes.password.PasswordSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.common.FirstbootSpokeMixIn, pyanaconda.ui.tui.spokes.EditTUIDialog

apply()
category

alias of UserSettingsCategory

completed
mandatory
prompt(args=None)

Overriden prompt as password typing is special.

refresh(args=None)
showable
status
title = 'Root password'

pyanaconda.ui.tui.spokes.progress module

class pyanaconda.ui.tui.spokes.progress.ProgressSpoke(app, ksdata, storage, payload, instclass)

Bases: pyanaconda.ui.tui.spokes.StandaloneTUISpoke

apply()
completed
input(args, key)
postForHub

alias of SummaryHub

priority = 0
prompt(args=None)
refresh(args=None)
title = 'Progress'

pyanaconda.ui.tui.spokes.shell_spoke module

Text mode shell spoke

class pyanaconda.ui.tui.spokes.shell_spoke.ShellSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.tui.spokes.NormalTUISpoke

apply()
category

alias of SystemCategory

completed
prompt(args=None)
refresh(args=None)
classmethod should_run(environment, data)
status
title = 'Shell'

pyanaconda.ui.tui.spokes.software module

class pyanaconda.ui.tui.spokes.software.SoftwareSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.tui.spokes.NormalTUISpoke

Spoke used to read new value of text to represent source repo.

apply()

Apply our selections

category

alias of SoftwareCategory

checkSoftwareSelection()

Depsolving

completed

Make sure our threads are done running and vars are set.

WARNING: This can be called before the spoke is finished initializing if the spoke starts a thread. It should make sure it doesn’t access things until they are completely setup.

initialize()
input(args, key)

Handle the input; this chooses the desktop environment.

ready

If we’re ready to move on.

refresh(args=None)

Refresh screen.

showable
status

Where we are in the process

title = 'Software selection'
txid_valid

Whether we have a valid dnf tx id.

pyanaconda.ui.tui.spokes.source module

class pyanaconda.ui.tui.spokes.source.SourceSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.tui.spokes.EditTUISpoke, pyanaconda.ui.helpers.SourceSwitchHandler

Spoke used to customize the install source repo.

apply()

Execute the selections made.

category

alias of SoftwareCategory

completed
initialize()
input(args, key)

Handle the input; this decides the repo source.

ready

Check if the spoke is ready.

refresh(args=None)
showable
status
title = 'Installation source'

pyanaconda.ui.tui.spokes.storage module

class pyanaconda.ui.tui.spokes.storage.StorageSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.tui.spokes.NormalTUISpoke

Storage spoke where users proceed to customize storage features such as disk selection, partitioning, and fs type.

apply()
category

alias of SystemCategory

completed
execute()
initialize()
input(args, key)

Grab the disk choice and update things

mandatory
ready
refresh(args=None)
run_dasdfmt(to_format)

This generates the list of DASDs requiring dasdfmt and runs dasdfmt against them.

showable
status

A short string describing the current status of storage setup.

title = 'Installation Destination'
class pyanaconda.ui.tui.spokes.storage.AutoPartSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.tui.spokes.NormalTUISpoke

Autopartitioning options are presented here.

apply()
category

alias of SystemCategory

indirect
input(args, key)

Grab the choice and update things

refresh(args=None)
title = 'Autopartitioning Options'

pyanaconda.ui.tui.spokes.time_spoke module

class pyanaconda.ui.tui.spokes.time_spoke.TimeZoneSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.common.FirstbootSpokeMixIn, pyanaconda.ui.tui.spokes.NormalTUISpoke

apply()
category

alias of LocalizationCategory

completed
initialize()
input(args, key)
mandatory
prompt(args=None)
refresh(args=None)

args is None if we want a list of zones or “zone” to show all timezones in that zone.

status
title = 'Timezone settings'

pyanaconda.ui.tui.spokes.user module

class pyanaconda.ui.tui.spokes.user.UserSpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.common.FirstbootSpokeMixIn, pyanaconda.ui.tui.spokes.EditTUISpoke

apply()
category

alias of UserSettingsCategory

completed

Verify a user is created; verify pw is set if option checked.

edit_fields = [EditTUISpokeEntry(title='Create user', attribute='_create', aux='check', visible=True), EditTUISpokeEntry(title='Fullname', attribute='gecos', aux=re.compile('^[^:]*$'), visible=<function UserSpoke.<lambda> at 0x7fea9fa497b8>), EditTUISpokeEntry(title='Username', attribute='name', aux=re.compile('^[a-zA-Z0-9._](([a-zA-Z0-9._-]{0,2})|([a-zA-Z0-9._-]{3}(?<!root))|([a-zA-Z0-9._-]{4,31})|([a-zA-Z0-9._-]{,30}\\$))$'), visible=<function UserSpoke.<lambda> at 0x7fea9fa49b70>), EditTUISpokeEntry(title='Use password', attribute='_use_password', aux='check', visible=<function UserSpoke.<lambda> at 0x7fea9fa49840>), EditTUISpokeEntry(title='Password', attribute='_password', aux=re.compile('.*'), visible=<function UserSpoke.<lambda> at 0x7fea9fa49d08>), EditTUISpokeEntry(title='Administrator', attribute='_admin', aux='check', visible=<function UserSpoke.<lambda> at 0x7fea9fa49e18>), EditTUISpokeEntry(title='Groups', attribute='_groups', aux=re.compile('^\\s*([a-zA-Z0-9._](([a-zA-Z0-9._-]{0,2})|([a-zA-Z0-9._-]{3}(?<!root))|([a-zA-Z0-9._-]{4,31})|([a-zA-Z0-9._-]{,30}\\$))(\\s*,\\s*[a-zA-Z0-9._](([a-zA-Z0-9._-]{0,2})|([a-zA-Z0-9._-]{3}(?<!root))|([a-z), visible=<function UserSpoke.<lambda> at 0x7fea9f4b0488>)]
mandatory

Only mandatory if the root pw hasn’t been set in the UI eg. not mandatory if the root account was locked in a kickstart

refresh(args=None)
classmethod should_run(environment, data)
showable
status
title = 'User creation'

pyanaconda.ui.tui.spokes.warnings_spoke module

class pyanaconda.ui.tui.spokes.warnings_spoke.WarningsSpoke(*args, **kwargs)

Bases: pyanaconda.ui.tui.spokes.StandaloneTUISpoke

apply()
completed
preForHub

alias of SummaryHub

priority = 0
refresh(args=None)
title = 'Warnings'

Module contents

class pyanaconda.ui.tui.spokes.TUISpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.tui.tuiobject.TUIObject, pyanaconda.ui.tui.simpleline.base.Widget, pyanaconda.ui.common.Spoke

Base TUI Spoke class implementing the pyanaconda.ui.common.Spoke API. It also acts as a Widget so we can easily add it to Hub, where is shows as a summary box with title, description and completed checkbox.

Parameters:
  • title (str) – title of this spoke
  • category (string) – category this spoke belongs to
completed
input(args, key)

Handle the input, the base class just forwards it to the App level.

refresh(args=None)
render(width)

Render the summary representation for Hub to internal buffer.

status
title = 'Default spoke title'
class pyanaconda.ui.tui.spokes.EditTUISpoke(app, data, storage, payload, instclass, policy_name='')

Bases: pyanaconda.ui.tui.spokes.NormalTUISpoke

Spoke with declarative semantics, it contains a list of titles, attribute names and regexps that specify the fields of an object the user allowed to edit.

CHECK = 'check'
PASSWORD = re.compile('.*')
edit_data = ''
edit_fields = []
input(args, key)
refresh(args=None)
visible_fields

Get the list of currently visible entries

class pyanaconda.ui.tui.spokes.EditTUIDialog(app, data, storage, payload, instclass, policy_name='')

Bases: pyanaconda.ui.tui.spokes.NormalTUISpoke

Spoke/dialog used to read new value of textual or password data

PASSWORD = re.compile('.*')
input(entry, key)
prompt(entry=None)
refresh(args=None)
title = 'New value'
class pyanaconda.ui.tui.spokes.EditTUISpokeEntry

Bases: builtins.tuple

EditTUISpokeEntry(title, attribute, aux, visible)

attribute

Alias for field number 1

aux

Alias for field number 2

title

Alias for field number 0

visible

Alias for field number 3

class pyanaconda.ui.tui.spokes.StandaloneSpoke(storage, payload, instclass)

Bases: pyanaconda.ui.common.Spoke

A StandaloneSpoke is a Spoke subclass that is displayed apart from any Hub. It is suitable to be used as a Welcome screen.

From a layout perspective, a StandaloneSpoke provides a full screen interface. However, it also provides navigation information at the top and bottom of the screen that makes it look like the StandaloneSpoke fits into some other UI element.

Class attributes:

preForHub/postForHub – A reference to a Hub subclass this Spoke is
either a pre or post action for. Only one of these may be set at a time. Note that all post actions will be run for one hub before any pre actions for the next.
priority – This value is used to sort pre and post
actions. The lower a value, the earlier it will be run. So a value of 0 for a post action ensures it will run immediately after a Hub, while a value of 0 for a pre actions means it will run as the first thing.

Create a StandaloneSpoke instance.

postForHub = None
preForHub = None
status
class pyanaconda.ui.tui.spokes.NormalTUISpoke(app, data, storage, payload, instclass)

Bases: pyanaconda.ui.tui.spokes.TUISpoke, pyanaconda.ui.common.NormalSpoke