import os
from abc import ABCMeta
from pathlib import PurePosixPath
from fortrace.utility.applications.application import (
ApplicationEvent,
ApplicationType,
GenericApplication,
)
from fortrace.utility.applications.file_manager.file_manager import GenericFileManager
[docs]
class PosixFileManager(GenericFileManager, metaclass=ABCMeta):
[docs]
def open_file(
self, path: os.PathLike, app_type: ApplicationType, app_name: str
) -> GenericApplication:
path = PurePosixPath(path)
if path.parent != PurePosixPath():
self.browse_to_directory(path.parent)
self.focus_on_item(path.name)
self._qs.send_key_combination("ret")
# pylint: disable-next=import-outside-toplevel
from fortrace.utility.applications.application_factory import get_application
new_app = get_application(app_type, app_name, self._qs, self._parent_notifier)
self._parent_notifier(
ApplicationEvent.NEW_APPLICATION_OPENED, application_reference=new_app
)
return new_app
[docs]
def move_file(
self,
source: os.PathLike,
destination: os.PathLike,
overwrite: bool = False,
ignore_suffix: bool = True,
):
source = PurePosixPath(source)
destination = PurePosixPath(destination)
self._move_file(source, destination, overwrite, ignore_suffix)
[docs]
def show_hidden(self):
self._qs.send_key_combination("ctrl-h")
self._show_hidden = ~self._show_hidden