8000 Add a dict to lookup the short requirement · jml-derek/rules_python@06275bd · GitHub
[go: up one dir, main page]

Skip to content

Commit 06275bd

Browse files
committed
Add a dict to lookup the short requirement
the dict will look like this { "third_party_libs_numpy": "numpy=1.0.0" }
1 parent f400682 commit 06275bd

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"python.formatting.provider": "autopep8"
3+
}

python/pip_install/extract_wheels/parse_requirements_to_bzl.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,13 @@ def repo_names_and_requirements(
7474
for ir, line in install_reqs
7575
]
7676

77+
def repo_names_to_short_requirments(
78+
install_reqs: List[Tuple[InstallRequirement, str]], repo_prefix: str
79+
) -> Dict[str, str]:
80+
return {
81+
bazel.sanitise_name(ir.name, prefix=repo_prefix):
82+
line.split(' ')[0] for ir, line in install_reqs
83+
}
7784

7885
def parse_whl_library_args(args: argparse.Namespace) -> Dict[str, Any]:
7986
whl_library_args = dict(vars(args))
@@ -107,6 +114,9 @@ def generate_parsed_requirements_contents(
107114
repo_names_and_reqs = repo_names_and_requirements(
108115
install_req_and_lines, repo_prefix
109116
)
117+
repo_names_to_short_reqs = repo_names_to_short_requirments(
118+
install_req_and_lines, repo_prefix
119+
)
110120
all_requirements = ", ".join(
111121
[
112122
bazel.sanitised_repo_library_label(ir.name, repo_prefix=repo_prefix)
@@ -131,6 +141,7 @@ def generate_parsed_requirements_contents(
131141
_packages = {repo_names_and_reqs}
132142
_config = {args}
133143
_annotations = {annotations}
144+
_repo_names_to_short_reqs = {repo_names_to_short_reqs}
134145
135146
def _clean_name(name):
136147
return name.replace("-", "_").replace(".", "_").lower()
@@ -151,6 +162,9 @@ def entry_point(pkg, script = None):
151162
if not script:
152163
script = pkg
153164
return "@{repo_prefix}" + _clean_name(pkg) + "//:{entry_point_prefix}_" + script
165+
166+
def short_requirement(repo_name):
167+
return _repo_names_to_short_reqs[repo_name]
154168
155169
def _get_annotation(requirement):
156170
# This expects to parse `setuptools==58.2.0 --hash=sha256:2551203ae6955b9876741a26ab3e767bb3242dafe86a32a749ea0d78b6792f11`
@@ -176,6 +190,7 @@ def install_deps():
176190
entry_point_prefix=bazel.WHEEL_ENTRY_POINT_PREFIX,
177191
py_library_label=bazel.PY_LIBRARY_LABEL,
178192
repo_names_and_reqs=repo_names_and_reqs,
193+
repo_names_to_short_reqs=repo_names_to_short_reqs,
179194
repo_prefix=repo_prefix,
180195
wheel_file_label=bazel.WHEEL_FILE_LABEL,
181196
)

0 commit comments

Comments
 (0)
0