Skip to content

Conversation

@pp-mo
Copy link
Member

@pp-mo pp-mo commented Nov 15, 2023

@pp-mo pp-mo force-pushed the splitattrs_equalise branch from 9bcbf97 to 3cb375e Compare November 15, 2023 20:38
@SciTools SciTools deleted a comment from codecov bot Nov 15, 2023
@pp-mo
Copy link
Member Author

pp-mo commented Nov 15, 2023

3cb375e at this point, demonstrates expected-failures
(see test log )

 . . .
2023-11-15T20:45:20.8075796Z SKIPPED [1] lib/iris/tests/unit/experimental/raster/test_export_geotiff.py:113: Test requires 'gdal'.
2023-11-15T20:45:20.8076974Z SKIPPED [1] lib/iris/tests/unit/experimental/raster/test_export_geotiff.py:120: Test requires 'gdal'.
2023-11-15T20:45:20.8077977Z SKIPPED [1] lib/iris/tests/unit/experimental/raster/test_export_geotiff.py:168: Test requires 'gdal'.
2023-11-15T20:45:20.8078990Z XFAIL lib/iris/tests/unit/util/test_equalise_attributes.py::TestSplitattributes::test__oneglobal_onelocal__same
2023-11-15T20:45:20.8080046Z XFAIL lib/iris/tests/unit/util/test_equalise_attributes.py::TestSplitattributes::test__sameglobals_onelocal__same
2023-11-15T20:45:20.8081121Z XFAIL lib/iris/tests/unit/util/test_equalise_attributes.py::TestSplitattributes::test__differentglobals_samelocals
2023-11-15T20:45:20.8081988Z === 9340 passed, 48 skipped, 3 xfailed, 15766 warnings in 352.35s (0:05:52) ====

@SciTools SciTools deleted a comment from codecov bot Nov 15, 2023
@codecov
Copy link

codecov bot commented Nov 15, 2023

Codecov Report

Attention: 37 lines in your changes are missing coverage. Please review.

Comparison is base (0b54d58) 89.25% compared to head (c3e2175) 89.45%.
Report is 142 commits behind head on FEATURE_split_attrs.

Files Patch % Lines
lib/iris/fileformats/netcdf/saver.py 91.06% 12 Missing and 4 partials ⚠️
lib/iris/fileformats/netcdf/_thread_safe_nc.py 79.48% 7 Missing and 1 partial ⚠️
lib/iris/__init__.py 70.00% 2 Missing and 1 partial ⚠️
lib/iris/analysis/__init__.py 96.80% 1 Missing and 2 partials ⚠️
lib/iris/fileformats/netcdf/_dask_locks.py 92.68% 2 Missing and 1 partial ⚠️
lib/iris/_concatenate.py 98.57% 0 Missing and 1 partial ⚠️
lib/iris/cube.py 99.10% 0 Missing and 1 partial ⚠️
lib/iris/fileformats/name_loaders.py 0.00% 1 Missing ⚠️
lib/iris/quickplot.py 92.30% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@                   Coverage Diff                   @@
##           FEATURE_split_attrs    #5586      +/-   ##
=======================================================
+ Coverage                89.25%   89.45%   +0.20%     
=======================================================
  Files                       88       90       +2     
  Lines                    22197    22608     +411     
  Branches                  4858     5440     +582     
=======================================================
+ Hits                     19811    20225     +414     
+ Misses                    1641     1638       -3     
  Partials                   745      745              

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

@pp-mo pp-mo marked this pull request as ready for review November 15, 2023 20:57
@pp-mo
Copy link
Member Author

pp-mo commented Nov 15, 2023

@trexfeathers are you interested in this ?

We still have the little thing to fix merge errors in #5585,
and the merge-back #5152,
but Split cube-attrs project is nearly nearly there !

@pp-mo
Copy link
Member Author

pp-mo commented Nov 17, 2023

Thanks @trexfeathers I think the latest addresses your points so far.
Please take a look + see what you think now.

