diff --git a/debug/debug.py b/debug/debug.py index 29db8fc..9edb195 100644 --- a/debug/debug.py +++ b/debug/debug.py @@ -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) diff --git a/debug/pypi-deps-db.nix b/debug/pypi-deps-db.nix index a4b0cb5..e9525a9 100644 --- a/debug/pypi-deps-db.nix +++ b/debug/pypi-deps-db.nix @@ -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 { diff --git a/mach_nix/data/providers.py b/mach_nix/data/providers.py index 34ed1b7..38fd4a7 100644 --- a/mach_nix/data/providers.py +++ b/mach_nix/data/providers.py @@ -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]: diff --git a/mach_nix/generators/overlay_generator.py b/mach_nix/generators/overlay_generator.py index e806c81..bdbbce5 100644 --- a/mach_nix/generators/overlay_generator.py +++ b/mach_nix/generators/overlay_generator.py @@ -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)