From 5377c92796457025dc1cae5f146293b0ced5c26b Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Thu, 1 Aug 2024 21:43:36 -0500 Subject: [PATCH] Let ls operate on all vendors by default --- src/cjdk/_api.py | 20 +++++++++++++++++++- src/cjdk/_conf.py | 7 ++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/cjdk/_api.py b/src/cjdk/_api.py index afa8c8f..4ebdab8 100644 --- a/src/cjdk/_api.py +++ b/src/cjdk/_api.py @@ -268,7 +268,25 @@ def _get_vendors(**kwargs): def _get_jdks(*, vendor=None, version=None, cached_only=True, **kwargs): - conf = _conf.configure(vendor=vendor, version=version, **kwargs) + conf = _conf.configure( + vendor=vendor, + version=version, + fallback_to_default_vendor=False, + **kwargs, + ) + if conf.vendor is None: + # Search across all vendors. + kwargs.pop("jdk", None) # It was already parsed. + return [ + jdk + for v in sorted(_get_vendors()) + for jdk in _get_jdks( + vendor=v, + version=conf.version, + cached_only=cached_only, + **kwargs, + ) + ] index = _index.jdk_index(conf) jdks = _index.available_jdks(index, conf) versions = _index._get_versions(jdks, conf) diff --git a/src/cjdk/_conf.py b/src/cjdk/_conf.py index 499e56d..df2b35d 100644 --- a/src/cjdk/_conf.py +++ b/src/cjdk/_conf.py @@ -39,10 +39,15 @@ def configure(**kwargs): raise ValueError("Cannot specify jdk= together with version=") kwargs["vendor"], kwargs["version"] = _parse_vendor_version(jdk) + default_vendor = ( + _default_vendor() + if kwargs.pop("fallback_to_default_vendor", True) + else None + ) conf = Configuration( os=_canonicalize_os(kwargs.pop("os", None)), arch=_canonicalize_arch(kwargs.pop("arch", None)), - vendor=kwargs.pop("vendor", None) or _default_vendor(), + vendor=kwargs.pop("vendor", None) or default_vendor, version=kwargs.pop("version", "") or "", cache_dir=kwargs.pop("cache_dir", None) or _default_cachedir(), index_url=kwargs.pop("index_url", None) or _default_index_url(),