-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshare.py
68 lines (44 loc) · 1.51 KB
/
share.py
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
"""Shared HACS elements."""
import os
from .base import HacsBase
SHARE = {
"hacs": None,
"factory": None,
"queue": None,
"removed_repositories": [],
"rules": {},
}
def get_hacs() -> HacsBase:
if SHARE["hacs"] is None:
from custom_components.hacs.hacsbase.hacs import Hacs as Legacy
_hacs = Legacy()
if not "PYTEST" in os.environ and "GITHUB_ACTION" in os.environ:
_hacs.system.action = True
SHARE["hacs"] = _hacs
return SHARE["hacs"]
def get_factory():
if SHARE["factory"] is None:
from custom_components.hacs.operational.factory import HacsTaskFactory
SHARE["factory"] = HacsTaskFactory()
return SHARE["factory"]
def get_queue():
if SHARE["queue"] is None:
from queueman import QueueManager
SHARE["queue"] = QueueManager()
return SHARE["queue"]
def is_removed(repository):
return repository in [x.repository for x in SHARE["removed_repositories"]]
def get_removed(repository):
if not is_removed(repository):
from custom_components.hacs.helpers.classes.removed import RemovedRepository
removed_repo = RemovedRepository()
removed_repo.repository = repository
SHARE["removed_repositories"].append(removed_repo)
filter_repos = [
x
for x in SHARE["removed_repositories"]
if x.repository.lower() == repository.lower()
]
return filter_repos.pop() or None
def list_removed_repositories():
return SHARE["removed_repositories"]