Skip to content

Commit ae62f12

Browse files
committed
Reduce command duplications
1 parent c68f850 commit ae62f12

File tree

4 files changed

+61
-71
lines changed

4 files changed

+61
-71
lines changed

lib/galaxy/dependencies/update_lint_requirements.sh

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,26 @@ set -e
88

99
THIS_DIRECTORY="$(cd "$(dirname "$0")" > /dev/null && pwd)"
1010

11+
if command -v uv >/dev/null; then
12+
VENV_CMD="$(command -v uv) venv --python python3.9"
13+
PIP_CMD="$(command -v uv) pip"
14+
FREEZE_OPTIONS=''
15+
else
16+
VENV_CMD='python3.9 -m venv'
17+
PIP_CMD='python -m pip'
18+
FREEZE_OPTIONS='-l'
19+
fi
20+
1121
update_pinned_reqs() {
1222
VENV=$(mktemp -d "${TMPDIR:-/tmp}/$1_venv.XXXXXXXXXX")
13-
if command -v uv >/dev/null; then
14-
uv self update
15-
uv venv "${VENV}" --python python3.9
16-
. "${VENV}/bin/activate"
17-
uv pip install -r "${THIS_DIRECTORY}/$1-requirements.txt"
18-
uv pip freeze | grep -v 'pkg_resources==0.0.0' > "${THIS_DIRECTORY}/pinned-$1-requirements.txt"
19-
else
20-
python3.9 -m venv "${VENV}"
21-
. "${VENV}/bin/activate"
22-
pip install --upgrade pip setuptools
23-
pip install -r "${THIS_DIRECTORY}/$1-requirements.txt"
24-
# The grep below is needed to workaround https://github.com/pypa/pip/issues/8331
25-
pip freeze -l | grep -v 'pkg_resources==0.0.0' > "${THIS_DIRECTORY}/pinned-$1-requirements.txt"
23+
${VENV_CMD} "${VENV}"
24+
. "${VENV}/bin/activate"
25+
if [ "${PIP_CMD}" = 'python -m pip' ]; then
26+
${PIP_CMD} install --upgrade pip setuptools
2627
fi
28+
${PIP_CMD} install -r "${THIS_DIRECTORY}/$1-requirements.txt"
29+
# The grep below is needed to workaround https://github.com/pypa/pip/issues/8331
30+
${PIP_CMD} freeze ${FREEZE_OPTIONS} | grep -v 'pkg_resources==0.0.0' > "${THIS_DIRECTORY}/pinned-$1-requirements.txt"
2731
rm -rf "${VENV}"
2832
}
2933

packages/package-build-install.sh

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ EDITABLE=false
1616
META=false
1717
WHEELHOUSE=
1818

