File: user_info.py

package info (click to toggle)
trash-cli 0.24.5.26-0.3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,972 kB
  • sloc: python: 9,789; sh: 121; makefile: 11
file content (32 lines) | stat: -rw-r--r-- 860 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Copyright (C) 2007-2023 Andrea Francia Trivolzio(PV) Italy
from __future__ import absolute_import

import pwd
from typing import Union

from trashcli.lib.trash_dirs import (
    home_trash_dir_path_from_env,
    home_trash_dir_path_from_home)


class UserInfo:
    def __init__(self, home_trash_dir_paths, uid):
        self.home_trash_dir_paths = home_trash_dir_paths
        self.uid = uid


class SingleUserInfoProvider:
    @staticmethod
    def get_user_info(environ, uid):
        return [UserInfo(home_trash_dir_path_from_env(environ), uid)]


class AllUsersInfoProvider:
    @staticmethod
    def get_user_info(_environ, _uid):
        for user in pwd.getpwall():
            yield UserInfo([home_trash_dir_path_from_home(user.pw_dir)],
                           user.pw_uid)


UserInfoProvider = Union[SingleUserInfoProvider, AllUsersInfoProvider]