# cfdm.core.Container¶

class cfdm.core.Container(source=None, copy=True)[source]

Bases: object

Abstract base class for storing components.

Warning

The custom component dictionary is only shallow copied when initialised from the source parameter, regardless of the value of the copy parameter. This is to avoid potentially expensive deep copies of the dictionary values.

A subclass of Container that requires custom dictionary values to be deep copied should ensure that this occurs its __init__ method.

New in version (cfdm): 1.7.0

Initialiation

Parameters
source: optional

Convert source, which can be any type of object, to a Container instance.

All other parameters, apart from copy, are ignored and their values are instead inferred from source by assuming that it has the Container API. Any parameters that can not be retrieved from source in this way are assumed to have their default value.

Note that if x is also a Container instance then cfdm.core.Container(source=x) is equivalent to x.copy().

copy: bool, optional

If True (the default) then deep copy the input parameters prior to initialisation. By default the parameters are not deep copied.

## Miscellaneous¶

Methods

 copy Return a deep copy.

## Private¶

Methods

 _del_component Remove a component. _get_component Return a component. _has_component Whether a component has been set. _set_component Set a component.

## Special¶

Methods

 __deepcopy__ Called by the copy.deepcopy function.

## Docstring substitutions¶

Methods

 _docstring_special_substitutions Return the special docstring substitutions. _docstring_substitutions Returns the substitutions that apply to methods of the class. _docstring_package_depth Returns the class {{package}} substitutions package depth. _docstring_method_exclusions Returns method names excluded in the class substitutions.