ahriman.application package
Subpackages
- ahriman.application.application package
- Subpackages
- Submodules
- ahriman.application.application.application module
- ahriman.application.application.application_packages module
- ahriman.application.application.application_properties module
- ahriman.application.application.application_repository module
- ahriman.application.application.updates_iterator module
- Module contents
- ahriman.application.handlers package
- Submodules
- ahriman.application.handlers.add module
- ahriman.application.handlers.backup module
- ahriman.application.handlers.change module
- ahriman.application.handlers.clean module
- ahriman.application.handlers.daemon module
- ahriman.application.handlers.dump module
- ahriman.application.handlers.handler module
- ahriman.application.handlers.help module
- ahriman.application.handlers.key_import module
- ahriman.application.handlers.patch module
- ahriman.application.handlers.rebuild module
- ahriman.application.handlers.remove module
- ahriman.application.handlers.remove_unknown module
- ahriman.application.handlers.repositories module
- ahriman.application.handlers.restore module
- ahriman.application.handlers.run module
- ahriman.application.handlers.search module
- ahriman.application.handlers.service_updates module
- ahriman.application.handlers.setup module
- ahriman.application.handlers.shell module
- ahriman.application.handlers.sign module
- ahriman.application.handlers.status module
- ahriman.application.handlers.status_update module
- ahriman.application.handlers.structure module
- ahriman.application.handlers.tree_migrate module
- ahriman.application.handlers.triggers module
- ahriman.application.handlers.unsafe_commands module
- ahriman.application.handlers.update module
- ahriman.application.handlers.users module
- ahriman.application.handlers.validate module
- ahriman.application.handlers.versions module
- ahriman.application.handlers.web module
- Module contents
Submodules
ahriman.application.ahriman module
ahriman.application.lock module
- class Lock(args: Namespace, repository_id: RepositoryId, configuration: Configuration)
Bases:
LazyLogging
wrapper for application lock file
- force
remove lock file on start if any
- Type:
bool
- path
path to lock file if any
- Type:
Path
- paths
repository paths instance
- Type:
- unsafe
skip user check
- Type:
bool
- wait_timeout
wait in seconds until lock will free
- Type:
int
Examples
Instance of this class except for controlling file-based lock is also required for basic applications checks. The common flow is to create instance in
with
block and handle exceptions after all:>>> from ahriman.core.configuration import Configuration >>> from ahriman.models.repository_id import RepositoryId >>> >>> configuration = Configuration() >>> try: >>> with Lock(args, RepositoryId("x86_64", "aur-clone"), configuration): >>> perform_actions() >>> except Exception as exception: >>> handle_exceptions(exception)
default constructor
- Parameters:
args (argparse.Namespace) – command line args
repository_id (RepositoryId) – repository unique identifier
configuration (Configuration) – configuration instance
- check_user() None
check if current user is actually owner of ahriman root
- check_version() None
check web server version
- clear() None
remove lock file
- create() None
create lock file
- Raises:
DuplicateRunError – if lock exists and no force flag supplied
- watch() None
watch until lock disappear