Incompatible differences between versions 2.x and 3.x¶
For those familiar with the cf-python API at version 2.x, some important, backwards incompatible changes were introduced at version 3.0.0.
Scripts written for version 2.x but running under version 3.x should either work as expected, or provide informative error mesages on the new API usage. However, it is advised that the outputs of older scripts be checked when running with Python 3 versions of the cf library.
Python¶
Version 3.x only works for Python 3.5 or later. Version 2.x only works for python version 2.7.
In-place operations¶
At version 3.x, in-place operations return None
, rather than the
modified construct. The keyword that defines the operation to be
in-place is now inplace (rather than i).
>>> g = f.tranpose()
>>> print(type(g))
<class 'cf.field.Field'>
>>> x = f.tranpose(inplace=True)
>>> print(x)
None
New methods that replace deprecated ones¶
Version 3.x methods that replace deprecated version 2.x methods:
Version 3.x | Version 2.x |
---|---|
cf.Field.cell_methods.ordered |
cf.Field.CellMethods |
cf.Field.convert |
cf.Field.field |
cf.Field.domain_axis_identity |
cf.Field.axis_name |
cf.Field.del_construct |
cf.Field.remove_item |
cf.Field.get_data_axes |
cf.Field.data_axes ,
cf.Field.item_axes |
cf.Field.insert_dimension |
cf.Field.expand_dims |
cf.Field.nc_del_variable |
cf.Field.ncvar |
cf.Field.nc_get_variable |
cf.Field.ncvar |
cf.Field.nc_set_variable |
cf.Field.ncvar |
cf.Field.set_construct |
cf.Field.insert_aux ,
cf.Field.insert_axis ,
cf.Field.insert_dim ,
cf.Field.insert_domain_anc ,
cf.Field.insert_field_anc ,
cf.Field.insert_item ,
cf.Field.insert_measure ,
cf.Field.insert_ref |
cf.Field.set_data |
cf.Field.insert_data |
cf.Constructs.data_axes |
cf.Field.items_axes |
cf.Data.nc_hdf5_chunksizes |
cf.Field.HDF_chunks |
cf.Data.nc_set_hdf5_chunksizes |
cf.Field.HDF_chunks |
cf.Data.nc_clear_hdf5_chunksizes |
cf.Field.HDF_chunks |
Changes to the API of existing methods¶
Methods that have a different API in version 3.x
Version 3.x | API changes compared to version 2.x |
---|---|
cf.Field.anchor |
inplace replaces i parameter.
No **kwargs parameters. |
cf.Field.aux |
No **kwargs parameters. Construct identity arguments
are no longer assumed to be an abbreviation. |
cf.Field.auxs |
No **kwargs parameters. Construct identity arguments
are no longer assumed to be an abbreviation. |
cf.Field.axes |
No **kwargs parameters. Construct identity arguments
are no longer assumed to be an abbreviation. |
cf.Field.axes_names |
No **kwargs parameters. Construct identity arguments
are no longer assumed to be an abbreviation. |
cf.Field.axis |
No **kwargs parameters. Construct identity arguments
are no longer assumed to be an abbreviation. |
cf.Field.axis_size |
identity replaces axes parameter.
No **kwargs parameters. Construct identity arguments
are no longer assumed to be an abbreviation. |
cf.Field.ceil |
inplace replaces i parameter. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.cell_area |
No insert parameter. |
cf.Field.clip |
inplace replaces i parameter. |
cf.Field.collapse |
New verbose parameter.
inplace replaces i parameter.
No **kwargs parameters. Construct identity arguments
are no longer assumed to be an abbreviation. |
cf.Field.convert_reference_time |
inplace replaces i parameter. |
cf.Field.convolution_filter |
inplace replaces i parameter.
weights parameter can not be a string. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.coord |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.coords |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.cos |
inplace replaces i parameter. |
cf.Field.cyclic |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.derivative |
inplace replaces i parameter.
wrap replaces cyclic parameter. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.dim |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.dims |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.direction |
No axes parameter.
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.domain_anc |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.domain_ancs |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.exp |
inplace replaces i parameter. |
cf.Field.field_anc |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.field_ancs |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.flip |
inplace replaces i parameter.
No **kwargs parameters. |
cf.Field.floor |
inplace replaces i parameter. |
cf.Field.identity |
No relaxed_identity parameter. |
cf.Field.indices |
No 'exact' mode. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.iscyclic |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.item |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.items |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.key |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.log |
inplace replaces i parameter. |
cf.Field.mask_invalid |
inplace replaces i parameter. |
cf.Field.measure |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.measures |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.override_calendar |
inplace replaces i parameter. |
cf.Field.override_units |
inplace replaces i parameter. |
cf.Field.period |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.ref |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.refs |
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.regridc |
inplace replaces i parameter. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.regrids |
inplace replaces i parameter. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.rint |
inplace replaces i parameter. |
cf.Field.roll |
inplace replaces i parameter. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.round |
inplace replaces i parameter. |
cf.Field.sin |
inplace replaces i parameter. |
cf.Field.squeeze |
inplace replaces i parameter. Construct identity
arguments are no longer assumed to be an abbreviation.
No **kwargs parameters. |
cf.Field.tan |
inplace replaces i parameter. |
cf.Field.tranpose |
inplace replaces i parameter.
constructs replaces items parameter.
No **kwargs parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |
cf.Field.trunc |
inplace replaces i parameter. |
cf.Field.unsqueeze |
inplace replaces i parameter.
No axes parameter.
No **kwargs parameters. |
cf.Field.where |
inplace replaces i parameter.
construct replaces item parameter.
No axes parameter.
No **item_options parameters. Construct identity
arguments are no longer assumed to be an abbreviation. |