19+
if command -v uv >/dev/null; then
20+
VENV_CMD="$(command -v uv) venv"
21+
PIP_CMD="$(command -v uv) pip"
22+
else
23+
VENV_CMD='python3 -m venv'
24+
PIP_CMD='pip'
25+
fi
26+
1927
# Prevent making a venv for build deps for each package, Used inside the package dir, so refers to
2028
# <source_root>/packages/.venv
2129
: ${VENV=../.venv}
@@ -65,28 +73,15 @@ while read package; do
6573
printf "\n========= PACKAGE %s =========\n\n" "$package"
6674
pushd $package
6775
if $EDITABLE; then
68-
if command -v uv >/dev/null; then
69-
uv pip install -e .
70-
else
71-
pip install -e .
72-
fi
76+
${PIP_CMD} install -e .
7377
else
7478
if [ ! -d "$VENV" ]; then
75-
if command -v uv >/dev/null; then
76-
uv venv "$VENV"
77-
VIRTUAL_ENV="${VENV}" uv pip install -r dev-requirements.txt
78-
else
79-
python3 -m venv "$VENV"
80-
"${VENV}/bin/pip" install -r dev-requirements.txt
81-
fi
79+
${VENV_CMD} "$VENV"
80+
VIRTUAL_ENV="${VENV}" ${PIP_CMD} install -r dev-requirements.txt
8281
fi
8382
make dist
8483
if $INSTALL && ! $META; then
85-
if command -v uv >/dev/null; then
86-
uv pip install dist/*.whl
87-
else
88-
pip install dist/*.whl
89-
fi
84+
${PIP_CMD} install dist/*.whl
9085
fi
9186
fi
9287
popd
@@ -96,9 +91,5 @@ done < "$PACKAGE_LIST_FILE"
9691
if $INSTALL && $META && ! $EDITABLE; then
9792
WHEELHOUSE=$(mktemp -d -t gxpkgwheelhouseXXXXXX)
9893
cp */dist/*.whl "$WHEELHOUSE"
99-
if command -v uv >/dev/null; then
100-
uv pip install $PIP_EXTRA_ARGS --find-links "$WHEELHOUSE" meta/dist/*.whl
101-
else
102-
pip install $PIP_EXTRA_ARGS --find-links "$WHEELHOUSE" meta/dist/*.whl
103-
fi
94+
${PIP_CMD} install $PIP_EXTRA_ARGS --find-links "$WHEELHOUSE" meta/dist/*.whl
10495
fi

packages/test.sh

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,20 @@ TEST_PYTHON=${TEST_PYTHON:-"python3"}
3737
TEST_ENV_DIR=${TEST_ENV_DIR:-$(mktemp -d -t gxpkgtestenvXXXXXX)}
3838

3939
if command -v uv >/dev/null; then
40-
uv venv "$TEST_ENV_DIR" --python "$TEST_PYTHON"
41-
PIP="$(command -v uv) pip"
40+
uv venv --python "$TEST_PYTHON" "$TEST_ENV_DIR"
41+
PIP_CMD="$(command -v uv) pip"
4242
else
4343
"$TEST_PYTHON" -m venv "$TEST_ENV_DIR"
44-
PIP="pip"
44+
PIP_CMD='python -m pip'
4545
fi
4646

4747
# shellcheck disable=SC1091
4848
. "${TEST_ENV_DIR}/bin/activate"
49-
if ! command -v uv >/dev/null; then
50-
pip install --upgrade pip setuptools wheel
49+
if [ "${PIP_CMD}" = 'python -m pip' ]; then
50+
${PIP_CMD} install --upgrade pip setuptools wheel
5151
fi
5252
if [ $FOR_PULSAR -eq 0 ]; then
53-
${PIP} install -r ../lib/galaxy/dependencies/pinned-typecheck-requirements.txt
53+
${PIP_CMD} install -r ../lib/galaxy/dependencies/pinned-typecheck-requirements.txt
5454
fi
5555

5656
# Ensure ordered by dependency DAG
@@ -74,13 +74,13 @@ while read -r package_dir || [ -n "$package_dir" ]; do # https://stackoverflow.
7474

7575
# Install extras (if needed)
7676
if [ "$package_dir" = "util" ]; then
77-
${PIP} install '.[image-util,template,jstree,config-template,test]'
77+
${PIP_CMD} install '.[image-util,template,jstree,config-template,test]'
7878
elif [ "$package_dir" = "tool_util" ]; then
79-
${PIP} install '.[cwl,mulled,edam,extended-assertions,test]'
79+
${PIP_CMD} install '.[cwl,mulled,edam,extended-assertions,test]'
8080
elif grep -q 'test =' setup.cfg 2>/dev/null; then
81-
${PIP} install '.[test]'
81+
${PIP_CMD} install '.[test]'
8282
else
83-
${PIP} install .
83+
${PIP_CMD} install .
8484
fi
8585

8686
if [ $FOR_PULSAR -eq 0 ]; then

scripts/common_startup.sh

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ if [ $SET_VENV -eq 1 ] && [ $CREATE_VENV -eq 1 ]; then
133133
echo "To avoid this, use the --no-create-venv flag or set \$GALAXY_VIRTUAL_ENV to an"
134134
echo "existing environment before starting Galaxy."
135135
if command -v uv >/dev/null; then
136-
uv venv "$GALAXY_VIRTUAL_ENV" --python "$GALAXY_PYTHON"
136+
uv venv --python "$GALAXY_PYTHON" "$GALAXY_VIRTUAL_ENV"
137137
else
138138
# First try to use the venv standard library module, although it is
139139
# not always installed by default on Linux distributions.
@@ -168,6 +168,14 @@ if [ $SET_VENV -eq 1 ] && [ $CREATE_VENV -eq 1 ]; then
168168
fi
169169
fi
170170

171+
if command -v uv >/dev/null; then
172+
PIP_CMD="$(command -v uv) pip"
173+
UNINSTALL_OPTIONS=''
174+
else
175+
PIP_CMD='python -m pip'
176+
UNINSTALL_OPTIONS='--yes'
177+
fi
178+
171179
# activate virtualenv or conda env, sets $GALAXY_VIRTUAL_ENV and $GALAXY_CONDA_ENV
172180
setup_python
173181

@@ -188,32 +196,19 @@ fi
188196
[ "$CI" = 'true' ] && export PIP_PROGRESS_BAR=off
189197

190198
if [ $FETCH_WHEELS -eq 1 ]; then
191-
if command -v uv >/dev/null; then
192-
uv pip install $requirement_args --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
193-
194-
set_galaxy_config_file_var
195-
GALAXY_CONDITIONAL_DEPENDENCIES=$(PYTHONPATH=lib python -c "from __future__ import print_function; import galaxy.dependencies; print('\n'.join(galaxy.dependencies.optional('$GALAXY_CONFIG_FILE')))")
196-
if [ -n "$GALAXY_CONDITIONAL_DEPENDENCIES" ]; then
197-
if uv pip list --format=columns | grep "psycopg2[\(\ ]*2.7.3" > /dev/null; then
198-
echo "An older version of psycopg2 (non-binary, version 2.7.3) has been detected. Galaxy now uses psycopg2-binary, which will be installed after removing psycopg2."
199-
uv pip uninstall psycopg2 psycopg2-binary
200-
fi
201-
echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | uv pip install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
202-
fi
203-
else
204-
python -m pip install "pip>=$MIN_PIP_VERSION" wheel
205-
# shellcheck disable=SC2086
206-
pip install $requirement_args --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
207-
208-
set_galaxy_config_file_var
209-
GALAXY_CONDITIONAL_DEPENDENCIES=$(PYTHONPATH=lib python -c "from __future__ import print_function; import galaxy.dependencies; print('\n'.join(galaxy.dependencies.optional('$GALAXY_CONFIG_FILE')))")
210-
if [ -n "$GALAXY_CONDITIONAL_DEPENDENCIES" ]; then
211-
if pip list --format=columns | grep "psycopg2[\(\ ]*2.7.3" > /dev/null; then
212-
echo "An older version of psycopg2 (non-binary, version 2.7.3) has been detected. Galaxy now uses psycopg2-binary, which will be installed after removing psycopg2."
213-
pip uninstall -y psycopg2 psycopg2-binary
214-
fi
215-
echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | pip install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
199+
if [ "${PIP_CMD}" = 'python -m pip' ]; then
200+
${PIP_CMD} install "pip>=${MIN_PIP_VERSION}" wheel
201+
fi
202+
# shellcheck disable=SC2086
203+
${PIP_CMD} install $requirement_args --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
204+
set_galaxy_config_file_var
205+
GALAXY_CONDITIONAL_DEPENDENCIES=$(PYTHONPATH=lib python -c "from __future__ import print_function; import galaxy.dependencies; print('\n'.join(galaxy.dependencies.optional('$GALAXY_CONFIG_FILE')))")
206+
if [ -n "$GALAXY_CONDITIONAL_DEPENDENCIES" ]; then
207+
if ${PIP_CMD} list --format=columns | grep "psycopg2[\(\ ]*2.7.3" > /dev/null; then
208+
echo "An older version of psycopg2 (non-binary, version 2.7.3) has been detected. Galaxy now uses psycopg2-binary, which will be installed after removing psycopg2."
209+
${PIP_CMD} uninstall ${UNINSTALL_OPTIONS} psycopg2 psycopg2-binary
216210
fi
211+
echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | ${PIP_CMD} install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
217212
fi
218213
fi
219214

0 commit comments

Comments
 (0)