dask: `Container` inheritance by davidhassell · Pull Request #552 · NCAS-CMS/cf-python

The first point (from your opening comment) has been achieved, but the second point promise of:

>>> import cf
>>> cf.CFANetCDFArray()
Traceback (most recent call last):
  File "/home/sadie/cfdm/cfdm/core/abstract/container.py", line 259, in _get_component
    return self._components[component]
KeyError: 'shape'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/sadie/cf-python/cf/data/array/netcdfarray.py", line 20, in __repr__
    return super().__repr__().replace("<", "<CF ", 1)
  File "/home/sadie/cfdm/cfdm/data/netcdfarray.py", line 295, in __repr__
    return f"<{self.__class__.__name__}{self.shape}: {self}>"
  File "/home/sadie/cfdm/cfdm/data/netcdfarray.py", line 409, in shape
    return self._get_component("shape")
  File "/home/sadie/cfdm/cfdm/core/abstract/container.py", line 264, in _get_component
    return self._default(
  File "/home/sadie/cfdm/cfdm/core/abstract/container.py", line 141, in _default
    raise default
ValueError: CFANetCDFArray has no 'shape' component