Skip to content
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

[PI-3478] Merge cube arithmetic feature branch #3785

Merged
merged 5 commits into from
Aug 14, 2020

Conversation

bjlittle
Copy link
Member

@bjlittle bjlittle commented Aug 14, 2020

This PR is the cube arithmetic feature branch merge back to master.

It represents the culmination of PR #3583, PR #3739, and PR #3774, which introduce a common metadata API, a lenient metadata framework, and a richer, fuller, more powerful cube arithmetic capability.

A known list of outstanding tasks still require to be completed once this PR lands, see PR #3774 and parent Issue #3478.

Holy cappuccino!

bjlittle and others added 4 commits August 13, 2020 23:16
* common metadata api

* rationalise _cube_coord_common into common

* move state into metadata

* MetadataFactory test coverage

* temporarily pin back iris-grib

* test coverage for iris.common.metadata._BaseMeta

* test coverage for iris.common.mixin.LimitedAttributeDict

* remove temporary iris-grib pin

* review actions

* Update lib/iris/tests/unit/common/metadata/test_BaseMetadata.py

Co-Authored-By: lbdreyer <[email protected]>
* add lenient infra-structure

* add metadata lenient __eq__ support

* complete __eq__, combine and difference support

* explicit inherited lenient_service + support equal convenience

* fix attributes difference + lenient kwargs

* make lenient public + minor tidy

* rename MetadataManagerFactory to metadata_manager_factory

* extend lenient_client decorator to support services registration

* add lenient test coverage

* purge qualname usage in metadata.py

* support global enable for lenient services

* support partial mapping metadata assignment

* purge Lenient.__setattr__ from api

* add BaseMetadata compare test coverage

* metadata rationalisation

* add BaseMetadata difference test coverage

* added context manager ephemeral comment clarification

* add BaseMetadata __ne__ test coverage

* standardise lenient decorator closure names

* add BaseMetadata equal test coverage

* half dunder context

* add AncillaryVariableMetadata test coverage

* add additional AncillaryVariableMetadata test coverage

* add CellMeasureMetadata test coverage

* Clarify lenient_service operation + simplify code.

* add CoordMetadata test coverage

* add CubeMetadata test coverage

* metadata tests use self.cls

* fix typo

* fix context manager ephemeral services

* add logging

* Pin pillow to make graphics tests work again. (SciTools#3630)

* Fixed tests since Numpy 1.18 deprecation of non-int num arguments for linspace. (SciTools#3655)

* Switched use of datetime.weekday() to datetime.dayofwk. (SciTools#3687)

* New image hashes for mpl 3x2 (SciTools#3682)

* New image hash for iris.test.test_plot.TestSymbols.test_cloud_cover with matplotlib 3.2.0.

* Further images changes for mpl3x2.

* Yet more updated image results.

* fix sentinel uniqueness test failure

* remove redundant cdm mapping test

* difference returns None for no difference

* protect Lenient and LENIENT private

* privitise lenient framework and add API veneer

* add explicit maths feature default

* review actions

* review actions

* trexfeathers review actions

* stephenworsley review actions

Co-authored-by: Patrick Peglar <[email protected]>
Co-authored-by: Martin Yeo <[email protected]>
* initial cube arithmetic

* support in-place cube resolve

* fix non in-place broadcasting

* remove temporary resolve scenario test

* lenient/strict support for attributes dicts with numpy arrays

* lenient/strict treatment of scalar coordinates

* strict points/bounds matching

* lenient/strict prepare local dim/aux/scalar coordinates

* support extended broadcasting

* always raise exception on points/bounds mismatch

* ignore scalar points/bounds mismatches, lenient only

* remove todos

* tidy logger debugs

* qualify src/tgt cube references in debug

* Numpy rounding fix (SciTools#3758)

ensure rounding is numpy like (maintains type)

* avoid unittest.mock.sentinel copy issue

* fast load np.int32

* fix cube maths doctest

* fix iris.common.resolve logging configuration

* fix prepare points/bounds + extra metadata cml

* support mapping reversal based on free dims

* var_name fix for lenient equality

* add support for DimCoordMetadata

* fix circular flag + support CoordMetadata and DimCoordMetadata exchange

* fix circular issue for concatenate DimCoord->AuxCoord demotion

* fix concatenate._CubeSignature sorted

* minor tweaks

* keep lenient_client private in maths

* tidy maths

* tidy iris.analysis.maths.IFunc

* refactor IFunc test

* polish in-place support

* tidy metadata_resolve

Co-authored-by: stephenworsley <[email protected]>
@bjlittle
Copy link
Member Author

@tkknight There appears to be several broken documentation links 😢

@tkknight
Copy link
Contributor

Hey @bjlittle .Travis documentation build now working. Sometimes it just needs to be re run. This is due to some web servers being offline or hitting a connection limit I think. Repeat offenders can be handled by adding then to an exclude list in conf.py, see https://scitools-iris.readthedocs.io/en/latest/developers_guide/contributing_documentation.html#testing

@abooton abooton changed the title [PI-3478] Cube arithmetic feature branch merge-back [PI-3478] Merge Cube arithmetic feature branch Aug 14, 2020
@bjlittle bjlittle changed the title [PI-3478] Merge Cube arithmetic feature branch [PI-3478] Merge cube arithmetic feature branch Aug 14, 2020
@abooton abooton merged commit 556e71e into SciTools:master Aug 14, 2020
Iris v3.0.0 automation moved this from In Progress to Done Aug 14, 2020
tkknight added a commit to tkknight/iris that referenced this pull request Aug 15, 2020
* master:
  Correct links in docs (SciTools#3781)
  [PI-3478] Merge cube arithmetic feature branch (SciTools#3785)
tkknight added a commit to tkknight/iris that referenced this pull request Aug 15, 2020
* master:
  tidy/fix latest whatsnew (SciTools#3786)
  Correct links in docs (SciTools#3781)
  [PI-3478] Merge cube arithmetic feature branch (SciTools#3785)
tkknight added a commit to tkknight/iris that referenced this pull request Aug 15, 2020
* master:
  tidy/fix latest whatsnew (SciTools#3786)
  Correct links in docs (SciTools#3781)
  [PI-3478] Merge cube arithmetic feature branch (SciTools#3785)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Iris v3.0.0
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

3 participants