fix(py_wheel): Fix parsing errors with `requires_file` attribute. (#1719)

The `requires_file` and `extra_requires_files` attributes added by
https://github.com/bazelbuild/rules_python/pull/1710 break wheels by
leaving trailing `;` and currently do not support `requirements.in`
files with comments following a constraint on the same line. This PR
fixes these issues.
diff --git a/examples/wheel/BUILD.bazel b/examples/wheel/BUILD.bazel
index b11ec69..699bf68 100644
--- a/examples/wheel/BUILD.bazel
+++ b/examples/wheel/BUILD.bazel
@@ -278,6 +278,7 @@
 --index-url https://pypi.com
 
 tomli>=2.0.0
+starlark  # Example comment
 """.splitlines(),
 )
 
@@ -290,7 +291,7 @@
 
 pyyaml>=6.0.0,!=6.0.1
 toml; (python_version == "3.11" or python_version == "3.12") and python_version != "3.8"
-wheel; python_version == "3.11" or python_version == "3.12"
+wheel; python_version == "3.11" or python_version == "3.12"  # Example comment
 """.splitlines(),
 )
 
diff --git a/examples/wheel/wheel_test.py b/examples/wheel/wheel_test.py
index a33e435..b683da0 100644
--- a/examples/wheel/wheel_test.py
+++ b/examples/wheel/wheel_test.py
@@ -458,7 +458,8 @@
             print(requires)
             self.assertEqual(
                 [
-                    "Requires-Dist: tomli>=2.0.0;",
+                    "Requires-Dist: tomli>=2.0.0",
+                    "Requires-Dist: starlark",
                     "Requires-Dist: pyyaml!=6.0.1,>=6.0.0; extra == 'example'",
                     'Requires-Dist: toml; ((python_version == "3.11" or python_version == "3.12") and python_version != "3.8") and extra == \'example\'',
                     'Requires-Dist: wheel; (python_version == "3.11" or python_version == "3.12") and extra == \'example\'',
diff --git a/tools/wheelmaker.py b/tools/wheelmaker.py
index 2f9a8cb..2898755 100644
--- a/tools/wheelmaker.py
+++ b/tools/wheelmaker.py
@@ -531,13 +531,23 @@
                 if not reqs_text or reqs_text.startswith(("#", "-")):
                     continue
 
-                req = Requirement(reqs_text)
+                # Strip any comments
+                reqs_text, _, _ = reqs_text.partition("#")
+
+                req = Requirement(reqs_text.strip())
                 if req.marker:
-                    reqs.append(
-                        f"Requires-Dist: {req.name}{req.specifier}; ({req.marker}) and {extra}"
-                    )
+                    if extra:
+                        reqs.append(
+                            f"Requires-Dist: {req.name}{req.specifier}; ({req.marker}) and {extra}"
+                        )
+                    else:
+                        reqs.append(
+                            f"Requires-Dist: {req.name}{req.specifier}; {req.marker}"
+                        )
                 else:
-                    reqs.append(f"Requires-Dist: {req.name}{req.specifier}; {extra}")
+                    reqs.append(
+                        f"Requires-Dist: {req.name}{req.specifier}; {extra}".strip(" ;")
+                    )
 
             metadata = metadata.replace(meta_line, "\n".join(reqs))