mirror of
https://github.com/ModOrganizer2/pystubs-generation.git
synced 2026-07-27 14:07:13 -07:00
3791 lines
133 KiB
YAML
3791 lines
133 KiB
YAML
---
|
|
# version of the configuration
|
|
version: 2
|
|
|
|
# version of the stubs - this is overridden when publishing
|
|
__version__: "2.5.3-beta10"
|
|
|
|
# This is the root of the mobase module and will contain everything
|
|
# related to functions / classes, including their documentation.
|
|
mobase:
|
|
getFileVersion:
|
|
__doc__: Retrieve the file version of the given executable.
|
|
args:
|
|
filepath: Absolute path to the executable.
|
|
returns: |
|
|
The file version, or an empty string if the file version could not be retrieved.
|
|
|
|
getIconForExecutable:
|
|
__doc__: Retrieve the icon of an executable. Currently this always extracts the biggest icon.
|
|
args:
|
|
executable: Absolute path to the executable.
|
|
returns: The icon for this executable, if any.
|
|
|
|
getProductVersion:
|
|
__doc__: Retrieve the product version of the given executable.
|
|
args:
|
|
executable: Absolute path to the executable.
|
|
returns: |
|
|
The product version, or an empty string if the product version could not be retrieved.
|
|
|
|
EndorsedState:
|
|
ENDORSED_TRUE:
|
|
ENDORSED_FALSE:
|
|
ENDORSED_UNKNOWN:
|
|
ENDORSED_NEVER:
|
|
|
|
TrackedState:
|
|
TRACKED_FALSE:
|
|
TRACKED_TRUE:
|
|
TRACKED_UNKNOWN:
|
|
|
|
GuessQuality:
|
|
__doc__: |
|
|
Describes how good the code considers a guess (i.e. for a mod name) this is used to
|
|
determine if a name from another source should overwrite or not.
|
|
|
|
INVALID: No valid value has been set yet.
|
|
FALLBACK: The guess is very basic and should only be used if no other source is available.
|
|
GOOD: Considered a good guess.
|
|
META: The value comes from metadata and is usually what the author intended.
|
|
PRESET: |
|
|
The value comes from a previous installation of the same data/mod and usually represents
|
|
what the user chose before.
|
|
USER: The user selection, always overrules other sources.
|
|
|
|
InstallResult:
|
|
__doc__:
|
|
SUCCESS:
|
|
FAILED:
|
|
CANCELED:
|
|
MANUAL_REQUESTED:
|
|
NOT_ATTEMPTED:
|
|
|
|
LoadOrderMechanism:
|
|
__doc__:
|
|
FILE_TIME: Order of plugins is determined by the filetime of the plugins.
|
|
PLUGINS_TXT: Order of plugins is determined by the plugins.txt file.
|
|
|
|
ModState:
|
|
__doc__:
|
|
EXISTS:
|
|
ACTIVE:
|
|
ESSENTIAL:
|
|
EMPTY:
|
|
ENDORSED:
|
|
VALID:
|
|
ALTERNATE:
|
|
|
|
PluginState:
|
|
__doc__:
|
|
MISSING:
|
|
INACTIVE:
|
|
ACTIVE:
|
|
|
|
ProfileSetting:
|
|
__doc__:
|
|
MODS:
|
|
CONFIGURATION:
|
|
SAVEGAMES:
|
|
PREFER_DEFAULTS:
|
|
|
|
ReleaseType:
|
|
__doc__:
|
|
PRE_ALPHA:
|
|
ALPHA:
|
|
BETA:
|
|
CANDIDATE:
|
|
FINAL:
|
|
|
|
SortMechanism:
|
|
__doc__:
|
|
NONE:
|
|
MLOX:
|
|
BOSS:
|
|
LOOT:
|
|
|
|
VersionScheme:
|
|
__doc__:
|
|
DISCOVER:
|
|
REGULAR:
|
|
DECIMAL_MARK:
|
|
NUMBERS_AND_LETTERS:
|
|
DATE:
|
|
LITERAL:
|
|
|
|
GameFeature:
|
|
__doc__: |
|
|
Base class for all game features, cannot be inherited, used only for typing
|
|
purpose in Python.
|
|
__abstract__: true
|
|
|
|
# TODO:
|
|
BSAInvalidation:
|
|
__doc__:
|
|
__abstract__: true
|
|
__init__:
|
|
__doc__:
|
|
activate:
|
|
__doc__:
|
|
args:
|
|
profile:
|
|
deactivate:
|
|
__doc__:
|
|
args:
|
|
profile:
|
|
isInvalidationBSA:
|
|
__doc__:
|
|
args:
|
|
name:
|
|
returns:
|
|
|
|
DataArchives:
|
|
__abstract__: true
|
|
|
|
addArchive:
|
|
__doc__: Add an archive to the archive list.
|
|
args:
|
|
profile: Profile to add the archive to.
|
|
index: |
|
|
Index to insert before. Use 0 for the beginning of the list or INT_MAX for
|
|
the end of the list).
|
|
name: Name of the archive to add.
|
|
|
|
archives:
|
|
__doc__: Retrieve the list of archives in the given profile.
|
|
args:
|
|
profile: Profile to retrieve archives from.
|
|
returns: The list of archives in the given profile.
|
|
|
|
removeArchive:
|
|
__doc__: Remove the given archive from the given profile.
|
|
args:
|
|
profile: Profile to remove the archive from.
|
|
name: Name of the archive to remove.
|
|
|
|
vanillaArchives:
|
|
__doc__: |
|
|
Retrieve the list of vanilla archives.
|
|
|
|
Vanilla archives are archive files that are shipped with the original
|
|
game.
|
|
returns: The list of vanilla archives.
|
|
|
|
ExecutableForcedLoadSetting:
|
|
__doc__:
|
|
__init__:
|
|
__doc__:
|
|
args:
|
|
process:
|
|
library:
|
|
enabled:
|
|
__doc__:
|
|
returns:
|
|
forced:
|
|
__doc__:
|
|
returns:
|
|
library:
|
|
__doc__:
|
|
returns:
|
|
process:
|
|
__doc__:
|
|
returns:
|
|
withEnabled:
|
|
__doc__:
|
|
args:
|
|
enabled:
|
|
returns:
|
|
withForced:
|
|
__doc__:
|
|
args:
|
|
forced:
|
|
returns:
|
|
|
|
ExecutableInfo:
|
|
__doc__:
|
|
__init__:
|
|
__doc__:
|
|
args:
|
|
title:
|
|
binary:
|
|
arguments:
|
|
__doc__:
|
|
returns:
|
|
asCustom:
|
|
__doc__:
|
|
returns:
|
|
binary:
|
|
__doc__:
|
|
returns:
|
|
isCustom:
|
|
__doc__:
|
|
returns:
|
|
isValid:
|
|
__doc__:
|
|
returns:
|
|
steamAppID:
|
|
__doc__:
|
|
returns:
|
|
title:
|
|
__doc__:
|
|
returns:
|
|
withArgument:
|
|
__doc__:
|
|
args:
|
|
argument:
|
|
returns:
|
|
withSteamAppId:
|
|
__doc__:
|
|
args:
|
|
app_id:
|
|
returns:
|
|
withWorkingDirectory:
|
|
__doc__:
|
|
args:
|
|
directory:
|
|
returns:
|
|
workingDirectory:
|
|
__doc__:
|
|
returns:
|
|
|
|
FileInfo:
|
|
__doc__: Information about a virtualized file
|
|
properties[]:
|
|
archive:
|
|
type: str
|
|
desc: |
|
|
Name of the archive if this file is in an archive (e.g. BSA), otherwise an
|
|
empty string.
|
|
filePath:
|
|
type: str
|
|
desc: Full path to the file.
|
|
origins:
|
|
type: list[str]
|
|
desc: |
|
|
List of origins containing providing this file. The first origin in the list
|
|
is the highest priority one (actually providing the file).
|
|
|
|
__init__:
|
|
__doc__: Creates an uninitialized FileInfo.
|
|
|
|
FileTreeEntry:
|
|
__doc__: |
|
|
Represent an entry in a file tree, either a file or a directory. This class
|
|
inherited by IFileTree so that operations on entry are the same for a file or
|
|
a directory.
|
|
|
|
This class provides convenience methods to query information on the file, like its
|
|
name or the its last modification time. It also provides a convenience astree() method
|
|
that can be used to retrieve the tree corresponding to its entry in case the entry
|
|
represent a directory.
|
|
|
|
FileTypes:
|
|
__doc__: Enumeration of the different file type or combinations.
|
|
DIRECTORY:
|
|
FILE:
|
|
FILE_OR_DIRECTORY:
|
|
|
|
detach:
|
|
__doc__: Detach this entry from its parent tree.
|
|
returns: True if the entry was removed correctly, False otherwise.
|
|
|
|
fileType:
|
|
returns: The filetype of this entry.
|
|
|
|
hasSuffix.1:
|
|
__doc__: Check if this entry has one of the given suffixes.
|
|
args:
|
|
suffixes: Suffixes to check.
|
|
returns: True if this entry is a file and has one of the given suffix.
|
|
|
|
hasSuffix.2:
|
|
__doc__: Check if this entry has the given suffix.
|
|
args:
|
|
suffix: Suffix to check.
|
|
returns: True if this entry is a file and has the given suffix.
|
|
|
|
isDir:
|
|
returns: True if this entry is a directory, False otherwise.
|
|
|
|
isFile:
|
|
returns: True if this entry is a file, False otherwise.
|
|
|
|
moveTo:
|
|
__doc__: Move this entry to the given tree.
|
|
args:
|
|
tree: The tree to move this entry to.
|
|
returns: True if the entry was moved correctly, False otherwise.
|
|
|
|
name:
|
|
returns: The name of this entry.
|
|
|
|
parent:
|
|
returns:
|
|
__doc__: |
|
|
The parent tree containing this entry, or a `None` if this entry is the root
|
|
or the parent tree is unreachable.
|
|
type: IFileTree | None
|
|
|
|
path:
|
|
__doc__: |
|
|
Retrieve the path from this entry up to the root of the tree.
|
|
|
|
This method propagate up the tree so is not constant complexity as
|
|
the full path is never stored.
|
|
args:
|
|
sep: The type of separator to use to create the path.
|
|
returns: The path from this entry to the root, including the name of this entry.
|
|
|
|
pathFrom:
|
|
__doc__: Retrieve the path from the given tree to this entry.
|
|
args:
|
|
tree: The tree to reach, must be a parent of this entry.
|
|
sep: The type of separator to use to create the path.
|
|
returns: |
|
|
The path from the given tree to this entry, including the name of this entry, or
|
|
an empty string if the given tree is not a parent of this entry.
|
|
|
|
suffix:
|
|
__doc__: |
|
|
Retrieve the "last" extension of this entry.
|
|
|
|
The "last" extension is everything after the last dot in the file name.
|
|
returns: |
|
|
The last extension of this entry, or an empty string if the file has no extension
|
|
or is directory.
|
|
|
|
IExecutable:
|
|
title:
|
|
returns: The title of the executable.
|
|
|
|
binaryInfo:
|
|
returns: The file info of the executable binary.
|
|
|
|
arguments:
|
|
__doc__: |
|
|
Retrieve the arguments passed to the executable.
|
|
|
|
This API might be changed in the future to return a list of strings.
|
|
returns: The arguments to be passed to the executable.
|
|
|
|
steamAppID:
|
|
returns: The Steam App ID associated with this executable, or an empty string if there is none.
|
|
|
|
workingDirectory:
|
|
returns: The working directory for the executable.
|
|
|
|
isShownOnToolbar:
|
|
returns: True if the executable is shown on the toolbar.
|
|
|
|
usesOwnIcon:
|
|
returns: True if the executable's application icon is used for desktop shortcuts.
|
|
|
|
minimizeToSystemTray:
|
|
__doc__: |
|
|
Check if Mod Organizer should minimize to the system tray while this executable
|
|
is running.
|
|
returns: True if Mod Organizer should minimize to the system tray while this executable is running.
|
|
|
|
hide:
|
|
returns: True if this executable is hidden in the user interface.
|
|
|
|
IExecutablesList:
|
|
__doc__: Interface to the list of executables configured in Mod Organizer.
|
|
|
|
executables:
|
|
__doc__: Retrieve all configured executables.
|
|
returns: A generator yielding all configured executables.
|
|
|
|
getByTitle:
|
|
__doc__: Retrieve an executable by its title.
|
|
args:
|
|
title: Title of the executable to retrieve.
|
|
returns: The executable with the specified title, or `None` if not found.
|
|
|
|
getByBinary:
|
|
__doc__: Retrieve an executable by its binary file info.
|
|
args:
|
|
info: File info of the executable binary to retrieve.
|
|
returns: The executable with the specified binary, or `None` if not found.
|
|
|
|
contains:
|
|
__doc__: Check if an executable with the specified title exists.
|
|
args:
|
|
title: Title of the executable to check.
|
|
returns: True if an executable with the specified title exists, False otherwise.
|
|
|
|
IGameFeatures:
|
|
__doc__: |
|
|
Interface for the game features, accessible through IOrganizer.gameFeatures().
|
|
|
|
gameFeature:
|
|
__doc__: Retrieve the given game feature, if one exists.
|
|
abstract: false
|
|
args:
|
|
feature_type:
|
|
__doc__: The class of feature to retrieve.
|
|
type: Type[GameFeatureType]
|
|
returns:
|
|
__doc__: |
|
|
The game feature corresponding to the given type, or `None` if the feature is
|
|
not available.
|
|
type: GameFeatureType
|
|
|
|
registerFeature.1:
|
|
__doc__: |
|
|
Register game feature for the specified game.
|
|
|
|
This method register a game feature to combine or replace with other features
|
|
of the same kind. Some features are merged (e.g., ModDataContent,
|
|
ModDataChecker), while other override previous features (e.g., SaveGameInfo).
|
|
|
|
For features that can be combined, the priority argument indicates the order of
|
|
priority (e.g., the order of the checks for ModDataChecker). For other features,
|
|
the feature with the highest priority will be used. The features provided by the
|
|
game plugin itself always have lowest priority.
|
|
|
|
The feature is associated to the plugin that registers it, if the plugin is
|
|
disabled, the feature will not be available.
|
|
|
|
This function will return True if the feature was registered, even if the
|
|
feature is not used du to its low priority.
|
|
|
|
args:
|
|
games: Names of the game to enable the feature for.
|
|
feature: Game feature to register.
|
|
priority: |
|
|
Priority of the game feature. If the plugin registering the feature
|
|
is a game plugin, this parameter is ignored.
|
|
replace: |
|
|
If True, remove features of the same kind registered by the current plugin,
|
|
otherwise add the feature alongside existing ones.
|
|
|
|
returns: True if the game feature was properly registered, False otherwise.
|
|
|
|
registerFeature.2:
|
|
__doc__: |
|
|
Register game feature for the specified game.
|
|
|
|
This method register a game feature to combine or replace with other features
|
|
of the same kind. Some features are merged (e.g., ModDataContent,
|
|
ModDataChecker), while other override previous features (e.g., SaveGameInfo).
|
|
|
|
For features that can be combined, the priority argument indicates the order of
|
|
priority (e.g., the order of the checks for ModDataChecker). For other features,
|
|
the feature with the highest priority will be used. The features provided by the
|
|
game plugin itself always have lowest priority.
|
|
|
|
The feature is associated to the plugin that registers it, if the plugin is
|
|
disabled, the feature will not be available.
|
|
|
|
This function will return True if the feature was registered, even if the
|
|
feature is not used du to its low priority.
|
|
|
|
args:
|
|
game: Game to enable the feature for.
|
|
feature: Game feature to register.
|
|
priority: |
|
|
Priority of the game feature. If the plugin registering the feature
|
|
is a game plugin, this parameter is ignored.
|
|
replace: |
|
|
If True, remove features of the same kind registered by the current plugin,
|
|
otherwise add the feature alongside existing ones.
|
|
|
|
returns: True if the game feature was properly registered, False otherwise.
|
|
|
|
registerFeature.3:
|
|
__doc__: |
|
|
Register game feature for all games.
|
|
|
|
This method register a game feature to combine or replace with other features
|
|
of the same kind. Some features are merged (e.g., ModDataContent,
|
|
ModDataChecker), while other override previous features (e.g., SaveGameInfo).
|
|
|
|
For features that can be combined, the priority argument indicates the order of
|
|
priority (e.g., the order of the checks for ModDataChecker). For other features,
|
|
the feature with the highest priority will be used. The features provided by the
|
|
game plugin itself always have lowest priority.
|
|
|
|
The feature is associated to the plugin that registers it, if the plugin is
|
|
disabled, the feature will not be available.
|
|
|
|
This function will return True if the feature was registered, even if the
|
|
feature is not used du to its low priority.
|
|
|
|
args:
|
|
feature: Game feature to register.
|
|
priority: |
|
|
Priority of the game feature. If the plugin registering the feature
|
|
is a game plugin, this parameter is ignored.
|
|
replace: |
|
|
If True, remove features of the same kind registered by the current plugin,
|
|
otherwise add the feature alongside existing ones.
|
|
|
|
returns: True if the game feature was properly registered, False otherwise.
|
|
|
|
unregisterFeature:
|
|
__doc__: |
|
|
Unregister the given game feature.
|
|
|
|
This function is safe to use even if the given feature was never registered.
|
|
args:
|
|
feature: Feature to unregister.
|
|
returns: True if the feature was successfully unregistered, False otherwise.
|
|
|
|
unregisterFeatures:
|
|
__doc__: |
|
|
Unregister all features of the given type registered by the calling plugin.
|
|
|
|
This function is safe to use even if the plugin has no feature of the given type
|
|
register.
|
|
|
|
args:
|
|
feature_type:
|
|
__doc__: The class of feature to unregister.
|
|
type: Type[GameFeatureType]
|
|
|
|
returns: The number of unregistered features.
|
|
|
|
GamePlugins:
|
|
__abstract__: true
|
|
getLoadOrder:
|
|
__doc__:
|
|
returns:
|
|
lightPluginsAreSupported:
|
|
returns: True if light plugins are supported, False otherwise.
|
|
mediumPluginsAreSupported:
|
|
returns: True if medium plugins are supported, False otherwise.
|
|
blueprintPluginsAreSupported:
|
|
returns: True if blueprint plugins are supported, False otherwise.
|
|
readPluginLists:
|
|
__doc__:
|
|
args:
|
|
plugin_list:
|
|
writePluginLists:
|
|
__doc__:
|
|
args:
|
|
plugin_list:
|
|
|
|
GuessedString:
|
|
__doc__: |
|
|
Represents a string that may be set from different places. Each time the value is
|
|
changed a "quality" is specified to say how probable it is the value is the best choice.
|
|
Only the best choice should be used in the end but alternatives can be queried. This
|
|
class also allows a filter to be set. If a "guess" doesn't pass the filter, it is ignored.
|
|
|
|
__init__.1:
|
|
__doc__: Creates a GuessedString with no associated value.
|
|
|
|
__init__.2:
|
|
__doc__: Creates a GuessedString with the given value and quality.
|
|
args:
|
|
value: Initial value of the GuessedString.
|
|
quality: Quality of the initial value.
|
|
|
|
reset.1:
|
|
__doc__: Reset this GuessedString to an invalid state.
|
|
returns: This GuessedString object.
|
|
|
|
reset.2:
|
|
__doc__: |
|
|
Reset this GuessedString object with the given value and quality, only
|
|
if the given quality is better than the current one.
|
|
args:
|
|
value: New value for this GuessedString.
|
|
quality: Quality of the new value.
|
|
returns: This GuessedString object.
|
|
|
|
reset.3:
|
|
__doc__: |
|
|
Reset this GuessedString object by copying the given one, only
|
|
if the given one has better quality.
|
|
args:
|
|
other: The GuessedString to copy.
|
|
returns: This GuessedString object.
|
|
|
|
setFilter:
|
|
__doc__: |
|
|
Set the filter for this GuessedString.
|
|
|
|
The filter is applied on every `update()` and can reject the new value
|
|
altogether or modify it (by returning a new value).
|
|
args:
|
|
filter: The new filter.
|
|
|
|
update.1:
|
|
__doc__: |
|
|
Update this GuessedString by adding the given value to the list of variants
|
|
and setting the actual value without changing the current quality of this
|
|
GuessedString.
|
|
|
|
The GuessedString is only updated if the given value passes the filter.
|
|
args:
|
|
value: The new value for this string.
|
|
returns: This GuessedString object.
|
|
|
|
update.2:
|
|
__doc__: |
|
|
Update this GuessedString by adding a new variants with the given quality.
|
|
|
|
If the specified quality is better than the current one, the actual value of
|
|
the GuessedString is also updated.
|
|
|
|
The GuessedString is only updated if the given value passes the filter.
|
|
args:
|
|
value: The new variant to add.
|
|
quality: The quality of the variant.
|
|
returns: This GuessedString object.
|
|
|
|
variants:
|
|
returns: The list of variants for this GuessedString.
|
|
|
|
IDownloadManager:
|
|
downloadPath:
|
|
__doc__: Retrieve the (absolute) path of the specified download.
|
|
args:
|
|
id: ID of the download.
|
|
returns: |
|
|
The absolute path to the file corresponding to the given download. This file
|
|
may not exist yet if the download is incomplete.
|
|
|
|
startDownloadNexusFile:
|
|
__doc__: |
|
|
Download a file from www.nexusmods.com/<game>. <game> is always the game
|
|
currently being managed.
|
|
args:
|
|
mod_id: ID of the mod to download the file from.
|
|
file_id: ID of the file to download.
|
|
returns: An ID identifying the download.
|
|
|
|
startDownloadNexusFileForGame:
|
|
__doc__: Download a file from www.nexusmods.com.
|
|
args:
|
|
game_name: Short name of the game the mod is for.
|
|
mod_id: ID of the mod to download the file from.
|
|
file_id: ID of the file to download.
|
|
returns: An ID identifying the download.
|
|
|
|
startDownloadURLs:
|
|
__doc__: |
|
|
Download a file by url.
|
|
|
|
The list can contain alternative URLs to allow the download manager to switch
|
|
in case of download problems
|
|
args:
|
|
urls: List of urls to download from.
|
|
returns: An ID identifying the download.
|
|
|
|
onDownloadComplete:
|
|
__doc__: Installs a handler to be called when a download completes.
|
|
args:
|
|
callback: |
|
|
The function to be called when a download complete. The parameter is the download ID.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onDownloadPaused:
|
|
__doc__: Installs a handler to be called when a download is paused.
|
|
args:
|
|
callback: |
|
|
The function to be called when a download is paused. The parameter is the download ID.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onDownloadFailed:
|
|
__doc__: Installs a handler to be called when a download fails.
|
|
args:
|
|
callback: |
|
|
The function to be called when a download fails. The parameter is the download ID.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onDownloadRemoved:
|
|
__doc__: Installs a handler to be called when a download is removed.
|
|
args:
|
|
callback: |
|
|
The function to be called when a download is removed. The parameter is the download ID.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
IFileTree:
|
|
__doc__: |
|
|
Interface to classes that provides way to visualize and alter file trees. The tree
|
|
may not correspond to an actual file tree on the disk (e.g., inside an archive,
|
|
from a QTree Widget, ...).
|
|
|
|
Read-only operations on the tree are thread-safe, even when the tree has not been populated
|
|
yet.
|
|
|
|
In order to prevent wrong usage of the tree, implementing classes may throw
|
|
UnsupportedOperationException if an operation is not supported. By default, all operations
|
|
are supported, but some may not make sense in many situations.
|
|
|
|
The goal of this is not reflect the change made to a IFileTree to the disk, but child
|
|
classes may override relevant methods to do so.
|
|
|
|
The tree is built upon FileTreeEntry. A given tree holds shared pointers to its entries
|
|
while each entry holds a weak pointer to its parent, this means that the descending link
|
|
are strong (shared pointers) but the uplink are weak.
|
|
|
|
Accessing the parent is always done by locking the weak pointer so that returned pointer
|
|
or either null or valid. This structure implies that as long as the initial root lives,
|
|
entry should not be destroyed, unless the entry are detached from the root and no shared
|
|
pointers are kept.
|
|
|
|
However, it is not guarantee that one can go up the tree from a single node entry. If the
|
|
root node is destroyed, it will not be possible to go up the tree, even if we still have
|
|
a valid shared pointer.
|
|
|
|
GlobPatternType:
|
|
__doc__: |
|
|
Enumeration that can defines how the pattern is parsed in IFileTree.glob.
|
|
GLOB: Glob pattern, similar to pathlib.Path.glob.
|
|
REGEX: |
|
|
Regex pattern, i.e., each pattern of the pattern (between / and \) is considered
|
|
a regex, except for ** which has the same meaning as GLOB.
|
|
|
|
|
|
InsertPolicy:
|
|
__doc__:
|
|
FAIL_IF_EXISTS: Operation will fail if the destination already exists.
|
|
REPLACE: |
|
|
If the destination exists, it will be replaced (even if the source is a file and
|
|
the destination a directory).
|
|
MERGE: |
|
|
If the destination exists, and the source and destination are of the same type (e.g.
|
|
two files or two folders), a merge is performed: if both entries are files, the source
|
|
replaces the destination, otherwise the source is merged into the destination. If the
|
|
destination exists but the source and the destination are of different type, the
|
|
operation fails.
|
|
|
|
WalkReturn:
|
|
__doc__: |
|
|
Enumeration that can be returned by the callback for the `walk()` method to stop the
|
|
walking operation early.
|
|
CONTINUE: Continue walking normally.
|
|
STOP: Stop the walking operation.
|
|
SKIP: Skip this folder (no effect if the entry is a file).
|
|
|
|
__bool__:
|
|
returns: True if this tree is not empty, False otherwise.
|
|
|
|
__getitem__:
|
|
__doc__: Retrieve the entry at the given index in this tree.
|
|
args:
|
|
index: Index of the entry to retrieve, must be less than the size.
|
|
returns: The entry at the given index.
|
|
raises:
|
|
IndexError: If the given index is not in range for this tree.
|
|
|
|
__iter__:
|
|
__doc__: |
|
|
Retrieves an iterator for entries directly under this tree.
|
|
|
|
This method does not recurse into subtrees, see `walk()` for this.
|
|
|
|
# Force the list of arguments to be empty (this will still include self):
|
|
args:
|
|
|
|
# We are forcing the return type because parsing C++ iterators is a pain:
|
|
returns:
|
|
__doc__: An iterator object that can be used to iterate over entries in this tree.
|
|
type: "Iterator[FileTreeEntry]"
|
|
|
|
__len__:
|
|
returns: The number of entries directly under this tree.
|
|
|
|
addDirectory:
|
|
__doc__: |
|
|
Create a new directory tree under this tree.
|
|
|
|
This method will create missing folders in the given path and will
|
|
not fail if the directory already exists but will fail if the given
|
|
path contains "." or "..".
|
|
This method invalidates iterators to this tree and all the subtrees
|
|
present in the given path.
|
|
args:
|
|
path: Path to the directory to create.
|
|
returns: An IFileTree corresponding to the created directory.
|
|
raises:
|
|
RuntimeError: If the directory could not be created.
|
|
|
|
addFile:
|
|
__doc__: |
|
|
Create a new file directly under this tree.
|
|
|
|
This method will fail if the file already exists and `replace_if_exists` is `False`.
|
|
This method invalidates iterators to this tree and all the subtrees present in the
|
|
given path.
|
|
args:
|
|
path: Path to the file to create.
|
|
replace_if_exists: |
|
|
If True and an entry already exists at the given location, it will be replaced by
|
|
a new entry. This will replace both files and directories.
|
|
returns: A FileTreeEntry corresponding to the created file.
|
|
raises:
|
|
RuntimeError: If the file could not be created.
|
|
|
|
clear:
|
|
__doc__: |
|
|
Delete (detach) all the entries from this tree.
|
|
|
|
This method will go through the entries in this tree and stop at the first
|
|
entry that cannot be deleted, this means that the tree can be partially cleared.
|
|
returns: True if all entries have been detached, False otherwise.
|
|
|
|
copy:
|
|
__doc__: |
|
|
Move the given entry to the given path under this tree.
|
|
|
|
The entry must not be a parent tree of this tree. This method can also be used
|
|
to rename entries.
|
|
|
|
If the insert policy if FAIL_IF_EXISTS, the call will fail if an entry
|
|
at the same location already exists. If the policy is REPLACE, an existing
|
|
entry will be replaced. If MERGE, the entry will be merged with the existing
|
|
one (if the entry is a file, and a file exists, the file will be replaced).
|
|
|
|
This method invalidates iterator to this tree, to the parent tree of the given
|
|
entry, and to subtrees of this tree if the insert policy is MERGE.
|
|
args:
|
|
entry: Entry to copy.
|
|
path: |
|
|
The path to copy the entry to. If the path ends with / or \\, the entry will
|
|
be copied in the corresponding directory instead of replacing it. If the
|
|
given path is empty (`""`), the entry is copied directly under this tree.
|
|
insert_policy: Policy to use to resolve conflicts.
|
|
returns: The new entry (copy of the specified entry).
|
|
raises:
|
|
RuntimeError: If the entry could not be copied.
|
|
|
|
createOrphanTree:
|
|
__doc__: Create a new orphan empty tree.
|
|
args:
|
|
name: Name of the tree.
|
|
returns: A new tree without any parent.
|
|
|
|
exists:
|
|
__doc__: Check if the given entry exists.
|
|
args:
|
|
path: Path to the entry, separated by / or \\.
|
|
type: The type of the entry to check.
|
|
returns: True if the entry was found, False otherwise.
|
|
|
|
find:
|
|
__doc__: |
|
|
Retrieve the given entry.
|
|
|
|
If no entry exists at the given path, or if the entry is not of the right
|
|
type, `None` is returned.
|
|
args:
|
|
path: Path to the entry, separated by / or \\.
|
|
type: The type of the entry to check.
|
|
returns:
|
|
__doc__: |
|
|
The entry at the given location, or `None` if the entry was not found or
|
|
was not of the correct type.
|
|
type: IFileTree | FileTreeEntry | None
|
|
|
|
glob:
|
|
__doc__: Glob entries matching the given pattern in this tree.
|
|
args:
|
|
pattern: Glob pattern to match.
|
|
type: Type of the pattern.
|
|
returns:
|
|
__doc__: An iterator over entry of this tree matching the given pattern.
|
|
type: Iterator[FileTreeEntry]
|
|
|
|
insert:
|
|
__doc__: |
|
|
Insert the given entry in this tree, removing it from its
|
|
previous parent.
|
|
|
|
The entry must not be this tree or a parent entry of this tree.
|
|
|
|
- If the insert policy if `FAIL_IF_EXISTS`, the call will fail if an entry
|
|
with the same name already exists.
|
|
- If the policy is `REPLACE`, an existing entry will be replaced by the given entry.
|
|
- If the policy is `MERGE`:
|
|
|
|
- If there is no entry with the same name, the new entry is inserted.
|
|
- If there is an entry with the same name:
|
|
|
|
- If both entries are files, the old file is replaced by the given entry.
|
|
- If both entries are directories, a merge is performed as if using merge().
|
|
- Otherwise the insertion fails (two entries with different types).
|
|
|
|
This method invalidates iterator to this tree, to the parent tree of the given
|
|
entry, and to subtrees of this tree if the insert policy is MERGE.
|
|
args:
|
|
entry: Entry to insert.
|
|
policy: Policy to use to resolve conflicts.
|
|
returns: True if the entry was insert, False otherwise.
|
|
|
|
merge:
|
|
__doc__: |
|
|
Merge the given tree with this tree, i.e., insert all entries
|
|
of the given tree into this tree.
|
|
|
|
The tree must not be this tree or a parent entry of this tree. Files present in both tree
|
|
will be replaced by files in the given tree. After a merge, the source tree will be
|
|
empty but still attached to its parent.
|
|
|
|
If `overwrites` is `True`, a map from overridden files to new files will be returned.
|
|
|
|
Note that the merge process makes no distinction between files and directories
|
|
when merging: if a directory is present in this tree and a file from source
|
|
is in conflict with it, the tree will be removed and the file inserted; if a file
|
|
is in this tree and a directory from source is in conflict with it, the file will
|
|
be replaced with the directory.
|
|
|
|
This method invalidates iterators to this tree, all the subtrees under this tree
|
|
present in the given path, and all the subtrees of the given source.
|
|
args:
|
|
other: Tree to merge.
|
|
overwrites: If True, a mapping from overridden files to new files will be returned.
|
|
returns: |
|
|
If `overwrites` is True, a mapping from overridden files to new files, otherwise
|
|
the number of overwritten entries.
|
|
raises:
|
|
RuntimeError: If the merge failed.
|
|
|
|
move:
|
|
__doc__: |
|
|
Move the given entry to the given path under this tree.
|
|
|
|
The entry must not be a parent tree of this tree. This method can also be used
|
|
to rename entries.
|
|
|
|
If the insert policy if FAIL_IF_EXISTS, the call will fail if an entry
|
|
at the same location already exists. If the policy is REPLACE, an existing
|
|
entry will be replaced. If MERGE, the entry will be merged with the existing
|
|
one (if the entry is a file, and a file exists, the file will be replaced).
|
|
|
|
This method invalidates iterator to this tree, to the parent tree of the given
|
|
entry, and to subtrees of this tree if the insert policy is MERGE.
|
|
args:
|
|
entry: Entry to move.
|
|
path: |
|
|
The path to move the entry to. If the path ends with / or \\, the entry will
|
|
be inserted in the corresponding directory instead of replacing it. If the
|
|
given path is empty (`""`), this is equivalent to `insert()`.
|
|
policy: Policy to use to resolve conflicts.
|
|
returns: True if the entry was moved correctly, False otherwise.
|
|
|
|
pathTo:
|
|
__doc__: Retrieve the path from this tree to the given entry.
|
|
args:
|
|
entry: The entry to reach, must be in this tree.
|
|
sep: The type of separator to use to create the path.
|
|
returns: |
|
|
The path from this tree to the given entry, including the name of the entry, or
|
|
an empty string if the given entry was not found under this tree.
|
|
|
|
remove.1:
|
|
__doc__: |
|
|
Delete the entry with the given name.
|
|
|
|
This method does not recurse into subtrees, so the entry should be
|
|
accessible directly from this tree.
|
|
args:
|
|
name: Name of the entry to delete.
|
|
returns: True if the entry was deleted, False otherwise.
|
|
|
|
remove.2:
|
|
__doc__: Delete the given entry.
|
|
args:
|
|
entry: Entry to delete. The entry must belongs to this tree (and not to a subtree).
|
|
returns: True if the entry was deleted, False otherwise.
|
|
|
|
removeAll:
|
|
__doc__: |
|
|
Delete the entries with the given names from the tree.
|
|
|
|
This method does not recurse into subtrees, so only entries accessible
|
|
directly from this tree will be removed. This method invalidates iterators.
|
|
args:
|
|
names: Names of the entries to delete.
|
|
returns: The number of deleted entry.
|
|
|
|
removeIf:
|
|
__doc__: |
|
|
Delete entries matching the given predicate from the tree.
|
|
|
|
This method does not recurse into subtrees, so only entries accessible
|
|
directly from this tree will be removed. This method invalidates iterators.
|
|
args:
|
|
filter: Predicate that should return true for entries to delete.
|
|
returns: The number of deleted entry.
|
|
|
|
walk.1:
|
|
__doc__: |
|
|
Walk this tree, calling the given function for each entry in it.
|
|
|
|
The given callback will be called with two parameters: the path from this tree to the given entry
|
|
(with a trailing separator, not including the entry name), and the actual entry. The method returns
|
|
a `WalkReturn` object to indicates what to do.
|
|
args:
|
|
callback: Method to call for each entry in the tree.
|
|
sep: Type of separator to use to construct the path.
|
|
|
|
walk.2:
|
|
__doc__: |
|
|
Walk this tree and return the entries in it.
|
|
|
|
During the walk, parent tree are guaranteed to be visited before their children.
|
|
The current tree is not included in the return generator.
|
|
returns:
|
|
__doc__: An iterator over entry of this tree.
|
|
type: Iterator[FileTreeEntry]
|
|
|
|
IInstance:
|
|
__doc__: Represents a Mod Organizer instance, either global or portable.
|
|
|
|
displayName:
|
|
returns: The instance name; this is the directory name or "Portable" for portable instances.
|
|
|
|
gameName:
|
|
returns: The name of the game managed by this instance, or an empty string if the INI file could not be read.
|
|
|
|
gameDirectory:
|
|
returns: The directory where the game is installed, or an empty string if the INI file could not be read.
|
|
|
|
isPortable:
|
|
returns: True if this is a portable instance, False if it is a global one.
|
|
|
|
IInstanceManager:
|
|
__doc__: Interface to the instance manager of Mod Organizer.
|
|
|
|
currentInstance:
|
|
returns: The current instance.
|
|
|
|
globalInstancePaths:
|
|
__doc__: |
|
|
Retrieve the list of absolute paths to all global instances.
|
|
|
|
This does not include portable instances.
|
|
returns: The list of absolute paths to all global instances.
|
|
|
|
getGlobalInstance:
|
|
__doc__: Retrieve the global instance corresponding to the given name.
|
|
args:
|
|
instanceName: |
|
|
Name of the global instance to retrieve. This is the directory
|
|
name of the instance.
|
|
returns: The global instance corresponding to the given name, or `None` if no such instance exists.
|
|
|
|
|
|
IInstallationManager:
|
|
__doc__:
|
|
|
|
createFile:
|
|
__doc__: |
|
|
Create a new file on the disk corresponding to the given entry.
|
|
|
|
This method can be used by installer that needs to create files that are not in the original
|
|
archive. At the end of the installation, if there are entries in the final tree that were used
|
|
to create files, the corresponding files will be moved to the mod folder.
|
|
|
|
Temporary files corresponding to created files are automatically cleaned up at the end of
|
|
the installation.
|
|
args:
|
|
entry: The entry for which a temporary file should be created.
|
|
returns: The path to the created file, or an empty string if the file could not be created.
|
|
|
|
extractFile:
|
|
__doc__: |
|
|
Extract the specified file from the currently opened archive to a temporary
|
|
location.
|
|
|
|
This method cannot be used to extract directory.
|
|
|
|
The call will fail with an exception if no archive is open (plugins deriving from
|
|
IPluginInstallerSimple can rely on that, custom installers should not). The temporary
|
|
file is automatically cleaned up after the installation. This call can be very slow
|
|
if the archive is large and "solid".
|
|
args:
|
|
entry: Entry corresponding to the file to extract.
|
|
silent: If true, the dialog showing extraction progress will not be shown.
|
|
returns: |
|
|
The absolute path to the temporary file, or an empty string if the file was not extracted.
|
|
|
|
extractFiles:
|
|
__doc__: |
|
|
Extract the specified files from the currently opened archive to a temporary
|
|
location.
|
|
|
|
This method cannot be used to extract directories.
|
|
|
|
The call will fail with an exception if no archive is open (plugins deriving from
|
|
IPluginInstallerSimple can rely on that, custom installers should not). The temporary
|
|
files are automatically cleaned up after the installation. This call can be very slow
|
|
if the archive is large and "solid".
|
|
args:
|
|
entries: Entries corresponding to the files to extract.
|
|
silent: If true, the dialog showing extraction progress will not be shown.
|
|
returns: A list containing absolute paths to the temporary files.
|
|
|
|
getSupportedExtensions:
|
|
returns: The extensions of archives supported by this installation manager.
|
|
|
|
installArchive:
|
|
__doc__: Install the given archive.
|
|
args:
|
|
mod_name: Suggested name of the mod.
|
|
archive: Path to the archive to install.
|
|
mod_id: ID of the mod, if available.
|
|
returns: The result of the installation.
|
|
|
|
IModInterface:
|
|
absolutePath:
|
|
returns: Absolute path to the mod to be used in file system operations.
|
|
|
|
author:
|
|
returns: The author of this mode.
|
|
|
|
isBackup:
|
|
returns: True if this mod represents a backup.
|
|
|
|
isForeign:
|
|
returns: True if this mod represents a foreign mod, not managed by MO2.
|
|
|
|
isOverwrite:
|
|
returns: True if this mod represents the overwrite mod.
|
|
|
|
isSeparator:
|
|
returns: True if this mod represents a separator.
|
|
|
|
name:
|
|
returns: The name of this mod.
|
|
|
|
comments:
|
|
returns: The comments for this mod, if any.
|
|
|
|
notes:
|
|
returns: The notes for this mod, if any.
|
|
|
|
gameName:
|
|
__doc__: |
|
|
Retrieve the short name of the game associated with this mod. This may differ
|
|
from the current game plugin (e.g. you can install a Skyrim LE game in a SSE
|
|
installation).
|
|
|
|
returns: The name of the game associated with this mod.
|
|
|
|
repository:
|
|
returns: The name of the repository from which this mod was installed.
|
|
|
|
nexusId:
|
|
returns: The Nexus ID of this mod.
|
|
|
|
version:
|
|
returns: The current version of this mod.
|
|
|
|
newestVersion:
|
|
returns: |
|
|
The newest version of this mod (as known by MO2). If this matches version(),
|
|
then the mod is up-to-date.
|
|
|
|
ignoredVersion:
|
|
returns: |
|
|
The ignored version of this mod (for update), or an invalid version if the user
|
|
did not ignore version for this mod.
|
|
|
|
installationFile:
|
|
returns: The absolute path to the file that was used to install this mod.
|
|
|
|
converted:
|
|
__doc__: |
|
|
Check if the mod was marked as converted by the user.
|
|
|
|
When a mod is for a different game, a flag is shown to users to warn them, but
|
|
they can mark mods as converted to remove this flag.
|
|
|
|
returns: True if this mod was marked as converted by the user.
|
|
|
|
validated:
|
|
__doc__: |
|
|
Check if the mod was marked as validated by the user.
|
|
|
|
MO2 uses ModDataChecker to check the content of mods, but sometimes these fail, in
|
|
which case mods are incorrectly marked as 'not containing valid games data'. Users can
|
|
choose to mark these mods as valid to hide the warning / flag.
|
|
|
|
returns: True if th is mod was marked as containing valid game data.
|
|
|
|
color:
|
|
returns: The color of the 'Notes' column chosen by the user.
|
|
|
|
uploader:
|
|
returns: The uploader of this mod.
|
|
|
|
uploaderUrl:
|
|
returns: The URL of the uploader of this mod.
|
|
|
|
url:
|
|
returns: |
|
|
The URL of this mod, or an empty QString() if no URL is associated
|
|
with this mod.
|
|
|
|
primaryCategory:
|
|
returns: The ID of the primary category of this mod.
|
|
|
|
categories:
|
|
returns: The list of categories this mod belongs to.
|
|
|
|
trackedState:
|
|
returns: The tracked state of this mod.
|
|
|
|
endorsedState:
|
|
returns: The endorsement state of this mod.
|
|
|
|
fileTree:
|
|
__doc__: |
|
|
Retrieve a file tree corresponding to the underlying disk content of this mod.
|
|
|
|
The file tree should not be cached by plugins since it is already and updated when
|
|
required.
|
|
returns: A file tree representing the content of this mod.
|
|
|
|
addCategory:
|
|
__doc__: Assign a category to the mod. If the named category does not exist it is created.
|
|
args:
|
|
name: Name of the new category to assign.
|
|
|
|
addNexusCategory:
|
|
__doc__: |
|
|
Set the category id from a nexus category id. Conversion to MO ID happens internally.
|
|
|
|
If a mapping is not possible, the category is set to the default value.
|
|
args:
|
|
category_id: The Nexus category ID.
|
|
|
|
removeCategory:
|
|
__doc__: Unassign a category from this mod.
|
|
args:
|
|
name: Name of the category to remove.
|
|
returns: |
|
|
True if the category was removed, False otherwise (e.g. if no such category
|
|
was assigned).
|
|
|
|
setGameName:
|
|
__doc__: Set the source game of this mod.
|
|
args:
|
|
name: The new source game short name of this mod.
|
|
|
|
setIsEndorsed:
|
|
__doc__: Set endorsement state of the mod.
|
|
args:
|
|
endorsed: New endorsement state of this mod.
|
|
|
|
setNewestVersion:
|
|
__doc__: Set the latest known version of this mod.
|
|
args:
|
|
version: The latest known version of this mod.
|
|
|
|
setNexusID:
|
|
__doc__: Set the Nexus ID of this mod.
|
|
args:
|
|
nexus_id: Thew new Nexus ID of this mod.
|
|
|
|
setUrl:
|
|
__doc__: Set the URL of this mod.
|
|
args:
|
|
url: The URL of this mod.
|
|
|
|
setVersion:
|
|
__doc__: Set the version of this mod.
|
|
args:
|
|
version: The new version of this mod.
|
|
|
|
pluginSetting:
|
|
__doc__: Retrieve the specified setting in this mod for a plugin.
|
|
|
|
args:
|
|
plugin_name: |
|
|
Name of the plugin for which to retrieve a setting. This should always be `IPlugin.name()`
|
|
unless you have a really good reason to access settings of another plugin.
|
|
key: Identifier of the setting.
|
|
default: The default value to return if the setting does not exist.
|
|
|
|
returns: The setting, if found, or the default value.
|
|
|
|
pluginSettings:
|
|
__doc__: Retrieve the settings in this mod for a plugin.
|
|
|
|
args:
|
|
plugin_name: |
|
|
Name of the plugin for which to retrieve settings. This should always be `IPlugin.name()`
|
|
unless you have a really good reason to access settings of another plugin.
|
|
|
|
returns: A map from setting key to value. The map is empty if there are not settings for this mod.
|
|
|
|
setPluginSetting:
|
|
__doc__: Set the specified setting in this mod for a plugin.
|
|
|
|
args:
|
|
plugin_name: |
|
|
Name of the plugin for which to retrieve a setting. This should always be `IPlugin.name()`
|
|
unless you have a really good reason to access settings of another plugin.
|
|
key: Identifier of the setting.
|
|
value: New value for the setting to set.
|
|
|
|
returns: True if the setting was set correctly, False otherwise.
|
|
|
|
clearPluginSettings:
|
|
__doc__: Remove all the settings of the specified plugin this mod.
|
|
|
|
args:
|
|
plugin_name: |
|
|
Name of the plugin for which settings should be removed. This should always be `IPlugin.name()`
|
|
unless you have a really good reason to access settings of another plugin.
|
|
|
|
returns: The old settings from the given plugin, as returned by `pluginSettings()`.
|
|
|
|
IModList:
|
|
__doc__: |
|
|
Interface to the mod-list.
|
|
|
|
All api functions in this interface work need the internal name of a mod to find a
|
|
mod. For regular mods (mods the user installed) the display name (as shown to the user)
|
|
and internal name are identical. For other mods (non-MO mods) there is currently no way
|
|
to translate from display name to internal name because the display name might not me un-ambiguous.
|
|
|
|
allMods:
|
|
returns: A list containing the internal names of all installed mods.
|
|
|
|
allModsByProfilePriority:
|
|
returns: The list of mod (names), sorted according to the current profile priorities.
|
|
|
|
displayName:
|
|
__doc__: |
|
|
Retrieve the display name of a mod from its internal name.
|
|
|
|
If you received an internal name from the API (e.g. `IPluginList.origin`) then you should use
|
|
that name to identify the mod in all other api calls but use this function to retrieve the name
|
|
to show to the user.
|
|
args:
|
|
name: Internal name of the mod.
|
|
returns: The display name of the given mod.
|
|
|
|
getMod:
|
|
__doc__: Retrieve an interface to a mod using its name.
|
|
args:
|
|
name: Name of the mod to retrieve.
|
|
returns: An interface to the given mod, or `None` if there is no mod with this name.
|
|
|
|
removeMod:
|
|
__doc__: Remove a mod (from disc and from the UI).
|
|
args:
|
|
mod: The mod to remove.
|
|
returns: True if the mod was removed, False otherwise.
|
|
|
|
onModInstalled:
|
|
__doc__: Install a new handler to be called when a new mod is installed.
|
|
args:
|
|
callback: |
|
|
The function to call when a mod is installed. The parameter of the function is the name of the
|
|
newly installed mod.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onModRemoved:
|
|
__doc__: Install a new handler to be called when a mod is removed.
|
|
args:
|
|
callback: |
|
|
The function to call when a mod is removed. The parameter of the function is the name of the
|
|
removed mod.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onModMoved:
|
|
__doc__: Install a handler to be called when a mod is moved.
|
|
args:
|
|
callback: |
|
|
The function to call when a mod is moved. The first argument is the internal name of the
|
|
mod, the second argument the old priority and the third argument the new priority.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onModStateChanged.1:
|
|
__doc__: Install a handler to be called when a mod state changes (enabled/disabled, endorsed, ...).
|
|
deprecated: true
|
|
args:
|
|
callback: |
|
|
The function to call when the state of a mod changes. The first argument is the internal
|
|
mod name, and the second one the new state of the mod.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onModStateChanged.2:
|
|
__doc__: Install a handler to be called when mod states change (enabled/disabled, endorsed, ...).
|
|
args:
|
|
callback: |
|
|
The function to call when the states of mod change. The argument is a map containing the
|
|
mods whose states have changed. Keys are internal mod names and values are mod states.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
priority:
|
|
__doc__: Retrieve the priority of a mod.
|
|
args:
|
|
name: Internal name of the mod.
|
|
returns: The priority of the given mod.
|
|
|
|
renameMod:
|
|
__doc__: |
|
|
Rename the given mod.
|
|
|
|
This method usually invalidates the given mod so you should use the returned value
|
|
after calling it instead of the passed value.
|
|
|
|
args:
|
|
mod: The mod to rename.
|
|
name: The new name of the mod.
|
|
|
|
returns: A valid reference to the given mod after renaming it.
|
|
|
|
setActive.1:
|
|
__doc__: |
|
|
Enable or disable a list of mods.
|
|
|
|
Calling this will cause MO to re-evaluate its virtual file system so this is
|
|
a fairly expensive call.
|
|
args:
|
|
names: Internal names of the mod to enable or disable.
|
|
active: True to enable the mods, False to disable them.
|
|
returns: True on success, False otherwise.
|
|
|
|
setActive.2:
|
|
__doc__: |
|
|
Enable or disable a mod.
|
|
|
|
Calling this will cause MO to re-evaluate its virtual file system so this is
|
|
a fairly expensive call.
|
|
args:
|
|
name: Internal name of the mod to enable or disable.
|
|
active: True to enable the mod, False to disable it.
|
|
returns: True on success, False otherwise.
|
|
|
|
setPriority:
|
|
__doc__: |
|
|
Change the priority of a mod.
|
|
|
|
`priority` is the new priority after the move. Keep in mind that the mod disappears from its
|
|
old location and all mods with higher priority than the moved mod decrease in priority by one.
|
|
args:
|
|
name: Internal name of the mod.
|
|
priority: The new priority of the mod.
|
|
returns: |
|
|
True if the priority was changed, False otherwise (if the name or priority were invalid).
|
|
|
|
state:
|
|
__doc__: Retrieve the state of a mod.
|
|
args:
|
|
name: Internal name of the mod.
|
|
returns: The state of the given mod.
|
|
|
|
IModRepositoryBridge:
|
|
__bases__:
|
|
- PyQt6.QtCore.QObject
|
|
|
|
signals[]:
|
|
descriptionAvailable:
|
|
__doc__: |
|
|
Emitted when the description for a mod is reported by the repository.
|
|
|
|
Valid keys in `result_data` might change as the repository page is updated. For nexus, the following
|
|
keys are valid as of this writing:
|
|
'allow_view', 'ip', 'one_week_ratings', 'date', 'pm_notify', 'OLD_mid', 'OLD_u_downloads', 'game_id', 'OLD_perm_use', 'mod_page_uri',
|
|
'allow_topics', 'has_hot_image', 'id', 'two_weeks_ratings', 'description', 'lastupdate', 'perm_convert', 'author', 'OLD_image',
|
|
'translation_of', 'OLD_mname', 'version', 'allow_rating', 'perm_useinstructions', 'featured_count', 'donate', 'type', 'perm_credits',
|
|
'hidden_reason', 'OLD_views', 'perm_upload', 'has_back_image', 'adult', 'allow_images', 'OLD_endorsements', 'OLD_size', 'name',
|
|
'commenting', 'moderate', 'language', 'perm_others', 'lastcomment', 'OLD_readme', 'summary', 'perm_modify', 'OLD_downloads',
|
|
'lock_comments', 'suggested_category', 'allow_tagging', 'published', 'perm_notes', 'category_id', 'thread_id', 'perm_use', 'wizard_steps'
|
|
|
|
This interface is going to be changed at some point to replace resultData with a less "dynamic" data structure.
|
|
args:
|
|
game_name:
|
|
type: str
|
|
desc: Name of the game.
|
|
mod_id:
|
|
type: int
|
|
desc: ID of the mod for which the request was made.
|
|
user_data:
|
|
type: MoVariant
|
|
desc: The data that was included in the request.
|
|
result_data:
|
|
type: dict[str, MoVariant]
|
|
desc: The data included in the response.
|
|
|
|
filesAvailable:
|
|
__doc__: Emitted when the list of files for a mod is reported by the repository.
|
|
args:
|
|
game_name:
|
|
type: str
|
|
desc: Name of the game.
|
|
mod_id:
|
|
type: int
|
|
desc: ID of the mod for which the request was made.
|
|
user_data:
|
|
type: MoVariant
|
|
desc: The data that was included in the request.
|
|
result_data:
|
|
type: list[ModRepositoryFileInfo]
|
|
desc: List of file information objects.
|
|
|
|
fileInfoAvailable:
|
|
__doc__: |
|
|
Emitted when information about a file is reported by the repository.
|
|
|
|
Valid keys in `result_data` might change as the repository page is updated. For nexus, the following
|
|
keys are valid as of this writing:
|
|
'count', 'requirements_alert', 'u_count', 'description', 'uri', 'size', 'owner_id', 'primary', 'manager',
|
|
'version', 'date', 'game_id', 'mod_id', 'category_id', 'id', 'name'
|
|
|
|
If you intend to download this file you do not have to request this information manually, you can call
|
|
IDownloadManager.startDownloadNexusFile() and let the download manager figure things out.
|
|
|
|
This interface is going to be changed at some point to replace resultData with a less "dynamic" data structure.
|
|
args:
|
|
game_name:
|
|
type: str
|
|
desc: Name of the game.
|
|
mod_id:
|
|
type: int
|
|
desc: ID of the mod for which the request was made.
|
|
user_data:
|
|
type: MoVariant
|
|
desc: The data that was included in the request.
|
|
result_data:
|
|
type: dict[str, MoVariant]
|
|
desc: The data included in the response.
|
|
|
|
downloadURLsAvailable:
|
|
__doc__: |
|
|
Emitted when the list of download urls for a file is returned by the repository.
|
|
|
|
This interface is going to be changed at some point to replace resultData with a less "dynamic" data structure.
|
|
args:
|
|
game_name:
|
|
type: str
|
|
desc: Name of the game.
|
|
mod_id:
|
|
type: int
|
|
desc: ID of the mod for which the request was made.
|
|
file_id:
|
|
type: int
|
|
desc: ID of the file for which the request was made.
|
|
user_data:
|
|
type: MoVariant
|
|
desc: The data that was included in the request.
|
|
result_data:
|
|
type: dict[str, MoVariant]
|
|
desc: The data included in the response.
|
|
|
|
endorsementsAvailable:
|
|
__doc__: Emitted when the endorsement data is returned from the API.
|
|
args:
|
|
user_data:
|
|
type: MoVariant
|
|
desc: The data that was included in the request.
|
|
result_data:
|
|
type: bool
|
|
desc: The new endorsement state.
|
|
|
|
endorsementToggled:
|
|
__doc__: Emitted when the endorsement state of a mod was changed (only sent as a result of our request).
|
|
args:
|
|
game_name:
|
|
type: str
|
|
desc: Name of the game.
|
|
mod_id:
|
|
type: int
|
|
desc: ID of the mod for which the request was made.
|
|
user_data:
|
|
type: MoVariant
|
|
desc: The data that was included in the request.
|
|
result_data:
|
|
type: bool
|
|
desc: The new endorsement state.
|
|
|
|
trackedModsAvailable:
|
|
__doc__: Emitted when the tracked mod data is returned from the API.
|
|
args:
|
|
user_data:
|
|
type: MoVariant
|
|
desc: The data that was included in the request.
|
|
result_data:
|
|
type: bool
|
|
desc: The new tracking state as a list of maps with keys (domain_name, mod_id).
|
|
|
|
trackingToggled:
|
|
__doc__: Emitted when the tracking state of a mod was changed (only sent as a result of our request).
|
|
args:
|
|
game_name:
|
|
type: str
|
|
desc: Name of the game.
|
|
mod_id:
|
|
type: int
|
|
desc: ID of the mod for which the request was made.
|
|
user_data:
|
|
type: MoVariant
|
|
desc: The data that was included in the request.
|
|
result_data:
|
|
type: bool
|
|
desc: The new tracking state.
|
|
|
|
requestFailed:
|
|
__doc__: Emitted when a Nexus request failed.
|
|
args:
|
|
game_name:
|
|
type: str
|
|
desc: Name of the game.
|
|
mod_id:
|
|
type: int
|
|
desc: ID of the mod for which the request was made.
|
|
file_id:
|
|
type: int
|
|
desc: ID of the file for which the request was made (ignore if the request was for a mod in general).
|
|
user_data:
|
|
type: MoVariant
|
|
desc: The data that was included in the request.
|
|
error:
|
|
type: PyQt6.QtNetwork.QNetworkReply.NetworkError
|
|
desc: The actual error.
|
|
message:
|
|
type: str
|
|
desc: Textual description of the error.
|
|
|
|
_object:
|
|
returns: The underlying `QObject` for the bridge.
|
|
|
|
requestDescription:
|
|
__doc__: Request description of a mod.
|
|
args:
|
|
game_name: Name of the game containing the mod.
|
|
mod_id: Nexus ID of the mod.
|
|
user_data: User data to be returned with the result.
|
|
|
|
requestDownloadURL:
|
|
__doc__: Request download URL for mod file.0
|
|
args:
|
|
game_name: Name of the game containing the mod.
|
|
mod_id: Nexus ID of the mod.
|
|
file_id: ID of the file for which a URL should be returned.
|
|
user_data: User data to be returned with the result.
|
|
|
|
requestFileInfo:
|
|
__doc__:
|
|
args:
|
|
game_name: Name of the game containing the mod.
|
|
mod_id: Nexus ID of the mod.
|
|
file_id: ID of the file for which information is requested.
|
|
user_data: User data to be returned with the result.
|
|
|
|
requestFiles:
|
|
__doc__: Request the list of files belonging to a mod.
|
|
args:
|
|
game_name: Name of the game containing the mod.
|
|
mod_id: Nexus ID of the mod.
|
|
user_data: User data to be returned with the result.
|
|
|
|
requestToggleEndorsement:
|
|
__doc__:
|
|
args:
|
|
game_name: Name of the game containing the mod.
|
|
mod_id: Nexus ID of the mod.
|
|
mod_version: Version of the mod.
|
|
endorse:
|
|
user_data: User data to be returned with the result.
|
|
|
|
IOrganizer:
|
|
__doc__: |
|
|
Interface to class that provides information about the running session
|
|
of Mod Organizer to be used by plugins.
|
|
|
|
getPluginDataPath:
|
|
returns: The directory for plugin data, typically plugins/data.
|
|
|
|
basePath:
|
|
returns: The absolute path to the base directory of Mod Organizer.
|
|
|
|
createMod:
|
|
__doc__: |
|
|
Create a new mod with the specified name.
|
|
|
|
If a mod with the same name already exists, the user will be queried. If the user chooses
|
|
to merge or replace, the call will succeed, otherwise the call will fail.
|
|
args:
|
|
name: Name of the mod to create.
|
|
returns: |
|
|
An interface to the newly created mod that can be used to modify it, or `None` if the mod
|
|
could not be created.
|
|
|
|
createNexusBridge:
|
|
__doc__: Create a new Nexus interface.
|
|
returns: The newly created Nexus interface.
|
|
|
|
downloadManager:
|
|
returns: The interface to the download manager.
|
|
|
|
downloadsPath:
|
|
returns: The absolute path to the download directory.
|
|
|
|
executablesList:
|
|
returns: The interface to list of executables.
|
|
|
|
findFileInfos:
|
|
__doc__: Find files in the virtual directory matching the specified filter.
|
|
args:
|
|
path: The path to search in (relative to the 'data' folder).
|
|
filter: The function to use to filter files. Should return True for the files to keep.
|
|
returns: The list of `QFileInfo` corresponding to the matching files.
|
|
|
|
findFiles.1:
|
|
__doc__: Find files in the given folder that matches the given filter.
|
|
args:
|
|
path: The path to search in (relative to the 'data' folder).
|
|
filter: The function to use to filter files. Should return True for the files to keep.
|
|
returns: The list of matching files.
|
|
|
|
findFiles.2:
|
|
__doc__: Find files in the given folder that matches one of the given glob patterns.
|
|
args:
|
|
path: The path to search in (relative to the 'data' folder).
|
|
patterns: List of glob patterns to match against.
|
|
returns: The list of matching files.
|
|
|
|
findFiles.3:
|
|
__doc__: Find files in the given folder that matches the given glob pattern.
|
|
args:
|
|
path: The path to search in (relative to the 'data' folder).
|
|
pattern: The glob pattern to use to filter files.
|
|
returns: The list of matching files.
|
|
|
|
gameFeatures:
|
|
returns: The interface to the game features.
|
|
|
|
getFileOrigins:
|
|
__doc__: |
|
|
Retrieve the file origins for the specified file.
|
|
|
|
The origins are listed with their internal name. The internal name of a mod can differ
|
|
from the display name for disambiguation.
|
|
args:
|
|
filename: Path to the file to retrieve origins for (relative to the 'data' folder).
|
|
returns: The list of origins that contain the specified file, sorted by their priority.
|
|
|
|
getGame:
|
|
__doc__: Retrieve the game plugin matching the given name.
|
|
args:
|
|
name: Name of the game (short name).
|
|
returns: The plugin for the given game, or `None` if none was found.
|
|
|
|
getProfile:
|
|
__doc__: Retrieve a profile by name.
|
|
args:
|
|
name: Name of the profile.
|
|
returns: The profile with the specified name or None if no such profile exists.
|
|
|
|
installMod:
|
|
__doc__: Install a mod archive at the specified location.
|
|
args:
|
|
filename: Absolute filepath to the archive to install.
|
|
name_suggestion: Suggested name for this mod. This can still be changed by the user.
|
|
returns: An interface to the new installed mod, or `None` if no installation took place (canceled or failure).
|
|
|
|
instanceManager:
|
|
returns: The interface to the instance manager.
|
|
|
|
instanceName:
|
|
__doc__: |
|
|
Retrieve the name of the current instance.
|
|
|
|
For global instance, this corresponds to the directory name, for portable
|
|
instance this always returns "Portable".
|
|
returns: The name of the current instance.
|
|
|
|
isPluginEnabled.1:
|
|
__doc__: Check if a plugin is enabled.
|
|
args:
|
|
plugin: The plugin to check.
|
|
returns: True if the plugin is enabled, False otherwise.
|
|
|
|
isPluginEnabled.2:
|
|
__doc__: Check if a plugin is enabled.
|
|
args:
|
|
plugin: The name of the plugin to check.
|
|
returns: True if the plugin is enabled, False otherwise.
|
|
|
|
listDirectories:
|
|
__doc__: Retrieve the list of (virtual) subdirectories in the given path.
|
|
args:
|
|
directory: Path to the directory to list (relative to the 'data' folder).
|
|
returns: The list of directories in the given directory.
|
|
|
|
managedGame:
|
|
returns: The plugin corresponding to the current game.
|
|
|
|
modDataChanged:
|
|
__doc__: Notify the organizer that the given mod has changed.
|
|
args:
|
|
mod: The mod that has changed.
|
|
|
|
modList:
|
|
returns: The interface to the mod list.
|
|
|
|
modsPath:
|
|
returns: The (absolute) path to the mods directory.
|
|
|
|
onAboutToRun.1:
|
|
__doc__: |
|
|
Install a new handler to be called when an application is about to run.
|
|
|
|
Multiple handlers can be installed. If any of the handler returns `False`, the
|
|
application will not run.
|
|
args:
|
|
callback: |
|
|
The function to call when an application is about to run. The function
|
|
receives the absolute path to the application to run, the working directory
|
|
for the run and a string containing the arguments passed to the executable.
|
|
The function can return False to prevent the application from running.
|
|
returns: |
|
|
True if the handler was installed properly (there are currently no
|
|
reasons for this to fail).
|
|
|
|
onAboutToRun.2:
|
|
__doc__: |
|
|
Install a new handler to be called when an application is about to run.
|
|
|
|
Multiple handlers can be installed. If any of the handler returns `False`, the
|
|
application will not run.
|
|
args:
|
|
callback: |
|
|
The function to call when an application is about to run. The parameter
|
|
is the absolute path to the application to run. The function can return False
|
|
to prevent the application from running.
|
|
returns: |
|
|
True if the handler was installed properly (there are currently no reasons for
|
|
this to fail).
|
|
|
|
onFinishedRun:
|
|
__doc__: Install a new handler to be called when an application has finished running.
|
|
args:
|
|
callback: |
|
|
The function to call when an application has finished running. The first parameter is the absolute
|
|
path to the application, and the second parameter is the exit code of the application.
|
|
returns: |
|
|
True if the handler was installed properly (there are currently no reasons for
|
|
this to fail).
|
|
|
|
onNextRefresh:
|
|
__doc__: Install a new handler to be called on the next refresh or immediately.
|
|
args:
|
|
callback: Function to call on the next refresh (or immediately).
|
|
immediate_if_possible: |
|
|
If True, immediately run the callback if no refresh is currently running.
|
|
returns: |
|
|
True if the handler was installed properly (there are currently no reasons for
|
|
this to fail).
|
|
|
|
onPluginDisabled.1:
|
|
__doc__: Install a new handler to be called when a plugin is disabled.
|
|
args:
|
|
callback: |
|
|
The function to call when a plugin is disabled. The parameter is the plugin being disabled.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onPluginDisabled.2:
|
|
__doc__: Install a new handler to be called when the given plugin is disabled.
|
|
args:
|
|
name: Name of the plugin to watch.
|
|
callback: |
|
|
The function to call when the plugin is disabled.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onPluginEnabled.1:
|
|
__doc__: Install a new handler to be called when a plugin is enabled.
|
|
args:
|
|
callback: |
|
|
The function to call when a plugin is enabled. The parameter is the plugin being enabled.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onPluginEnabled.2:
|
|
__doc__: Install a new handler to be called when the given plugin is enabled.
|
|
args:
|
|
name: Name of the plugin to watch.
|
|
callback: |
|
|
The function to call when the plugin is enabled.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onPluginSettingChanged:
|
|
__doc__: Install a new handler to be called when a plugin setting is changed.
|
|
args:
|
|
callback: |
|
|
The function to call when a plugin setting is changed. The parameters are: The name of the plugin, the
|
|
name of the setting, the old value (or `None` if the setting did not exist before) and the new value
|
|
of the setting (or `None` if the setting has been removed).
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onProfileCreated:
|
|
__doc__: |
|
|
Install a new handler to be called when a new profile is created.
|
|
args:
|
|
callback: |
|
|
The function to call when a new profile is created. The parameter is the new profile (can be
|
|
a temporary object and should not be stored).
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onProfileRenamed:
|
|
__doc__: |
|
|
Install a new handler to be called when a profile is renamed.
|
|
args:
|
|
callback: |
|
|
The function to call when a profile is renamed. The first parameter is the profile being renamed,
|
|
the second parameter the previous name and the third parameter the new name.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onProfileRemoved:
|
|
__doc__: |
|
|
Install a new handler to be called when a profile is remove.
|
|
|
|
The callbacks are called after the profile has been removed so the profile is not accessible
|
|
anymore.
|
|
args:
|
|
callback: |
|
|
The function to call when a profile is remove. The parameter is the name of the profile that was
|
|
removed.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onProfileChanged:
|
|
__doc__: |
|
|
Install a new handler to be called when the current profile is changed.
|
|
|
|
The function is called when the profile is changed but some operations related to
|
|
the profile might not be finished when this is called (e.g., the virtual file system
|
|
might not be up-to-date).
|
|
args:
|
|
callback: |
|
|
The function to call when the current profile is changed. The first parameter is the old profile (can
|
|
be `None`, e.g. at startup), and the second parameter is the new profile (cannot be `None`).
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onUserInterfaceInitialized:
|
|
__doc__: Install a new handler to be called when the UI has been fully initialized.
|
|
args:
|
|
callback: |
|
|
The function to call when the user-interface has been fully initialized. The parameter is the main
|
|
window of the application (`QMainWindow`).
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
overwritePath:
|
|
returns: The (absolute) path to the overwrite directory.
|
|
|
|
persistent:
|
|
__doc__: |
|
|
Retrieve the specified persistent value for a plugin.
|
|
|
|
A persistent is an arbitrary value that the plugin can set and retrieve that is persistently stored
|
|
by the main application. There is no UI for the user to change this value but they can directly access
|
|
the storage
|
|
args:
|
|
plugin_name: |
|
|
Name of the plugin for which to retrieve the value. This should always be `IPlugin.name()` unless you have a
|
|
really good reason to access data of another mod AND if you can verify that plugin is actually installed.
|
|
key: Identifier of the setting.
|
|
default: Default value to return if the key is not set (yet).
|
|
returns: The value corresponding to the given persistent setting, or `def` is the key is not found.
|
|
|
|
pluginDataPath:
|
|
__doc__: |
|
|
Retrieve the path to a directory where plugin data should be stored.
|
|
|
|
For python plugins, it is recommended to use a dedicated folder (per plugin) if you need to
|
|
store data (resources, or multiple python files).
|
|
returns: Path to a directory where plugin data should be stored.
|
|
|
|
pluginList:
|
|
returns: The plugin list interface.
|
|
|
|
pluginSetting:
|
|
__doc__: Retrieve settings of plugins.
|
|
args:
|
|
plugin_name: Name of the plugin to retrieve the setting for.
|
|
key: Name of the setting to retrieve the value for.
|
|
returns: The value of the setting.
|
|
|
|
profile:
|
|
returns: The interface to the current profile.
|
|
|
|
profileName:
|
|
returns: The name of the current profile, or an empty string if no profile has been loaded (yet).
|
|
|
|
profileNames:
|
|
returns: The names of all existing profiles.
|
|
|
|
profilePath:
|
|
returns: The absolute path to the active profile or an empty string if no profile has been loaded (yet).
|
|
|
|
refresh:
|
|
__doc__: |
|
|
Refresh the internal mods file structure from disk. This includes the mod list, the plugin
|
|
list, data tab and other smaller things like problems button (same as pressing F5).
|
|
|
|
The main part of the refresh of the mods file structure, mod list and plugin list is done
|
|
asynchronously, so you should not expect them to be up-to-date when this function returns.
|
|
args:
|
|
save_changes: If True, the relevant profile information is saved first (enabled mods and order of mods).
|
|
|
|
resolvePath:
|
|
__doc__: Resolves a path relative to the virtual data directory to its absolute real path.
|
|
args:
|
|
filename: Path to resolve.
|
|
returns: The absolute real path, or an empty string if the path was not found.
|
|
|
|
setPersistent:
|
|
__doc__: |
|
|
Set the specified persistent value for a plugin.
|
|
|
|
This does not update the in-memory value for this setting, see `setPluginSetting()` for this.
|
|
args:
|
|
plugin_name: |
|
|
Name of the plugin for which to change a value. This should always be `IPlugin.name()` unless you have a
|
|
really good reason to access data of another mod AND if you can verify that plugin is actually installed.
|
|
key: Identifier of the setting.
|
|
value: New value for the setting.
|
|
sync: If True, the storage is immediately written to disc. This costs performance but is safer against data loss.
|
|
|
|
setPluginSetting:
|
|
__doc__: |
|
|
Set the specified setting for a plugin.
|
|
|
|
This automatically notify handlers register with `onPluginSettingChanged`, so you do not have to do it yourself.
|
|
args:
|
|
plugin_name: |
|
|
Name of the plugin for which to change a value. This should always be `IPlugin.name()` unless you have a
|
|
really good reason to access data of another mod AND if you can verify that plugin is actually installed.
|
|
key: Identifier of the setting.
|
|
value: New value for the setting.
|
|
|
|
startApplication:
|
|
__doc__: Starts an application with virtual filesystem active.
|
|
args:
|
|
executable: |
|
|
Name or path of the executable. If this is only a filename, it will only work if it has been configured
|
|
in MO as an executable. If it is a relative path it is expected to be relative to the game directory.
|
|
args: |
|
|
Arguments to pass to the executable. If the list is empty, and `executable` refers to a configured executable,
|
|
the configured arguments are used.
|
|
cwd: |
|
|
The working directory for the executable. If this is empty, the path to the executable is used unless `executable`
|
|
referred to a configured MO executable, in which case the configured cwd is used.
|
|
profile: Profile to use. If this is empty (the default) the current profile is used.
|
|
forcedCustomOverwrite: The mod to set as the custom overwrite, regardless of what the profile has configured.
|
|
ignoreCustomOverwrite: Set to true to ignore the profile's configured custom overwrite.
|
|
returns: The handle to the started application, or 0 if the application failed to start.
|
|
|
|
version:
|
|
__doc__: Retrieve the running version of MO2.
|
|
returns: The running version of MO2.
|
|
|
|
virtualFileTree:
|
|
__doc__: Retrieve a IFileTree object representing the virtual file tree.
|
|
returns: An IFileTree representing the virtual file tree.
|
|
|
|
waitForApplication:
|
|
__doc__: |
|
|
Wait for the application corresponding to the given handle to finish.
|
|
|
|
This will always show the lock overlay, regardless of whether the
|
|
user has disabled locking in the setting, so use this with care.
|
|
Note that the lock overlay will always allow the user to unlock, in
|
|
which case this will return False.
|
|
args:
|
|
handle: Handle of the application to wait for (as returned by `startApplication()`).
|
|
refresh: Whether ModOrganizer should refresh after the process completed or not.
|
|
returns: |
|
|
A tuple `(result, exitcode)`, where `result` is a boolean indicating if the application
|
|
completed successfully, and `exitcode` is the exit code of the application.
|
|
|
|
# IOrganizer has a bunch of deprecated functions:
|
|
appVersion:
|
|
deprecated: true
|
|
getMod:
|
|
deprecated: true
|
|
removeMod:
|
|
deprecated: true
|
|
modsSortedByProfilePriority:
|
|
deprecated: true
|
|
refreshModList:
|
|
deprecated: true
|
|
onModInstalled:
|
|
deprecated: true
|
|
|
|
IPlugin:
|
|
__doc__: Base class for all plugins.
|
|
|
|
__abstract__: true
|
|
|
|
author:
|
|
returns: The name of the plugin author.
|
|
|
|
description:
|
|
returns: The description for this plugin.
|
|
|
|
init:
|
|
__doc__: |
|
|
Initialize this plugin.
|
|
|
|
Note that this function may never be called if no `IOrganizer` is available
|
|
at that time, such as when creating the first instance in MO.
|
|
|
|
Plugins will probably want to store the organizer pointer. It is guaranteed
|
|
to be valid as long as the plugin is loaded.
|
|
|
|
These functions may be called before `init()`:
|
|
|
|
- `name()`
|
|
- see `IPluginGame` for more.
|
|
|
|
args:
|
|
organizer: The main organizer interface.
|
|
returns: True if the plugin was initialized correctly, False otherwise.
|
|
|
|
enabledByDefault:
|
|
abstract: false
|
|
__doc__: Check whether this plugin should be enabled by default.
|
|
returns: True if this plugin should be enabled by default, False otherwise.
|
|
|
|
name:
|
|
__doc__: |
|
|
Retrieve the name of the plugin.
|
|
|
|
The name of the plugin is used for internal storage purpose so it should not change,
|
|
and it should be static. In particular, you should not use a localized string (`tr()`)
|
|
for the plugin name.
|
|
|
|
In the future, we will provide a way to localized plugin names using a distinct method,
|
|
such as `localizedName()`.
|
|
returns: The name of the plugin.
|
|
|
|
localizedName:
|
|
abstract: false
|
|
|
|
__doc__: |
|
|
Retrieve the localized name of the plugin.
|
|
|
|
Unlike `name()`, this method can (and should!) return a localized name for the plugin.
|
|
This method returns name() by default.
|
|
|
|
returns: The localized name of the plugin.
|
|
|
|
master:
|
|
abstract: false
|
|
|
|
__doc__: |
|
|
Retrieve the master plugin of this plugin.
|
|
|
|
It is often easier to implement a functionality as multiple plugins in MO2, but ship the
|
|
plugins together, e.g. as a Python module or using `createFunctions()`. In this case, having
|
|
a master plugin (one of the plugin, or a separate one) tells MO2 that these plugins are
|
|
linked and should also be displayed together in the UI. If MO2 ever implements automatic
|
|
updates for plugins, the `master()` plugin will also be used for this purpose.
|
|
|
|
returns: |
|
|
The master plugin of this plugin, or a null pointer if this plugin does not have a master.
|
|
|
|
requirements:
|
|
abstract: false
|
|
|
|
__doc__: |
|
|
Retrieve the requirements for this plugin.
|
|
|
|
This method is called right after `init()` and the ownership the requirements is
|
|
returns: The list of requirements for this plugin.
|
|
|
|
settings:
|
|
returns: A list of settings for this plugin.
|
|
|
|
version:
|
|
returns: The version of this plugin.
|
|
|
|
IPluginDiagnose:
|
|
__doc__: |
|
|
Plugins that create problem reports to be displayed in the UI.
|
|
|
|
This can be used to report problems related to the same plugin (which implements further
|
|
interfaces) or as a stand-alone diagnosis tool.
|
|
|
|
_invalidate:
|
|
__doc__: Invalidate the problems corresponding to this plugin.
|
|
abstract: false
|
|
|
|
activeProblems:
|
|
__doc__: |
|
|
Retrieve the list of active problems found by this plugin.
|
|
|
|
This method returns a list of problem IDs, that are then used when calling other methods
|
|
such as `shortDescription()` or `hasGuidedFix()`.
|
|
returns: The list of active problems for this plugin.
|
|
|
|
fullDescription:
|
|
__doc__: Retrieve the full description of the problem corresponding to the given key.
|
|
args:
|
|
key: ID of the problem.
|
|
returns: The full description of the problem.
|
|
raises:
|
|
IndexError: If the key is not valid.
|
|
|
|
hasGuidedFix:
|
|
__doc__: Check if the problem corresponding to the given key has a guided fix.
|
|
args:
|
|
key: ID of the problem.
|
|
returns: True if there is a guided fix for the problem, False otherwise.
|
|
raises:
|
|
IndexError: If the key is not valid.
|
|
|
|
shortDescription:
|
|
__doc__: Retrieve the short description of the problem corresponding to the given key.
|
|
args:
|
|
key: ID of the problem.
|
|
returns: The short description of the problem.
|
|
raises:
|
|
IndexError: If the key is not valid.
|
|
|
|
startGuidedFix:
|
|
__doc__: |
|
|
Starts a guided fix for the problem corresponding to the given key.
|
|
|
|
This method should throw `ValueError` if there is no guided fix for the corresponding
|
|
problem.
|
|
args:
|
|
key: ID of the problem.
|
|
raises:
|
|
IndexError: If the key is not valid.
|
|
ValueError: If there is no guided fix for this problem.
|
|
|
|
IPluginFileMapper:
|
|
__doc__: Plugins that adds virtual file links.
|
|
|
|
mappings:
|
|
returns: Mapping for the virtual file system (VFS).
|
|
|
|
IPluginGame:
|
|
__doc__: |
|
|
Base classes for game plugins.
|
|
|
|
Each game requires a specific game plugin. These plugins were initially designed for
|
|
Bethesda games, so a lot of methods and attributes are irrelevant for other games. If
|
|
you wish to write a plugin for a much simpler game, please consider the `basic_games`
|
|
plugin: https://github.com/ModOrganizer2/modorganizer-basic_games
|
|
|
|
detectGame:
|
|
__doc__: |
|
|
Detect the game.
|
|
|
|
This method is the first called for game plugins (before `init()`). The following
|
|
methods should work properly after the call to `detectGame()` (and before `init()`):
|
|
|
|
- gameName()
|
|
- isInstalled()
|
|
- gameIcon()
|
|
- gameDirectory()
|
|
- dataDirectory()
|
|
- gameVariants()
|
|
- looksValid()
|
|
|
|
See `IPlugin.init()` for more.
|
|
|
|
CCPlugins:
|
|
abstract: false
|
|
returns: The current list of active Creation Club plugins.
|
|
|
|
DLCPlugins:
|
|
abstract: false
|
|
returns: The list of esp/esm files that are part of known DLCs.
|
|
|
|
binaryName:
|
|
returns: The name of the default executable to run (relative to the game folder).
|
|
|
|
blueprintPrefix:
|
|
returns: The blueprint plugin prefix for blueprint auto loading.
|
|
|
|
dataDirectory:
|
|
returns: The path to the directory containing data (absolute path).
|
|
|
|
displayGameName:
|
|
abstract: False
|
|
returns: The name of the game to user for display, default to gameName().
|
|
|
|
documentsDirectory:
|
|
returns: The directory of the documents folder where configuration files and such for this game reside.
|
|
|
|
enabledPlugins:
|
|
abstract: false
|
|
returns: A list of plugins enabled by the game but not in a strict load order.
|
|
|
|
executableForcedLoads:
|
|
returns: A list of automatically discovered libraries that can be force loaded with executables.
|
|
|
|
executables:
|
|
abstract: false
|
|
returns: A list of automatically discovered executables of the game itself and tools surrounding it.
|
|
|
|
gameDirectory:
|
|
returns: The directory containing the game installation.
|
|
|
|
gameIcon:
|
|
returns: The icon representing the game.
|
|
|
|
gameName:
|
|
returns: The name of the game (for internal usage).
|
|
|
|
gameNexusName:
|
|
abstract: false
|
|
returns: The name of the game identifier for Nexus.
|
|
|
|
gameShortName:
|
|
returns: The short name of the game.
|
|
|
|
gameVariants:
|
|
abstract: false
|
|
__doc__: |
|
|
Retrieve the list of variants for this game.
|
|
|
|
If there are multiple variants of a game (and the variants make a difference to the
|
|
plugin), like a regular one and a GOTY-edition, the plugin can return a list of them
|
|
and the user gets to chose which one he owns.
|
|
returns: The list of variants of the game.
|
|
|
|
gameVersion:
|
|
returns: The version of the game.
|
|
|
|
getLauncherName:
|
|
returns: |
|
|
The name of the launcher executable to run (relative to the game folder), or an
|
|
empty string if there is no launcher.
|
|
|
|
getModMappings:
|
|
abstract: false
|
|
__doc__: Gets a virtualization mapping for mod directories.
|
|
returns:
|
|
|
|
getSupportURL:
|
|
returns: An URL for the support page of this game.
|
|
|
|
iniFiles:
|
|
abstract: false
|
|
returns: |
|
|
The list of INI files this game uses. The first file in the list should be the
|
|
'main' INI file.
|
|
|
|
initializeProfile:
|
|
__doc__: |
|
|
Initialize a profile for this game.
|
|
|
|
The MO app does not yet support virtualizing only specific aspects but plugins should be written
|
|
with this future functionality in mind.
|
|
|
|
This function will be used to initially create a profile, potentially to repair it or upgrade/downgrade
|
|
it so the implementations have to gracefully handle the case that the directory already contains files.
|
|
args:
|
|
directory: The directory where the profile is to be initialized.
|
|
settings: The parameters for how the profile should be initialized.
|
|
|
|
isInstalled:
|
|
returns: True if this game has been discovered as installed, False otherwise.
|
|
|
|
listSaves:
|
|
__doc__: List saves in the given directory.
|
|
args:
|
|
folder: The folder to list saves from.
|
|
returns: The list of game saves in the given folder.
|
|
|
|
loadOrderMechanism:
|
|
abstract: false
|
|
returns: The load order mechanism used by this game.
|
|
|
|
looksValid:
|
|
__doc__: Check if the given directory looks like a valid game installation.
|
|
args:
|
|
directory: Directory to check.
|
|
returns: True if the directory looks like a valid installation of this game, False otherwise.
|
|
|
|
lootGameName:
|
|
abstract: False
|
|
returns: |
|
|
The game name to use when calling LOOT from MO2, default to gameShortName().
|
|
|
|
modDataDirectory:
|
|
__doc__:
|
|
abstract: False
|
|
returns:
|
|
|
|
nexusGameID:
|
|
__doc__: |
|
|
Retrieve the Nexus game ID for this game.
|
|
|
|
Example: For Skyrim, the Nexus game ID is 110.
|
|
returns: The Nexus game ID for this game.
|
|
|
|
nexusModOrganizerID:
|
|
abstract: false
|
|
__doc__: |
|
|
Retrieve the Nexus mod ID of Mod Organizer for this game.
|
|
|
|
Example: For Skyrim SE, the mod ID of MO2 is 6194. You can find the mod ID in the URL:
|
|
https://www.nexusmods.com/skyrimspecialedition/mods/6194
|
|
returns: The Nexus mod ID of Mod Organizer for this game.
|
|
|
|
primaryPlugins:
|
|
abstract: false
|
|
returns: The list of plugins that are part of the game and not considered optional.
|
|
|
|
primarySources:
|
|
abstract: false
|
|
__doc__: |
|
|
Retrieve primary alternative 'short' names for this game.
|
|
|
|
This is used to determine if a Nexus (or other) download source should be considered
|
|
as a primary source for the game so that it is not flagged as an alternative one.
|
|
returns: The list of primary alternative 'short' names for this game, or an empty list.
|
|
|
|
savesDirectory:
|
|
returns: The directory where save games are stored.
|
|
|
|
secondaryDataDirectories:
|
|
abstract: false
|
|
__doc__: |
|
|
Retrieve the list of secondary data directories. Each directories should be
|
|
assigned a unique name that differs from "data" which is the name of the main
|
|
data directory returned by dataDirectory().
|
|
returns: A mapping from unique name to secondary data directories.
|
|
|
|
setGamePath:
|
|
__doc__: |
|
|
Set the path to the managed game.
|
|
|
|
This is called during instance creation if the game is not auto-detected and the user has
|
|
to specify the installation location. This is not called if the game has been auto-detected,
|
|
so `isInstalled()` should call this.
|
|
args:
|
|
path: Path to the game installation.
|
|
|
|
setGameVariant:
|
|
__doc__: |
|
|
Set the game variant.
|
|
|
|
If there are multiple variants of game (as returned by `gameVariants()`), this will be
|
|
called on start with the user-selected game variant.
|
|
args:
|
|
variant: The game variant selected by the user.
|
|
|
|
sortMechanism:
|
|
abstract: false
|
|
returns: The sort mechanism for this game.
|
|
|
|
steamAPPId:
|
|
abstract: false
|
|
__doc__: |
|
|
Retrieve the Steam app ID for this game.
|
|
|
|
If the game is not available on Steam, this should return an empty string.
|
|
|
|
If a game is available in multiple versions, those might have different app ids. The plugin
|
|
should try to return the right one
|
|
returns: The Steam app ID for this game. Should be empty for games not available on steam.
|
|
|
|
validShortNames:
|
|
__doc__: |
|
|
Retrieve the valid 'short' names for this game.
|
|
|
|
This is used to determine if a Nexus download is valid for the current game since not all
|
|
game variants have their own nexus pages and others can handle downloads from other nexus
|
|
game pages and should be allowed to do so (e.g., you can install some Skyrim LE mod even
|
|
when using Skyrim SE).
|
|
|
|
The short name should be considered the primary handler for a directly supported game
|
|
for purposes of auto-launching an instance.
|
|
returns: The list of valid short names for this game.
|
|
|
|
IPluginInstaller:
|
|
__doc__: |
|
|
This is the top-level class for installer. Actual installers should inherit either:
|
|
|
|
- `IPluginInstallerSimple` if the installer can work directly with the archive. This is what
|
|
most installers use.
|
|
- `IPluginInstallerCustom` if the installer needs to perform custom operations. This is only
|
|
used by the external NCC installer and the OMOD installer.
|
|
|
|
isArchiveSupported:
|
|
__doc__: Check if the given file tree corresponds to a supported archive for this installer.
|
|
args:
|
|
tree: The tree representing the content of the archive.
|
|
returns: True if this installer can handle the archive, False otherwise.
|
|
|
|
isManualInstaller:
|
|
__doc__: Check if this installer is a manual installer.
|
|
returns: True if this installer is a manual installer, False otherwise.
|
|
|
|
onInstallationStart:
|
|
abstract: false
|
|
__doc__: |
|
|
Method calls at the start of the installation process, before any other methods.
|
|
This method is only called once per installation process, even for recursive
|
|
installations (e.g. with the bundle installer).
|
|
|
|
If `reinstallation` is true, then the given mod is the mod being reinstalled (the one
|
|
selected by the user). If `reinstallation` is false and `currentMod` is not null, then
|
|
it corresponds to a mod MO2 thinks corresponds to the archive (e.g. based on matching Nexus ID
|
|
or name).
|
|
|
|
The default implementation does nothing.
|
|
|
|
args:
|
|
archive: Path to the archive that is going to be installed.
|
|
reinstallation: True if this is a reinstallation, False otherwise.
|
|
current_mod: |
|
|
A currently installed mod corresponding to the archive being installed, or None
|
|
if there is no such mod.
|
|
|
|
onInstallationEnd:
|
|
abstract: false
|
|
__doc__: |
|
|
Method calls at the end of the installation process. This method is only called once
|
|
per installation process, even for recursive installations (e.g. with the bundle installer).
|
|
|
|
args:
|
|
result: The result of the installation.
|
|
new_mod: |
|
|
If the installation succeeded (result is RESULT_SUCCESS), contains the newly
|
|
installed mod, otherwise it contains a null pointer.
|
|
|
|
priority:
|
|
__doc__: |
|
|
Retrieve the priority of this installer.
|
|
|
|
If multiple installers are able to handle an archive, the one with the highest priority wins.
|
|
returns: The priority of this installer.
|
|
|
|
setInstallationManager:
|
|
abstract: false
|
|
__doc__: |
|
|
Set the installation manager for this installer.
|
|
|
|
Python plugins usually do not need to re-implement this and can directly access the installation
|
|
manager using `_manager()`.
|
|
args:
|
|
manager: The installation manager.
|
|
|
|
setParentWidget:
|
|
__doc__: |
|
|
Set the parent widget for this installer.
|
|
|
|
Python plugins usually do not need to re-implement this and can directly access the parent
|
|
widget using `_parentWidget()` once the UI has been initialized.
|
|
abstract: false
|
|
args:
|
|
parent: The parent widget.
|
|
|
|
_manager:
|
|
abstract: false
|
|
returns: The installation manager.
|
|
|
|
_parentWidget:
|
|
abstract: false
|
|
returns: The parent widget.
|
|
|
|
IPluginInstallerCustom:
|
|
__doc__: |
|
|
Custom installer for mods. Custom installers receive the archive name and have to go
|
|
from there. They have to be able to extract the archive themselves.
|
|
|
|
Example of such installers are the external NCC installer or the OMOD installer.
|
|
|
|
install:
|
|
__doc__: |
|
|
Install the given archive.
|
|
|
|
The mod needs to be created by calling `IOrganizer.createMod` first.
|
|
args:
|
|
mod_name: |
|
|
Name of the mod to install. As an input parameter this is the suggested name
|
|
(e.g. from meta data) The installer may change this parameter to rename the mod).
|
|
game_name: Name of the game for which the mod is installed.
|
|
archive_name: Name of the archive to install.
|
|
version: |
|
|
Version of the mod. May be empty if the version is not yet known. The plugin is responsible
|
|
for setting the version on the created mod.
|
|
nexus_id: |
|
|
ID of the mod or -1 if unknown. The plugin is responsible for setting the mod ID for the
|
|
created mod.
|
|
returns: The result of the installation process.
|
|
|
|
isArchiveSupported.1:
|
|
__doc__: Check if the given file tree corresponds to a supported archive for this installer.
|
|
args:
|
|
tree: The tree representing the content of the archive.
|
|
returns: True if this installer can handle the archive, False otherwise.
|
|
|
|
isArchiveSupported.2:
|
|
__doc__: Check if the given file is a supported archive for this installer.
|
|
args:
|
|
archive_name: Name of the archive.
|
|
returns: True if this installer can handle the archive, False otherwise.
|
|
|
|
supportedExtensions:
|
|
returns: A list of file extensions that this installer can handle.
|
|
|
|
IPluginInstallerSimple:
|
|
__doc__: |
|
|
Simple installer for mods. Simple installers only deal with an in-memory structure
|
|
representing the archive and can modify what to install and where by editing this structure.
|
|
Actually extracting the archive is handled by the manager.
|
|
|
|
install:
|
|
__doc__: |
|
|
Install a mod from an archive filetree.
|
|
|
|
The installer can modify the given tree and use the manager to extract or create new
|
|
files.
|
|
|
|
This method returns different type of objects depending on the actual result of the
|
|
installation. The C++ bindings for this method always returns a tuple (result, tree,
|
|
version, id).
|
|
args:
|
|
name: |
|
|
Name of the mod to install. As an input parameter this is the suggested name
|
|
(e.g. from meta data) The installer may change this parameter to rename the mod).
|
|
tree: In-memory representation of the archive content.
|
|
version: Version of the mod, or an empty string is unknown.
|
|
nexus_id: ID of the mod, or -1 if unknown.
|
|
returns: |
|
|
In case of failure, the result of the installation, otherwise the modified tree or
|
|
a tuple (result, tree, version, id) containing the result of the installation, the
|
|
modified tree, the new version and the new ID. The tuple can be returned even if the
|
|
installation did not succeed.
|
|
|
|
IPluginList:
|
|
__doc__: Primary interface to the list of plugins.
|
|
|
|
author:
|
|
__doc__: Retrieve the author of the plugin.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: The author of the plugin or an empty string if the plugin does not exist.
|
|
|
|
description:
|
|
__doc__: Retrieve the description of the plugin.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: The description of the plugin or an empty string if the plugin does not exist.
|
|
|
|
formVersion:
|
|
__doc__: Retrieve the form version of the plugin.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: The form version of the plugin or -1 if the plugin does not exist.
|
|
|
|
headerVersion:
|
|
__doc__: Retrieve the header version of the plugin.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: The header version of the plugin or -1 if the plugin does not exist.
|
|
|
|
isBlueprintFlagged:
|
|
__doc__: |
|
|
Determine if a plugin is flagged as blueprint.
|
|
|
|
Blueprint plugins were added in Starfield and are plugins that are hidden in
|
|
the Creation Kit and removed from plugins.txt on game launch.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: |
|
|
True if the given plugin is a blueprint plugin, False otherwise or if the
|
|
file does not exist.
|
|
|
|
isMaster:
|
|
deprecated: True
|
|
__doc__: |
|
|
Check if a plugin is a master file (basically a library, referenced by other plugins).
|
|
|
|
In gamebryo games, a master file will usually have a .esm file extension but technically
|
|
an esp can be flagged as master and an esm might not be.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: True if the given plugin is a master plugin, False otherwise or if the file does not exist.
|
|
|
|
isMasterFlagged:
|
|
__doc__: |
|
|
Determine if a plugin is flagged as mater, i.e., a library, reference by
|
|
other plugins.
|
|
|
|
In gamebryo games, a master file will usually have a .esm file extension but
|
|
technically an esp can be flagged as master and an esm might not be.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: |
|
|
True if the given plugin is a master plugin, False otherwise or if the
|
|
file does not exist.
|
|
|
|
hasMasterExtension:
|
|
__doc__: |
|
|
Determine if a plugin has a .esm extension.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: |
|
|
True if the given file has a .esm extension, False otherwise or if the
|
|
file does not exist.
|
|
|
|
hasNoRecords:
|
|
__doc__: |
|
|
Determine if a plugin has no records.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: |
|
|
True if the given file plugin contains no records, False if it does OR if the
|
|
file does not exist.
|
|
|
|
isLightFlagged:
|
|
__doc__: |
|
|
Determine if a plugin is flagged as light.
|
|
|
|
In gamebryo games, a master file will usually have a .esl file extension but
|
|
technically an esp can be flagged as light.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: |
|
|
True if the given plugin is a light plugin, False otherwise or if the
|
|
file does not exist.
|
|
|
|
isMediumFlagged:
|
|
__doc__: |
|
|
Determine if a plugin is flagged as medium.
|
|
|
|
This plugin flag was added in Starfield and signifies plugin records that
|
|
update existing records
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: |
|
|
True if the given plugin is a medium plugin, False otherwise or if the
|
|
file does not exist.
|
|
|
|
hasLightExtension:
|
|
__doc__: |
|
|
Determine if a plugin has a .esl extension.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: |
|
|
True if the given file has a .esl extension, False otherwise or if the
|
|
file does not exist.
|
|
|
|
loadOrder:
|
|
__doc__: Retrieve the load order of a plugin.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: |
|
|
The load order of the plugin (the order in which the game loads it). If all plugins are enabled this
|
|
is the same as the priority but disabled plugins will have a load order of -1. This also returns -1
|
|
if the plugin does not exist.
|
|
|
|
masters:
|
|
__doc__: Retrieve the list of masters required for a plugin.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: The list of masters for the plugin (filenames with extension, no path).
|
|
|
|
onPluginMoved:
|
|
__doc__: Install a new handler to be called when a plugin is moved.
|
|
args:
|
|
callback: |
|
|
The function to call when a plugin is moved. The first parameter is the plugin name, the
|
|
second the old priority of the plugin and the third one the new priority.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onPluginStateChanged.1:
|
|
__doc__: Install a new handler to be called when a plugin state changes.
|
|
deprecated: true
|
|
args:
|
|
callback: |
|
|
The function to call when a plugin state changes. The first parameter is the plugin name, the
|
|
second the new state of the plugin.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onPluginStateChanged.2:
|
|
__doc__: Install a new handler to be called when plugin states change.
|
|
args:
|
|
callback: |
|
|
The function to call when a plugin states change. The parameter is a map from plugin names to new
|
|
plugin states for the plugin whose states have changed.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
onRefreshed:
|
|
__doc__: Install a new handler to be called when the list of plugins is refreshed.
|
|
args:
|
|
callback: The function to call when the list of plugins is refreshed.
|
|
returns: True if the handler was installed properly (there are currently no reasons for this to fail).
|
|
|
|
origin:
|
|
__doc__: |
|
|
Retrieve the origin of a plugin. This is either the (internal) name of a mod, `"overwrite"` or `"data"`.
|
|
|
|
The internal name of a mod can differ from the display name for disambiguation.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: The name of the origin of the plugin, or an empty string if the plugin does not exist.
|
|
|
|
pluginNames:
|
|
returns: The list of all plugin names.
|
|
|
|
priority:
|
|
__doc__: |
|
|
Retrieve the priority of a plugin.
|
|
|
|
The higher the priority, the more important.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: The priority of the given plugin, or -1 if the plugin does not exist.
|
|
|
|
setPriority:
|
|
__doc__: Change the priority of a plugin.
|
|
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
priority: New priority of the plugin.
|
|
|
|
returns: |
|
|
True on success, False if the priority change was not possible. This is usually because
|
|
one of the parameters is invalid. The function returns true even if the plugin was not moved
|
|
at the specified priority (e.g. when trying to move a non-master plugin before a master one).
|
|
|
|
setLoadOrder:
|
|
__doc__: |
|
|
Set the load order.
|
|
|
|
Plugins not included in the list will be placed at highest priority in the order they
|
|
were before.
|
|
args:
|
|
loadorder: The new load order, specified by the list of plugin names, sorted.
|
|
|
|
setState:
|
|
__doc__: Set the state of a plugin.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
state: New state of the plugin (`INACTIVE` or `ACTIVE`).
|
|
|
|
state:
|
|
__doc__: Retrieve the state of a plugin.
|
|
args:
|
|
name: Filename of the plugin (without path but with file extension).
|
|
returns: The state of the plugin.
|
|
|
|
IPluginModPage:
|
|
_parentWidget:
|
|
abstract: false
|
|
returns: The parent widget.
|
|
|
|
displayName:
|
|
returns: The name of the page as displayed in the UI.
|
|
|
|
handlesDownload:
|
|
__doc__: Check if the plugin handles the specified download.
|
|
args:
|
|
page_url: URL of the page that contains the download link.
|
|
download_url: The download URL.
|
|
fileinfo: Not usable in python.
|
|
returns: True if this plugin wants to handle the specified download, False otherwise.
|
|
|
|
icon:
|
|
returns: The icon to display with the page.
|
|
|
|
pageURL:
|
|
returns: The URL to open when the user wants to visit this mod page.
|
|
|
|
setParentWidget:
|
|
__doc__: |
|
|
Set the parent widget for this mod page.
|
|
|
|
Python plugins usually do not need to re-implement this and can directly access the parent
|
|
widget using `_parentWidget()` once the UI has been initialized.
|
|
abstract: false
|
|
args:
|
|
parent: The parent widget.
|
|
|
|
useIntegratedBrowser:
|
|
__doc__: |
|
|
Indicates if the page should be displayed in the integrated browser.
|
|
|
|
Unless the page provides a special means of starting downloads (like the nxm:// url schema
|
|
on nexus), it will not be possible to handle downloads unless the integrated browser is used!
|
|
returns: True if the page should be opened in the integrated browser, False otherwise.
|
|
|
|
IPluginPreview:
|
|
__doc__: |
|
|
These plugins add support for previewing files in the data pane. Right now all image formats supported
|
|
by qt are implemented (including dds) but no audio files and no 3d mesh formats.
|
|
|
|
genFilePreview:
|
|
__doc__: Generate a preview widget for the specified file.
|
|
args:
|
|
filename: Path to the file to preview.
|
|
max_size: Maximum size of the generated widget.
|
|
returns: The widget showing a preview of the file.
|
|
|
|
genDataPreview:
|
|
__doc__: Generate a preview widget from in-memory data.
|
|
args:
|
|
file_data: In-memory data to preview.
|
|
filename: Name of the file the data comes from.
|
|
max_size: Maximum size of the generated widget.
|
|
returns: The widget showing a preview of the in-memory data.
|
|
|
|
supportedExtensions:
|
|
returns: The list of file extensions that are supported by this preview plugin.
|
|
|
|
supportsArchives:
|
|
__doc__: Check if this preview plugin supports preview from in-memory data.
|
|
returns: True if the plugin supports preview from raw data, False otherwise.
|
|
|
|
IPluginRequirement:
|
|
__doc__: Class representing requirements for plugins.
|
|
|
|
Problem:
|
|
__doc__: Class representing a problem found by a requirement.
|
|
|
|
__init__:
|
|
args:
|
|
short_description: Short description of the problem.
|
|
long_description: Long description of the problem.
|
|
|
|
shortDescription:
|
|
returns: A short description of the problem.
|
|
|
|
longDescription:
|
|
returns: A long description of the problem.
|
|
|
|
check:
|
|
__doc__: Check if the requirement is met, and return a problem if not.
|
|
args:
|
|
organizer: The IOrganizer instance.
|
|
returns: The problem found if the requirement is not met, otherwise None.
|
|
|
|
PluginRequirementFactory:
|
|
__doc__:
|
|
|
|
basic:
|
|
__doc__: Create a basic requirement.
|
|
args:
|
|
checker: |
|
|
The callable to use to check if the requirement is met. Should return True
|
|
if the requirement is met, False otherwise.
|
|
description: The description of the problem, when the requirement is not met.
|
|
returns: The constructed requirement.
|
|
|
|
diagnose:
|
|
__doc__: |
|
|
Construct a requirement from a diagnose plugin.
|
|
|
|
If the wrapped diagnose plugin reports a problem, the requirement fails
|
|
and the associated message is the one from the diagnose plugin (or the
|
|
list of messages if multiple problems were reported).
|
|
args:
|
|
diagnose: The diagnose plugin to wrap in this requirement.
|
|
returns: The constructed requirement.
|
|
|
|
gameDependency.1:
|
|
__doc__: |
|
|
Create a new game dependency requirement.
|
|
|
|
The requirement is met when the managed game is one of the specified game.
|
|
args:
|
|
games: The names of the required games.
|
|
returns: The constructed requirement.
|
|
|
|
gameDependency.2:
|
|
__doc__: |
|
|
Create a new game dependency requirement.
|
|
|
|
The requirement is met when the managed game is the specified game.
|
|
args:
|
|
game: The name of the required game.
|
|
returns: The constructed requirement.
|
|
|
|
pluginDependency.1:
|
|
__doc__: |
|
|
Create a new plugin dependency requirement.
|
|
|
|
The requirement is met when one of the specified plugins is enabled.
|
|
args:
|
|
plugins: The name of the plugins.
|
|
returns: The constructed requirement.
|
|
|
|
pluginDependency.2:
|
|
__doc__: |
|
|
Create a new plugin dependency requirement.
|
|
|
|
The requirement is met when the specified plugin is enabled.
|
|
args:
|
|
plugin: The name of the plugin that must be enabled.
|
|
returns: The constructed requirement.
|
|
|
|
IPluginTool:
|
|
__doc__: |
|
|
This is the simplest of plugin interfaces. Such plugins simply place an icon inside the tools sub-menu
|
|
and get invoked when the user clicks it. They are expected to have a user interface of some sort. These
|
|
are almost like independent applications except they can access all Mod Organizer interfaces like querying
|
|
and modifying the current profile, mod list, load order, use MO to install mods and so on. A tool plugin
|
|
can (and should!) integrate its UI as a window inside MO and thus doesn't have to initialize a windows
|
|
application itself.
|
|
|
|
_parentWidget:
|
|
abstract: false
|
|
returns: The parent widget.
|
|
|
|
display:
|
|
__doc__: Called when the user starts the tool.
|
|
|
|
displayName:
|
|
returns: The display name for this tool, as shown in the tool menu.
|
|
|
|
icon:
|
|
returns: The icon for this tool, or a default-constructed QICon().
|
|
|
|
setParentWidget:
|
|
__doc__: |
|
|
Set the parent widget for this tool.
|
|
|
|
Python plugins usually do not need to re-implement this and can directly access the parent
|
|
widget using `_parentWidget()` once the UI has been initialized.
|
|
abstract: false
|
|
args:
|
|
parent: The parent widget.
|
|
|
|
tooltip:
|
|
returns: The tooltip for this tool.
|
|
|
|
IProfile:
|
|
__doc__: Interface to interact with Mod Organizer 2 profiles.
|
|
|
|
absolutePath:
|
|
returns: The absolute path to the profile folder.
|
|
|
|
absoluteIniFilePath:
|
|
__doc__: |
|
|
Retrieve the absolute file path to the corresponding INI file for this profile.
|
|
|
|
If iniFile does not correspond to a file in the list of INI files for the
|
|
current game (as returned by IPluginGame::iniFiles), the path to the global
|
|
file will be returned (if iniFile is absolute, iniFile is returned, otherwise
|
|
the path is assumed relative to the game documents directory).
|
|
args:
|
|
inifile: |
|
|
INI file to retrieve a path for. This can either be the name of a file or a path to the
|
|
absolute file outside of the profile.
|
|
returns: The absolute path for the given INI file for this profile.
|
|
|
|
invalidationActive:
|
|
returns: True if automatic archive invalidation is enabled for this profile, False otherwise.
|
|
|
|
localSavesEnabled:
|
|
returns: True if profile-specific saves are enabled for this profile, False otherwise.
|
|
|
|
localSettingsEnabled:
|
|
returns: True if profile-specific game settings are enabled for this profile, False otherwise.
|
|
|
|
name:
|
|
returns: The name of this profile.
|
|
|
|
ISaveGame:
|
|
__doc__: Base class for information about what is in a save game.
|
|
|
|
allFiles:
|
|
returns: The list of all files related to this save.
|
|
|
|
getCreationTime:
|
|
__doc__: |
|
|
Retrieve the creation time of the save.
|
|
|
|
The creation time of a save is not always the same as the creation time of
|
|
the file containing the save.
|
|
returns: The creation time of the save.
|
|
|
|
getFilepath:
|
|
returns: The path name to the (main) file or folder for the save.
|
|
|
|
getName:
|
|
returns: The name of this save, for display purpose.
|
|
|
|
getSaveGroupIdentifier:
|
|
__doc__: |
|
|
Retrieve the name of the group this files belong to.
|
|
|
|
The name can be used to identify sets of saves to transfer between profiles. For
|
|
RPG games, this is usually the name of a character.
|
|
returns: The group identifier for this save game.
|
|
|
|
ISaveGameInfoWidget:
|
|
__doc__: Base class for a save game info widget.
|
|
# Class not abstract because it conflicts with Qt meta-class:
|
|
# __abstract__: true
|
|
__init__:
|
|
args:
|
|
parent: Parent widget.
|
|
_widget:
|
|
returns: The underlying `QWidget`.
|
|
setSave:
|
|
abstract: true
|
|
__doc__: Set the save file to display in this widget.
|
|
args:
|
|
save: The save to display in the widget
|
|
|
|
LocalSavegames:
|
|
__doc__:
|
|
__abstract__: true
|
|
__init__:
|
|
__doc__:
|
|
mappings:
|
|
__doc__:
|
|
args:
|
|
profile_save_dir:
|
|
returns:
|
|
prepareProfile:
|
|
__doc__:
|
|
args:
|
|
profile:
|
|
returns:
|
|
|
|
Mapping:
|
|
__init__.1:
|
|
__doc__: Creates an empty Mapping.
|
|
|
|
__init__.2:
|
|
__doc__: Creates a Mapping with the given parameters.
|
|
args:
|
|
source: The source of this mapping (absolute path), i.e. the path to the actual file.
|
|
destination: Destination of this mapping (absolute path), i.e. the path in the virtual file system.
|
|
is_directory: True if this mapping corresponds to a directory, False otherwise.
|
|
create_target: True if file creation (including move or copy) should be redirected to source.
|
|
|
|
properties[]:
|
|
createTarget:
|
|
type: bool
|
|
desc: True if file creation (including move or copy) should be redirected to source.
|
|
destination:
|
|
type: str
|
|
desc: The destination of this mapping (absolute path).
|
|
isDirectory:
|
|
type: bool
|
|
desc: True if this mapping corresponds to a directory, False otherwise.
|
|
source:
|
|
type: str
|
|
desc: The source of this mapping (absolute path).
|
|
|
|
ModDataChecker:
|
|
__doc__: Game feature that is used to check the content of a data tree.
|
|
|
|
__abstract__: true
|
|
|
|
CheckReturn:
|
|
__doc__:
|
|
INVALID: The data tree looks invalid and cannot be fixed (automatically).
|
|
FIXABLE: The data tree looks valid.
|
|
VALID: The data tree looks invalid but can be automatically fixed.
|
|
|
|
__init__:
|
|
__doc__:
|
|
|
|
dataLooksValid:
|
|
__doc__: |
|
|
Check that the given filetree represent a valid mod layout, or can be easily
|
|
fixed.
|
|
|
|
This method is mainly used during installation (to find which installer should
|
|
be used or to recurse into multi-level archives), or to quickly indicates to a
|
|
user if a mod looks valid.
|
|
|
|
This method does not have to be exact, it only has to indicate if the given tree
|
|
looks like a valid mod or not by quickly checking the structure (heavy operations
|
|
should be avoided).
|
|
|
|
If the tree can be fixed by the `fix()` method, this method should return `FIXABLE`.
|
|
`FIXABLE` should only be returned when it is guaranteed that `fix()` can fix the tree.
|
|
args:
|
|
filetree: The tree starting at the root of the "data" folder.
|
|
returns: Whether the tree is invalid, fixable or valid.
|
|
|
|
fix:
|
|
__doc__: |
|
|
Try to fix the given tree.
|
|
|
|
This method is used during installation to try to fix invalid archives and will only be
|
|
called if dataLooksValid returned `FIXABLE`.
|
|
abstract: false
|
|
args:
|
|
filetree: The tree to try to fix. Can be modified during the process.
|
|
returns:
|
|
__doc__: The fixed tree, or a null pointer if the tree could not be fixed.
|
|
type: IFileTree | None
|
|
|
|
ModDataContent:
|
|
__doc__: |
|
|
The ModDataContent feature is used (when available) to indicate to users the content
|
|
of mods in the "Content" column.
|
|
|
|
The feature exposes a list of possible content types, each associated with an ID, a name
|
|
and an icon. The icon is the path to either:
|
|
|
|
- A Qt resource or;
|
|
- A file on the disk.
|
|
|
|
In order to facilitate the implementation, MO2 already provides a set of icons that can
|
|
be used. Those icons are all under ``:/MO/gui/content`` (e.g. ``:/MO/gui/content/plugin`` or ``:/MO/gui/content/music`` `).
|
|
|
|
The list of available icons is:
|
|
|
|
- ``plugin``: |plugin-icon|
|
|
- ``skyproc``: |skyproc-icon|
|
|
- ``texture``: |texture-icon|
|
|
- ``music``: |music-icon|
|
|
- ``sound``: |sound-icon|
|
|
- ``interface``: |interface-icon|
|
|
- ``skse``: |skse-icon|
|
|
- ``script``: |script-icon|
|
|
- ``mesh``: |mesh-icon|
|
|
- ``string``: |string-icon|
|
|
- ``bsa``: |bsa-icon|
|
|
- ``menu``: |menu-icon|
|
|
- ``inifile``: |inifile-icon|
|
|
- ``modgroup``: |modgroup-icon|
|
|
|
|
.. |plugin-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/jigsaw-piece.png
|
|
.. |skyproc-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/hand-of-god.png
|
|
.. |texture-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/empty-chessboard.png
|
|
.. |music-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/double-quaver.png
|
|
.. |sound-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/lyre.png
|
|
.. |interface-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/usable.png
|
|
.. |skse-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/checkbox-tree.png
|
|
.. |script-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/tinker.png
|
|
.. |mesh-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/breastplate.png
|
|
.. |string-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/conversation.png
|
|
.. |bsa-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/locked-chest.png
|
|
.. |menu-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/config.png
|
|
.. |inifile-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/feather-and-scroll.png
|
|
.. |modgroup-icon| image:: https://raw.githubusercontent.com/ModOrganizer2/modorganizer/master/src/resources/contents/xedit.png
|
|
|
|
__abstract__: true
|
|
|
|
Content:
|
|
__doc__:
|
|
|
|
__init__:
|
|
__doc__:
|
|
|
|
args:
|
|
id: ID of this content.
|
|
name: Name of this content.
|
|
icon: |
|
|
Path to the icon for this content. Can be either a path
|
|
to an image on the disk, or to a resource. Can be an empty string if filterOnly
|
|
is true.
|
|
filter_only: |
|
|
Indicates if the content should only be show in the filter
|
|
criteria and not in the actual Content column.
|
|
|
|
isOnlyForFilter:
|
|
__doc__:
|
|
returns: True if this content is only meant to be used as a filter criteria.
|
|
|
|
properties[]:
|
|
id:
|
|
type: int
|
|
desc: The ID of this content.
|
|
name:
|
|
type: str
|
|
desc: The name of this content.
|
|
icon:
|
|
type: str
|
|
desc: The path to the icon of this content (can be a Qt resource path).
|
|
|
|
__init__:
|
|
__doc__:
|
|
|
|
getAllContents:
|
|
__doc__:
|
|
returns: The list of all possible contents for the corresponding game.
|
|
|
|
getContentsFor:
|
|
__doc__: Retrieve the list of contents in the given tree.
|
|
args:
|
|
filetree: The tree corresponding to the mod to retrieve contents for.
|
|
returns: The IDs of the content in the given tree.
|
|
|
|
ModRepositoryFileInfo:
|
|
__doc__:
|
|
properties[]:
|
|
author:
|
|
type: str
|
|
desc:
|
|
categoryID:
|
|
type: int
|
|
desc:
|
|
description:
|
|
type: str
|
|
desc:
|
|
fileCategory:
|
|
type: int
|
|
desc:
|
|
fileID:
|
|
type: int
|
|
desc:
|
|
fileName:
|
|
type: str
|
|
desc:
|
|
fileSize:
|
|
type: int
|
|
desc:
|
|
fileTime:
|
|
type: PyQt6.QtCore.QDateTime
|
|
desc:
|
|
gameName:
|
|
type: str
|
|
desc:
|
|
modID:
|
|
type: int
|
|
desc:
|
|
modName:
|
|
type: str
|
|
desc:
|
|
name:
|
|
type: str
|
|
desc:
|
|
newestVersion:
|
|
type: VersionInfo
|
|
desc:
|
|
repository:
|
|
type: str
|
|
desc:
|
|
uploader:
|
|
type: str
|
|
desc:
|
|
uploaderUrl:
|
|
type: str
|
|
desc:
|
|
uri:
|
|
type: str
|
|
desc:
|
|
userData:
|
|
type: MoVariant
|
|
desc:
|
|
version:
|
|
type: VersionInfo
|
|
desc:
|
|
|
|
__init__.1:
|
|
__doc__:
|
|
args:
|
|
other:
|
|
__init__.2:
|
|
__doc__:
|
|
args:
|
|
game_name:
|
|
mod_id:
|
|
file_id:
|
|
__str__:
|
|
__doc__:
|
|
returns:
|
|
createFromJson:
|
|
__doc__:
|
|
args:
|
|
data:
|
|
returns:
|
|
|
|
PluginSetting:
|
|
__doc__: |
|
|
Class to hold the user-configurable parameters a plugin accepts. The purpose of this class is
|
|
only to inform the application what settings to offer to the user, it does not hold the actual value.
|
|
properties[]:
|
|
default_value:
|
|
type: MoVariant
|
|
desc: Default value of the setting.
|
|
description:
|
|
type: str
|
|
desc: Description of the setting.
|
|
key:
|
|
type: str
|
|
desc: Name of the setting.
|
|
|
|
__init__:
|
|
__doc__:
|
|
args:
|
|
key: Name of the setting.
|
|
description: Description of the setting.
|
|
default_value: Default value of the setting.
|
|
|
|
SaveGameInfo:
|
|
__doc__: Feature to get hold of stuff to do with save games.
|
|
__abstract__: true
|
|
__init__:
|
|
__doc__:
|
|
|
|
getMissingAssets:
|
|
__doc__: Retrieve missing assets from the save.
|
|
args:
|
|
save: The save to find missing assets for.
|
|
returns: |
|
|
A collection of missing assets and the modules that can supply those assets.
|
|
|
|
getSaveGameWidget:
|
|
__doc__: |
|
|
Retrieve a widget to display over the save game list.
|
|
|
|
This method is allowed to return `None` in case no widget has been implemented.
|
|
args:
|
|
parent: The parent widget.
|
|
returns:
|
|
__doc__: A SaveGameInfoWidget to display information about save game.
|
|
type: ISaveGameInfoWidget | None
|
|
|
|
ScriptExtender:
|
|
__doc__:
|
|
__abstract__: true
|
|
|
|
binaryName:
|
|
__doc__:
|
|
returns: The name of the script extender binary.
|
|
|
|
pluginPath:
|
|
__doc__:
|
|
returns: The script extender plugin path, relative to the data folder.
|
|
|
|
getArch:
|
|
__doc__:
|
|
returns: The CPU platform of the extender.
|
|
|
|
getExtenderVersion:
|
|
__doc__:
|
|
returns: The version of the script extender.
|
|
|
|
isInstalled:
|
|
__doc__:
|
|
returns: True if the script extender is installed, False otherwise.
|
|
|
|
loaderName:
|
|
__doc__:
|
|
returns: The loader to use to ensure the game runs with the script extender.
|
|
|
|
loaderPath:
|
|
__doc__:
|
|
returns: The full path to the script extender loader.
|
|
|
|
savegameExtension:
|
|
__doc__: Retrieve the extension of script extender save files.
|
|
returns: The extension of script extender save files (e.g. "skse").
|
|
|
|
UnmanagedMods:
|
|
__doc__:
|
|
__abstract__: true
|
|
|
|
displayName:
|
|
__doc__: Retrieve the display name of a given mod.
|
|
args:
|
|
mod_name: Internal name of the mod.
|
|
returns: The display name of the mod.
|
|
|
|
mods:
|
|
__doc__: Retrieve the list of unmanaged mods for the corresponding game.
|
|
args:
|
|
official_only: Retrieve only unmanaged official mods.
|
|
returns: The list of unmanaged mods (internal names).
|
|
|
|
referenceFile:
|
|
__doc__: |
|
|
Retrieve the reference file for the requested mod.
|
|
|
|
Example: For Bethesda games, the reference file may be the main
|
|
plugin (esp or esm) for the game or a DLCs.
|
|
args:
|
|
mod_name: Internal name of the mod.
|
|
returns: The reference file (absolute path) for the requested mod.
|
|
|
|
secondaryFiles:
|
|
__doc__: |
|
|
Retrieve the secondary files for the requested mod.
|
|
|
|
Example: For Bethesda games, the secondary files may be the archives
|
|
corresponding to the reference file.
|
|
args:
|
|
mod_name: Internal name of the mod.
|
|
returns: The secondary files (absolute paths) for the request mod.
|
|
|
|
Version:
|
|
__doc__: |
|
|
Class representing a version objects.
|
|
|
|
Valid versions are an "extension" of SemVer (see https://semver.org/) with the
|
|
following tweaks:
|
|
- version can have a sub-patch, i.e., x.y.z.p, which are normally not allowed by
|
|
SemVer,
|
|
- non-integer pre-release identifiers are limited to dev, alpha (a), beta (b) and rc,
|
|
and dev is lower than alpha (according to SemVer, the pre-release should be
|
|
ordered alphabetically),
|
|
- the '-' between version and pre-release can be made optional, and also the '.'
|
|
between pre-releases segment.
|
|
|
|
The extension from SemVer are only meant to be used by MO2 and USVFS versioning,
|
|
plugins and extensions should follow SemVer standard (and not use dev), this is
|
|
mainly
|
|
- for back-compatibility purposes, because USVFS versioning contains sub-patches and
|
|
there are old MO2 releases with sub-patch,
|
|
- because MO2 is not going to become MO3, so having an extra level make sense.
|
|
|
|
Unlike VersionInfo, this class is immutable and only hold valid versions.
|
|
|
|
ParseMode:
|
|
__doc__: Enumeration defining how to parse version from string.
|
|
SEMVER: Official semver parsing with pre-release limited to dev, alpha/a, beta/b and rc.
|
|
MO2: |
|
|
MO2 parsing, e.g., 2.5.1rc1 - this either parse a string with no pre-release
|
|
information (e.g. 2.5.1) or with a single pre-release + a version (e.g., 2.5.1a1
|
|
or 2.5.2rc1).
|
|
|
|
This mode can parse sub-patch (SemVer mode cannot).
|
|
|
|
FormatMode:
|
|
__doc__: Enumeration defining how to format version into string.
|
|
FORCE_SUBPATCH: Show sub-patch even if sub-patch is 0.
|
|
NO_SEPARATOR: |
|
|
Do not add separators between version and pre-release (-) or between pre-release
|
|
segments (.).
|
|
SHORT_ALPHA_BETA: Use short form for alpha and beta (a/b instead of alpha/beta).
|
|
NO_METADATA: Do not add metadata even if present.
|
|
CONDENSED: Condensed format, combination of NO_SEPARATOR, SHORT_ALPHA_BETA and NO_METADATA.
|
|
|
|
ReleaseType:
|
|
__doc__: Enumeration representing the release type of a version.
|
|
DEVELOPMENT:
|
|
ALPHA:
|
|
BETA:
|
|
RELEASE_CANDIDATE:
|
|
|
|
properties[]:
|
|
major:
|
|
type: int
|
|
desc: The major component of this version.
|
|
|
|
minor:
|
|
type: int
|
|
desc: The minor component of this version.
|
|
|
|
patch:
|
|
type: int
|
|
desc: The patch component of this version.
|
|
|
|
subpatch:
|
|
type: int
|
|
desc: The sub-patch component of this version.
|
|
|
|
prereleases:
|
|
type: list[int | ReleaseType]
|
|
desc: The pre-release components of this version.
|
|
|
|
build_metadata:
|
|
type: str
|
|
desc: The build-metadata component of this version, or an empty string.
|
|
|
|
|
|
isPreRelease:
|
|
__doc__: Check if this version represents a pre-release version.
|
|
returns: True if this version is a pre-release version, False otherwise.
|
|
|
|
parse:
|
|
__doc__: |
|
|
Parse version from the given string, throw InvalidVersionException if the
|
|
string cannot be parsed.
|
|
static: True
|
|
args:
|
|
value: Value to parse.
|
|
mode: Mode to use when parsing, see ParseMode for more details.
|
|
returns: The parsed version.
|
|
|
|
string:
|
|
__doc__: Convert this version to a string.
|
|
args:
|
|
mode: Combination of modes to use creating the string, see FormatMode.
|
|
returns: A string representing this version according to the given modes.
|
|
|
|
VersionInfo:
|
|
__doc__: Represents the version of a mod or plugin.
|
|
|
|
__init__.1: Construct an invalid VersionInfo.
|
|
|
|
__init__.2:
|
|
__doc__: Construct a VersionInfo by parsing the given string according to the given scheme.
|
|
|
|
args:
|
|
value: String to parse.
|
|
scheme: Scheme to use to parse the string.
|
|
|
|
__init__.3:
|
|
__doc__: Construct a VersionInfo using the given elements.
|
|
|
|
args:
|
|
major: Major version.
|
|
minor: Minor version.
|
|
subminor: Subminor version.
|
|
subsubminor: Subsubminor version.
|
|
release_type: Type of release.
|
|
|
|
__init__.4:
|
|
__doc__: Construct a VersionInfo using the given elements.
|
|
|
|
args:
|
|
major: Major version.
|
|
minor: Minor version.
|
|
subminor: Subminor version.
|
|
release_type: Type of release.
|
|
|
|
__str__:
|
|
returns: >
|
|
See `canonicalString()`.
|
|
|
|
canonicalString:
|
|
returns: >
|
|
A canonical string representing this version, that can be stored and then parsed using
|
|
the parse() method.
|
|
|
|
clear: Resets this VersionInfo to an invalid version.
|
|
|
|
displayString:
|
|
args:
|
|
forced_segments: |
|
|
The number of version segments to display even if the version is 0. 1 is major, 2 is major
|
|
and minor, etc. The only implemented ranges are (-inf,2] for major/minor, [3] for major/minor/subminor,
|
|
and [4,inf) for major/minor/subminor/subsubminor. This only versions with a regular scheme.
|
|
returns: >
|
|
A string for display to the user. The returned string may not contain enough information
|
|
to reconstruct this version info.
|
|
|
|
isValid:
|
|
returns: True if this VersionInfo is valid, False otherwise.
|
|
|
|
parse:
|
|
__doc__: Update this VersionInfo by parsing the given string using the given scheme.
|
|
|
|
args:
|
|
value: String to parse.
|
|
scheme: Scheme to use to parse the string.
|
|
is_manual: True if the given string should be treated as user input.
|
|
|
|
scheme:
|
|
returns: The version scheme in effect for this VersionInfo.
|
|
|
|
mobase.widgets:
|
|
TaskDialog:
|
|
__doc__: Customizable choice dialog.
|
|
|
|
__init__:
|
|
__doc__: Construct a new TaskDialog.
|
|
|
|
args:
|
|
parent: Parent widget of the dialog.
|
|
title: Title of the dialog.
|
|
main: Header of the dialog (big text at the top).
|
|
content: Main message of the dialog (text below main).
|
|
details: Details for the dialog, initially collapsed (bottom of the dialog).
|
|
icon: Icon for the dialog.
|
|
buttons: List of buttons for the dialog.
|
|
remember: Remember the choice for this dialog.
|
|
|
|
addButton:
|
|
__doc__: Add a custom button to this TaskDialog.
|
|
|
|
args:
|
|
button: Button to add to the dialog.
|
|
|
|
addContent:
|
|
__doc__: |
|
|
Add a custom widget content to this TaskDialog. Widget content are put between
|
|
content and buttons (above buttons).
|
|
|
|
args:
|
|
widget: Widget to add.
|
|
|
|
exec:
|
|
__doc__: |
|
|
Display this dialog and wait for user-interaction to return. This is a blocking
|
|
function.
|
|
|
|
returns: |
|
|
The button clicked by the user. Without custom buttons, this return Ok,
|
|
otherwise it returns the button set in the TaskDialogButton.
|
|
|
|
setContent:
|
|
__doc__: Set the top-level message of this dialog.
|
|
|
|
args:
|
|
content: Top-level message to set.
|
|
|
|
setDetails:
|
|
__doc__: |
|
|
Set the details for this TaskDialog.
|
|
|
|
The details are hidden by default and the user can display them by clicking
|
|
the "Details" button at the bottom of the TaskDialog.
|
|
|
|
args:
|
|
details: Details content to display. Can be a multi-line string.
|
|
|
|
setIcon:
|
|
__doc__: Set the icon of the dialog.
|
|
|
|
args:
|
|
icon: Icon of the dialog.
|
|
|
|
setMain:
|
|
__doc__: |
|
|
Set the main message of the dialog. The main message is displayed at the top of
|
|
the dialog in large font.
|
|
|
|
args:
|
|
main: Main message of the dialog.
|
|
|
|
setRemember:
|
|
__doc__: Configure the dialog to remember user-choice.
|
|
|
|
args:
|
|
action:
|
|
file:
|
|
|
|
setTitle:
|
|
__doc__: Set the title of the dialog.
|
|
|
|
args:
|
|
title: Title of the dialog.
|
|
|
|
setWidth:
|
|
__doc__: Set the width of the dialog.
|
|
|
|
args:
|
|
width: Width of the dialog.
|
|
|
|
TaskDialogButton:
|
|
__doc__: Special button to be used inside TaskDialog widgets.
|
|
|
|
__init__.1:
|
|
__doc__: Create a TaskDialogButton.
|
|
|
|
args:
|
|
text: Label of the button.
|
|
description: Description of the button.
|
|
button: Value returned by TaskDialog.exec() if this button is clicked.
|
|
|
|
__init__.2:
|
|
__doc__: Create a TaskDialogButton without description.
|
|
|
|
args:
|
|
text: Label of the button.
|
|
button: Value returned by TaskDialog.exec() if this button is clicked.
|
|
|
|
properties[]:
|
|
text:
|
|
type: str
|
|
desc: Label of the button.
|
|
description:
|
|
type: str
|
|
desc: Description of the button.
|
|
button:
|
|
type: PyQt6.QtWidgets.QMessageBox.StandardButton
|
|
desc: Value returned by TaskDialog.exec() if this button is clicked.
|