Skip to content

Commit fe33358

Browse files
committed
Merge branch 'uv-venv' into 'master'
[py] Reworked .venv setup to use uv See merge request ogs/ogs!5399
2 parents c8fc858 + 9f107b3 commit fe33358

File tree

17 files changed

+151
-329
lines changed

17 files changed

+151
-329
lines changed

Applications/Python/CMakeLists.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ if(OGS_USE_PIP)
4545
add_test(
4646
NAME pytest
4747
COMMAND
48-
${CMAKE_COMMAND} -DEXECUTABLE=pytest
49-
"-DEXECUTABLE_ARGS=-ra;${OGS_PYTEST_ARGS};-c;${PROJECT_SOURCE_DIR}/pyproject.toml" # Quoted
48+
${CMAKE_COMMAND} -DEXECUTABLE=${UV_TOOL_PATH}
49+
"-DEXECUTABLE_ARGS=run;pytest;-ra;${OGS_PYTEST_ARGS};-c;${PROJECT_SOURCE_DIR}/pyproject.toml" # Quoted
5050
# because
5151
# passed as list see https://stackoverflow.com/a/33248574/80480
5252
-DBINARY_PATH=${_binary_path}
@@ -58,6 +58,10 @@ if(OGS_USE_PIP)
5858
-P
5959
${PROJECT_SOURCE_DIR}/scripts/cmake/test/AddTestWrapper.cmake
6060
)
61-
set_tests_properties(pytest PROPERTIES LABELS "default;python" COST 10)
61+
set_tests_properties(pytest PROPERTIES
62+
LABELS "default;python"
63+
COST 10
64+
ENVIRONMENT
65+
"CI=1;PYDEVD_DISABLE_FILE_VALIDATION=1;UV_PYTHON=$ENV{UV_PYTHON};UV_PROJECT=$ENV{UV_PROJECT};UV_PROJECT_ENVIRONMENT=$ENV{UV_PROJECT_ENVIRONMENT}")
6266
endif()
6367
endif()

CMakeLists.txt

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -221,11 +221,6 @@ endif()
221221

222222
include(UnityBuildSettings)
223223

224-
if(OGS_USE_PIP)
225-
setup_venv()
226-
setup_venv_dependent_ctests()
227-
endif()
228-
229224
message(STATUS "${_benchmark_run_commands}")
230225

231226
if(OGS_WRITE_BENCHMARK_COMMANDS)
@@ -244,14 +239,28 @@ if(WIN32)
244239
"$Env:PATH += \";C:/Program Files (x86)/Intel/oneAPI/compiler/latest/windows/redist/intel64_win/compiler\""
245240
"$Env:OGS_USE_PATH = \"1\""
246241
)
242+
if(OGS_USE_PIP)
243+
list(APPEND _envrc_content
244+
"$Env:UV_PROJECT = \"${PROJECT_SOURCE_DIR}/Tests/Data\""
245+
"$Env:UV_PROJECT_ENVIRONMENT = \"${PROJECT_BINARY_DIR}/.venv\""
246+
"$Env:UV_FROZEN = \"1\""
247+
)
248+
endif()
247249
string(REPLACE ";$" "\n$" _envrc_content "${_envrc_content}")
248250
else()
249251
set(_envrc_content
250-
"[ -d \"${PROJECT_BINARY_DIR}/.venv\" ] && source ${PROJECT_BINARY_DIR}/.venv/bin/activate"
251-
"export PATH=${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}:$PATH"
252+
"[ -d \"${PROJECT_BINARY_DIR}/.venv\" ] && source \"${PROJECT_BINARY_DIR}/.venv/bin/activate\""
253+
"export PATH=\"${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}:$PATH\""
252254
"export OGS_USE_PATH=1"
253-
"export PYTHONPATH=${PROJECT_BINARY_DIR}/site-packages:$PYTHONPATH"
255+
"export PYTHONPATH=\"${PROJECT_BINARY_DIR}/site-packages:$PYTHONPATH\""
254256
)
257+
if(OGS_USE_PIP)
258+
list(APPEND _envrc_content
259+
"export UV_PROJECT=\"${PROJECT_SOURCE_DIR}/Tests/Data\""
260+
"export UV_PROJECT_ENVIRONMENT=\"${PROJECT_BINARY_DIR}/.venv\""
261+
"export UV_FROZEN=1"
262+
)
263+
endif()
255264
if(TFEL_WITH_PYTHON)
256265
set(_envrc_content "${_envrc_content}"
257266
"export PYTHONPATH=${TFEL_WITH_PYTHON}:$PYTHONPATH"

Documentation/.vale/Vocab/ogs/accept.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ Tymofiy
197197
Ucar
198198
Unlicense
199199
Unstrut
200+
uv
200201
Verruijt
201202
Vogel
202203
Vogels

ProcessLib/HeatTransportBHE/Tests.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ AddTest(
378378
BHE_GW_advection_ts_10_t_500.000000.vtu BHE_GW_advection_ts_10_t_500.000000.vtu temperature_soil temperature_soil 1e-12 1e-13
379379
)
380380

381+
# TODO: update to newer Python or remove!
381382
if("${Python_VERSION}" VERSION_LESS 3.9)
382383
AddTest(
383384
NAME HeatTransportBHE_3D_3BHEs_array

Tests/Data/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ dependencies = [
2222
"seaborn>=0.12",
2323
"VTUinterface>=0.704",
2424
### dev tools ###
25-
"gcovr==6.0",
2625
"jupytext>=1.14.5",
2726
"nbconvert>=7.16.5",
2827
"nbformat>=5.7.3",

Tests/Data/requirements-dev.txt

Lines changed: 0 additions & 6 deletions
This file was deleted.

Tests/Data/requirements-ogs.txt

Lines changed: 0 additions & 3 deletions
This file was deleted.

Tests/Data/requirements.txt

Lines changed: 0 additions & 13 deletions
This file was deleted.

Tests/Data/uv.lock

Lines changed: 0 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/cmake/Coverage.cmake

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ endif()
2929
configure_file(scripts/cmake/gcovr.cfg.in gcovr.cfg @ONLY)
3030

3131
find_program(GCOVR_EXECUTABLE NAMES gcovr)
32-
if(NOT GCOVR_EXECUTABLE)
33-
list(APPEND OGS_PYTHON_PACKAGES "gcovr==6.0")
34-
set(GCOVR_EXECUTABLE ${LOCAL_VIRTUALENV_BIN_DIR}/gcovr CACHE PATH "" FORCE)
32+
if(NOT GCOVR_EXECUTABLE AND OGS_USE_PIP)
33+
set(GCOVR_EXECUTABLE uvx gcovr==6.0 CACHE PATH "" FORCE)
3534
endif()
3635

3736
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/coverage/html)

0 commit comments

Comments
 (0)