fix bug: some deps with markers were ignored (fixes #26)
This commit is contained in:
parent
c8f6586e20
commit
995e7d1ef4
4 changed files with 8 additions and 13 deletions
|
@ -17,7 +17,7 @@ os.environ['disable_checks'] = 'true'
|
|||
with open(pwd + "/../mach_nix/provider_defaults.toml") as f:
|
||||
provider_settings = toml.load(f)
|
||||
provider_settings.update(dict(
|
||||
_default="wheel,nixpkgs,sdist",
|
||||
_default="wheel,sdist,nixpkgs",
|
||||
))
|
||||
os.environ['providers'] = json.dumps(provider_settings)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
let
|
||||
pkgs = import (import ../mach_nix/nix/nixpkgs-src.nix).stable {};
|
||||
pkgs = import (import ../mach_nix/nix/nixpkgs-src.nix) {};
|
||||
commit = builtins.readFile ../mach_nix/nix/PYPI_DEPS_DB_COMMIT;
|
||||
sha256 = builtins.readFile ../mach_nix/nix/PYPI_DEPS_DB_SHA256;
|
||||
src = builtins.fetchTarball {
|
||||
|
|
|
@ -233,12 +233,6 @@ class NixpkgsDependencyProvider(DependencyProviderBase):
|
|||
return [p.ver for p in self.nixpkgs.get_all_candidates(name)]
|
||||
return []
|
||||
|
||||
# def unify_key(self, key: str) -> str:
|
||||
# key = super(NixpkgsDependencyProvider, self).unify_key(key)
|
||||
# if key in self._aliases:
|
||||
# return self._aliases[key]
|
||||
# return key
|
||||
|
||||
|
||||
class WheelDependencyProvider(DependencyProviderBase):
|
||||
name = 'wheel'
|
||||
|
@ -408,8 +402,11 @@ class SdistDependencyProvider(DependencyProviderBase):
|
|||
reqs_raw = pkg[t]
|
||||
reqs = parse_reqs(reqs_raw)
|
||||
requirements[t] = list(filter_reqs_by_eval_marker(reqs, self.context))
|
||||
if extras:
|
||||
requirements['install_requires'] += self.get_reqs_for_extras(pkg_name, pkg_version, extras)
|
||||
if not extras:
|
||||
extras = []
|
||||
# even if no extras are selected we need to collect reqs for extras,
|
||||
# because some extras consist of only a marker which needs to be evaluated
|
||||
requirements['install_requires'] += self.get_reqs_for_extras(pkg_name, pkg_version, extras)
|
||||
return requirements['install_requires'], requirements['setup_requires']
|
||||
|
||||
def _available_versions(self, pkg_name: str) -> Iterable[Version]:
|
||||
|
|
|
@ -26,9 +26,7 @@ class OverlaysGenerator(ExpressionGenerator):
|
|||
super(OverlaysGenerator, self).__init__(*args, **kwargs)
|
||||
|
||||
def generate(self, reqs) -> str:
|
||||
pkgs = self.resolver.resolve(
|
||||
reqs,
|
||||
)
|
||||
pkgs = self.resolver.resolve(reqs)
|
||||
pkgs = dict(sorted(((p.name, p) for p in pkgs), key=lambda x: x[1].name))
|
||||
return self._gen_python_env(pkgs)
|
||||
|
||||
|
|
Loading…
Reference in a new issue