-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
poetry.py
85 lines (60 loc) · 2.06 KB
/
poetry.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from __future__ import annotations
from typing import TYPE_CHECKING
from typing import Any
from poetry.core.poetry import Poetry as BasePoetry
from poetry.__version__ import __version__
from poetry.config.source import Source
if TYPE_CHECKING:
from pathlib import Path
from poetry.core.packages.project_package import ProjectPackage
from poetry.config.config import Config
from poetry.packages.locker import Locker
from poetry.plugins.plugin_manager import PluginManager
from poetry.repositories.repository_pool import RepositoryPool
class Poetry(BasePoetry):
VERSION = __version__
def __init__(
self,
file: Path,
local_config: dict[str, Any],
package: ProjectPackage,
locker: Locker,
config: Config,
disable_cache: bool = False,
) -> None:
from poetry.repositories.repository_pool import RepositoryPool
super().__init__(file, local_config, package)
self._locker = locker
self._config = config
self._pool = RepositoryPool()
self._plugin_manager: PluginManager | None = None
self._disable_cache = disable_cache
@property
def locker(self) -> Locker:
return self._locker
@property
def pool(self) -> RepositoryPool:
return self._pool
@property
def config(self) -> Config:
return self._config
@property
def disable_cache(self) -> bool:
return self._disable_cache
def set_locker(self, locker: Locker) -> Poetry:
self._locker = locker
return self
def set_pool(self, pool: RepositoryPool) -> Poetry:
self._pool = pool
return self
def set_config(self, config: Config) -> Poetry:
self._config = config
return self
def set_plugin_manager(self, plugin_manager: PluginManager) -> Poetry:
self._plugin_manager = plugin_manager
return self
def get_sources(self) -> list[Source]:
return [
Source(**source)
for source in self.pyproject.poetry_config.get("source", [])
]