Skip to content

Daily era5 and era5-land#174

Open
MarkMelotto wants to merge 21 commits into
mainfrom
daily-era5-land
Open

Daily era5 and era5-land#174
MarkMelotto wants to merge 21 commits into
mainfrom
daily-era5-land

Conversation

@MarkMelotto

Copy link
Copy Markdown

Hi era5cli team,

Adressing issue #172: I added functionality to download era5(-land) data to era5cli.
I added some basic tests, please let me know if more are needed!

I have not yet added to the documentation, if you approve of the change I will add documentation and then we can merge!

Mark Melotto

@MarkMelotto

Copy link
Copy Markdown
Author

I think some help with the checks is required 😅

@codecov

codecov Bot commented Jun 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (cfd5076) to head (6ee85ae).

Additional details and impacted files
@@             Coverage Diff             @@
##             main      #174      +/-   ##
===========================================
+ Coverage   98.96%   100.00%   +1.03%     
===========================================
  Files          13        13              
  Lines         579       598      +19     
===========================================
+ Hits          573       598      +25     
+ Misses          6         0       -6     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@MarkMelotto MarkMelotto requested a review from sverhoeven July 1, 2026 09:06

@sverhoeven sverhoeven left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should drop Python 3.9 support as it is end of life since last year. That will solve the py3.9 job. Dropping python 3.9 can be done with:

  • drop 3.9 in .github/workflows/test_and_build.yml
  • in pyproject.toml set requires-python = ">=3.10" and remove "Programming Language :: Python :: 3.9" line

I was able to run

# era5 2dvar
uv run era5cli daily --variables total_precipitation --startyear 2000 --months 11
# era5-land
uv run era5cli daily --variables 2m_temperature --startyear 2000 --months 11 

Comment thread pyproject.toml Outdated
Comment thread tests/test_cli.py
@MarkMelotto

MarkMelotto commented Jul 3, 2026

Copy link
Copy Markdown
Author

I also noticed this when running era5Land daily:

  • for just normal running of era5land daily: 2026-07-03 11:59:11,918 WARNING Download format not supported for this dataset. Defaulting to as_source.
  • --merge doesnt work
  • setting --splitmonths false, creates errors as well, either the files are too big, 1 file came through, the others took too long

Ah this might be due to me requesting land daily data that does not exist...

@MarkMelotto MarkMelotto requested a review from sverhoeven July 7, 2026 07:50

@sverhoeven sverhoeven left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's get CI green before merging.

I missed another 3.9 mention in

python: "3.9"
, can you also bump that one to 3.10 . that should make readthedocs workflow green.

Comment thread pyproject.toml
Comment thread tests/test_cli.py
Comment thread pyproject.toml Outdated
@MarkMelotto MarkMelotto requested a review from sverhoeven July 7, 2026 09:01
@MarkMelotto

Copy link
Copy Markdown
Author

@sverhoeven isort and black are contradicting eachother, I am not sure what to do here professionally, I could use your advise!

@sverhoeven

Copy link
Copy Markdown
Member

@sverhoeven isort and black are contradicting eachother, I am not sure what to do here professionally, I could use your advise!

I am no longer using isort, black and flake8 in my projects I switched over to ruff for import sorting (ruff check --select I --fix), formatting (ruff format) and linting (ruf check).

For example ruff is used in https://github.com/eWaterCycle/ewatercycle . eWatercycle uses strict ruff, for less strict see https://github.com/i-VRESSE/rocrate-action-recorder/blob/main/pyproject.toml#L89-L106 .

@MarkMelotto

Copy link
Copy Markdown
Author

I changed it to resemble ewatercycle as you said, I didnt know what this line does:
known-first-party = ["rocrate_action_recorder"]
I asked ai and it said change it to this:
known-first-party = ["era5cli"]

@MarkMelotto

Copy link
Copy Markdown
Author

@sverhoeven I am guessing I need to make more tests? ;)

@sverhoeven

Copy link
Copy Markdown
Member

@sverhoeven I am guessing I need to make more tests? ;)

Indeed, we do not want to get less coverage than we had.

@MarkMelotto

Copy link
Copy Markdown
Author

note: still need to make new docs I guess... @sverhoeven

Also the testing for uid is not needed I guess, but a nice addition.

Also, thanks for helping me through all this!

@MarkMelotto

Copy link
Copy Markdown
Author

@sverhoeven I added the documentation in the right place, I hope I didnt miss anything.
So ready for review.

@sverhoeven sverhoeven left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good, almost there.

Please update https://github.com/eWaterCycle/era5cli/blob/main/docs/general_development.md#running-formatters-and-linters and mention ruff instead others.

This PR does is worthy of a new minor release (2.1.0), which you can already prepare in this PR or make a new PR for it see https://github.com/eWaterCycle/era5cli/blob/daily-era5-land/docs/general_development.md#making-a-release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants