siliqua.ui.stdio package¶
Submodules¶
siliqua.ui.stdio.commands module¶
-
siliqua.ui.stdio.commands.add_account(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, account_id: <siliqua.ui.stdio.params.AccountOption object at 0x7fbd4018b2b0>, public_key: <siliqua.ui.stdio.params.PublicKeyOption object at 0x7fbd4018b400>, private_key: <siliqua.ui.stdio.params.PrivateKeyOption object at 0x7fbd4018b438>)¶
-
siliqua.ui.stdio.commands.add_to_address_book(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, account_id: siliqua.ui.stdio.params.AccountParam, name: siliqua.ui.stdio.params.StrParam)¶
-
siliqua.ui.stdio.commands.block_to_dict(block, include_block_data=False)¶ Convert a block into a dict that can be added into a result
- Parameters
block (siliqua.wallet.accounts.Block or siliqua.wallet.accounts.LinkBlock) – Block instance
include_block_data (bool) – Whether to include the block fields in the result. Default is false.
- Returns
Block as a dict
- Return type
-
siliqua.ui.stdio.commands.calculate_key_iteration_count(server, seconds: siliqua.ui.stdio.params.FloatParam)¶
-
siliqua.ui.stdio.commands.change_account_representative(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, account_id: siliqua.ui.stdio.params.AccountParam, representative: siliqua.ui.stdio.params.AccountParam, wait_until_confirmed: <siliqua.ui.stdio.params.BoolOption object at 0x7fbd4018b908>, timeout: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018b9e8>)¶
-
siliqua.ui.stdio.commands.change_encryption(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, new_passphrase: siliqua.ui.stdio.params.SecureStrOption, encrypt_secrets: siliqua.ui.stdio.params.BoolOption, encrypt_wallet: siliqua.ui.stdio.params.BoolOption, key_iteration_count: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd401875f8>)¶
-
siliqua.ui.stdio.commands.change_gap_limit(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, gap_limit: <siliqua.ui.stdio.params.IntRangeParam object at 0x7fbd4018b198>)¶
-
siliqua.ui.stdio.commands.clear_account_name(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, account_id: siliqua.ui.stdio.params.AccountParam)¶
-
siliqua.ui.stdio.commands.clear_block_description(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, block_hash: siliqua.ui.stdio.params.BlockHashParam)¶
-
siliqua.ui.stdio.commands.create_wallet(server, wallet_path: <siliqua.ui.stdio.params.FilePathParam object at 0x7fbd401e4470>, seed: siliqua.ui.stdio.params.SecureStrOption, encrypt_secrets: siliqua.ui.stdio.params.BoolOption, encrypt_wallet: siliqua.ui.stdio.params.BoolOption, passphrase: siliqua.ui.stdio.params.SecureStrOption, gap_limit: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd401e4630>, key_iteration_count: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd401e40f0>)¶
-
siliqua.ui.stdio.commands.generate_account(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, count: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018b470>)¶
-
siliqua.ui.stdio.commands.get_account_private_key(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, account_id: siliqua.ui.stdio.params.AccountParam)¶
-
siliqua.ui.stdio.commands.get_balance(server, passphrase: siliqua.ui.stdio.params.PassphraseOption)¶
-
siliqua.ui.stdio.commands.get_block(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, block_hash: siliqua.ui.stdio.params.BlockHashParam)¶
-
siliqua.ui.stdio.commands.get_default_key_iteration_count()¶ Get default key iteration count. Used as a default value for options.
-
siliqua.ui.stdio.commands.get_wallet_block(wallet, block_hash)¶
-
siliqua.ui.stdio.commands.get_wallet_seed(server, passphrase: siliqua.ui.stdio.params.PassphraseOption)¶
-
siliqua.ui.stdio.commands.list_accounts(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, limit: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018ba20>, offset: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018bb00>, descending: <siliqua.ui.stdio.params.BoolOption object at 0x7fbd4018bb38>)¶
-
siliqua.ui.stdio.commands.list_address_book(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, limit: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018bc50>, offset: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018bcf8>, descending: <siliqua.ui.stdio.params.BoolOption object at 0x7fbd4018bd30>)¶
-
siliqua.ui.stdio.commands.list_blocks(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, account_id: siliqua.ui.stdio.params.AccountParam, limit: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018bb70>, offset: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018bbe0>, descending: <siliqua.ui.stdio.params.BoolOption object at 0x7fbd4018bc18>)¶
-
siliqua.ui.stdio.commands.remove_account(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, account_id: siliqua.ui.stdio.params.AccountParam)¶
-
siliqua.ui.stdio.commands.remove_from_address_book(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, account_id: siliqua.ui.stdio.params.AccountParam)¶
-
siliqua.ui.stdio.commands.send(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, source: siliqua.ui.stdio.params.AccountParam, destination: siliqua.ui.stdio.params.AccountParam, amount: siliqua.ui.stdio.params.AmountParam, wait_until_confirmed: <siliqua.ui.stdio.params.BoolOption object at 0x7fbd4018b668>, txid: siliqua.ui.stdio.params.StrOption, description: siliqua.ui.stdio.params.StrOption, timeout: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018b6d8>)¶
-
siliqua.ui.stdio.commands.send_many(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, source: siliqua.ui.stdio.params.AccountParam, transactions: <siliqua.ui.stdio.params.RepeatParams object at 0x7fbd4018b710>, wait_until_confirmed: <siliqua.ui.stdio.params.BoolOption object at 0x7fbd4018b898>, timeout: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018b8d0>, description: siliqua.ui.stdio.params.StrOption)¶
-
siliqua.ui.stdio.commands.set_account_name(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, account_id: siliqua.ui.stdio.params.AccountParam, name: siliqua.ui.stdio.params.StrParam)¶
-
siliqua.ui.stdio.commands.set_block_description(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, block_hash: siliqua.ui.stdio.params.BlockHashParam, description: siliqua.ui.stdio.params.StrParam)¶
-
siliqua.ui.stdio.commands.sync(server, passphrase: siliqua.ui.stdio.params.PassphraseOption, finish_work: <siliqua.ui.stdio.params.BoolOption object at 0x7fbd4018b550>, finish_sync: <siliqua.ui.stdio.params.BoolOption object at 0x7fbd4018b5c0>, timeout: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018b5f8>, result_count: <siliqua.ui.stdio.params.IntRangeOption object at 0x7fbd4018b630>)¶
siliqua.ui.stdio.exceptions module¶
siliqua.ui.stdio.params module¶
-
class
siliqua.ui.stdio.params.AccountOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseOptionAccount ID option
-
class
siliqua.ui.stdio.params.AccountParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamAccount ID parameter
-
class
siliqua.ui.stdio.params.AmountParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamAmount parameter.
Amount is accepted as a single integer (denomination is assumed to be raw) or “<amount> <unit>” string where amount can be a decimal and unit is the NANO denomination.
-
class
siliqua.ui.stdio.params.BaseOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamBase class for different option types
-
to_cli_parameter()¶ Convert parameter to a
click.Argument- Returns
Click argument
- Return type
click.Argument
-
-
class
siliqua.ui.stdio.params.BaseParam(**kwargs)¶ Bases:
objectBase class for different parameter types
-
click_callback(ctx, param, value)¶ Function called by Click to parse the value
-
get_click_kwargs()¶ Get a dict of kwargs to pass to the underlying
click.Optionclass- Returns
Dict of keyword arguments
- Return type
-
parse(val)¶ Parse the received value. If the value is invalid ValueError should be raised with a human-readable error message.
- Parameters
val (str) – Value to parse
- Returns
Parsed value
-
to_cli_parameter()¶ Convert parameter to a
click.Argument- Returns
Click argument
- Return type
click.Argument
-
-
class
siliqua.ui.stdio.params.BlockHashParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamBlock hash parameter.
-
class
siliqua.ui.stdio.params.BoolOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseOptionBool option that uses two flag parameters.
-
parse(val)¶ Parse the received value. If the value is invalid ValueError should be raised with a human-readable error message.
- Parameters
val (str) – Value to parse
- Returns
Parsed value
-
to_cli_parameter()¶ Convert parameter to a
click.Argument- Returns
Click argument
- Return type
click.Argument
-
-
class
siliqua.ui.stdio.params.BoolParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamBool parameter. Accepts different string aliases.
-
class
siliqua.ui.stdio.params.FilePathParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamParameter for a file path
-
get_click_kwargs()¶ Get a dict of kwargs to pass to the underlying
click.Optionclass- Returns
Dict of keyword arguments
- Return type
-
-
class
siliqua.ui.stdio.params.FloatOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseOptionFloat option. Integers are also accepted.
-
get_click_kwargs()¶ Get a dict of kwargs to pass to the underlying
click.Optionclass- Returns
Dict of keyword arguments
- Return type
-
-
class
siliqua.ui.stdio.params.FloatParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamFloat parameter. Integers are also accepted.
-
class
siliqua.ui.stdio.params.GroupClickOption(*args, **kwargs)¶ Bases:
click.core.OptionSubclass of click.Option that allows options to be grouped with the
group_nameattribute.This means that if at least one option in the same group already has a value, no prompts are created for other options in the group.
-
handle_parse_result(ctx, opts, args)¶
-
prompt_for_value(ctx)¶ This is an alternative flow that can be activated in the full value processing if a value does not exist. It will prompt the user until a valid value exists and then returns the processed value as result.
-
-
class
siliqua.ui.stdio.params.IntParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamInteger parameter. Floats are not accepted.
-
class
siliqua.ui.stdio.params.IntRangeOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseOptionInteger range option. Only integers in the given inclusive range are accepted.
-
get_click_kwargs()¶ Get a dict of kwargs to pass to the underlying
click.Optionclass- Returns
Dict of keyword arguments
- Return type
-
-
class
siliqua.ui.stdio.params.IntRangeParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamInteger range parameter. Only integers in the given inclusive range are accepted.
-
get_click_kwargs()¶ Get a dict of kwargs to pass to the underlying
click.Optionclass- Returns
Dict of keyword arguments
- Return type
-
-
class
siliqua.ui.stdio.params.PassphraseOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.SecureStrOptionPassphrase option.
Is essentially the same as
SecureStrOptionexcept that in an interactive session the passphrase prompt is postponed until needed.-
to_cli_parameter()¶ Convert parameter to a
click.Argument- Returns
Click argument
- Return type
click.Argument
-
-
class
siliqua.ui.stdio.params.PrivateKeyOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.SecureStrOptionPrivate key option. Private key is accepted only in hexadecimal format.
-
class
siliqua.ui.stdio.params.PrivateKeyParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamPrivate key parameter. Private key is accepted only in hexadecimal format.
-
class
siliqua.ui.stdio.params.PublicKeyOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseOptionPublic key option. Public key is accepted only in hexadecimal format.
-
class
siliqua.ui.stdio.params.PublicKeyParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamPublic key parameter. Public key is accepted only in hexadecimal format.
-
class
siliqua.ui.stdio.params.RepeatParams(names, types, **kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamParameter that can be repeated indefinitely.
The underlying parameter can consist of a single parameter, or multiple parameters.
-
click_callback(ctx, param, value)¶ Function called by Click to parse the value
-
get_click_kwargs()¶ Get a dict of kwargs to pass to the underlying
click.Optionclass- Returns
Dict of keyword arguments
- Return type
-
-
class
siliqua.ui.stdio.params.SecureStrOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseOptionSecure string option.
Secure strings can be passed using environment variables or prompted directly from the user in an interactive session
-
get_click_kwargs()¶ Get a dict of kwargs to pass to the underlying
click.Optionclass- Returns
Dict of keyword arguments
- Return type
-
parse(val)¶ Parse the received value. If the value is invalid ValueError should be raised with a human-readable error message.
- Parameters
val (str) – Value to parse
- Returns
Parsed value
-
to_cli_parameter()¶ Convert parameter to a
click.Argument- Returns
Click argument
- Return type
click.Argument
-
-
class
siliqua.ui.stdio.params.StrOption(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseOptionString option
-
class
siliqua.ui.stdio.params.StrParam(**kwargs)¶ Bases:
siliqua.ui.stdio.params.BaseParamString parameter
siliqua.ui.stdio.util module¶
-
class
siliqua.ui.stdio.util.PaginationResults(results, total_count)¶ Bases:
objectResult object that can be iterated to get paginated results.
- Variables
results – List of results
total_count – Total count of the original list before pagination
-
results¶
-
total_count¶
-
class
siliqua.ui.stdio.util.StdioResult(data=None, error=None)¶ Bases:
objectResult created by running a command. Result can be successful or a failure.
Result can be printed in JSON format
-
show()¶ Print the result to stdio in JSON format
-
-
siliqua.ui.stdio.util.cli_command(wallet_required=True, help_text=None, short_help_text=None, start_work=True, start_network=True)¶ Stdio command decorator that marks a function as a CLI command and allows configuring common behavior.
- Parameters
wallet_required (bool) – Whether the command requires a wallet to be loaded when called
help_text (str) – Long help text
short_help_text (str) – Abbreviated help text
start_work (bool) – Whether to start the work provider automatically
start_network (bool) – Whether to start the network provider automatically
-
siliqua.ui.stdio.util.get_cli_params(func)¶ Return a list of stdio command’s parameters by iterating through its annotations
-
siliqua.ui.stdio.util.paginate_list(entries, limit, offset, descending)¶ Paginate a list and return a PaginationResults object
- Parameters
- Returns
Pagination results
- Return type
-
siliqua.ui.stdio.util.parse_manual_params(func, kwargs)¶ Parse command parameters through a dict instead of the normal CLI interface.
This is used when calling the commands outside the Click-based interface
-
siliqua.ui.stdio.util.raise_common_error(exc)¶ Try raising an exception as a StdioError that can be printed in JSON format
-
siliqua.ui.stdio.util.to_cli_command(func, callback)¶ Convert a stdio command function into a Click command and return it
-
siliqua.ui.stdio.util.truncate_ordered_dict(d, max_length=10)¶ Truncate an ordered dict starting from the oldest entries until it has the given maximum length
- Parameters
d – OrderedDict instance
max_count (int) – Maximum length of the dict
-
siliqua.ui.stdio.util.unlock_wallet(*args, **kwargs)¶ Context manager to temporarily unlock the wallet.
Convenience function is also returned that allows secret fields to be read when the wallet is unlocked.
Module contents¶
-
class
siliqua.ui.stdio.StdioUI(config)¶ Bases:
siliqua.ui.BaseUIUser interface plugin that implements a command-line interface for wallet usage
-
get_cli()¶ Get Click command for each individual stdio command
-
run(server, ctx, cmd_func, **kwargs)¶ Run the given Click command which contains the underlying wrapped command
-
-
siliqua.ui.stdio.wrap_command(cmd_func)¶ Wrapper used when a command is called using the CLI to ensure the correct function is called.
Any exception/output is captured and printed as a JSON formatted string