Transaction#
Superclasses: Object
Implemented Interfaces: Initable
- Constructors:
Transaction(**properties)
new_for_installation(installation:Flatpak.Installation, cancellable:Gio.Cancellable=None) -> Flatpak.Transaction
Constructors#
- class Transaction
- classmethod new_for_installation(installation: Installation, cancellable: Cancellable | None = None) Transaction #
Creates a new
Transaction
object that can be used to do installation and updates of multiple refs, as well as their dependencies, in a single operation. Set the options you want on the transaction and add the refs you want to install/update, then start the transaction with flatpak_transaction_run ().- Parameters:
installation – a
Installation
cancellable – a
Cancellable
Methods#
- class Transaction
- abort_webflow(id: int) None #
Cancel an ongoing webflow authentication request. This can be call in the time between
Transaction
::webflow-start returnedTrue
, andTransaction
::webflow-done is emitted. It will cancel the ongoing authentication operation.This is useful for example if you’re showing an authenticaion window with a browser, but the user closed it before it was finished.
Added in version 1.5.1.
- Parameters:
id – The webflow id, as passed into the webflow-start signal
- add_default_dependency_sources() None #
Similar to
add_dependency_source()
, but adds all the default installations, which means all the defined system-wide (but not per-user) installations.
- add_dependency_source(installation: Installation) None #
Adds an extra installation as a source for application dependencies. This means that applications can be installed in this transaction relying on runtimes from this additional installation (whereas it would normally install required runtimes that are not installed in the installation the transaction works on).
Also see
add_default_dependency_sources()
.- Parameters:
installation – a
Installation
- add_install(remote: str, ref: str, subpaths: list[str] | None = None) bool #
Adds installing the given ref to this transaction.
The
remote
can either be a configured remote of the installation, or a file:// uri pointing at a local repository to install from, in which case an origin remote is created.- Parameters:
remote – the name of the remote
ref – the ref
subpaths – subpaths to install, or the empty list or
None
to pull all subpaths
- add_install_bundle(file: File, gpg_data: Bytes | None = None) bool #
Adds installing the given bundle to this transaction.
- Parameters:
file – a
File
that is an flatpak bundlegpg_data – GPG key with which to check bundle signatures, or
None
to use the key embedded in the bundle (if any)
- add_install_flatpakref(flatpakref_data: Bytes) bool #
Adds installing the given flatpakref to this transaction.
- Parameters:
flatpakref_data – data from a flatpakref file
- add_rebase(remote: str, ref: str, subpaths: str | None = None, previous_ids: list[str] | None = None) bool #
Adds updating the
previous_ids
of the given ref to this transaction, via either installing theref
if it was not already present or updating it. This will treatref
as the result of following an eol-rebase, and data migration from the refs inprevious_ids
will be set up.If you want to rebase the ref and uninstall the old version of it, consider using
add_rebase_and_uninstall()
instead. It will add appropriate dependencies between the rebase and uninstall operations.See
add_install()
for a description ofremote
.Added in version 1.3.3..
- Parameters:
remote – the name of the remote
ref – the ref
subpaths – the subpaths to include, or
None
to install the complete refprevious_ids – Previous ids to add to the given ref. These should simply be the ids, not the full ref names (e.g. org.foo.Bar, not org.foo.Bar/x86_64/master).
- add_rebase_and_uninstall(remote: str, new_ref: str, old_ref: str, subpaths: str | None = None, previous_ids: list[str] | None = None) bool #
Adds updating the
previous_ids
of the givennew_ref
to this transaction, via either installing thenew_ref
if it was not already present or updating it. This will treatnew_ref
as the result of following an eol-rebase, and data migration from the refs inprevious_ids
will be set up.Also adds an operation to uninstall
old_ref
to this transaction. This operation will only be run if the operation to install/updatenew_ref
succeeds.If
old_ref
is not already installed (which can happen if requesting to install an EOLed app, rather than update one which is already installed), the uninstall operation will silently not be added, and this function will behave similarly toadd_rebase()
.See
add_install()
for a description ofremote
.Added in version 1.15.4.
- Parameters:
remote – the name of the remote
new_ref – the ref to rebase to
old_ref – the ref to uninstall
subpaths – the subpaths to include, or
None
to install the complete refprevious_ids – Previous ids to add to the given ref. These should simply be the ids, not the full ref names (e.g. org.foo.Bar, not org.foo.Bar/x86_64/master).
- add_sideload_repo(path: str) None #
Adds an extra local ostree repo as source for installation. This is equivalent to using the sideload-repos directories (see flatpak(1)), but can be done dynamically. Any path added here is used in addition to ones in those directories.
Added in version 1.7.1.
- Parameters:
path – a path to a local flatpak repository
- add_uninstall(ref: str) bool #
Adds uninstalling the given ref to this transaction. If the transaction is set to not deploy updates, the request is ignored.
- Parameters:
ref – the ref
- add_update(ref: str, subpaths: list[str] | None = None, commit: str | None = None) bool #
Adds updating the given ref to this transaction.
- Parameters:
ref – the ref
subpaths – subpaths to install;
None
to use the current set plus the set of configured languages, or{ NULL }
or{ "", NULL }
to pull all subpaths.commit – the commit to update to, or
None
to use the latest
- complete_basic_auth(id: int, user: str, password: str, options: Variant) None #
Finishes (or aborts) an ongoing basic auth request.
Added in version 1.5.2.
- Parameters:
id – The webflow id, as passed into the webflow-start signal
user – The user name, or
None
if aborting requestpassword – The password
options – Extra a{sv] variant with options (or
None
), currently unused.
- do_add_new_remote(self, reason: TransactionRemoteReason, from_id: str, remote_name: str, url: str) bool #
- Parameters:
reason
from_id
remote_name
url
- do_basic_auth_start(self, remote: str, realm: str, options: Variant, id: int) bool #
- Parameters:
remote
realm
options
id
- do_end_of_lifed_with_rebase(self, remote: str, ref: str, reason: str, rebased_to_ref: str, previous_ids: str) bool #
- Parameters:
remote
ref
reason
rebased_to_ref
previous_ids
- do_install_authenticator(self, remote: str, authenticator_ref: str) None #
- Parameters:
remote
authenticator_ref
- do_new_operation(self, operation: TransactionOperation, progress: TransactionProgress) None #
- Parameters:
operation
progress
- do_operation_done(self, operation: TransactionOperation, commit: str, details: TransactionResult) None #
- Parameters:
operation
commit
details
- do_operation_error(self, operation: TransactionOperation, error: GError, detail: TransactionErrorDetails) bool #
- Parameters:
operation
error
detail
- do_run(self, cancellable: Cancellable | None = None) bool #
- Parameters:
cancellable
- do_webflow_start(self, remote: str, url: str, options: Variant, id: int) bool #
- Parameters:
remote
url
options
id
- get_auto_install_debug() bool #
Gets the value set by
set_auto_install_debug()
.Added in version 1.13.3.
- get_auto_install_sdk() bool #
Gets the value set by
set_auto_install_sdk()
.Added in version 1.13.3.
- get_current_operation() TransactionOperation #
Gets the current operation.
- get_include_unused_uninstall_ops() bool #
Gets the value set by
set_include_unused_uninstall_ops()
.Added in version 1.9.1.
- get_installation() Installation #
Gets the installation this transaction was created for.
- get_no_deploy() bool #
Gets whether the transaction is only downloading updates, and not deploying them.
Added in version 1.5.1.
- get_no_interaction() bool #
Gets whether the transaction is interactive. See
set_no_interaction()
.Added in version 1.13.0.
- get_no_pull() bool #
Gets whether the transaction should operate only on locally available data.
Added in version 1.5.1.
- get_operations() list[TransactionOperation] #
Gets the list of operations. Skipped operations are not included. The order of the list is the order in which the operations are executed.
- get_parent_window() str #
Gets the parent window set for this transaction, or
None
if unset. Seeget_parent_window()
.Added in version 1.5.1.
- run(cancellable: Cancellable | None = None) bool #
Executes the transaction.
During the course of the execution, various signals will get emitted. The FlatpakTransaction::choose-remote-for-ref and
Transaction
::add-new-remote signals may get emitted while resolving operations.Transaction
::ready is emitted when the transaction has been fully resolved, andTransaction
::new-operation andTransaction
::operation-done are emitted while the operations are carried out. If an error occurs at any point during the execution,Transaction
::operation-error is emitted.Note that this call blocks until the transaction is done.
- Parameters:
cancellable – a
Cancellable
- set_auto_install_debug(auto_install_debug: bool) None #
When this is set to
True
, Flatpak will automatically install the debug info for each app currently being installed or updated, as well as its dependencies. Does nothing if an uninstall is taking place.Added in version 1.13.3.
- Parameters:
auto_install_debug – whether to auto install debug info for apps
- set_auto_install_sdk(auto_install_sdk: bool) None #
When this is set to
True
, Flatpak will automatically install the SDK for each app currently being installed or updated. Does nothing if an uninstall is taking place.Added in version 1.13.3.
- Parameters:
auto_install_sdk – whether to auto install SDKs for apps
- set_default_arch(arch: str) None #
Sets the architecture to default to where it is unspecified.
- Parameters:
arch – the arch to make default
- set_disable_auto_pin(disable_pin: bool) None #
Normally the transaction pins any explicit installations so they will not be automatically removed. But this can be disabled if you don’t want this behaviour.
Added in version 1.9.1.
- Parameters:
disable_pin – whether to disable auto-pinning
- set_disable_dependencies(disable_dependencies: bool) None #
Sets whether the transaction should ignore runtime dependencies when resolving operations for applications.
- Parameters:
disable_dependencies – whether to disable runtime dependencies
- set_disable_prune(disable_prune: bool) None #
Sets whether the transaction should avoid pruning the local OSTree repository after updating.
- Parameters:
disable_prune – whether to avoid pruning
Sets whether the transaction should avoid adding related refs when resolving operations. Related refs are extensions that are suggested by apps, such as locales.
- Parameters:
disable_related – whether to avoid adding related refs
- set_disable_static_deltas(disable_static_deltas: bool) None #
Sets whether the transaction should avoid using static deltas when pulling.
- Parameters:
disable_static_deltas – whether to avoid static deltas
- set_force_uninstall(force_uninstall: bool) None #
Sets whether the transaction should uninstall files even if they’re used by a running application.
- Parameters:
force_uninstall – whether to force-uninstall refs
- set_include_unused_uninstall_ops(include_unused_uninstall_ops: bool) None #
When this is set to
True
, Flatpak will add uninstall operations to the transaction for each runtime it considers unused. This is used by the “update” CLI command to garbage collect runtimes and free disk space.No guarantees are made about the exact hueristic used; e.g. only end-of-life unused runtimes may be uninstalled with this set. To see the full list of unused runtimes in an installation, use
list_unused_refs()
.Added in version 1.9.1.
- Parameters:
include_unused_uninstall_ops – whether to include unused uninstall ops
- set_no_deploy(no_deploy: bool) None #
Sets whether the transaction should download updates, but not deploy them.
- Parameters:
no_deploy – whether to avoid deploying
- set_no_interaction(no_interaction: bool) None #
This method can be used to prevent interactive authorization dialogs to appear for operations on
self
. This is useful for background operations that are not directly triggered by a user action.By default, the setting from the parent
Installation
is used.Added in version 1.7.3.
- Parameters:
no_interaction – Whether to disallow interactive authorization for operations
- set_no_pull(no_pull: bool) None #
Sets whether the transaction should operate only on locally available data.
- Parameters:
no_pull – whether to avoid pulls
- set_parent_window(parent_window: str) None #
Sets the parent window (if any) to use for any UI show by this transaction. This is used by authenticators if they need to interact with the user during authentication.
The format of this string depends on the display system in use, and is the same as used by xdg-desktop-portal.
On X11 it should be of the form x11:$xid where $xid is the hex version of the xwindows id.
On wayland is should be wayland:$handle where handle is gotten by using the export call of the xdg-foreign-unstable wayland extension.
Added in version 1.5.1.
- Parameters:
parent_window – whether to avoid pulls
Properties#
- class Transaction
- props.installation: Installation#
The type of the None singleton.
Signals#
- class Transaction.signals
- add_new_remote(reason: TransactionRemoteReason, from_id: str, suggested_remote_name: str, url: str) bool #
The type of the None singleton.
- Parameters:
reason – A
TransactionRemoteReason
for this suggestionfrom_id – The id of the app/runtime
suggested_remote_name – The suggested remote name
url – The repo url
- basic_auth_start(remote: str, realm: str, options: Variant, id: int) bool #
The type of the None singleton.
Added in version 1.5.2.
- Parameters:
remote – The remote we’re authenticating with
realm – The url to show
options – Extra options, currently unused
id – The id of the operation, can be used to finish it
- choose_remote_for_ref(for_ref: str, runtime_ref: str, remotes: list[str]) int #
The type of the None singleton.
- Parameters:
for_ref – The ref we are installing
runtime_ref – The ref we are looking for
remotes – the remotes that has the ref, sorted in prio order
- end_of_lifed(ref: str, reason: str, rebase: str) None #
The type of the None singleton.
- Parameters:
ref – The ref we are installing
reason – The eol reason, or
None
rebase – The new name, if rebased, or
None
- end_of_lifed_with_rebase(remote: str, ref: str, reason: str, rebased_to_ref: str, previous_ids: list[str]) bool #
The type of the None singleton.
Added in version 1.3.2.
- Parameters:
remote – The remote for the ref we are processing
ref – The ref we are processing
reason – The eol reason, or
None
rebased_to_ref – The new name, if rebased, or
None
previous_ids – The previous names for the rebased ref (if any), including the one from
ref
- install_authenticator(remote: str, authenticator_ref: str) None #
The type of the None singleton.
Added in version 1.8.0.
- Parameters:
remote – The remote name
authenticator_ref – The ref for the authenticator
- new_operation(operation: TransactionOperation, progress: TransactionProgress) None #
The type of the None singleton.
- Parameters:
operation – The new
TransactionOperation
progress – A
TransactionProgress
foroperation
- operation_done(operation: TransactionOperation, commit: str | None, result: TransactionResult) None #
The type of the None singleton.
- Parameters:
operation – The
TransactionOperation
which finishedcommit – The commit
result – A
TransactionResult
giving details about the result
- operation_error(operation: TransactionOperation, error: GError, details: TransactionErrorDetails) bool #
The type of the None singleton.
- Parameters:
operation – The
TransactionOperation
which failederror – A
Error
details – A
TransactionErrorDetails
with details about the error
- webflow_done(options: Variant, id: int) None #
The type of the None singleton.
Added in version 1.5.1.
- Parameters:
options – Extra options, currently unused
id – The id of the operation
- webflow_start(remote: str, url: str, options: Variant, id: int) bool #
The type of the None singleton.
Added in version 1.5.1.
- Parameters:
remote – The remote we’re authenticating with
url – The url to show
options – Extra options, currently unused
id – The id of the operation, can be used to cancel it
Virtual Methods#
- class Transaction
- do_add_new_remote(reason: TransactionRemoteReason, from_id: str, remote_name: str, url: str) bool #
The type of the None singleton.
- Parameters:
reason
from_id
remote_name
url
- do_basic_auth_start(remote: str, realm: str, options: Variant, id: int) bool #
The type of the None singleton.
- Parameters:
remote
realm
options
id
- do_choose_remote_for_ref(for_ref: str, runtime_ref: str, remotes: str) int #
The type of the None singleton.
- Parameters:
for_ref
runtime_ref
remotes
- do_end_of_lifed(ref: str, reason: str, rebase: str) None #
The type of the None singleton.
- Parameters:
ref
reason
rebase
- do_end_of_lifed_with_rebase(remote: str, ref: str, reason: str, rebased_to_ref: str, previous_ids: str) bool #
The type of the None singleton.
- Parameters:
remote
ref
reason
rebased_to_ref
previous_ids
- do_install_authenticator(remote: str, authenticator_ref: str) None #
The type of the None singleton.
- Parameters:
remote
authenticator_ref
- do_new_operation(operation: TransactionOperation, progress: TransactionProgress) None #
The type of the None singleton.
- Parameters:
operation
progress
- do_operation_done(operation: TransactionOperation, commit: str, details: TransactionResult) None #
The type of the None singleton.
- Parameters:
operation
commit
details
- do_operation_error(operation: TransactionOperation, error: GError, detail: TransactionErrorDetails) bool #
The type of the None singleton.
- Parameters:
operation
error
detail
- do_run(cancellable: Cancellable | None = None) bool #
Executes the transaction.
During the course of the execution, various signals will get emitted. The FlatpakTransaction::choose-remote-for-ref and
Transaction
::add-new-remote signals may get emitted while resolving operations.Transaction
::ready is emitted when the transaction has been fully resolved, andTransaction
::new-operation andTransaction
::operation-done are emitted while the operations are carried out. If an error occurs at any point during the execution,Transaction
::operation-error is emitted.Note that this call blocks until the transaction is done.
- Parameters:
cancellable – a
Cancellable
Fields#
- class Transaction
- parent_instance#