From c340961836bb10ca38147ae72844e2b9552cf364 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Mon, 7 Aug 2023 10:39:50 -0400 Subject: [PATCH] fix: Don't filter out extras for a pip dependency. Before this change, the function was dropping extra dependencies. For example: If you had a requirements file like the following: ``` Xblock[django] ``` It will output: `Xblock` The correct output should be `Xblock[django]` This drops the extras which may have further constraint requirements or more packages that are required. In the example, the package would need Django but that dependency would not be visible upstream correctly. --- python-template/{{cookiecutter.placeholder_repo_name}}/setup.py | 2 +- scripts/update_setup_py.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/python-template/{{cookiecutter.placeholder_repo_name}}/setup.py b/python-template/{{cookiecutter.placeholder_repo_name}}/setup.py index d5443d31..2a583a29 100755 --- a/python-template/{{cookiecutter.placeholder_repo_name}}/setup.py +++ b/python-template/{{cookiecutter.placeholder_repo_name}}/setup.py @@ -40,7 +40,7 @@ def load_requirements(*requirements_paths): constraint_files = set() # groups "pkg<=x.y.z,..." into ("pkg", "<=x.y.z,...") - requirement_line_regex = re.compile(r"([a-zA-Z0-9-_.]+)([<>=][^#\s]+)?") + requirement_line_regex = re.compile(r"([a-zA-Z0-9-_.\[\]]+)([<>=][^#\s]+)?") def add_version_constraint_or_raise(current_line, current_requirements, add_if_not_present): regex_match = requirement_line_regex.match(current_line) diff --git a/scripts/update_setup_py.sh b/scripts/update_setup_py.sh index 9f784cae..1e950cf6 100755 --- a/scripts/update_setup_py.sh +++ b/scripts/update_setup_py.sh @@ -43,7 +43,7 @@ echo -e "rules: constraint_files = set() # groups \"my-package-name<=x.y.z,...\" into (\"my-package-name\", \"<=x.y.z,...\") - requirement_line_regex = re.compile(r\"([a-zA-Z0-9-_.]+)([<>=][^#\s]+)?\") + requirement_line_regex = re.compile(r\"([a-zA-Z0-9-_.\[\]]+)([<>=][^#\s]+)?\") def add_version_constraint_or_raise(current_line, current_requirements, add_if_not_present): regex_match = requirement_line_regex.match(current_line)