def test_plane_to_from_dict(): """Test the initalization of Plane objects and basic properties.""" pt = Point3D(2, 0, 2) vec = Vector3D(0, 2, 0) plane = Plane(vec, pt) plane_dict = plane.to_dict() new_plane = Plane.from_dict(plane_dict) assert isinstance(new_plane, Plane) assert new_plane.to_dict() == plane_dict
def from_dict(cls, data): """Create a color range from a dictionary. Args: data: A python dictionary in the following format .. code-block:: python { "min": -3, "max": 3, "segment_count": 7 } """ optional_keys = ('min', 'max', 'segment_count', 'colors', 'continuous_colors', 'continuous_legend', 'title', 'ordinal_dictionary', 'decimal_count', 'include_larger_smaller', 'vertical', 'base_plane', 'segment_height', 'segment_width', 'text_height', 'font') default_keys = ('is_segment_count_default', 'is_title_default', 'is_base_plane_default', 'is_segment_height_default', 'is_segment_width_default', 'is_text_height_default') for key in optional_keys: if key not in data: data[key] = None for key in default_keys: if key not in data: data[key] = False colors = None if data['colors'] is not None: colors = [Color.from_dict(col) for col in data['colors']] base_plane = None if data['base_plane'] is not None: base_plane = Plane.from_dict(data['base_plane']) leg_par = cls(data['min'], data['max'], data['segment_count'], colors, data['title'], base_plane) leg_par.continuous_colors = data['continuous_colors'] leg_par.continuous_legend = data['continuous_legend'] leg_par.ordinal_dictionary = data['ordinal_dictionary'] leg_par.decimal_count = data['decimal_count'] leg_par.include_larger_smaller = data['include_larger_smaller'] leg_par.vertical = data['vertical'] leg_par.segment_height = data['segment_height'] leg_par.segment_width = data['segment_width'] leg_par.text_height = data['text_height'] leg_par.font = data['font'] leg_par._is_segment_count_default = data['is_segment_count_default'] leg_par._is_title_default = data['is_title_default'] leg_par._is_base_plane_default = data['is_base_plane_default'] leg_par._is_segment_height_default = data['is_segment_height_default'] leg_par._is_segment_width_default = data['is_segment_width_default'] leg_par._is_text_height_default = data['is_text_height_default'] return leg_par