Esempio n. 1
0
    def __init__(self, fail_pixmap: QPixmap, large: bool = True):
        super().__init__()
        self.large = large
        # Thumbnail creation should take no longer than 1 s
        self.pool.setExpiryTimeout(1000)

        directory = os.path.join(xdg.user_cache_dir(), "thumbnails")
        self.directory = (os.path.join(directory, "large")
                          if large else os.path.join(directory, "normal"))
        self.fail_directory = os.path.join(directory, "fail",
                                           f"vimiv-{vimiv.__version__}")
        xdg.makedirs(self.directory, self.fail_directory)
        self.fail_pixmap = fail_pixmap
def init_directories(args: argparse.Namespace) -> None:
    """Create vimiv cache, config and data directories.

    The directories are either the directories defined in the freedesktop
    standard or located in a temporary base directory.

    Args:
        args: Arguments returned from parser.parse_args().
    """
    if args.temp_basedir:
        global _tmpdir
        _tmpdir = tempfile.TemporaryDirectory(prefix="vimiv-tempdir-")
        args.basedir = _tmpdir.name
    if args.basedir is not None:
        xdg.basedir = args.basedir
    xdg.makedirs(xdg.vimiv_cache_dir(), xdg.vimiv_config_dir(), xdg.vimiv_data_dir())
Esempio n. 3
0
def dump(name: str, style: Style):
    """Dump style to styles file."""
    filename = abspath(name)
    xdg.makedirs(os.path.dirname(filename))
    _logger.debug("Dumping style to file '%s'", filename)
    parser = configparser.ConfigParser()
    parser.add_section("STYLE")
    for option, value in style.items():
        option = option.strip("{}")
        parser["STYLE"][option] = value
    with open(filename, "w", encoding="utf-8") as f:
        f.write("; This file is a reference for creating own styles."
                " It will never be read.\n"
                "; To change values, copy this file using a new name and"
                " set the style setting\n; in vimiv.conf to that name.\n")
        parser.write(f)
        f.write("; vim:ft=dosini")
Esempio n. 4
0
    def __init__(self, name: str, read_only: bool = True):
        self.name = name
        abspath = Tag.path(name)
        exists = os.path.isfile(abspath)
        self._mode = "r" if read_only else ("r+" if exists else "a+")
        _logger.debug("Opened tag object: '%s'", self)
        xdg.makedirs(os.path.dirname(abspath))
        try:
            self._file = open(abspath, self._mode)
        except FileNotFoundError:  # For read-only if the file does not exist
            raise commands.CommandError(f"No tag called '{name}'")
        except OSError as e:
            raise commands.CommandError(f"Error reading '{name}': {e}")

        if read_only:
            _logger.debug("%s: Reading tag file", self)
        elif not exists:
            _logger.debug("%s: Creating new tag file", self)
            self._write_header()
        else:
            _logger.debug("%s: Appending to existing tag file", self)
Esempio n. 5
0
def init() -> None:
    """Create the necessary directories."""
    global _files_directory, _info_directory
    _files_directory = xdg.user_data_dir("Trash", "files")
    _info_directory = xdg.user_data_dir("Trash", "info")
    xdg.makedirs(_files_directory, _info_directory)