@trexfeathers trexfeathers merged commit 8c483af into SciTools:FEATURE_split_attrs Nov 17, 2023
ESadek-MO pushed a commit that referenced this pull request Nov 21, 2023
* Split-attrs: Cube metadata refactortests (#4993)

* Convert Test___eq__ to pytest.

* Convert Test_combine to pytest.

* Convert Test_difference to pytest.

* Review changes.

* Split attrs - tests for status quo (#4960)

* Tests for attribute handling in netcdf load/save.

* Tidy test functions.

* Fix import order exception.

* Add cf-global attributes test.

* Towards more pytest-y implemenation.

* Replace 'create_testcase' with fixture which also handles temporary directory.

* Much tidy; use fixtures to parametrise over multiple attributes.

* Fix warnings; begin data-style attrs tests.

* Tests for data-style attributes.

* Simplify setup fixture + improve docstring.

* No parallel test runner, to avoid error for Python>3.8.

* Fixed for new-style netcdf module.

* Small review changes.

* Rename attributes set 'data-style' as 'local-style'.

* Simplify use of fixtures; clarify docstrings/comments and improve argument names.

* Clarify testing sections for different attribute 'styles'.

* Re-enable parallel testing.

* Sorted params to avoid parallel testing bug - pytest#432.

* Rename test functions to make alpha-order match order in class.

* Split netcdf load/save attribute testing into separate sourcefile.

* Add tests for loaded cube attributes; refactor to share code between Load and Roundtrip tests.

* Add tests for attribute saving.

* Fix method names in comments.

* Clarify source of Conventions attributes.

* Explain the test numbering in TestRoundtrip/TestLoad.

* Remove obsolete test helper method.

* Fix small typo; Fix numbering of testcases in TestSave.

* Implement split cube attributes. (#5040)

* Implement split cube attributes.

* Test fixes.

* Modify examples for simpler metadata printouts.

* Added tests, small behaviour fixes.

* Simplify copy.

* Fix doctests.

* Skip doctests with non-replicable outputs (from use of sets).

* Tidy test comments, and add extra test.

* Tiny typo.

* Remove redundant redefinition of Cube.attributes.

* Add CubeAttrsDict in module __all__ + improve docs coverage.

* Review changes - small test changes.

* More review changes.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix CubeAttrsDict example docstrings.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Odd small fixes.

* Improved docstrings and comments; fix doctests.

* Don't sidestep netcdf4 thread-safety.

* Publicise LimitedAttributeDict, so CubeAttrsDict can refer to it.

* Fix various internal + external links.

* Update lib/iris/cube.py

Co-authored-by: Martin Yeo <[email protected]>

* Update lib/iris/cube.py

Co-authored-by: Martin Yeo <[email protected]>

* Update lib/iris/cube.py

Co-authored-by: Martin Yeo <[email protected]>

* Update lib/iris/cube.py

Co-authored-by: Martin Yeo <[email protected]>

* Streamline docs.

* Review changes.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Martin Yeo <[email protected]>

* Splitattrs ncload (#5384)

* Distinguish local+global attributes in netcdf loads.

* Small test fixes.

* Small doctest fix.

* Fix attribute load-save tests for new behaviour, and old-behaviour equivalence.

* Split attrs docs (#5418)

* Clarification in CubeAttrsDict examples.

* CubeAttrsDict fix docstring typo.

* Raise awareness of split attributes in user guide.

* What's New entry.

* Changes to metadata documentation.

* Splitattrs ncsave redo (#5410)

* Add docs and future switch, no function yet.

* Typing enables code completion for Cube.attributes.

* Make roundtrip checking more precise + improve some tests accordingly (cf. #5403).

* Rework all tests to use common setup + results-checking code.

* Saver supports split-attributes saving (no tests yet).

* Tiny docs fix.

* Explain test routines better.

* Fix init of FUTURE object.

* Remove spurious re-test of FUTURE.save_split_attrs.

* Don't create Cube attrs of 'None' (n.b. but no effect as currently used).

* Remove/repair refs to obsolete routines.

* Check all warnings from save operations.

* Remove TestSave test numbers.

* More save cases: no match with missing, and different cube attribute types.

* Run save/roundtrip tests both with+without split saves.

* Fix.

* Review changes.

* Fix changed warning messages.

* Move warnings checking from 'run' to 'check' phase.

* Simplify and improve warnings checking code.

* Fix wrong testcase.

* Minor review changes.

* Fix reverted code.

* Use sets to simplify demoted-attributes code.

* WIP

* Working with iris 3.6.1, no errors TestSave or TestRoundtrip.

* Interim save (incomplete?).

* Different results form for split tests; working for roundtrip.

* Check that all param lists are sorted.

* Check matrix result-files compatibility; add test_save_matrix.

* test_load_matrix added; two types of load result.

* Finalise special-case attributes.

* Small docs tweaks.

* Add some more testcases,

* Ensure valid sort-order for globals of possibly different types.

* Initialise matrix results with legacy values from v3.6.1 -- all matching.

* Add full current matrix results, i.e. snapshot current behaviours.

* Review changes : rename some matrix testcases, for clarity.

* Splitattrs ncsave redo commonmeta (#5538)

* Define common-metadata operartions on split attribute dictionaries.

* Tests for split-attributes handling in CubeMetadata operations.

* Small tidy and clarify.

* Common metadata ops support mixed split/unsplit attribute dicts.

* Clarify with better naming, comments, docstrings.

* Remove split-attrs handling to own sourcefile, and implement as a decorator.

* Remove redundant tests duplicated by matrix testcases.

* Newstyle split-attrs matrix testing, with fewer testcases.

* Small improvements to comments + docstrings.

* Fix logic for equals expectation; expand primary/secondary independence test.

* Clarify result testing in metadata operations decorator.

* Splitattrs equalise (#5586)

* Add tests in advance for split-attributes handling cases.

* Move dict conversion inside utility, for use elsewhere.

* Add support for split-attributes to equalise_attributes.

* Update lib/iris/util.py

Co-authored-by: Martin Yeo <[email protected]>

* Update lib/iris/tests/unit/util/test_equalise_attributes.py

Co-authored-by: Martin Yeo <[email protected]>

* Simplify and clarify equalise_attributes code.

---------

Co-authored-by: Martin Yeo <[email protected]>

* Fix merge-fail messaging for attribute mismatches. (#5590)

* Extra CubeAttrsDict methods to emulate dictionary behaviours. (#5592)

* Extra CubeAttrsDict methods to emulate dictionary behaviours.

* Don't use staticmethod on fixture.

* Add Iris warning categories to saver warnings.

* Type equality fixes for new flake8.

* Licence header fixes.

* Splitattrs ncsave deprecation (#5595)

* Small improvement to split-attrs whatsnew.

* Emit deprecation warning when saving without split-attrs enabled.

* Stop legacy-split-attribute warnings from upsetting delayed-saving tests.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Martin Yeo <[email protected]>
@ESadek-MO ESadek-MO linked an issue Nov 22, 2023 that may be closed by this pull request
@pp-mo pp-mo deleted the splitattrs_equalise branch July 9, 2025 11:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects
Status: 🏁 Done

Development

Successfully merging this pull request may close these issues.

split-attrs: equalise-attributes

2 participants