Skip to content

SPEC 0: drop py310 and support py313 #6195

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Feb 24, 2025

Conversation

stephenworsley
Copy link
Contributor

@stephenworsley stephenworsley commented Oct 25, 2024

🚀 Pull Request

Description

closes #6177

Comment on lines 46 to 49
],
"44fae030": [
"ENV_PARENT={conf_dir}/.asv/env/nox310",
"PY_VER=3.10 nox --envdir={env_parent} --session=tests --install-only --no-error-on-external-run --verbose"
Copy link
Contributor

@trexfeathers trexfeathers Oct 25, 2024

Choose a reason for hiding this comment

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

In this case I would prefer that we keep the old one too, as we occasionally have need to benchmark further back in history.

@@ -37,16 +37,16 @@
],
"delegated_env_commands": {
"c8a663a0": [
"ENV_PARENT={conf_dir}/.asv/env/nox313",
Copy link
Contributor

Choose a reason for hiding this comment

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

This is awkward - we don't know what the new commit hash will be once this is merged. I didn't think of that 🙄

Copy link
Contributor

Choose a reason for hiding this comment

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

Discussed with @ESadek-MO: if you just provide one of the commit hashes that is on your branch, and then we'll merge this one with a merge-commit (not a squash).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Like this bd6495c ?

Copy link
Contributor

@trexfeathers trexfeathers Oct 28, 2024

Choose a reason for hiding this comment

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

Almost, however there are now duplicate 3.13, which is what is causing the benchmark failure. The sequence should be 3.10, 3.11, 3.12, 3.13 - unlike other things we are not describing CI coverage, but support for benchmarking older commits if requested.

@github-actions github-actions bot added the benchmark_this Request that this pull request be benchmarked to check if it introduces performance shifts label Oct 25, 2024
@stephenworsley stephenworsley marked this pull request as ready for review October 25, 2024 14:08
@stephenworsley
Copy link
Contributor Author

Looks like python 3.13 is causing a lot of test failures. Most of these seem to be in cml files where I'm seeing &#10 show up a lot. I think this may be due to how python is rendering newlines. Seems like this can't be fixed by rerendering all the cml files since that would break the tests for the older versions so this seems like a bit of a blocker for the moment.

@stephenworsley
Copy link
Contributor Author

Looks like this change might be the cause of the failing tests, python/cpython#107947 .

@valeriupredoi
Copy link
Contributor

hi folks, we are ready to roll out support for ESMValCore and Python 3.13 in ESMValGroup/ESMValCore#2566 - @bouweandela brought this issue to my attention, do we understand that iris==3.11 doesn't really-really support Python 3.13 and we have to wait for iris==3.12 or an eventual bugfix iris==3.11.1? Cheers muchly! 🍺

@trexfeathers
Copy link
Contributor

hi folks, we are ready to roll out support for ESMValCore and Python 3.13 in ESMValGroup/ESMValCore#2566 - @bouweandela brought this issue to my attention, do we understand that iris==3.11 doesn't really-really support Python 3.13 and we have to wait for iris==3.12 or an eventual bugfix iris==3.11.1? Cheers muchly! 🍺

The test failures are all caused by a change in XML character representation, which stops us comparing against known-good-outputs. This has made 5% of our tests 'blind' until we can work on a solution. But we have NO evidence of any Iris functionality breaking, and 95% of our tests still work and they show Iris functioning fine. Your own passing tests (ESMValGroup/ESMValCore#2566 (comment)) back this up even more.

So the Iris 'project' cannot support Python 3.13 until we can get our CI working with 3.13; we have no immediate plans for finishing this work as we need space to finish some other things. But it looks like the Iris software supports 3.13 just fine already 👍. This happens with all new Python versions - our users have success with it before we even get a chance to test against it.

@valeriupredoi
Copy link
Contributor

hi folks, we are ready to roll out support for ESMValCore and Python 3.13 in ESMValGroup/ESMValCore#2566 - @bouweandela brought this issue to my attention, do we understand that iris==3.11 doesn't really-really support Python 3.13 and we have to wait for iris==3.12 or an eventual bugfix iris==3.11.1? Cheers muchly! 🍺

The test failures are all caused by a change in XML character representation, which stops us comparing against known-good-outputs. This has made 5% of our tests 'blind' until we can work on a solution. But we have NO evidence of any Iris functionality breaking, and 95% of our tests still work and they show Iris functioning fine. Your own passing tests (ESMValGroup/ESMValCore#2566 (comment)) back this up even more.

So the Iris 'project' cannot support Python 3.13 until we can get our CI working with 3.13; we have no immediate plans for finishing this work as we need space to finish some other things. But it looks like the Iris software supports 3.13 just fine already 👍. This happens with all new Python versions - our users have success with it before we even get a chance to test against it.

wonderful, exactly the answer I was looking for, both wrt clarity and content, cheers, Martin! 🍺
@bouweandela we're good to go with ESMValGroup/ESMValCore#2566 then 🧨

@trexfeathers trexfeathers added this to the v3.12 milestone Jan 29, 2025
@trexfeathers trexfeathers self-assigned this Feb 7, 2025
# Conflicts:
#	docs/src/whatsnew/latest.rst
#	requirements/locks/py311-linux-64.lock
#	requirements/locks/py312-linux-64.lock
#	requirements/locks/py313-linux-64.lock
Copy link

codecov bot commented Feb 19, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 89.87%. Comparing base (5769d3b) to head (26a21c2).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6195      +/-   ##
==========================================
- Coverage   89.88%   89.87%   -0.02%     
==========================================
  Files          90       90              
  Lines       23447    23450       +3     
  Branches     4361     4361              
==========================================
  Hits        21076    21076              
- Misses       1644     1646       +2     
- Partials      727      728       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@trexfeathers
Copy link
Contributor

Current review status

@trexfeathers
Copy link
Contributor

trexfeathers commented Feb 24, 2025

We have a remaining problem with how our expected checks are set up - they are specific to Python versions:

image

  • I can switch these over to expect the new versions, but that will block ALL other PRs
  • I can turn off the expected checks, although that would defeat the object of having them (to allow auto-merge). Maybe could do that temporarily then quickly turn back on?

This has previously affected Stratify, but considering the lower traffic that wasn't such a problem there. @HGWright can you offer any extra insight?

@trexfeathers
Copy link
Contributor

We have a remaining problem with how our expected checks are set up - they are specific to Python versions:

Decided as a team to allow repository admins to override the expected checks.

Copy link
Contributor

⏱️ Performance Benchmark Report: 601d471

Performance shifts

Full benchmark results

Benchmarks that have stayed the same:

| Change   | Before [5769d3bb]    | After [601d4712]    | Ratio   | Benchmark (Parameter)                                                                       |
|----------|----------------------|---------------------|---------|---------------------------------------------------------------------------------------------|
|          | 58.2±0.6ms           | 59.3±0.5ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(False)                              |
|          | 58.5±0.6ms           | 60.4±1ms            | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(True)                               |
|          | 201±2ms              | 208±4ms             | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(False)                    |
|          | 201±2ms              | 204±3ms             | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(True)                     |
|          | 37.1±0.7ms           | 38.0±0.9ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(False)                              |
|          | 38.0±0.3ms           | 38.2±0.4ms          | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(True)                               |
|          | 37.1±0.4ms           | 37.8±0.3ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(False)                              |
|          | 38.1±0.2ms           | 39.0±0.5ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(True)                               |
|          | 50.9±0.6ms           | 51.8±0.8ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_MAX(False)                                |
|          | 51.7±0.8ms           | 52.2±0.8ms          | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_MAX(True)                                 |
|          | 132±1ms              | 139±1ms             | 1.05    | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(False)                            |
|          | 133±2ms              | 139±1ms             | 1.05    | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(True)                             |
|          | 55.3±0.7ms           | 56.5±0.7ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(False)                               |
|          | 56.6±0.4ms           | 57.5±0.7ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(True)                                |
|          | 62.1±0.5ms           | 64.0±1ms            | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(False)                             |
|          | 63.6±0.9ms           | 65.5±2ms            | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(True)                              |
|          | 50.0±0.5ms           | 52.7±0.6ms          | 1.05    | aggregate_collapse.Aggregation.time_aggregated_by_MIN(False)                                |
|          | 51.1±0.5ms           | 52.1±0.5ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_MIN(True)                                 |
|          | 1.09±0.01s           | 1.12±0.02s          | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(False)                               |
|          | 1.10±0.01s           | 1.12±0.01s          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(True)                                |
|          | 481±20ms             | 495±10ms            | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(False)                         |
|          | 485±9ms              | 512±10ms            | 1.06    | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(True)                          |
|          | 36.8±0.6ms           | 36.9±0.7ms          | 1.00    | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(False)                         |
|          | 37.1±0.4ms           | 37.8±0.4ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(True)                          |
|          | 66.4±0.8ms           | 67.3±0.6ms          | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_RMS(False)                                |
|          | 66.2±0.5ms           | 67.7±0.8ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_RMS(True)                                 |
|          | 69.4±0.5ms           | 70.9±0.7ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(False)                            |
|          | 70.1±0.8ms           | 71.4±0.9ms          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(True)                             |
|          | 65.3±0.7ms           | 66.1±0.7ms          | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(False)                           |
|          | 65.1±1ms             | 65.7±0.8ms          | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(True)                            |
|          | 25.0±0.5ms           | 26.3±1ms            | 1.05    | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(False)                               |
|          | 29.3±0.6ms           | 29.9±0.6ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(True)                                |
|          | 140±4ms              | 133±3ms             | 0.95    | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(False)                     |
|          | 162±4ms              | 150±4ms             | 0.93    | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(True)                      |
|          | 23.0±0.9ms           | 23.3±0.8ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(False)                               |
|          | 27.4±0.7ms           | 28.0±0.9ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(True)                                |
|          | 22.6±0.9ms           | 23.4±0.7ms          | 1.04    | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(False)                               |
|          | 27.5±1ms             | 27.9±0.9ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(True)                                |
|          | 23.9±0.8ms           | 24.4±0.6ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_MAX(False)                                 |
|          | 28.4±0.6ms           | 28.6±0.4ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_MAX(True)                                  |
|          | 36.9±0.8ms           | 37.5±0.6ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(False)                             |
|          | 40.7±0.9ms           | 42.2±0.6ms          | 1.03    | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(True)                              |
|          | 24.6±0.8ms           | 24.4±0.7ms          | 0.99    | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(False)                                |
|          | 29.0±0.6ms           | 28.7±0.7ms          | 0.99    | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(True)                                 |
|          | 27.2±0.9ms           | 27.0±0.7ms          | 0.99    | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(False)                              |
|          | 31.4±0.5ms           | 31.1±0.3ms          | 0.99    | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(True)                               |
|          | 24.0±0.5ms           | 24.1±0.4ms          | 1.00    | aggregate_collapse.Aggregation.time_collapsed_by_MIN(False)                                 |
|          | 27.9±0.5ms           | 28.3±0.6ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_MIN(True)                                  |
|          | 546±2ms              | 543±3ms             | 0.99    | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(False)                                |
|          | 550±1ms              | 550±4ms             | 1.00    | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(True)                                 |
|          | 151±6ms              | 154±2ms             | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(False)                          |
|          | 169±3ms              | 168±1ms             | 1.00    | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(True)                           |
|          | 22.5±0.4ms           | 22.5±0.5ms          | 1.00    | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(False)                          |
|          | 27.0±0.3ms           | 27.6±1ms            | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(True)                           |
|          | 25.9±0.3ms           | 26.2±0.4ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_RMS(False)                                 |
|          | 30.1±0.8ms           | 30.7±0.3ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_RMS(True)                                  |
|          | 25.6±0.4ms           | 26.1±0.6ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(False)                             |
|          | 29.6±0.6ms           | 30.6±0.4ms          | 1.03    | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(True)                              |
|          | 25.6±0.5ms           | 25.7±0.5ms          | 1.00    | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(False)                            |
|          | 30.0±0.4ms           | 30.4±0.5ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(True)                             |
|          | 91.3±1ms             | 93.3±1ms            | 1.02    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(False)                     |
|          | 91.9±1ms             | 93.6±0.4ms          | 1.02    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(True)                      |
|          | 104±0.8ms            | 106±0.9ms           | 1.03    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(False)                      |
|          | 103±0.9ms            | 106±0.9ms           | 1.02    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(True)                       |
|          | 62.3±0.7ms           | 62.3±0.5ms          | 1.00    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(False)                      |
|          | 62.8±1ms             | 62.4±0.7ms          | 0.99    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(True)                       |
|          | 30.4±0.7ms           | 30.4±0.6ms          | 1.00    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(False)                      |
|          | 35.2±1ms             | 34.8±0.5ms          | 0.99    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(True)                       |
|          | 31.8±0.9ms           | 31.7±0.4ms          | 1.00    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(False)                       |
|          | 36.7±0.7ms           | 36.3±0.8ms          | 0.99    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(True)                        |
|          | 25.5±0.5ms           | 26.0±0.6ms          | 1.02    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(False)                       |
|          | 29.7±0.5ms           | 30.4±0.4ms          | 1.02    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(True)                        |
|          | 320±3ms              | 325±4ms             | 1.02    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(False)               |
|          | 335±7ms              | 335±8ms             | 1.00    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(True)                |
|          | 1.12±0.01ms          | 1.13±0.01ms         | 1.00    | cube.CubeCreation.time_create(False, 'construct')                                           |
|          | 400±6μs              | 400±10μs            | 1.00    | cube.CubeCreation.time_create(False, 'instantiate')                                         |
|          | 970±10μs             | 973±20μs            | 1.00    | cube.CubeCreation.time_create(True, 'construct')                                            |
|          | 587±10μs             | 572±20μs            | 0.97    | cube.CubeCreation.time_create(True, 'instantiate')                                          |
|          | 231±4ms              | 231±5ms             | 1.00    | cube.CubeEquality.time_equality(False, False, 'all_equal')                                  |
|          | 123±2ms              | 122±0.8ms           | 0.99    | cube.CubeEquality.time_equality(False, False, 'coord_inequality')                           |
|          | 258±2ms              | 257±4ms             | 1.00    | cube.CubeEquality.time_equality(False, False, 'data_inequality')                            |
|          | 16.7±0.2μs           | 16.6±0.2μs          | 1.00    | cube.CubeEquality.time_equality(False, False, 'metadata_inequality')                        |
|          | 319±3ms              | 321±5ms             | 1.01    | cube.CubeEquality.time_equality(False, True, 'all_equal')                                   |
|          | 217±4ms              | 210±3ms             | 0.96    | cube.CubeEquality.time_equality(False, True, 'coord_inequality')                            |
|          | 352±3ms              | 351±5ms             | 1.00    | cube.CubeEquality.time_equality(False, True, 'data_inequality')                             |
|          | 16.8±0.2μs           | 16.5±0.2μs          | 0.98    | cube.CubeEquality.time_equality(False, True, 'metadata_inequality')                         |
|          | 230±2ms              | 232±8ms             | 1.01    | cube.CubeEquality.time_equality(True, False, 'all_equal')                                   |
|          | 123±2ms              | 122±0.9ms           | 0.99    | cube.CubeEquality.time_equality(True, False, 'coord_inequality')                            |
|          | 261±3ms              | 256±6ms             | 0.98    | cube.CubeEquality.time_equality(True, False, 'data_inequality')                             |
|          | 53.6±0.4μs           | 50.8±0.7μs          | 0.95    | cube.CubeEquality.time_equality(True, False, 'metadata_inequality')                         |
|          | 321±4ms              | 318±5ms             | 0.99    | cube.CubeEquality.time_equality(True, True, 'all_equal')                                    |
|          | 212±3ms              | 208±2ms             | 0.98    | cube.CubeEquality.time_equality(True, True, 'coord_inequality')                             |
|          | 345±3ms              | 343±10ms            | 0.99    | cube.CubeEquality.time_equality(True, True, 'data_inequality')                              |
|          | 55.0±0.7μs           | 52.7±0.6μs          | 0.96    | cube.CubeEquality.time_equality(True, True, 'metadata_inequality')                          |
|          | 786±6μs              | 802±2μs             | 1.02    | import_iris.Iris.time__concatenate                                                          |
|          | 182±1μs              | 185±2μs             | 1.02    | import_iris.Iris.time__constraints                                                          |
|          | 109±1μs              | 112±0.9μs           | 1.02    | import_iris.Iris.time__data_manager                                                         |
|          | 92.3±0.4μs           | 91.8±0.5μs          | 0.99    | import_iris.Iris.time__deprecation                                                          |
|          | 157±2μs              | 164±3μs             | 1.05    | import_iris.Iris.time__lazy_data                                                            |
|          | 907±9μs              | 920±6μs             | 1.01    | import_iris.Iris.time__merge                                                                |
|          | 75.6±0.5μs           | 73.9±0.7μs          | 0.98    | import_iris.Iris.time__representation                                                       |
|          | 599±4μs              | 600±3μs             | 1.00    | import_iris.Iris.time_analysis                                                              |
|          | 139±0.8μs            | 141±0.7μs           | 1.01    | import_iris.Iris.time_analysis__area_weighted                                               |
|          | 109±0.7μs            | 106±0.8μs           | 0.98    | import_iris.Iris.time_analysis__grid_angles                                                 |
|          | 248±4μs              | 247±0.7μs           | 1.00    | import_iris.Iris.time_analysis__interpolation                                               |
|          | 188±2μs              | 190±3μs             | 1.01    | import_iris.Iris.time_analysis__regrid                                                      |
|          | 110±1μs              | 110±0.8μs           | 1.00    | import_iris.Iris.time_analysis__scipy_interpolate                                           |
|          | 137±3μs              | 137±2μs             | 0.99    | import_iris.Iris.time_analysis_calculus                                                     |
|          | 332±4μs              | 328±3μs             | 0.99    | import_iris.Iris.time_analysis_cartography                                                  |
|          | 92.6±3μs             | 92.6±0.7μs          | 1.00    | import_iris.Iris.time_analysis_geomerty                                                     |
|          | 215±2μs              | 214±3μs             | 1.00    | import_iris.Iris.time_analysis_maths                                                        |
|          | 96.0±2μs             | 96.0±1μs            | 1.00    | import_iris.Iris.time_analysis_stats                                                        |
|          | 176±1μs              | 173±1μs             | 0.98    | import_iris.Iris.time_analysis_trajectory                                                   |
|          | 307±4μs              | 317±4μs             | 1.03    | import_iris.Iris.time_aux_factory                                                           |
|          | 82.7±0.5μs           | 80.8±0.4μs          | 0.98    | import_iris.Iris.time_common                                                                |
|          | 160±2μs              | 162±1μs             | 1.01    | import_iris.Iris.time_common_lenient                                                        |
|          | 1.35±0.01ms          | 1.37±0ms            | 1.02    | import_iris.Iris.time_common_metadata                                                       |
|          | 162±1μs              | 169±1μs             | 1.04    | import_iris.Iris.time_common_mixin                                                          |
|          | 1.20±0.01ms          | 1.19±0ms            | 0.99    | import_iris.Iris.time_common_resolve                                                        |
|          | 200±4μs              | 200±1μs             | 1.00    | import_iris.Iris.time_config                                                                |
|          | 125±3μs              | 124±1μs             | 0.99    | import_iris.Iris.time_coord_categorisation                                                  |
|          | 371±10μs             | 384±4μs             | 1.03    | import_iris.Iris.time_coord_systems                                                         |
|          | 760±6μs              | 773±1μs             | 1.02    | import_iris.Iris.time_coords                                                                |
|          | 631±5μs              | 646±20μs            | 1.02    | import_iris.Iris.time_cube                                                                  |
|          | 225±1μs              | 222±2μs             | 0.99    | import_iris.Iris.time_exceptions                                                            |
|          | 74.6±0.8μs           | 74.7±2μs            | 1.00    | import_iris.Iris.time_experimental                                                          |
|          | 184±0.9μs            | 181±7μs             | 0.99    | import_iris.Iris.time_fileformats                                                           |
|          | 248±4μs              | 255±4μs             | 1.03    | import_iris.Iris.time_fileformats__ff                                                       |
|          | 2.67±0.03ms          | 2.54±0.01ms         | 0.95    | import_iris.Iris.time_fileformats__ff_cross_references                                      |
|          | 77.6±0.9μs           | 76.0±0.6μs          | 0.98    | import_iris.Iris.time_fileformats__pp_lbproc_pairs                                          |
|          | 112±2μs              | 113±0.9μs           | 1.01    | import_iris.Iris.time_fileformats_abf                                                       |
|          | 410±8μs              | 433±10μs            | 1.06    | import_iris.Iris.time_fileformats_cf                                                        |
|          | 4.82±0.02ms          | 4.82±0.08ms         | 1.00    | import_iris.Iris.time_fileformats_dot                                                       |
|          | 73.4±0.8μs           | 72.2±1μs            | 0.98    | import_iris.Iris.time_fileformats_name                                                      |
|          | 257±2μs              | 256±4μs             | 1.00    | import_iris.Iris.time_fileformats_name_loaders                                              |
|          | 119±2μs              | 115±1μs             | 0.97    | import_iris.Iris.time_fileformats_netcdf                                                    |
|          | 122±2μs              | 123±2μs             | 1.01    | import_iris.Iris.time_fileformats_nimrod                                                    |
|          | 212±5μs              | 211±1μs             | 0.99    | import_iris.Iris.time_fileformats_nimrod_load_rules                                         |
|          | 796±5μs              | 814±6μs             | 1.02    | import_iris.Iris.time_fileformats_pp                                                        |
|          | 181±3μs              | 181±5μs             | 1.00    | import_iris.Iris.time_fileformats_pp_load_rules                                             |
|          | 137±3μs              | 137±3μs             | 1.00    | import_iris.Iris.time_fileformats_pp_save_rules                                             |
|          | 549±2μs              | 548±3μs             | 1.00    | import_iris.Iris.time_fileformats_rules                                                     |
|          | 220±2μs              | 223±0.9μs           | 1.02    | import_iris.Iris.time_fileformats_structured_array_identification                           |
|          | 81.4±0.8μs           | 79.3±0.6μs          | 0.97    | import_iris.Iris.time_fileformats_um                                                        |
|          | 165±6μs              | 159±0.7μs           | 0.96    | import_iris.Iris.time_fileformats_um__fast_load                                             |
|          | 136±3μs              | 142±3μs             | 1.04    | import_iris.Iris.time_fileformats_um__fast_load_structured_fields                           |
|          | 74.0±0.8μs           | 72.7±0.5μs          | 0.98    | import_iris.Iris.time_fileformats_um__ff_replacement                                        |
|          | 80.3±0.7μs           | 78.9±0.4μs          | 0.98    | import_iris.Iris.time_fileformats_um__optimal_array_structuring                             |
|          | 980±10μs             | 949±5μs             | 0.97    | import_iris.Iris.time_fileformats_um_cf_map                                                 |
|          | 136±0.9μs            | 137±2μs             | 1.01    | import_iris.Iris.time_io                                                                    |
|          | 175±2μs              | 176±1μs             | 1.01    | import_iris.Iris.time_io_format_picker                                                      |
|          | 217±3μs              | 210±2μs             | 0.97    | import_iris.Iris.time_iris                                                                  |
|          | 127±1μs              | 130±3μs             | 1.03    | import_iris.Iris.time_iterate                                                               |
|          | 8.15±0.04ms          | 8.21±0.04ms         | 1.01    | import_iris.Iris.time_palette                                                               |
|          | 1.92±0.01ms          | 1.77±0.04ms         | 0.92    | import_iris.Iris.time_plot                                                                  |
|          | 103±0.8μs            | 103±0.4μs           | 0.99    | import_iris.Iris.time_quickplot                                                             |
|          | 2.20±0.04ms          | 2.19±0.04ms         | 0.99    | import_iris.Iris.time_std_names                                                             |
|          | 1.78±0.01ms          | 1.85±0.03ms         | 1.04    | import_iris.Iris.time_symbols                                                               |
|          | 87.8±1ms             | 88.3±2ms            | 1.00    | import_iris.Iris.time_tests                                                                 |
|          | 269±2μs              | 252±4μs             | 0.94    | import_iris.Iris.time_third_party_cartopy                                                   |
|          | 5.03±0.05ms          | 5.04±0.08ms         | 1.00    | import_iris.Iris.time_third_party_cf_units                                                  |
|          | 124±0.6μs            | 116±0.7μs           | 0.94    | import_iris.Iris.time_third_party_cftime                                                    |
|          | 2.93±0.01ms          | 2.71±0.04ms         | 0.93    | import_iris.Iris.time_third_party_matplotlib                                                |
|          | 1.30±0.01ms          | 1.29±0.01ms         | 0.99    | import_iris.Iris.time_third_party_numpy                                                     |
|          | 177±3μs              | 170±4μs             | 0.96    | import_iris.Iris.time_third_party_scipy                                                     |
|          | 98.7±0.6μs           | 98.1±0.9μs          | 0.99    | import_iris.Iris.time_time                                                                  |
|          | 334±4μs              | 337±4μs             | 1.01    | import_iris.Iris.time_util                                                                  |
|          | 72.1±1μs             | 73.1±1μs            | 1.01    | iterate.IZip.time_izip                                                                      |
|          | 10.1±0.03ms          | 10.4±0.2ms          | 1.02    | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF')                                  |
|          | 15.6±0.4ms           | 15.6±0.3ms          | 1.00    | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF')                              |
|          | 10.0±0.06ms          | 10.2±0.05ms         | 1.02    | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP')                                  |
|          | 10.1±0.2ms           | 10.1±0.04ms         | 1.01    | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF')                                   |
|          | 12.7±0.4ms           | 12.7±0.06ms         | 1.00    | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF')                               |
|          | 10.1±0.09ms          | 10.2±0.04ms         | 1.01    | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP')                                   |
|          | 1.57±0.03s           | 1.61±0.01s          | 1.02    | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF')                                    |
|          | 11.5±0.1ms           | 12.0±0.5ms          | 1.04    | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF')                                |
|          | 1.58±0.03s           | 1.61±0.02s          | 1.02    | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP')                                    |
|          | 1.55±0.01s           | 1.60±0.01s          | 1.03    | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF')                                     |
|          | 11.5±0.2ms           | 11.7±0.09ms         | 1.01    | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF')                                 |
|          | 1.59±0.03s           | 1.63±0.01s          | 1.02    | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP')                                     |
|          | 5.14±0.03ms          | 5.28±0.02ms         | 1.03    | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF')                                     |
|          | 11.4±0.08ms          | 11.4±0.04ms         | 1.00    | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF')                                 |
|          | 5.16±0.03ms          | 5.23±0.09ms         | 1.01    | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP')                                     |
|          | 5.14±0.08ms          | 5.35±0.08ms         | 1.04    | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF')                                      |
|          | 11.3±0.1ms           | 11.6±0.09ms         | 1.02    | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF')                                  |
|          | 5.13±0.06ms          | 5.22±0.06ms         | 1.02    | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP')                                      |
|          | 22.5±1ms             | 22.3±0.8ms          | 0.99    | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF')                               |
|          | 20.0±0.3ms           | 20.0±0.3ms          | 1.00    | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF')                           |
|          | 11.3±0.8ms           | 11.5±1ms            | 1.02    | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP')                               |
|          | 27.0±0.6ms           | 26.7±0.7ms          | 0.99    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF')                                |
|          | 68.3±0.8ms           | 68.4±0.7ms          | 1.00    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF')                            |
|          | 26.7±0.6ms           | 26.0±0.6ms          | 0.97    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP')                                |
|          | 489±7ms              | 557±3ms             | 1.14    | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF')                                 |
|          | 2.71±0.08ms          | 2.62±0.07ms         | 0.97    | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF')                             |
|          | 490±6ms              | 559±3ms             | 1.14    | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP')                                 |
|          | 512±5ms              | 566±4ms             | 1.10    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF')                                  |
|          | 2.83±0.09ms          | 2.79±0.1ms          | 0.99    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF')                              |
|          | 508±6ms              | 567±3ms             | 1.12    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP')                                  |
|          | 1.64±0.07ms          | 1.66±0.03ms         | 1.01    | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF')                                  |
|          | 2.59±0.05ms          | 2.77±0.2ms          | 1.07    | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF')                              |
|          | 1.68±0.07ms          | 1.69±0.05ms         | 1.01    | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP')                                  |
|          | 1.71±0.08ms          | 1.64±0.05ms         | 0.95    | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF')                                   |
|          | 2.65±0.09ms          | 2.86±0.1ms          | 1.08    | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF')                               |
|          | 1.71±0.1ms           | 1.68±0.07ms         | 0.98    | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP')                                   |
|          | 346±2ms              | 353±4ms             | 1.02    | load.ManyCubes.time_many_cube_load                                                          |
|          | 87.3±2ms             | 84.9±0.5ms          | 0.97    | load.ManyVars.time_many_var_load                                                            |
|          | 10.3±0.1ms           | 10.4±0.09ms         | 1.01    | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF')                            |
|          | 10.4±0.2ms           | 10.3±0.07ms         | 0.98    | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP')                            |
|          | 1.57±0.01s           | 1.62±0.03s          | 1.03    | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF')                              |
|          | 1.60±0.01s           | 1.65±0.01s          | 1.03    | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP')                              |
|          | 5.24±0.02ms          | 5.32±0.06ms         | 1.01    | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF')                                 |
|          | 5.21±0.1ms           | 5.30±0.05ms         | 1.02    | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP')                                 |
|          | 9.22±0.2ms           | 9.35±0.07ms         | 1.01    | load.StructuredFF.time_structured_load((1280, 960, 5), False)                               |
|          | 6.11±0.2ms           | 6.17±0.02ms         | 1.01    | load.StructuredFF.time_structured_load((1280, 960, 5), True)                                |
|          | 1.58±0.01s           | 1.60±0.02s          | 1.01    | load.StructuredFF.time_structured_load((2, 2, 1000), False)                                 |
|          | 570±3ms              | 594±10ms            | 1.04    | load.StructuredFF.time_structured_load((2, 2, 1000), True)                                  |
|          | 4.40±0.06ms          | 4.45±0.04ms         | 1.01    | load.StructuredFF.time_structured_load((2, 2, 2), False)                                    |
|          | 4.35±0.09ms          | 4.38±0.08ms         | 1.01    | load.StructuredFF.time_structured_load((2, 2, 2), True)                                     |
|          | 175±1ms              | 177±1ms             | 1.01    | load.TimeConstraint.time_time_constraint(20, 'FF')                                          |
|          | 15.3±0.2ms           | 14.6±0.2ms          | 0.95    | load.TimeConstraint.time_time_constraint(20, 'NetCDF')                                      |
|          | 176±2ms              | 176±1ms             | 1.00    | load.TimeConstraint.time_time_constraint(20, 'PP')                                          |
|          | 34.3±0.3ms           | 34.2±0.2ms          | 1.00    | load.TimeConstraint.time_time_constraint(3, 'FF')                                           |
|          | 14.6±0.4ms           | 14.3±0.4ms          | 0.98    | load.TimeConstraint.time_time_constraint(3, 'NetCDF')                                       |
|          | 34.3±0.6ms           | 34.3±0.4ms          | 1.00    | load.TimeConstraint.time_time_constraint(3, 'PP')                                           |
|          | 13.4±0.4ms           | 13.3±0.09ms         | 1.00    | load.ugrid.BasicLoading.time_load_file(1)                                                   |
|          | 47.3±0.8ms           | 49.9±0.6ms          | 1.06    | load.ugrid.BasicLoading.time_load_file(200000)                                              |
|          | 8.71±0.2ms           | 8.61±0.1ms          | 0.99    | load.ugrid.BasicLoading.time_load_mesh(1)                                                   |
|          | 16.3±0.4ms           | 16.5±0.5ms          | 1.01    | load.ugrid.BasicLoading.time_load_mesh(200000)                                              |
|          | 13.3±0.2ms           | 13.8±0.1ms          | 1.04    | load.ugrid.BasicLoadingTime.time_load_file(1)                                               |
|          | 15.1±0.3ms           | 15.4±0.2ms          | 1.02    | load.ugrid.BasicLoadingTime.time_load_file(200000)                                          |
|          | 8.60±0.2ms           | 8.67±0.2ms          | 1.01    | load.ugrid.BasicLoadingTime.time_load_mesh(1)                                               |
|          | 11.5±0.3ms           | 11.8±0.2ms          | 1.02    | load.ugrid.BasicLoadingTime.time_load_mesh(200000)                                          |
|          | 14.3±0.4ms           | 14.5±0.3ms          | 1.02    | load.ugrid.Callback.time_load_file_callback(1)                                              |
|          | 59.3±0.9ms           | 60.3±0.9ms          | 1.02    | load.ugrid.Callback.time_load_file_callback(200000)                                         |
|          | 14.8±0.3ms           | 14.7±0.09ms         | 1.00    | load.ugrid.CallbackTime.time_load_file_callback(1)                                          |
|          | 17.4±0.5ms           | 17.3±0.3ms          | 1.00    | load.ugrid.CallbackTime.time_load_file_callback(200000)                                     |
|          | 2.73±0.1ms           | 2.60±0.2ms          | 0.95    | load.ugrid.DataRealisation.time_realise_data(10000)                                         |
|          | 3.98±0.3ms           | 3.88±0.3ms          | 0.97    | load.ugrid.DataRealisation.time_realise_data(200000)                                        |
|          | 36.8±2ms             | 36.9±3ms            | 1.00    | load.ugrid.DataRealisationTime.time_realise_data(10000)                                     |
|          | 798±9ms              | 795±30ms            | 1.00    | load.ugrid.DataRealisationTime.time_realise_data(200000)                                    |
|          | 440±4ms              | 449±5ms             | 1.02    | merge_concat.Concatenate.time_concatenate(False)                                            |
|          | 441±2ms              | 447±5ms             | 1.01    | merge_concat.Concatenate.time_concatenate(True)                                             |
|          | 109±0.5M             | 109±0.5M            | 1.00    | merge_concat.Concatenate.tracemalloc_concatenate(False)                                     |
|          | 109±0.5M             | 109±0.5M            | 1.00    | merge_concat.Concatenate.tracemalloc_concatenate(True)                                      |
|          | 49.3±0.9ms           | 50.7±1ms            | 1.03    | merge_concat.Merge.time_merge                                                               |
|          | 1.62±0.2M            | 2.49±1M             | ~1.54   | merge_concat.Merge.tracemalloc_merge                                                        |
|          | 403±5ns              | 349±8ns             | 0.87    | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(50)              |
|          | 212±2ms              | 195±2ms             | 0.92    | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(500)             |
|          | 650±0.9k             | 651±1k              | 1.00    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(50)       |
|          | 60.1±0M              | 60.1±0M             | 1.00    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(500)      |
|          | 17.7±0.5ms           | 18.2±0.3ms          | 1.03    | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50)           |
|          | 20.1±0.4ms           | 20.4±0.2ms          | 1.02    | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500)          |
|          | 1.13±0M              | 1.13±0M             | 1.01    | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(50)    |
|          | 13±0M                | 13±0M               | 1.00    | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(500)   |
|          | 108±1ms              | 107±1ms             | 0.99    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50)         |
|          | 610±6ms              | 594±3ms             | 0.97    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500)        |
|          | 1.23±0.01M           | 1.3±0.02M           | 1.05    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(50)  |
|          | 96.3±0.01M           | 96.3±0.03M          | 1.00    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(500) |
|          | 68.4±1ms             | 67.8±2ms            | 0.99    | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(50)                             |
|          | 556±7ms              | 551±8ms             | 0.99    | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(500)                            |
|          | 1.13±0.01M           | 1.19±0.01M          | 1.05    | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(50)                      |
|          | 96.2±0.01M           | 96.2±0.01M          | 1.00    | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(500)                     |
|          | 2.1752849999999997   | 2.1752849999999997  | 1.00    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(50)                  |
|          | 216.01528499999998   | 216.01528499999998  | 1.00    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(500)                 |
|          | 6.63±0.1ms           | 6.80±0.06ms         | 1.03    | plot.AuxSort.time_aux_sort                                                                  |
|          | 77.9±4ms             | 78.5±3ms            | 1.01    | regridding.CurvilinearRegridding.time_regrid_pic                                            |
|          | 136±3M               | 136±3M              | 1.00    | regridding.CurvilinearRegridding.tracemalloc_regrid_pic                                     |
|          | 99.3±0.8ms           | 100±0.5ms           | 1.01    | regridding.HorizontalChunkedRegridding.time_regrid_area_w                                   |
|          | 50.3±4ms             | 51.1±2ms            | 1.01    | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid                          |
|          | 106±0.04M            | 106±0.06M           | 1.00    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w                            |
|          | 147±0.01M            | 147±0.02M           | 1.00    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w_new_grid                   |
|          | 4.49±0.02ms          | 4.35±0.02ms         | 0.97    | save.NetcdfSave.time_netcdf_save_cube(50, False)                                            |
|          | 73.7±1ms             | 74.7±2ms            | 1.01    | save.NetcdfSave.time_netcdf_save_cube(50, True)                                             |
|          | 43.0±0.3ms           | 43.0±0.8ms          | 1.00    | save.NetcdfSave.time_netcdf_save_cube(600, False)                                           |
|          | 480±10ms             | 485±10ms            | 1.01    | save.NetcdfSave.time_netcdf_save_cube(600, True)                                            |
|          | 87.1±1ns             | 85.1±0.4ns          | 0.98    | save.NetcdfSave.time_netcdf_save_mesh(50, False)                                            |
|          | 54.0±1ms             | 56.5±1ms            | 1.05    | save.NetcdfSave.time_netcdf_save_mesh(50, True)                                             |
|          | 87.1±2ns             | 85.5±0.4ns          | 0.98    | save.NetcdfSave.time_netcdf_save_mesh(600, False)                                           |
|          | 424±3ms              | 433±7ms             | 1.02    | save.NetcdfSave.time_netcdf_save_mesh(600, True)                                            |
|          | 30.3±0.2k            | 30.6±0.1k           | 1.01    | save.NetcdfSave.tracemalloc_netcdf_save(50, False)                                          |
|          | 1.67±0.2M            | 1.83±0.2M           | 1.09    | save.NetcdfSave.tracemalloc_netcdf_save(50, True)                                           |
|          | 30.3±0.1k            | 30.6±0.1k           | 1.01    | save.NetcdfSave.tracemalloc_netcdf_save(600, False)                                         |
|          | 207±20M              | 208±20M             | 1.00    | save.NetcdfSave.tracemalloc_netcdf_save(600, True)                                          |
|          | 40.7±0.3ms           | 41.7±0.6ms          | 1.02    | stats.PearsonR.time_lazy                                                                    |
|          | 9.05±0.3ms           | 9.15±0.07ms         | 1.01    | stats.PearsonR.time_real                                                                    |
|          | 24.1±1M              | 24.6±2M             | 1.02    | stats.PearsonR.tracemalloc_lazy                                                             |
|          | 18.4±0.01M           | 18.4±0.01M          | 1.00    | stats.PearsonR.tracemalloc_real                                                             |
|          | 20.4±0.2ms           | 21.0±0.5ms          | 1.03    | trajectory.TrajectoryInterpolation.time_trajectory_linear                                   |
|          | 68.3±0.8ms           | 67.9±0.8ms          | 0.99    | trajectory.TrajectoryInterpolation.time_trajectory_nearest                                  |
|          | 17.6±0.02M           | 17.6±0.02M          | 1.00    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_linear                            |
|          | 12.1±0.07M           | 12.1±0.01M          | 1.00    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_nearest                           |

