# This file auto-generated by `generate_schema_interface.py`.
# Do not modify this file directly.

import traitlets as T
from ..baseobject import BaseObject
from .axisconfig import AxisConfig
from .cellconfig import CellConfig
from .facetgridconfig import FacetGridConfig
from .facetscaleconfig import FacetScaleConfig


class FacetConfig(BaseObject):
    """Wrapper for Vega-Lite FacetConfig definition.
    
    Attributes
    ----------
    axis: AxisConfig
        Facet Axis Config.
    cell: CellConfig
        Facet Cell Config.
    grid: FacetGridConfig
        Facet Grid Config.
    scale: FacetScaleConfig
        Facet Scale Config.
    """
    axis = T.Instance(AxisConfig, allow_none=True, default_value=None, help="""Facet Axis Config.""")
    cell = T.Instance(CellConfig, allow_none=True, default_value=None, help="""Facet Cell Config.""")
    grid = T.Instance(FacetGridConfig, allow_none=True, default_value=None, help="""Facet Grid Config.""")
    scale = T.Instance(FacetScaleConfig, allow_none=True, default_value=None, help="""Facet Scale Config.""")
    
    def __init__(self, axis=None, cell=None, grid=None, scale=None, **kwargs):
        kwds = dict(axis=axis, cell=cell, grid=grid, scale=scale)
        kwargs.update({k:v for k, v in kwds.items() if v is not None})
        super(FacetConfig, self).__init__(**kwargs)