3faddeaaa9
Fixes some trivial typos, mostly in comments, except for in `mach_nix/resolver/__init__.py`, the scope is a context manager, so there shouldn't be arbitrary sideffects by the rename.
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
from abc import ABC, abstractmethod
|
|
from dataclasses import dataclass, field
|
|
from typing import List, Optional, Iterable, Set
|
|
|
|
from mach_nix.data.providers import ProviderInfo
|
|
from mach_nix.requirements import Requirement
|
|
from mach_nix.versions import Version
|
|
|
|
from json import JSONEncoder
|
|
|
|
|
|
@dataclass
|
|
class ResolvedPkg(JSONEncoder):
|
|
name: str
|
|
ver: Version
|
|
raw_version: str
|
|
build_inputs: Optional[List[str]]
|
|
prop_build_inputs: Optional[List[str]]
|
|
is_root: bool
|
|
provider_info: ProviderInfo
|
|
extras_selected: List[str]
|
|
# contains direct or indirect children which have been disconnected due to circular deps
|
|
removed_circular_deps: Set[str] = field(default_factory=set)
|
|
build: str = None
|
|
|
|
def toDict(self):
|
|
return dict(
|
|
name=self.name,
|
|
ver=str(self.ver),
|
|
build_inputs=self.build_inputs,
|
|
prop_build_inputs=self.prop_build_inputs,
|
|
is_root=self.is_root,
|
|
provider_info=self.provider_info.toDict(),
|
|
extras_selected=self.extras_selected,
|
|
removed_circular_deps=list(self.removed_circular_deps),
|
|
build=self.build,
|
|
)
|
|
|
|
|
|
class Resolver(ABC):
|
|
|
|
@abstractmethod
|
|
def resolve(self, reqs: Iterable[Requirement]) -> List[ResolvedPkg]:
|
|
pass
|