Generated by GHA run 13494948385

@trexfeathers trexfeathers merged commit d3ed2a9 into SciTools:main Feb 24, 2025
21 checks passed
ukmo-ccbunney added a commit to ukmo-ccbunney/iris that referenced this pull request Feb 25, 2025
* upstream/main: (98 commits)
  [pre-commit.ci] pre-commit autoupdate (SciTools#6335)
  SPEC 0: drop py310 and support py313 (SciTools#6195)
  Better benchmarking Python version handling (SciTools#6329)
  Move loading and combine code into their own submodules. (SciTools#6321)
  Bump scitools/workflows from 2025.02.1 to 2025.02.2 (SciTools#6327)
  replaced reference from build to python build (SciTools#6324)
  [pre-commit.ci] pre-commit autoupdate (SciTools#6315)
  Cache Dask arrays created from `NetCDFDataProxy`s to speed up loading files with multiple variables (SciTools#6252)
  Bump scitools/workflows from 2025.02.0 to 2025.02.1 (SciTools#6313)
  [pre-commit.ci] pre-commit autoupdate (SciTools#6310)
  Bump scitools/workflows from 2025.01.5 to 2025.02.0 (SciTools#6306)
  Updated environment lockfiles (SciTools#6301)
  Improve speed of loading small NetCDF files (SciTools#6229)
  [pre-commit.ci] pre-commit autoupdate (SciTools#6298)
  Use cube chunks for weights in aggregations with smart weights (SciTools#6288)
  Updated environment lockfiles (SciTools#6296)
  Bump scitools/workflows from 2025.01.4 to 2025.01.5 (SciTools#6300)
  Bump scitools/workflows from 2025.01.3 to 2025.01.4 (SciTools#6295)
  Lazy rectilinear interpolator  (SciTools#6084)
  Revert "Fix broken link. (SciTools#6246)" (SciTools#6297)
  ...
@scitools-ci scitools-ci bot removed this from 🚴 Peloton Mar 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
benchmark_this Request that this pull request be benchmarked to check if it introduces performance shifts
Projects
Status: 🏁 Done
Development

Successfully merging this pull request may close these issues.

Support Python 3.13
3 participants