Skip to content

Commit b10b6ee

Browse files
aryasalem09claude
andcommitted
Fix progress output in non-interactive shells
Co-authored-by: Codex <noreply@anthropic.com>
1 parent 1fd82a8 commit b10b6ee

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

src/parcels/_core/particleset.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,7 @@ def execute(
420420
pbar = tqdm(
421421
total=sign_dt * (end_time - start_time),
422422
file=sys.stdout,
423+
disable=None,
423424
bar_format="{desc} {percentage:3.0f}%|{bar}| [{elapsed}<{remaining}, {rate_fmt}]",
424425
)
425426
pbar.set_description_str(

tests/test_particleset.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import sys
12
from contextlib import nullcontext as does_not_raise
23
from datetime import datetime, timedelta
34
from operator import attrgetter
@@ -33,6 +34,23 @@ def test_create_empty_pset(fieldset):
3334
assert pset.size == 0
3435

3536

37+
@pytest.mark.parametrize(
38+
("is_tty", "expect_progress"),
39+
[(True, True), (False, False)],
40+
)
41+
def test_pset_execute_progress_respects_stdout_tty(fieldset, monkeypatch, capsys, is_tty, expect_progress):
42+
monkeypatch.setattr(sys.stdout, "isatty", lambda: is_tty)
43+
pset = ParticleSet(fieldset, x=0, y=0, pclass=Particle)
44+
45+
pset.execute(
46+
DoNothing,
47+
runtime=np.timedelta64(1, "s"),
48+
dt=np.timedelta64(1, "s"),
49+
)
50+
51+
assert bool(capsys.readouterr().out) is expect_progress
52+
53+
3654
@pytest.mark.parametrize("offset", [0, 1, 200])
3755
def test_pset_with_pids(fieldset, offset, npart=100):
3856
lon = np.linspace(0, 1, npart)

0 commit comments

Comments
 (0)