refactor: stop warning if we don't find anything via SimpleAPI (#2532)

The warning is somewhat non-actionable and the sources can be
inspected via the MODULE.bazel.lock file if needed. This makes it
easier to make this option a default at some point.

At the same time cleanup the code since we are not using the
`get_index_urls` to print the warning.

Work towards #260
diff --git a/python/private/pypi/extension.bzl b/python/private/pypi/extension.bzl
index 9b150bd..e190491 100644
--- a/python/private/pypi/extension.bzl
+++ b/python/private/pypi/extension.bzl
@@ -105,7 +105,6 @@
 
     # containers to aggregate outputs from this function
     whl_map = {}
-    exposed_packages = {}
     extra_aliases = {
         whl_name: {alias: True for alias in aliases}
         for whl_name, aliases in pip_attr.extra_hub_aliases.items()
@@ -219,8 +218,6 @@
     )
 
     for whl_name, requirements in requirements_by_platform.items():
-        whl_name = normalize_name(whl_name)
-
         group_name = whl_group_mapping.get(whl_name)
         group_deps = requirement_cycles.get(group_name, [])
 
@@ -261,68 +258,55 @@
             if v != default
         })
 
-        is_exposed = False
-        if get_index_urls:
-            # TODO @aignas 2024-05-26: move to a separate function
-            found_something = False
-            for requirement in requirements:
-                is_exposed = is_exposed or requirement.is_exposed
-                dists = requirement.whls
-                if not pip_attr.download_only and requirement.sdist:
-                    dists = dists + [requirement.sdist]
+        # TODO @aignas 2024-05-26: move to a separate function
+        for requirement in requirements:
+            dists = requirement.whls
+            if not pip_attr.download_only and requirement.sdist:
+                dists = dists + [requirement.sdist]
 
-                for distribution in dists:
-                    found_something = True
-                    is_reproducible = False
+            for distribution in dists:
+                args = dict(whl_library_args)
+                if pip_attr.netrc:
+                    args["netrc"] = pip_attr.netrc
+                if pip_attr.auth_patterns:
+                    args["auth_patterns"] = pip_attr.auth_patterns
 
-                    args = dict(whl_library_args)
-                    if pip_attr.netrc:
-                        args["netrc"] = pip_attr.netrc
-                    if pip_attr.auth_patterns:
-                        args["auth_patterns"] = pip_attr.auth_patterns
+                if not distribution.filename.endswith(".whl"):
+                    # pip is not used to download wheels and the python
+                    # `whl_library` helpers are only extracting things, however
+                    # for sdists, they will be built by `pip`, so we still
+                    # need to pass the extra args there.
+                    args["extra_pip_args"] = requirement.extra_pip_args
 
-                    if not distribution.filename.endswith(".whl"):
-                        # pip is not used to download wheels and the python
-                        # `whl_library` helpers are only extracting things, however
-                        # for sdists, they will be built by `pip`, so we still
-                        # need to pass the extra args there.
-                        args["extra_pip_args"] = requirement.extra_pip_args
+                # This is no-op because pip is not used to download the wheel.
+                args.pop("download_only", None)
 
-                    # This is no-op because pip is not used to download the wheel.
-                    args.pop("download_only", None)
+                repo_name = whl_repo_name(pip_name, distribution.filename, distribution.sha256)
+                args["requirement"] = requirement.srcs.requirement
+                args["urls"] = [distribution.url]
+                args["sha256"] = distribution.sha256
+                args["filename"] = distribution.filename
+                args["experimental_target_platforms"] = requirement.target_platforms
 
-                    repo_name = whl_repo_name(pip_name, distribution.filename, distribution.sha256)
-                    args["requirement"] = requirement.srcs.requirement
-                    args["urls"] = [distribution.url]
-                    args["sha256"] = distribution.sha256
-                    args["filename"] = distribution.filename
-                    args["experimental_target_platforms"] = requirement.target_platforms
+                # Pure python wheels or sdists may need to have a platform here
+                target_platforms = None
+                if distribution.filename.endswith("-any.whl") or not distribution.filename.endswith(".whl"):
+                    if len(requirements) > 1:
+                        target_platforms = requirement.target_platforms
 
-                    # Pure python wheels or sdists may need to have a platform here
-                    target_platforms = None
-                    if distribution.filename.endswith("-any.whl") or not distribution.filename.endswith(".whl"):
-                        if len(requirements) > 1:
-                            target_platforms = requirement.target_platforms
+                whl_libraries[repo_name] = args
 
-                    whl_libraries[repo_name] = args
+                whl_map.setdefault(whl_name, {})[whl_config_setting(
+                    version = major_minor,
+                    filename = distribution.filename,
+                    target_platforms = target_platforms,
+                )] = repo_name
 
-                    whl_map.setdefault(whl_name, {})[whl_config_setting(
-                        version = major_minor,
-                        filename = distribution.filename,
-                        target_platforms = target_platforms,
-                    )] = repo_name
-
-            if found_something:
-                if is_exposed:
-                    exposed_packages[whl_name] = None
+            if dists:
+                is_reproducible = False
                 continue
 
-        is_exposed = False
-        for requirement in requirements:
-            is_exposed = is_exposed or requirement.is_exposed
-            if get_index_urls:
-                logger.warn(lambda: "falling back to pip for installing the right file for {}".format(requirement.srcs.requirement_line))
-
+            # Fallback to a pip-installed wheel
             args = dict(whl_library_args)  # make a copy
             args["requirement"] = requirement.srcs.requirement_line
             if requirement.extra_pip_args:
@@ -343,13 +327,14 @@
                 target_platforms = target_platforms or None,
             )] = repo_name
 
-        if is_exposed:
-            exposed_packages[whl_name] = None
-
     return struct(
         is_reproducible = is_reproducible,
         whl_map = whl_map,
-        exposed_packages = exposed_packages,
+        exposed_packages = {
+            whl_name: None
+            for whl_name, requirements in requirements_by_platform.items()
+            if len([r for r in requirements if r.is_exposed]) > 0
+        },
         extra_aliases = extra_aliases,
         whl_libraries = whl_libraries,
     )
diff --git a/python/private/pypi/parse_requirements.bzl b/python/private/pypi/parse_requirements.bzl
index 821913d..d7ee285 100644
--- a/python/private/pypi/parse_requirements.bzl
+++ b/python/private/pypi/parse_requirements.bzl
@@ -203,6 +203,9 @@
                 sorted(requirements),
             ))
 
+        # Return normalized names
+        ret_requirements = ret.setdefault(normalize_name(whl_name), [])
+
         for r in sorted(reqs.values(), key = lambda r: r.requirement_line):
             whls, sdist = _add_dists(
                 requirement = r,
@@ -211,7 +214,7 @@
             )
 
             target_platforms = env_marker_target_platforms.get(r.requirement_line, r.target_platforms)
-            ret.setdefault(whl_name, []).append(
+            ret_requirements.append(
                 struct(
                     distribution = r.distribution,
                     srcs = r.srcs,