
    -Ph                    6    d dl mZ d dlZ G d de          ZdS )    )BaseLayoutTypeNc                       e Zd Zg dZddlZe                    dd                    e          z   dz             Zed             Z	d Z
d	Zd
Zh dZed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed              Zej        d!             Zed"             Zej        d#             Zed$             Zej        d%             Zed&             Zej        d'             Zed(             Zej        d)             Zed*             Zej        d+             Zed,             Zej        d-             Zed.             Z e j        d/             Z ed0             Z!e!j        d1             Z!ed2             Z"e"j        d3             Z"ed4             Z#e#j        d5             Z#ed6             Z$e$j        d7             Z$ed8             Z%e%j        d9             Z%ed:             Z&e&j        d;             Z&ed<             Z'e'j        d=             Z'ed>             Z(e(j        d?             Z(ed@             Z)e)j        dA             Z)edB             Z*e*j        dC             Z*edD             Z+e+j        dE             Z+edF             Z,e,j        dG             Z,edH             Z-e-j        dI             Z-edJ             Z.e.j        dK             Z.edL             Z/e/j        dM             Z/edN             Z0e0j        dO             Z0edP             Z1e1j        dQ             Z1edR             Z2e2j        dS             Z2edT             Z3e3j        dU             Z3edV             Z4e4j        dW             Z4edX             Z5e5j        dY             Z5edZ             Z6e6j        d[             Z6ed\             Z7e7j        d]             Z7ed^             Z8e8j        d_             Z8ed`             Z9e9j        da             Z9edb             Z:e:j        dc             Z:edd             Z;e;j        de             Z;edf             Z<e<j        dg             Z<edh             Z=e=j        di             Z=edj             Z>e>j        dk             Z>edl             Z?e?j        dm             Z?edn             Z@e@j        do             Z@edp             ZAeAj        dq             ZAedr             ZBeBj        ds             ZBedt             ZCeCj        du             ZCedv             ZDeDj        dw             ZDedx             ZEeEj        dy             ZEedz             ZFeFj        d{             ZFed|             ZGeGj        d}             ZGed~             ZHeHj        d             ZHed             ZIeIj        d             ZIed             ZJeJj        d             ZJed             ZKeKj        d             ZKed             ZLeLj        d             ZLed             ZMeMj        d             ZMed             ZNeNj        d             ZNed             ZOeOj        d             ZOed             ZPePj        d             ZPed             ZQeQj        d             ZQed             ZReRj        d             ZRed             ZSeSj        d             ZSed             ZTeTj        d             ZTed             ZUeUj        d             ZUed             ZVeVj        d             ZVed             ZWeWj        d             ZWed             ZXeXj        d             ZXed             ZYeYj        d             ZYed             ZZeZj        d             ZZed             Z[e[j        d             Z[ed             Z\e\j        d             Z\ed             Z]e]j        d             Z]ed             Z^e^j        d             Z^ed             Z_e_j        d             Z_ed             Z`e`j        d             Z`ed             Zaeaj        d             Zaed             Zbebj        d             Zbed             Zcecj        d             Zced             Zdedj        d             Zded             Zeeej        d             Zeed             Zfefj        d             Zfed             Zgegj        d             Zged             Zhehj        d             Zhed             Zieij        d             Zied             Zjejj        dÄ             ZjedĄ             Zkekj        dń             ZkedƄ             Zlelj        dǄ             ZledȄ             Zmemj        dɄ             Zmedʄ             Zn	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d̈ fd˄	Zo xZpS )Layout	coloraxisgeolegendmapmapboxpolarscenesmithternaryxaxisyaxisr   Nz^(|z)(\d+)$c                 R    ddl m}m}m}m}m}m}m}m}m	}	m
}
m} |||||||||	|
|dS )zo
        dict of validator classes for each subplot type

        Returns
        -------
        dict
        r   )ColoraxisValidatorGeoValidatorLegendValidatorMapValidatorMapboxValidatorPolarValidatorSceneValidatorSmithValidatorTernaryValidatorXaxisValidatorYaxisValidatorr   )plotly.validators.layoutr   r   r   r   r   r   r   r   r   r   r   )selfr   r   r   r   r   r   r   r   r   r   r   s               Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/plotly/graph_objs/_layout.py_subplotid_validatorszLayout._subplotid_validators   s    	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ,%%###'##
 
 	
    c                 6    | j                             |          S )N)_subplotid_prop_rematch)r    props     r!   _subplot_re_matchzLayout._subplot_re_matchA   s    &,,T222r#    layout>_   r   r
   fontgridmetar   r   r   titlewidthr   r   bargapboxgapheightimagesr	   r   marginshapesbarmodebarnormboxmodemetasrcmodebarslidersr   autosizecalendarcolorwaycomputeddragmodenewshapetemplate	clickmoder   	funnelgap	hovermode	violingap
colorscale
funnelmode
hoverlabel
scattergap
selections
separators
showlegend
transition
uirevision
violinmodeactiveshapeannotationsbargroupgapboxgroupgaphidesourcespiecolorwayscattermodeuniformtextupdatemenusdatarevisioneditrevisionhiddenlabelsnewselectionplot_bgcolorwaterfallgaphoverdistancehoversubplotsimagedefaultspaper_bgcolorshapedefaultsspikedistancewaterfallmodefunnelgroupgapiciclecolorwaysliderdefaultsviolingroupgapactiveselectionautotypenumbersbarcornerradiusextendpiecolorshiddenlabelssrcminreducedwidthselectdirectiontreemapcolorwayminreducedheightsunburstcolorwayselectiondefaultsselectionrevisionwaterfallgroupgapannotationdefaultsextendiciclecolorsfunnelareacolorwayupdatemenudefaultsextendtreemapcolorsextendsunburstcolorsextendfunnelareacolorsc                     | d         S )a  
        The 'activeselection' property is an instance of Activeselection
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Activeselection`
          - A dict of string/value properties that will be passed
            to the Activeselection constructor

        Returns
        -------
        plotly.graph_objs.layout.Activeselection
        rk    r    s    r!   rk   zLayout.activeselection        %&&r#   c                     || d<   d S )Nrk   r   r    vals     r!   rk   zLayout.activeselection       "%r#   c                     | d         S )ap  
        The 'activeshape' property is an instance of Activeshape
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Activeshape`
          - A dict of string/value properties that will be passed
            to the Activeshape constructor

        Returns
        -------
        plotly.graph_objs.layout.Activeshape
        rQ   r   r   s    r!   rQ   zLayout.activeshape        M""r#   c                     || d<   d S )NrQ   r   r   s     r!   rQ   zLayout.activeshape       !]r#   c                     | d         S )a  
        The 'annotations' property is a tuple of instances of
        Annotation that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Annotation
          - A list or tuple of dicts of string/value properties that
            will be passed to the Annotation constructor

        Returns
        -------
        tuple[plotly.graph_objs.layout.Annotation]
        rR   r   r   s    r!   rR   zLayout.annotations   r   r#   c                     || d<   d S )NrR   r   r   s     r!   rR   zLayout.annotations   r   r#   c                     | d         S )a  
        When used in a template (as
        layout.template.layout.annotationdefaults), sets the default
        property values to use for elements of layout.annotations

        The 'annotationdefaults' property is an instance of Annotation
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Annotation`
          - A dict of string/value properties that will be passed
            to the Annotation constructor

        Returns
        -------
        plotly.graph_objs.layout.Annotation
        rx   r   r   s    r!   rx   zLayout.annotationdefaults       " ())r#   c                     || d<   d S )Nrx   r   r   s     r!   rx   zLayout.annotationdefaults       %(!"""r#   c                     | d         S )a  
        Determines whether or not a layout width or height that has
        been left undefined by the user is initialized on each
        relayout. Note that, regardless of this attribute, an undefined
        layout width or height is always initialized on the first call
        to plot.

        The 'autosize' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r<   r   r   s    r!   r<   zLayout.autosize   s      Jr#   c                     || d<   d S )Nr<   r   r   s     r!   r<   zLayout.autosize
      Zr#   c                     | d         S )a&  
        Using "strict" a numeric string in trace data is not converted
        to a number. Using *convert types* a numeric string in trace
        data may be treated as a number during automatic axis `type`
        detection. This is the default value; however it could be
        overridden for individual axes.

        The 'autotypenumbers' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['convert types', 'strict']

        Returns
        -------
        Any
        rl   r   r   s    r!   rl   zLayout.autotypenumbers  s    " %&&r#   c                     || d<   d S )Nrl   r   r   s     r!   rl   zLayout.autotypenumbers!  r   r#   c                     | d         S )a  
        Sets the rounding of bar corners. May be an integer number of
        pixels, or a percentage of bar width (as a string ending in %).

        The 'barcornerradius' property accepts values of any type

        Returns
        -------
        Any
        rm   r   r   s    r!   rm   zLayout.barcornerradius%  s     %&&r#   c                     || d<   d S )Nrm   r   r   s     r!   rm   zLayout.barcornerradius3  r   r#   c                     | d         S )a  
        Sets the gap (in plot fraction) between bars of adjacent
        location coordinates.

        The 'bargap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r0   r   r   s    r!   r0   zLayout.bargap7       H~r#   c                     || d<   d S )Nr0   r   r   s     r!   r0   zLayout.bargapF      Xr#   c                     | d         S )a  
        Sets the gap (in plot fraction) between bars of the same
        location coordinate.

        The 'bargroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        rS   r   r   s    r!   rS   zLayout.bargroupgapJ  r   r#   c                     || d<   d S )NrS   r   r   s     r!   rS   zLayout.bargroupgapY  r   r#   c                     | d         S )a  
        Determines how bars at the same location coordinate are
        displayed on the graph. With "stack", the bars are stacked on
        top of one another With "relative", the bars are stacked on top
        of one another, with negative values below the axis, positive
        values above With "group", the bars are plotted next to one
        another centered around the shared location. With "overlay",
        the bars are plotted over one another, you might need to reduce
        "opacity" to see multiple bars.

        The 'barmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['stack', 'group', 'overlay', 'relative']

        Returns
        -------
        Any
        r6   r   r   s    r!   r6   zLayout.barmode]  s    ( Ir#   c                     || d<   d S )Nr6   r   r   s     r!   r6   zLayout.barmodes      Yr#   c                     | d         S )a  
        Sets the normalization for bar traces on the graph. With
        "fraction", the value of each bar is divided by the sum of all
        values at that location coordinate. "percent" is the same but
        multiplied by 100 to show percentages.

        The 'barnorm' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['', 'fraction', 'percent']

        Returns
        -------
        Any
        r7   r   r   s    r!   r7   zLayout.barnormw  s      Ir#   c                     || d<   d S )Nr7   r   r   s     r!   r7   zLayout.barnorm  r   r#   c                     | d         S )aJ  
        Sets the gap (in plot fraction) between boxes of adjacent
        location coordinates. Has no effect on traces that have "width"
        set.

        The 'boxgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r1   r   r   s    r!   r1   zLayout.boxgap  s     H~r#   c                     || d<   d S )Nr1   r   r   s     r!   r1   zLayout.boxgap  r   r#   c                     | d         S )aN  
        Sets the gap (in plot fraction) between boxes of the same
        location coordinate. Has no effect on traces that have "width"
        set.

        The 'boxgroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        rT   r   r   s    r!   rT   zLayout.boxgroupgap  s     M""r#   c                     || d<   d S )NrT   r   r   s     r!   rT   zLayout.boxgroupgap  r   r#   c                     | d         S )aY  
        Determines how boxes at the same location coordinate are
        displayed on the graph. If "group", the boxes are plotted next
        to one another centered around the shared location. If
        "overlay", the boxes are plotted over one another, you might
        need to set "opacity" to see them multiple boxes. Has no effect
        on traces that have "width" set.

        The 'boxmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['group', 'overlay']

        Returns
        -------
        Any
        r8   r   r   s    r!   r8   zLayout.boxmode  s    $ Ir#   c                     || d<   d S )Nr8   r   r   s     r!   r8   zLayout.boxmode  r   r#   c                     | d         S )a  
        Sets the default calendar system to use for interpreting and
        displaying dates throughout the plot.

        The 'calendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['chinese', 'coptic', 'discworld', 'ethiopian',
                'gregorian', 'hebrew', 'islamic', 'jalali', 'julian',
                'mayan', 'nanakshahi', 'nepali', 'persian', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r=   r   r   s    r!   r=   zLayout.calendar      " Jr#   c                     || d<   d S )Nr=   r   r   s     r!   r=   zLayout.calendar  r   r#   c                     | d         S )a  
        Determines the mode of single click interactions. "event" is
        the default value and emits the `plotly_click` event. In
        addition this mode emits the `plotly_selected` event in drag
        modes "lasso" and "select", but with no event data attached
        (kept for compatibility reasons). The "select" flag enables
        selecting single data points via click. This mode also supports
        persistent selections, meaning that pressing Shift while
        clicking, adds to / subtracts from an existing selection.
        "select" with `hovermode`: "x" can be confusing, consider
        explicitly setting `hovermode`: "closest" when using this
        feature. Selection events are sent accordingly as long as
        "event" flag is set as well. When the "event" flag is missing,
        `plotly_click` and `plotly_selected` events are not fired.

        The 'clickmode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['event', 'select'] joined with '+' characters
            (e.g. 'event+select')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        rC   r   r   s    r!   rC   zLayout.clickmode  s    6 K  r#   c                     || d<   d S )NrC   r   r   s     r!   rC   zLayout.clickmode      [r#   c                     | d         S )af  
        The 'coloraxis' property is an instance of Coloraxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Coloraxis`
          - A dict of string/value properties that will be passed
            to the Coloraxis constructor

        Returns
        -------
        plotly.graph_objs.layout.Coloraxis
        r   r   r   s    r!   r   zLayout.coloraxis       K  r#   c                     || d<   d S )Nr   r   r   s     r!   r   zLayout.coloraxis  r   r#   c                     | d         S )ak  
        The 'colorscale' property is an instance of Colorscale
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Colorscale`
          - A dict of string/value properties that will be passed
            to the Colorscale constructor

        Returns
        -------
        plotly.graph_objs.layout.Colorscale
        rG   r   r   s    r!   rG   zLayout.colorscale       L!!r#   c                     || d<   d S )NrG   r   r   s     r!   rG   zLayout.colorscale'       \r#   c                     | d         S )a  
        Sets the default trace colors.

        The 'colorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        r>   r   r   s    r!   r>   zLayout.colorway+       Jr#   c                     || d<   d S )Nr>   r   r   s     r!   r>   zLayout.colorway:  r   r#   c                     | d         S )a  
        Placeholder for exporting automargin-impacting values namely
        `margin.t`, `margin.b`, `margin.l` and `margin.r` in "full-
        json" mode.

        The 'computed' property accepts values of any type

        Returns
        -------
        Any
        r?   r   r   s    r!   r?   zLayout.computed>  r   r#   c                     || d<   d S )Nr?   r   r   s     r!   r?   zLayout.computedM  r   r#   c                     | d         S )a#  
        If provided, a changed value tells `Plotly.react` that one or
        more data arrays has changed. This way you can modify arrays
        in-place rather than making a complete new copy for an
        incremental change. If NOT provided, `Plotly.react` assumes
        that data arrays are being treated as immutable, thus any data
        array with a different identity from its predecessor contains
        new data.

        The 'datarevision' property accepts values of any type

        Returns
        -------
        Any
        rZ   r   r   s    r!   rZ   zLayout.datarevisionQ      " N##r#   c                     || d<   d S )NrZ   r   r   s     r!   rZ   zLayout.datarevisiond      "^r#   c                     | d         S )a+  
        Determines the mode of drag interactions. "select" and "lasso"
        apply only to scatter traces with markers or text. "orbit" and
        "turntable" apply only to 3D scenes.

        The 'dragmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['zoom', 'pan', 'select', 'lasso', 'drawclosedpath',
                'drawopenpath', 'drawline', 'drawrect', 'drawcircle',
                'orbit', 'turntable', False]

        Returns
        -------
        Any
        r@   r   r   s    r!   r@   zLayout.dragmodeh  r   r#   c                     || d<   d S )Nr@   r   r   s     r!   r@   zLayout.dragmode{  r   r#   c                     | d         S )a&  
        Controls persistence of user-driven changes in `editable: true`
        configuration, other than trace names and axis titles. Defaults
        to `layout.uirevision`.

        The 'editrevision' property accepts values of any type

        Returns
        -------
        Any
        r[   r   r   s    r!   r[   zLayout.editrevision       N##r#   c                     || d<   d S )Nr[   r   r   s     r!   r[   zLayout.editrevision  r   r#   c                     | d         S )a  
        If `true`, the funnelarea slice colors (whether given by
        `funnelareacolorway` or inherited from `colorway`) will be
        extended to three times its original length by first repeating
        every color 20% lighter then each color 20% darker. This is
        intended to reduce the likelihood of reusing the same color
        when you have many slices, but you can set `false` to disable.
        Colors provided in the trace, using `marker.colors`, are never
        extended.

        The 'extendfunnelareacolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r~   r   r   s    r!   r~   zLayout.extendfunnelareacolors  s    & ,--r#   c                     || d<   d S )Nr~   r   r   s     r!   r~   zLayout.extendfunnelareacolors  s    ),%&&&r#   c                     | d         S )a  
        If `true`, the icicle slice colors (whether given by
        `iciclecolorway` or inherited from `colorway`) will be extended
        to three times its original length by first repeating every
        color 20% lighter then each color 20% darker. This is intended
        to reduce the likelihood of reusing the same color when you
        have many slices, but you can set `false` to disable. Colors
        provided in the trace, using `marker.colors`, are never
        extended.

        The 'extendiciclecolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        ry   r   r   s    r!   ry   zLayout.extendiciclecolors  s    & ())r#   c                     || d<   d S )Nry   r   r   s     r!   ry   zLayout.extendiciclecolors  r   r#   c                     | d         S )ax  
        If `true`, the pie slice colors (whether given by `piecolorway`
        or inherited from `colorway`) will be extended to three times
        its original length by first repeating every color 20% lighter
        then each color 20% darker. This is intended to reduce the
        likelihood of reusing the same color when you have many slices,
        but you can set `false` to disable. Colors provided in the
        trace, using `marker.colors`, are never extended.

        The 'extendpiecolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        rn   r   r   s    r!   rn   zLayout.extendpiecolors  s    $ %&&r#   c                     || d<   d S )Nrn   r   r   s     r!   rn   zLayout.extendpiecolors  r   r#   c                     | d         S )a  
        If `true`, the sunburst slice colors (whether given by
        `sunburstcolorway` or inherited from `colorway`) will be
        extended to three times its original length by first repeating
        every color 20% lighter then each color 20% darker. This is
        intended to reduce the likelihood of reusing the same color
        when you have many slices, but you can set `false` to disable.
        Colors provided in the trace, using `marker.colors`, are never
        extended.

        The 'extendsunburstcolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r}   r   r   s    r!   r}   zLayout.extendsunburstcolors  s    & *++r#   c                     || d<   d S )Nr}   r   r   s     r!   r}   zLayout.extendsunburstcolors  s    '*#$$$r#   c                     | d         S )a  
        If `true`, the treemap slice colors (whether given by
        `treemapcolorway` or inherited from `colorway`) will be
        extended to three times its original length by first repeating
        every color 20% lighter then each color 20% darker. This is
        intended to reduce the likelihood of reusing the same color
        when you have many slices, but you can set `false` to disable.
        Colors provided in the trace, using `marker.colors`, are never
        extended.

        The 'extendtreemapcolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r|   r   r   s    r!   r|   zLayout.extendtreemapcolors  s    & )**r#   c                     || d<   d S )Nr|   r   r   s     r!   r|   zLayout.extendtreemapcolors
  s    &)"###r#   c                     | d         S )a  
        Sets the global font. Note that fonts used in traces and other
        layout components inherit from the global font.

        The 'font' property is an instance of Font
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Font`
          - A dict of string/value properties that will be passed
            to the Font constructor

        Returns
        -------
        plotly.graph_objs.layout.Font
        r+   r   r   s    r!   r+   zLayout.font  s      F|r#   c                     || d<   d S )Nr+   r   r   s     r!   r+   zLayout.font       Vr#   c                     | d         S )a  
        Sets the default funnelarea slice colors. Defaults to the main
        `colorway` used for trace colors. If you specify a new list
        here it can still be extended with lighter and darker colors,
        see `extendfunnelareacolors`.

        The 'funnelareacolorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        rz   r   r   s    r!   rz   zLayout.funnelareacolorway$  s      ())r#   c                     || d<   d S )Nrz   r   r   s     r!   rz   zLayout.funnelareacolorway6  r   r#   c                     | d         S )a  
        Sets the gap (in plot fraction) between bars of adjacent
        location coordinates.

        The 'funnelgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        rD   r   r   s    r!   rD   zLayout.funnelgap:  r   r#   c                     || d<   d S )NrD   r   r   s     r!   rD   zLayout.funnelgapI  r   r#   c                     | d         S )a  
        Sets the gap (in plot fraction) between bars of the same
        location coordinate.

        The 'funnelgroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        rg   r   r   s    r!   rg   zLayout.funnelgroupgapM  s     $%%r#   c                     || d<   d S )Nrg   r   r   s     r!   rg   zLayout.funnelgroupgap\      !$r#   c                     | d         S )am  
        Determines how bars at the same location coordinate are
        displayed on the graph. With "stack", the bars are stacked on
        top of one another With "group", the bars are plotted next to
        one another centered around the shared location. With
        "overlay", the bars are plotted over one another, you might
        need to reduce "opacity" to see multiple bars.

        The 'funnelmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['stack', 'group', 'overlay']

        Returns
        -------
        Any
        rH   r   r   s    r!   rH   zLayout.funnelmode`      $ L!!r#   c                     || d<   d S )NrH   r   r   s     r!   rH   zLayout.funnelmodet  r   r#   c                     | d         S )aH  
        The 'geo' property is an instance of Geo
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Geo`
          - A dict of string/value properties that will be passed
            to the Geo constructor

        Returns
        -------
        plotly.graph_objs.layout.Geo
        r   r   r   s    r!   r   z
Layout.geox       E{r#   c                     || d<   d S )Nr   r   r   s     r!   r   z
Layout.geo      Ur#   c                     | d         S )aM  
        The 'grid' property is an instance of Grid
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Grid`
          - A dict of string/value properties that will be passed
            to the Grid constructor

        Returns
        -------
        plotly.graph_objs.layout.Grid
        r,   r   r   s    r!   r,   zLayout.grid  s     F|r#   c                     || d<   d S )Nr,   r   r   s     r!   r,   zLayout.grid  r   r#   c                     | d         S )z
        Sets the plot's height (in px).

        The 'height' property is a number and may be specified as:
          - An int or float in the interval [10, inf]

        Returns
        -------
        int|float
        r2   r   r   s    r!   r2   zLayout.height  s     H~r#   c                     || d<   d S )Nr2   r   r   s     r!   r2   zLayout.height  r   r#   c                     | d         S )a  
        hiddenlabels is the funnelarea & pie chart analog of
        visible:'legendonly' but it can contain many labels, and can
        simultaneously hide slices from several pies/funnelarea charts

        The 'hiddenlabels' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r\   r   r   s    r!   r\   zLayout.hiddenlabels  s     N##r#   c                     || d<   d S )Nr\   r   r   s     r!   r\   zLayout.hiddenlabels  r   r#   c                     | d         S )z
        Sets the source reference on Chart Studio Cloud for
        `hiddenlabels`.

        The 'hiddenlabelssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        ro   r   r   s    r!   ro   zLayout.hiddenlabelssrc  r   r#   c                     || d<   d S )Nro   r   r   s     r!   ro   zLayout.hiddenlabelssrc  r   r#   c                     | d         S )a  
        Determines whether or not a text link citing the data source is
        placed at the bottom-right cored of the figure. Has only an
        effect only on graphs that have been generated via forked
        graphs from the Chart Studio Cloud (at https://chart-
        studio.plotly.com or on-premise).

        The 'hidesources' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        rU   r   r   s    r!   rU   zLayout.hidesources        M""r#   c                     || d<   d S )NrU   r   r   s     r!   rU   zLayout.hidesources  r   r#   c                     | d         S )a  
        Sets the default distance (in pixels) to look for data to add
        hover labels (-1 means no cutoff, 0 means no looking for data).
        This is only a real distance for hovering on point-like
        objects, like scatter points. For area-like objects (bars,
        scatter fills, etc) hovering is on inside the area and off
        outside, but these objects will not supersede hover on point-
        like objects in case of conflict.

        The 'hoverdistance' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [-1, 9223372036854775807]

        Returns
        -------
        int
        r`   r   r   s    r!   r`   zLayout.hoverdistance  s    & O$$r#   c                     || d<   d S )Nr`   r   r   s     r!   r`   zLayout.hoverdistance       #_r#   c                     | d         S )ak  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor

        Returns
        -------
        plotly.graph_objs.layout.Hoverlabel
        rI   r   r   s    r!   rI   zLayout.hoverlabel  r   r#   c                     || d<   d S )NrI   r   r   s     r!   rI   zLayout.hoverlabel  r   r#   c                     | d         S )a  
        Determines the mode of hover interactions. If "closest", a
        single hoverlabel will appear for the "closest" point within
        the `hoverdistance`. If "x" (or "y"), multiple hoverlabels will
        appear for multiple points at the "closest" x- (or y-)
        coordinate within the `hoverdistance`, with the caveat that no
        more than one hoverlabel will appear per trace. If *x unified*
        (or *y unified*), a single hoverlabel will appear multiple
        points at the closest x- (or y-) coordinate within the
        `hoverdistance` with the caveat that no more than one
        hoverlabel will appear per trace. In this mode, spikelines are
        enabled by default perpendicular to the specified axis. If
        false, hover interactions are disabled.

        The 'hovermode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['x', 'y', 'closest', False, 'x unified', 'y unified']

        Returns
        -------
        Any
        rE   r   r   s    r!   rE   zLayout.hovermode  s    0 K  r#   c                     || d<   d S )NrE   r   r   s     r!   rE   zLayout.hovermode3  r   r#   c                     | d         S )a  
        Determines expansion of hover effects to other subplots If
        "single" just the axis pair of the primary point is included
        without overlaying subplots. If "overlaying" all subplots using
        the main axis and occupying the same space are included. If
        "axis", also include stacked subplots using the same axis when
        `hovermode` is set to "x", *x unified*, "y" or *y unified*.

        The 'hoversubplots' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['single', 'overlaying', 'axis']

        Returns
        -------
        Any
        ra   r   r   s    r!   ra   zLayout.hoversubplots7  s    $ O$$r#   c                     || d<   d S )Nra   r   r   s     r!   ra   zLayout.hoversubplotsK  r   r#   c                     | d         S )a  
        Sets the default icicle slice colors. Defaults to the main
        `colorway` used for trace colors. If you specify a new list
        here it can still be extended with lighter and darker colors,
        see `extendiciclecolors`.

        The 'iciclecolorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        rh   r   r   s    r!   rh   zLayout.iciclecolorwayO  s      $%%r#   c                     || d<   d S )Nrh   r   r   s     r!   rh   zLayout.iciclecolorwaya  r   r#   c                     | d         S )a}  
        The 'images' property is a tuple of instances of
        Image that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Image
          - A list or tuple of dicts of string/value properties that
            will be passed to the Image constructor

        Returns
        -------
        tuple[plotly.graph_objs.layout.Image]
        r3   r   r   s    r!   r3   zLayout.imagese  r   r#   c                     || d<   d S )Nr3   r   r   s     r!   r3   zLayout.imagest  r   r#   c                     | d         S )a  
        When used in a template (as
        layout.template.layout.imagedefaults), sets the default
        property values to use for elements of layout.images

        The 'imagedefaults' property is an instance of Image
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Image`
          - A dict of string/value properties that will be passed
            to the Image constructor

        Returns
        -------
        plotly.graph_objs.layout.Image
        rb   r   r   s    r!   rb   zLayout.imagedefaultsx      " O$$r#   c                     || d<   d S )Nrb   r   r   s     r!   rb   zLayout.imagedefaults  r   r#   c                     | d         S )aW  
        The 'legend' property is an instance of Legend
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Legend`
          - A dict of string/value properties that will be passed
            to the Legend constructor

        Returns
        -------
        plotly.graph_objs.layout.Legend
        r	   r   r   s    r!   r	   zLayout.legend  r   r#   c                     || d<   d S )Nr	   r   r   s     r!   r	   zLayout.legend  r   r#   c                     | d         S )aH  
        The 'map' property is an instance of Map
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Map`
          - A dict of string/value properties that will be passed
            to the Map constructor

        Returns
        -------
        plotly.graph_objs.layout.Map
        r
   r   r   s    r!   r
   z
Layout.map  r   r#   c                     || d<   d S )Nr
   r   r   s     r!   r
   z
Layout.map  r   r#   c                     | d         S )aW  
        The 'mapbox' property is an instance of Mapbox
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Mapbox`
          - A dict of string/value properties that will be passed
            to the Mapbox constructor

        Returns
        -------
        plotly.graph_objs.layout.Mapbox
        r   r   r   s    r!   r   zLayout.mapbox  r   r#   c                     || d<   d S )Nr   r   r   s     r!   r   zLayout.mapbox  r   r#   c                     | d         S )aW  
        The 'margin' property is an instance of Margin
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Margin`
          - A dict of string/value properties that will be passed
            to the Margin constructor

        Returns
        -------
        plotly.graph_objs.layout.Margin
        r4   r   r   s    r!   r4   zLayout.margin  r   r#   c                     || d<   d S )Nr4   r   r   s     r!   r4   zLayout.margin  r   r#   c                     | d         S )a  
        Assigns extra meta information that can be used in various
        `text` attributes. Attributes such as the graph, axis and
        colorbar `title.text`, annotation `text` `trace.name` in legend
        items, `rangeselector`, `updatemenus` and `sliders` `label`
        text all support `meta`. One can access `meta` fields using
        template strings: `%{meta[i]}` where `i` is the index of the
        `meta` item in question. `meta` can also be an object for
        example `{key: value}` which can be accessed %{meta[key]}.

        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r-   r   r   s    r!   r-   zLayout.meta  s    $ F|r#   c                     || d<   d S )Nr-   r   r   s     r!   r-   zLayout.meta  r   r#   c                     | d         S )z
        Sets the source reference on Chart Studio Cloud for `meta`.

        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r9   r   r   s    r!   r9   zLayout.metasrc  s     Ir#   c                     || d<   d S )Nr9   r   r   s     r!   r9   zLayout.metasrc  r   r#   c                     | d         S )a  
        Minimum height of the plot with margin.automargin applied (in
        px)

        The 'minreducedheight' property is a number and may be specified as:
          - An int or float in the interval [2, inf]

        Returns
        -------
        int|float
        rs   r   r   s    r!   rs   zLayout.minreducedheight  s     &''r#   c                     || d<   d S )Nrs   r   r   s     r!   rs   zLayout.minreducedheight      #&   r#   c                     | d         S )a  
        Minimum width of the plot with margin.automargin applied (in
        px)

        The 'minreducedwidth' property is a number and may be specified as:
          - An int or float in the interval [2, inf]

        Returns
        -------
        int|float
        rp   r   r   s    r!   rp   zLayout.minreducedwidth  r   r#   c                     || d<   d S )Nrp   r   r   s     r!   rp   zLayout.minreducedwidth'  r   r#   c                     | d         S )a\  
        The 'modebar' property is an instance of Modebar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Modebar`
          - A dict of string/value properties that will be passed
            to the Modebar constructor

        Returns
        -------
        plotly.graph_objs.layout.Modebar
        r:   r   r   s    r!   r:   zLayout.modebar+       Ir#   c                     || d<   d S )Nr:   r   r   s     r!   r:   zLayout.modebar:  r   r#   c                     | d         S )au  
        The 'newselection' property is an instance of Newselection
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Newselection`
          - A dict of string/value properties that will be passed
            to the Newselection constructor

        Returns
        -------
        plotly.graph_objs.layout.Newselection
        r]   r   r   s    r!   r]   zLayout.newselection>  r   r#   c                     || d<   d S )Nr]   r   r   s     r!   r]   zLayout.newselectionM  r   r#   c                     | d         S )aa  
        The 'newshape' property is an instance of Newshape
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Newshape`
          - A dict of string/value properties that will be passed
            to the Newshape constructor

        Returns
        -------
        plotly.graph_objs.layout.Newshape
        rA   r   r   s    r!   rA   zLayout.newshapeQ  r   r#   c                     || d<   d S )NrA   r   r   s     r!   rA   zLayout.newshape`  r   r#   c                     | d         S )a  
        Sets the background color of the paper where the graph is
        drawn.

        The 'paper_bgcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color: see https://plotly.com/python/css-colors/ for a list

        Returns
        -------
        str
        rc   r   r   s    r!   rc   zLayout.paper_bgcolord  r   r#   c                     || d<   d S )Nrc   r   r   s     r!   rc   zLayout.paper_bgcolorw  r   r#   c                     | d         S )a  
        Sets the default pie slice colors. Defaults to the main
        `colorway` used for trace colors. If you specify a new list
        here it can still be extended with lighter and darker colors,
        see `extendpiecolors`.

        The 'piecolorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        rV   r   r   s    r!   rV   zLayout.piecolorway{  r   r#   c                     || d<   d S )NrV   r   r   s     r!   rV   zLayout.piecolorway  r   r#   c                     | d         S )a  
        Sets the background color of the plotting area in-between x and
        y axes.

        The 'plot_bgcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color: see https://plotly.com/python/css-colors/ for a list

        Returns
        -------
        str
        r^   r   r   s    r!   r^   zLayout.plot_bgcolor  r   r#   c                     || d<   d S )Nr^   r   r   s     r!   r^   zLayout.plot_bgcolor  r   r#   c                     | d         S )aR  
        The 'polar' property is an instance of Polar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Polar`
          - A dict of string/value properties that will be passed
            to the Polar constructor

        Returns
        -------
        plotly.graph_objs.layout.Polar
        r   r   r   s    r!   r   zLayout.polar       G}r#   c                     || d<   d S )Nr   r   r   s     r!   r   zLayout.polar      Wr#   c                     | d         S )a6  
        Sets the gap (in plot fraction) between scatter points of
        adjacent location coordinates. Defaults to `bargap`.

        The 'scattergap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        rJ   r   r   s    r!   rJ   zLayout.scattergap  r   r#   c                     || d<   d S )NrJ   r   r   s     r!   rJ   zLayout.scattergap  r   r#   c                     | d         S )aT  
        Determines how scatter points at the same location coordinate
        are displayed on the graph. With "group", the scatter points
        are plotted next to one another centered around the shared
        location. With "overlay", the scatter points are plotted over
        one another, you might need to reduce "opacity" to see multiple
        scatter points.

        The 'scattermode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['group', 'overlay']

        Returns
        -------
        Any
        rW   r   r   s    r!   rW   zLayout.scattermode  s    $ M""r#   c                     || d<   d S )NrW   r   r   s     r!   rW   zLayout.scattermode  r   r#   c                     | d         S )aR  
        The 'scene' property is an instance of Scene
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Scene`
          - A dict of string/value properties that will be passed
            to the Scene constructor

        Returns
        -------
        plotly.graph_objs.layout.Scene
        r   r   r   s    r!   r   zLayout.scene  r  r#   c                     || d<   d S )Nr   r   r   s     r!   r   zLayout.scene  r  r#   c                     | d         S )a  
        When `dragmode` is set to "select", this limits the selection
        of the drag to horizontal, vertical or diagonal. "h" only
        allows horizontal selection, "v" only vertical, "d" only
        diagonal and "any" sets no limit.

        The 'selectdirection' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['h', 'v', 'd', 'any']

        Returns
        -------
        Any
        rq   r   r   s    r!   rq   zLayout.selectdirection        %&&r#   c                     || d<   d S )Nrq   r   r   s     r!   rq   zLayout.selectdirection  r   r#   c                     | d         S )z
        Controls persistence of user-driven changes in selected points
        from all traces.

        The 'selectionrevision' property accepts values of any type

        Returns
        -------
        Any
        rv   r   r   s    r!   rv   zLayout.selectionrevision  s     '((r#   c                     || d<   d S )Nrv   r   r   s     r!   rv   zLayout.selectionrevision      $' !!!r#   c                     | d         S )a  
        The 'selections' property is a tuple of instances of
        Selection that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Selection
          - A list or tuple of dicts of string/value properties that
            will be passed to the Selection constructor

        Returns
        -------
        tuple[plotly.graph_objs.layout.Selection]
        rK   r   r   s    r!   rK   zLayout.selections!  r   r#   c                     || d<   d S )NrK   r   r   s     r!   rK   zLayout.selections0  r   r#   c                     | d         S )a  
        When used in a template (as
        layout.template.layout.selectiondefaults), sets the default
        property values to use for elements of layout.selections

        The 'selectiondefaults' property is an instance of Selection
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Selection`
          - A dict of string/value properties that will be passed
            to the Selection constructor

        Returns
        -------
        plotly.graph_objs.layout.Selection
        ru   r   r   s    r!   ru   zLayout.selectiondefaults4  s    " '((r#   c                     || d<   d S )Nru   r   r   s     r!   ru   zLayout.selectiondefaultsG  r'  r#   c                     | d         S )a  
        Sets the decimal and thousand separators. For example, *. *
        puts a '.' before decimals and a space between thousands. In
        English locales, dflt is ".," but other locales may alter this
        default.

        The 'separators' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        rL   r   r   s    r!   rL   zLayout.separatorsK        L!!r#   c                     || d<   d S )NrL   r   r   s     r!   rL   zLayout.separators]  r   r#   c                     | d         S )a}  
        The 'shapes' property is a tuple of instances of
        Shape that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Shape
          - A list or tuple of dicts of string/value properties that
            will be passed to the Shape constructor

        Returns
        -------
        tuple[plotly.graph_objs.layout.Shape]
        r5   r   r   s    r!   r5   zLayout.shapesa  r   r#   c                     || d<   d S )Nr5   r   r   s     r!   r5   zLayout.shapesp  r   r#   c                     | d         S )a  
        When used in a template (as
        layout.template.layout.shapedefaults), sets the default
        property values to use for elements of layout.shapes

        The 'shapedefaults' property is an instance of Shape
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Shape`
          - A dict of string/value properties that will be passed
            to the Shape constructor

        Returns
        -------
        plotly.graph_objs.layout.Shape
        rd   r   r   s    r!   rd   zLayout.shapedefaultst  r   r#   c                     || d<   d S )Nrd   r   r   s     r!   rd   zLayout.shapedefaults  r   r#   c                     | d         S )a  
        Determines whether or not a legend is drawn. Default is `true`
        if there is a trace to show and any of these: a) Two or more
        traces would by default be shown in the legend. b) One pie
        trace is shown in the legend. c) One trace is explicitly given
        with `showlegend: true`.

        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        rM   r   r   s    r!   rM   zLayout.showlegend  r-  r#   c                     || d<   d S )NrM   r   r   s     r!   rM   zLayout.showlegend  r   r#   c                     | d         S )a  
        The 'sliders' property is a tuple of instances of
        Slider that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Slider
          - A list or tuple of dicts of string/value properties that
            will be passed to the Slider constructor

        Returns
        -------
        tuple[plotly.graph_objs.layout.Slider]
        r;   r   r   s    r!   r;   zLayout.sliders  r  r#   c                     || d<   d S )Nr;   r   r   s     r!   r;   zLayout.sliders  r   r#   c                     | d         S )a  
        When used in a template (as
        layout.template.layout.sliderdefaults), sets the default
        property values to use for elements of layout.sliders

        The 'sliderdefaults' property is an instance of Slider
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Slider`
          - A dict of string/value properties that will be passed
            to the Slider constructor

        Returns
        -------
        plotly.graph_objs.layout.Slider
        ri   r   r   s    r!   ri   zLayout.sliderdefaults  s    " $%%r#   c                     || d<   d S )Nri   r   r   s     r!   ri   zLayout.sliderdefaults  r   r#   c                     | d         S )aR  
        The 'smith' property is an instance of Smith
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Smith`
          - A dict of string/value properties that will be passed
            to the Smith constructor

        Returns
        -------
        plotly.graph_objs.layout.Smith
        r   r   r   s    r!   r   zLayout.smith  r  r#   c                     || d<   d S )Nr   r   r   s     r!   r   zLayout.smith  r  r#   c                     | d         S )aE  
        Sets the default distance (in pixels) to look for data to draw
        spikelines to (-1 means no cutoff, 0 means no looking for
        data). As with hoverdistance, distance does not apply to area-
        like objects. In addition, some objects can be hovered on but
        will not generate spikelines, such as scatter fills.

        The 'spikedistance' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [-1, 9223372036854775807]

        Returns
        -------
        int
        re   r   r   s    r!   re   zLayout.spikedistance  r   r#   c                     || d<   d S )Nre   r   r   s     r!   re   zLayout.spikedistance  r   r#   c                     | d         S )a  
        Sets the default sunburst slice colors. Defaults to the main
        `colorway` used for trace colors. If you specify a new list
        here it can still be extended with lighter and darker colors,
        see `extendsunburstcolors`.

        The 'sunburstcolorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        rt   r   r   s    r!   rt   zLayout.sunburstcolorway  s      &''r#   c                     || d<   d S )Nrt   r   r   s     r!   rt   zLayout.sunburstcolorway  r  r#   c                     | d         S )a  
        Default attributes to be applied to the plot. This should be a
        dict with format: `{'layout': layoutTemplate, 'data':
        {trace_type: [traceTemplate, ...], ...}}` where
        `layoutTemplate` is a dict matching the structure of
        `figure.layout` and `traceTemplate` is a dict matching the
        structure of the trace with type `trace_type` (e.g. 'scatter').
        Alternatively, this may be specified as an instance of
        plotly.graph_objs.layout.Template.  Trace templates are applied
        cyclically to traces of each type. Container arrays (eg
        `annotations`) have special handling: An object ending in
        `defaults` (eg `annotationdefaults`) is applied to each array
        item. But if an item has a `templateitemname` key we look in
        the template array for an item with matching `name` and apply
        that instead. If no matching `name` is found we mark the item
        invisible. Any named template item not referenced is appended
        to the end of the array, so this can be used to add a watermark
        annotation or a logo image, for example. To omit one of these
        items on the plot, make an item with matching
        `templateitemname` and `visible: false`.

        The 'template' property is an instance of Template
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Template`
          - A dict of string/value properties that will be passed
            to the Template constructor
          - The name of a registered template where current registered templates
            are stored in the plotly.io.templates configuration object. The names
            of all registered templates can be retrieved with:
                >>> import plotly.io as pio
                >>> list(pio.templates)  # doctest: +ELLIPSIS
                ['ggplot2', 'seaborn', 'simple_white', 'plotly', 'plotly_white', ...]

          - A string containing multiple registered template names, joined on '+'
            characters (e.g. 'template1+template2'). In this case the resulting
            template is computed by merging together the collection of registered
            templates

        Returns
        -------
        plotly.graph_objs.layout.Template
        rB   r   r   s    r!   rB   zLayout.template  s    X Jr#   c                     || d<   d S )NrB   r   r   s     r!   rB   zLayout.template9  r   r#   c                     | d         S )a\  
        The 'ternary' property is an instance of Ternary
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Ternary`
          - A dict of string/value properties that will be passed
            to the Ternary constructor

        Returns
        -------
        plotly.graph_objs.layout.Ternary
        r   r   r   s    r!   r   zLayout.ternary=  r  r#   c                     || d<   d S )Nr   r   r   s     r!   r   zLayout.ternaryL  r   r#   c                     | d         S )aR  
        The 'title' property is an instance of Title
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Title`
          - A dict of string/value properties that will be passed
            to the Title constructor

        Returns
        -------
        plotly.graph_objs.layout.Title
        r.   r   r   s    r!   r.   zLayout.titleP  r  r#   c                     || d<   d S )Nr.   r   r   s     r!   r.   zLayout.title_  r  r#   c                     | d         S )a  
        Sets transition options used during Plotly.react updates.

        The 'transition' property is an instance of Transition
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Transition`
          - A dict of string/value properties that will be passed
            to the Transition constructor

        Returns
        -------
        plotly.graph_objs.layout.Transition
        rN   r   r   s    r!   rN   zLayout.transitionc  s     L!!r#   c                     || d<   d S )NrN   r   r   s     r!   rN   zLayout.transitiont  r   r#   c                     | d         S )a  
        Sets the default treemap slice colors. Defaults to the main
        `colorway` used for trace colors. If you specify a new list
        here it can still be extended with lighter and darker colors,
        see `extendtreemapcolors`.

        The 'treemapcolorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        rr   r   r   s    r!   rr   zLayout.treemapcolorwayx  r#  r#   c                     || d<   d S )Nrr   r   r   s     r!   rr   zLayout.treemapcolorway  r   r#   c                     | d         S )a  
        Used to allow user interactions with the plot to persist after
        `Plotly.react` calls that are unaware of these interactions. If
        `uirevision` is omitted, or if it is given and it changed from
        the previous `Plotly.react` call, the exact new figure is used.
        If `uirevision` is truthy and did NOT change, any attribute
        that has been affected by user interactions and did not receive
        a different value in the new figure will keep the interaction
        value. `layout.uirevision` attribute serves as the default for
        `uirevision` attributes in various sub-containers. For finer
        control you can set these sub-attributes directly. For example,
        if your app separately controls the data on the x and y axes
        you might set `xaxis.uirevision=*time*` and
        `yaxis.uirevision=*cost*`. Then if only the y data is changed,
        you can update `yaxis.uirevision=*quantity*` and the y axis
        range will reset but the x axis range will retain any user-
        driven zoom.

        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        rO   r   r   s    r!   rO   zLayout.uirevision  s    4 L!!r#   c                     || d<   d S )NrO   r   r   s     r!   rO   zLayout.uirevision  r   r#   c                     | d         S )ap  
        The 'uniformtext' property is an instance of Uniformtext
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Uniformtext`
          - A dict of string/value properties that will be passed
            to the Uniformtext constructor

        Returns
        -------
        plotly.graph_objs.layout.Uniformtext
        rX   r   r   s    r!   rX   zLayout.uniformtext  r   r#   c                     || d<   d S )NrX   r   r   s     r!   rX   zLayout.uniformtext  r   r#   c                     | d         S )a  
        The 'updatemenus' property is a tuple of instances of
        Updatemenu that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Updatemenu
          - A list or tuple of dicts of string/value properties that
            will be passed to the Updatemenu constructor

        Returns
        -------
        tuple[plotly.graph_objs.layout.Updatemenu]
        rY   r   r   s    r!   rY   zLayout.updatemenus  r   r#   c                     || d<   d S )NrY   r   r   s     r!   rY   zLayout.updatemenus  r   r#   c                     | d         S )a  
        When used in a template (as
        layout.template.layout.updatemenudefaults), sets the default
        property values to use for elements of layout.updatemenus

        The 'updatemenudefaults' property is an instance of Updatemenu
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Updatemenu`
          - A dict of string/value properties that will be passed
            to the Updatemenu constructor

        Returns
        -------
        plotly.graph_objs.layout.Updatemenu
        r{   r   r   s    r!   r{   zLayout.updatemenudefaults  r   r#   c                     || d<   d S )Nr{   r   r   s     r!   r{   zLayout.updatemenudefaults  r   r#   c                     | d         S )aO  
        Sets the gap (in plot fraction) between violins of adjacent
        location coordinates. Has no effect on traces that have "width"
        set.

        The 'violingap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        rF   r   r   s    r!   rF   zLayout.violingap  s     K  r#   c                     || d<   d S )NrF   r   r   s     r!   rF   zLayout.violingap  r   r#   c                     | d         S )aS  
        Sets the gap (in plot fraction) between violins of the same
        location coordinate. Has no effect on traces that have "width"
        set.

        The 'violingroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        rj   r   r   s    r!   rj   zLayout.violingroupgap  s     $%%r#   c                     || d<   d S )Nrj   r   r   s     r!   rj   zLayout.violingroupgap  r   r#   c                     | d         S )ad  
        Determines how violins at the same location coordinate are
        displayed on the graph. If "group", the violins are plotted
        next to one another centered around the shared location. If
        "overlay", the violins are plotted over one another, you might
        need to set "opacity" to see them multiple violins. Has no
        effect on traces that have "width" set.

        The 'violinmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['group', 'overlay']

        Returns
        -------
        Any
        rP   r   r   s    r!   rP   zLayout.violinmode  r   r#   c                     || d<   d S )NrP   r   r   s     r!   rP   zLayout.violinmode'  r   r#   c                     | d         S )a  
        Sets the gap (in plot fraction) between bars of adjacent
        location coordinates.

        The 'waterfallgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r_   r   r   s    r!   r_   zLayout.waterfallgap+  r   r#   c                     || d<   d S )Nr_   r   r   s     r!   r_   zLayout.waterfallgap:  r   r#   c                     | d         S )a  
        Sets the gap (in plot fraction) between bars of the same
        location coordinate.

        The 'waterfallgroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        rw   r   r   s    r!   rw   zLayout.waterfallgroupgap>  s     '((r#   c                     || d<   d S )Nrw   r   r   s     r!   rw   zLayout.waterfallgroupgapM  r'  r#   c                     | d         S )a&  
        Determines how bars at the same location coordinate are
        displayed on the graph. With "group", the bars are plotted next
        to one another centered around the shared location. With
        "overlay", the bars are plotted over one another, you might
        need to reduce "opacity" to see multiple bars.

        The 'waterfallmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['group', 'overlay']

        Returns
        -------
        Any
        rf   r   r   s    r!   rf   zLayout.waterfallmodeQ  r   r#   c                     || d<   d S )Nrf   r   r   s     r!   rf   zLayout.waterfallmoded  r   r#   c                     | d         S )z
        Sets the plot's width (in px).

        The 'width' property is a number and may be specified as:
          - An int or float in the interval [10, inf]

        Returns
        -------
        int|float
        r/   r   r   s    r!   r/   zLayout.widthh  s     G}r#   c                     || d<   d S )Nr/   r   r   s     r!   r/   zLayout.widthv  r  r#   c                     | d         S )aR  
        The 'xaxis' property is an instance of XAxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.XAxis`
          - A dict of string/value properties that will be passed
            to the XAxis constructor

        Returns
        -------
        plotly.graph_objs.layout.XAxis
        r   r   r   s    r!   r   zLayout.xaxisz  r  r#   c                     || d<   d S )Nr   r   r   s     r!   r   zLayout.xaxis  r  r#   c                     | d         S )aR  
        The 'yaxis' property is an instance of YAxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.YAxis`
          - A dict of string/value properties that will be passed
            to the YAxis constructor

        Returns
        -------
        plotly.graph_objs.layout.YAxis
        r   r   r   s    r!   r   zLayout.yaxis  r  r#   c                     || d<   d S )Nr   r   r   s     r!   r   zLayout.yaxis  r  r#   c                     dS )Naa          activeselection
            :class:`plotly.graph_objects.layout.Activeselection`
            instance or dict with compatible properties
        activeshape
            :class:`plotly.graph_objects.layout.Activeshape`
            instance or dict with compatible properties
        annotations
            A tuple of
            :class:`plotly.graph_objects.layout.Annotation`
            instances or dicts with compatible properties
        annotationdefaults
            When used in a template (as
            layout.template.layout.annotationdefaults), sets the
            default property values to use for elements of
            layout.annotations
        autosize
            Determines whether or not a layout width or height that
            has been left undefined by the user is initialized on
            each relayout. Note that, regardless of this attribute,
            an undefined layout width or height is always
            initialized on the first call to plot.
        autotypenumbers
            Using "strict" a numeric string in trace data is not
            converted to a number. Using *convert types* a numeric
            string in trace data may be treated as a number during
            automatic axis `type` detection. This is the default
            value; however it could be overridden for individual
            axes.
        barcornerradius
            Sets the rounding of bar corners. May be an integer
            number of pixels, or a percentage of bar width (as a
            string ending in %).
        bargap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        bargroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        barmode
            Determines how bars at the same location coordinate are
            displayed on the graph. With "stack", the bars are
            stacked on top of one another With "relative", the bars
            are stacked on top of one another, with negative values
            below the axis, positive values above With "group", the
            bars are plotted next to one another centered around
            the shared location. With "overlay", the bars are
            plotted over one another, you might need to reduce
            "opacity" to see multiple bars.
        barnorm
            Sets the normalization for bar traces on the graph.
            With "fraction", the value of each bar is divided by
            the sum of all values at that location coordinate.
            "percent" is the same but multiplied by 100 to show
            percentages.
        boxgap
            Sets the gap (in plot fraction) between boxes of
            adjacent location coordinates. Has no effect on traces
            that have "width" set.
        boxgroupgap
            Sets the gap (in plot fraction) between boxes of the
            same location coordinate. Has no effect on traces that
            have "width" set.
        boxmode
            Determines how boxes at the same location coordinate
            are displayed on the graph. If "group", the boxes are
            plotted next to one another centered around the shared
            location. If "overlay", the boxes are plotted over one
            another, you might need to set "opacity" to see them
            multiple boxes. Has no effect on traces that have
            "width" set.
        calendar
            Sets the default calendar system to use for
            interpreting and displaying dates throughout the plot.
        clickmode
            Determines the mode of single click interactions.
            "event" is the default value and emits the
            `plotly_click` event. In addition this mode emits the
            `plotly_selected` event in drag modes "lasso" and
            "select", but with no event data attached (kept for
            compatibility reasons). The "select" flag enables
            selecting single data points via click. This mode also
            supports persistent selections, meaning that pressing
            Shift while clicking, adds to / subtracts from an
            existing selection. "select" with `hovermode`: "x" can
            be confusing, consider explicitly setting `hovermode`:
            "closest" when using this feature. Selection events are
            sent accordingly as long as "event" flag is set as
            well. When the "event" flag is missing, `plotly_click`
            and `plotly_selected` events are not fired.
        coloraxis
            :class:`plotly.graph_objects.layout.Coloraxis` instance
            or dict with compatible properties
        colorscale
            :class:`plotly.graph_objects.layout.Colorscale`
            instance or dict with compatible properties
        colorway
            Sets the default trace colors.
        computed
            Placeholder for exporting automargin-impacting values
            namely `margin.t`, `margin.b`, `margin.l` and
            `margin.r` in "full-json" mode.
        datarevision
            If provided, a changed value tells `Plotly.react` that
            one or more data arrays has changed. This way you can
            modify arrays in-place rather than making a complete
            new copy for an incremental change. If NOT provided,
            `Plotly.react` assumes that data arrays are being
            treated as immutable, thus any data array with a
            different identity from its predecessor contains new
            data.
        dragmode
            Determines the mode of drag interactions. "select" and
            "lasso" apply only to scatter traces with markers or
            text. "orbit" and "turntable" apply only to 3D scenes.
        editrevision
            Controls persistence of user-driven changes in
            `editable: true` configuration, other than trace names
            and axis titles. Defaults to `layout.uirevision`.
        extendfunnelareacolors
            If `true`, the funnelarea slice colors (whether given
            by `funnelareacolorway` or inherited from `colorway`)
            will be extended to three times its original length by
            first repeating every color 20% lighter then each color
            20% darker. This is intended to reduce the likelihood
            of reusing the same color when you have many slices,
            but you can set `false` to disable. Colors provided in
            the trace, using `marker.colors`, are never extended.
        extendiciclecolors
            If `true`, the icicle slice colors (whether given by
            `iciclecolorway` or inherited from `colorway`) will be
            extended to three times its original length by first
            repeating every color 20% lighter then each color 20%
            darker. This is intended to reduce the likelihood of
            reusing the same color when you have many slices, but
            you can set `false` to disable. Colors provided in the
            trace, using `marker.colors`, are never extended.
        extendpiecolors
            If `true`, the pie slice colors (whether given by
            `piecolorway` or inherited from `colorway`) will be
            extended to three times its original length by first
            repeating every color 20% lighter then each color 20%
            darker. This is intended to reduce the likelihood of
            reusing the same color when you have many slices, but
            you can set `false` to disable. Colors provided in the
            trace, using `marker.colors`, are never extended.
        extendsunburstcolors
            If `true`, the sunburst slice colors (whether given by
            `sunburstcolorway` or inherited from `colorway`) will
            be extended to three times its original length by first
            repeating every color 20% lighter then each color 20%
            darker. This is intended to reduce the likelihood of
            reusing the same color when you have many slices, but
            you can set `false` to disable. Colors provided in the
            trace, using `marker.colors`, are never extended.
        extendtreemapcolors
            If `true`, the treemap slice colors (whether given by
            `treemapcolorway` or inherited from `colorway`) will be
            extended to three times its original length by first
            repeating every color 20% lighter then each color 20%
            darker. This is intended to reduce the likelihood of
            reusing the same color when you have many slices, but
            you can set `false` to disable. Colors provided in the
            trace, using `marker.colors`, are never extended.
        font
            Sets the global font. Note that fonts used in traces
            and other layout components inherit from the global
            font.
        funnelareacolorway
            Sets the default funnelarea slice colors. Defaults to
            the main `colorway` used for trace colors. If you
            specify a new list here it can still be extended with
            lighter and darker colors, see
            `extendfunnelareacolors`.
        funnelgap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        funnelgroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        funnelmode
            Determines how bars at the same location coordinate are
            displayed on the graph. With "stack", the bars are
            stacked on top of one another With "group", the bars
            are plotted next to one another centered around the
            shared location. With "overlay", the bars are plotted
            over one another, you might need to reduce "opacity" to
            see multiple bars.
        geo
            :class:`plotly.graph_objects.layout.Geo` instance or
            dict with compatible properties
        grid
            :class:`plotly.graph_objects.layout.Grid` instance or
            dict with compatible properties
        height
            Sets the plot's height (in px).
        hiddenlabels
            hiddenlabels is the funnelarea & pie chart analog of
            visible:'legendonly' but it can contain many labels,
            and can simultaneously hide slices from several
            pies/funnelarea charts
        hiddenlabelssrc
            Sets the source reference on Chart Studio Cloud for
            `hiddenlabels`.
        hidesources
            Determines whether or not a text link citing the data
            source is placed at the bottom-right cored of the
            figure. Has only an effect only on graphs that have
            been generated via forked graphs from the Chart Studio
            Cloud (at https://chart-studio.plotly.com or on-
            premise).
        hoverdistance
            Sets the default distance (in pixels) to look for data
            to add hover labels (-1 means no cutoff, 0 means no
            looking for data). This is only a real distance for
            hovering on point-like objects, like scatter points.
            For area-like objects (bars, scatter fills, etc)
            hovering is on inside the area and off outside, but
            these objects will not supersede hover on point-like
            objects in case of conflict.
        hoverlabel
            :class:`plotly.graph_objects.layout.Hoverlabel`
            instance or dict with compatible properties
        hovermode
            Determines the mode of hover interactions. If
            "closest", a single hoverlabel will appear for the
            "closest" point within the `hoverdistance`. If "x" (or
            "y"), multiple hoverlabels will appear for multiple
            points at the "closest" x- (or y-) coordinate within
            the `hoverdistance`, with the caveat that no more than
            one hoverlabel will appear per trace. If *x unified*
            (or *y unified*), a single hoverlabel will appear
            multiple points at the closest x- (or y-) coordinate
            within the `hoverdistance` with the caveat that no more
            than one hoverlabel will appear per trace. In this
            mode, spikelines are enabled by default perpendicular
            to the specified axis. If false, hover interactions are
            disabled.
        hoversubplots
            Determines expansion of hover effects to other subplots
            If "single" just the axis pair of the primary point is
            included without overlaying subplots. If "overlaying"
            all subplots using the main axis and occupying the same
            space are included. If "axis", also include stacked
            subplots using the same axis when `hovermode` is set to
            "x", *x unified*, "y" or *y unified*.
        iciclecolorway
            Sets the default icicle slice colors. Defaults to the
            main `colorway` used for trace colors. If you specify a
            new list here it can still be extended with lighter and
            darker colors, see `extendiciclecolors`.
        images
            A tuple of :class:`plotly.graph_objects.layout.Image`
            instances or dicts with compatible properties
        imagedefaults
            When used in a template (as
            layout.template.layout.imagedefaults), sets the default
            property values to use for elements of layout.images
        legend
            :class:`plotly.graph_objects.layout.Legend` instance or
            dict with compatible properties
        map
            :class:`plotly.graph_objects.layout.Map` instance or
            dict with compatible properties
        mapbox
            :class:`plotly.graph_objects.layout.Mapbox` instance or
            dict with compatible properties
        margin
            :class:`plotly.graph_objects.layout.Margin` instance or
            dict with compatible properties
        meta
            Assigns extra meta information that can be used in
            various `text` attributes. Attributes such as the
            graph, axis and colorbar `title.text`, annotation
            `text` `trace.name` in legend items, `rangeselector`,
            `updatemenus` and `sliders` `label` text all support
            `meta`. One can access `meta` fields using template
            strings: `%{meta[i]}` where `i` is the index of the
            `meta` item in question. `meta` can also be an object
            for example `{key: value}` which can be accessed
            %{meta[key]}.
        metasrc
            Sets the source reference on Chart Studio Cloud for
            `meta`.
        minreducedheight
            Minimum height of the plot with margin.automargin
            applied (in px)
        minreducedwidth
            Minimum width of the plot with margin.automargin
            applied (in px)
        modebar
            :class:`plotly.graph_objects.layout.Modebar` instance
            or dict with compatible properties
        newselection
            :class:`plotly.graph_objects.layout.Newselection`
            instance or dict with compatible properties
        newshape
            :class:`plotly.graph_objects.layout.Newshape` instance
            or dict with compatible properties
        paper_bgcolor
            Sets the background color of the paper where the graph
            is drawn.
        piecolorway
            Sets the default pie slice colors. Defaults to the main
            `colorway` used for trace colors. If you specify a new
            list here it can still be extended with lighter and
            darker colors, see `extendpiecolors`.
        plot_bgcolor
            Sets the background color of the plotting area in-
            between x and y axes.
        polar
            :class:`plotly.graph_objects.layout.Polar` instance or
            dict with compatible properties
        scattergap
            Sets the gap (in plot fraction) between scatter points
            of adjacent location coordinates. Defaults to `bargap`.
        scattermode
            Determines how scatter points at the same location
            coordinate are displayed on the graph. With "group",
            the scatter points are plotted next to one another
            centered around the shared location. With "overlay",
            the scatter points are plotted over one another, you
            might need to reduce "opacity" to see multiple scatter
            points.
        scene
            :class:`plotly.graph_objects.layout.Scene` instance or
            dict with compatible properties
        selectdirection
            When `dragmode` is set to "select", this limits the
            selection of the drag to horizontal, vertical or
            diagonal. "h" only allows horizontal selection, "v"
            only vertical, "d" only diagonal and "any" sets no
            limit.
        selectionrevision
            Controls persistence of user-driven changes in selected
            points from all traces.
        selections
            A tuple of
            :class:`plotly.graph_objects.layout.Selection`
            instances or dicts with compatible properties
        selectiondefaults
            When used in a template (as
            layout.template.layout.selectiondefaults), sets the
            default property values to use for elements of
            layout.selections
        separators
            Sets the decimal and thousand separators. For example,
            *. * puts a '.' before decimals and a space between
            thousands. In English locales, dflt is ".," but other
            locales may alter this default.
        shapes
            A tuple of :class:`plotly.graph_objects.layout.Shape`
            instances or dicts with compatible properties
        shapedefaults
            When used in a template (as
            layout.template.layout.shapedefaults), sets the default
            property values to use for elements of layout.shapes
        showlegend
            Determines whether or not a legend is drawn. Default is
            `true` if there is a trace to show and any of these: a)
            Two or more traces would by default be shown in the
            legend. b) One pie trace is shown in the legend. c) One
            trace is explicitly given with `showlegend: true`.
        sliders
            A tuple of :class:`plotly.graph_objects.layout.Slider`
            instances or dicts with compatible properties
        sliderdefaults
            When used in a template (as
            layout.template.layout.sliderdefaults), sets the
            default property values to use for elements of
            layout.sliders
        smith
            :class:`plotly.graph_objects.layout.Smith` instance or
            dict with compatible properties
        spikedistance
            Sets the default distance (in pixels) to look for data
            to draw spikelines to (-1 means no cutoff, 0 means no
            looking for data). As with hoverdistance, distance does
            not apply to area-like objects. In addition, some
            objects can be hovered on but will not generate
            spikelines, such as scatter fills.
        sunburstcolorway
            Sets the default sunburst slice colors. Defaults to the
            main `colorway` used for trace colors. If you specify a
            new list here it can still be extended with lighter and
            darker colors, see `extendsunburstcolors`.
        template
            Default attributes to be applied to the plot. This
            should be a dict with format: `{'layout':
            layoutTemplate, 'data': {trace_type: [traceTemplate,
            ...], ...}}` where `layoutTemplate` is a dict matching
            the structure of `figure.layout` and `traceTemplate` is
            a dict matching the structure of the trace with type
            `trace_type` (e.g. 'scatter'). Alternatively, this may
            be specified as an instance of
            plotly.graph_objs.layout.Template.  Trace templates are
            applied cyclically to traces of each type. Container
            arrays (eg `annotations`) have special handling: An
            object ending in `defaults` (eg `annotationdefaults`)
            is applied to each array item. But if an item has a
            `templateitemname` key we look in the template array
            for an item with matching `name` and apply that
            instead. If no matching `name` is found we mark the
            item invisible. Any named template item not referenced
            is appended to the end of the array, so this can be
            used to add a watermark annotation or a logo image, for
            example. To omit one of these items on the plot, make
            an item with matching `templateitemname` and `visible:
            false`.
        ternary
            :class:`plotly.graph_objects.layout.Ternary` instance
            or dict with compatible properties
        title
            :class:`plotly.graph_objects.layout.Title` instance or
            dict with compatible properties
        transition
            Sets transition options used during Plotly.react
            updates.
        treemapcolorway
            Sets the default treemap slice colors. Defaults to the
            main `colorway` used for trace colors. If you specify a
            new list here it can still be extended with lighter and
            darker colors, see `extendtreemapcolors`.
        uirevision
            Used to allow user interactions with the plot to
            persist after `Plotly.react` calls that are unaware of
            these interactions. If `uirevision` is omitted, or if
            it is given and it changed from the previous
            `Plotly.react` call, the exact new figure is used. If
            `uirevision` is truthy and did NOT change, any
            attribute that has been affected by user interactions
            and did not receive a different value in the new figure
            will keep the interaction value. `layout.uirevision`
            attribute serves as the default for `uirevision`
            attributes in various sub-containers. For finer control
            you can set these sub-attributes directly. For example,
            if your app separately controls the data on the x and y
            axes you might set `xaxis.uirevision=*time*` and
            `yaxis.uirevision=*cost*`. Then if only the y data is
            changed, you can update `yaxis.uirevision=*quantity*`
            and the y axis range will reset but the x axis range
            will retain any user-driven zoom.
        uniformtext
            :class:`plotly.graph_objects.layout.Uniformtext`
            instance or dict with compatible properties
        updatemenus
            A tuple of
            :class:`plotly.graph_objects.layout.Updatemenu`
            instances or dicts with compatible properties
        updatemenudefaults
            When used in a template (as
            layout.template.layout.updatemenudefaults), sets the
            default property values to use for elements of
            layout.updatemenus
        violingap
            Sets the gap (in plot fraction) between violins of
            adjacent location coordinates. Has no effect on traces
            that have "width" set.
        violingroupgap
            Sets the gap (in plot fraction) between violins of the
            same location coordinate. Has no effect on traces that
            have "width" set.
        violinmode
            Determines how violins at the same location coordinate
            are displayed on the graph. If "group", the violins are
            plotted next to one another centered around the shared
            location. If "overlay", the violins are plotted over
            one another, you might need to set "opacity" to see
            them multiple violins. Has no effect on traces that
            have "width" set.
        waterfallgap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        waterfallgroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        waterfallmode
            Determines how bars at the same location coordinate are
            displayed on the graph. With "group", the bars are
            plotted next to one another centered around the shared
            location. With "overlay", the bars are plotted over one
            another, you might need to reduce "opacity" to see
            multiple bars.
        width
            Sets the plot's width (in px).
        xaxis
            :class:`plotly.graph_objects.layout.XAxis` instance or
            dict with compatible properties
        yaxis
            :class:`plotly.graph_objects.layout.YAxis` instance or
            dict with compatible properties
        r   r   s    r!   _prop_descriptionszLayout._prop_descriptions  s    k kr#   ca           	         t                                          d           d|av r|ad         | _        dS h d| _        |i }nct	          || j                  r|                                }n9t	          |t                    rt          j	        |          }nt          d          |a                    dd          | _        |a                    dd	          | _        |                     d
||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||	           |                     d||
           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d ||           |                     d!||           |                     d"||           |                     d#||           |                     d$||           |                     d%||           |                     d&||           |                     d'||           |                     d(||            |                     d)||!           |                     d*||"           |                     d+||#           |                     d,||$           |                     d-||%           |                     d.||&           |                     d/||'           |                     d0||(           |                     d1||)           |                     d2||*           |                     d3||+           |                     d4||,           |                     d5||-           |                     d6||.           |                     d7||/           |                     d8||0           |                     d9||1           |                     d:||2           |                     d;||3           |                     d<||4           |                     d=||5           |                     d>||6           |                     d?||7           |                     d@||8           |                     dA||9           |                     dB||:           |                     dC||;           |                     dD||<           |                     dE||=           |                     dF||>           |                     dG||?           |                     dH||@           |                     dI||A           |                     dJ||B           |                     dK||C           |                     dL||D           |                     dM||E           |                     dN||F           |                     dO||G           |                     dP||H           |                     dQ||I           |                     dR||J           |                     dS||K           |                     dT||L           |                     dU||M           |                     dV||N           |                     dW||O           |                     dX||P           |                     dY||Q           |                     dZ||R           |                     d[||S           |                     d\||T           |                     d]||U           |                     d^||V           |                     d_||W           |                     d`||X           |                     da||Y           |                     db||Z           |                     dc||[           |                     dd||\           |                     de||]           |                     df||^           |                     dg||_           |                     dh||`            | j        dii t          |fi |a d| _        dS )jac  
        Construct a new Layout object

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Layout`
        activeselection
            :class:`plotly.graph_objects.layout.Activeselection`
            instance or dict with compatible properties
        activeshape
            :class:`plotly.graph_objects.layout.Activeshape`
            instance or dict with compatible properties
        annotations
            A tuple of
            :class:`plotly.graph_objects.layout.Annotation`
            instances or dicts with compatible properties
        annotationdefaults
            When used in a template (as
            layout.template.layout.annotationdefaults), sets the
            default property values to use for elements of
            layout.annotations
        autosize
            Determines whether or not a layout width or height that
            has been left undefined by the user is initialized on
            each relayout. Note that, regardless of this attribute,
            an undefined layout width or height is always
            initialized on the first call to plot.
        autotypenumbers
            Using "strict" a numeric string in trace data is not
            converted to a number. Using *convert types* a numeric
            string in trace data may be treated as a number during
            automatic axis `type` detection. This is the default
            value; however it could be overridden for individual
            axes.
        barcornerradius
            Sets the rounding of bar corners. May be an integer
            number of pixels, or a percentage of bar width (as a
            string ending in %).
        bargap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        bargroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        barmode
            Determines how bars at the same location coordinate are
            displayed on the graph. With "stack", the bars are
            stacked on top of one another With "relative", the bars
            are stacked on top of one another, with negative values
            below the axis, positive values above With "group", the
            bars are plotted next to one another centered around
            the shared location. With "overlay", the bars are
            plotted over one another, you might need to reduce
            "opacity" to see multiple bars.
        barnorm
            Sets the normalization for bar traces on the graph.
            With "fraction", the value of each bar is divided by
            the sum of all values at that location coordinate.
            "percent" is the same but multiplied by 100 to show
            percentages.
        boxgap
            Sets the gap (in plot fraction) between boxes of
            adjacent location coordinates. Has no effect on traces
            that have "width" set.
        boxgroupgap
            Sets the gap (in plot fraction) between boxes of the
            same location coordinate. Has no effect on traces that
            have "width" set.
        boxmode
            Determines how boxes at the same location coordinate
            are displayed on the graph. If "group", the boxes are
            plotted next to one another centered around the shared
            location. If "overlay", the boxes are plotted over one
            another, you might need to set "opacity" to see them
            multiple boxes. Has no effect on traces that have
            "width" set.
        calendar
            Sets the default calendar system to use for
            interpreting and displaying dates throughout the plot.
        clickmode
            Determines the mode of single click interactions.
            "event" is the default value and emits the
            `plotly_click` event. In addition this mode emits the
            `plotly_selected` event in drag modes "lasso" and
            "select", but with no event data attached (kept for
            compatibility reasons). The "select" flag enables
            selecting single data points via click. This mode also
            supports persistent selections, meaning that pressing
            Shift while clicking, adds to / subtracts from an
            existing selection. "select" with `hovermode`: "x" can
            be confusing, consider explicitly setting `hovermode`:
            "closest" when using this feature. Selection events are
            sent accordingly as long as "event" flag is set as
            well. When the "event" flag is missing, `plotly_click`
            and `plotly_selected` events are not fired.
        coloraxis
            :class:`plotly.graph_objects.layout.Coloraxis` instance
            or dict with compatible properties
        colorscale
            :class:`plotly.graph_objects.layout.Colorscale`
            instance or dict with compatible properties
        colorway
            Sets the default trace colors.
        computed
            Placeholder for exporting automargin-impacting values
            namely `margin.t`, `margin.b`, `margin.l` and
            `margin.r` in "full-json" mode.
        datarevision
            If provided, a changed value tells `Plotly.react` that
            one or more data arrays has changed. This way you can
            modify arrays in-place rather than making a complete
            new copy for an incremental change. If NOT provided,
            `Plotly.react` assumes that data arrays are being
            treated as immutable, thus any data array with a
            different identity from its predecessor contains new
            data.
        dragmode
            Determines the mode of drag interactions. "select" and
            "lasso" apply only to scatter traces with markers or
            text. "orbit" and "turntable" apply only to 3D scenes.
        editrevision
            Controls persistence of user-driven changes in
            `editable: true` configuration, other than trace names
            and axis titles. Defaults to `layout.uirevision`.
        extendfunnelareacolors
            If `true`, the funnelarea slice colors (whether given
            by `funnelareacolorway` or inherited from `colorway`)
            will be extended to three times its original length by
            first repeating every color 20% lighter then each color
            20% darker. This is intended to reduce the likelihood
            of reusing the same color when you have many slices,
            but you can set `false` to disable. Colors provided in
            the trace, using `marker.colors`, are never extended.
        extendiciclecolors
            If `true`, the icicle slice colors (whether given by
            `iciclecolorway` or inherited from `colorway`) will be
            extended to three times its original length by first
            repeating every color 20% lighter then each color 20%
            darker. This is intended to reduce the likelihood of
            reusing the same color when you have many slices, but
            you can set `false` to disable. Colors provided in the
            trace, using `marker.colors`, are never extended.
        extendpiecolors
            If `true`, the pie slice colors (whether given by
            `piecolorway` or inherited from `colorway`) will be
            extended to three times its original length by first
            repeating every color 20% lighter then each color 20%
            darker. This is intended to reduce the likelihood of
            reusing the same color when you have many slices, but
            you can set `false` to disable. Colors provided in the
            trace, using `marker.colors`, are never extended.
        extendsunburstcolors
            If `true`, the sunburst slice colors (whether given by
            `sunburstcolorway` or inherited from `colorway`) will
            be extended to three times its original length by first
            repeating every color 20% lighter then each color 20%
            darker. This is intended to reduce the likelihood of
            reusing the same color when you have many slices, but
            you can set `false` to disable. Colors provided in the
            trace, using `marker.colors`, are never extended.
        extendtreemapcolors
            If `true`, the treemap slice colors (whether given by
            `treemapcolorway` or inherited from `colorway`) will be
            extended to three times its original length by first
            repeating every color 20% lighter then each color 20%
            darker. This is intended to reduce the likelihood of
            reusing the same color when you have many slices, but
            you can set `false` to disable. Colors provided in the
            trace, using `marker.colors`, are never extended.
        font
            Sets the global font. Note that fonts used in traces
            and other layout components inherit from the global
            font.
        funnelareacolorway
            Sets the default funnelarea slice colors. Defaults to
            the main `colorway` used for trace colors. If you
            specify a new list here it can still be extended with
            lighter and darker colors, see
            `extendfunnelareacolors`.
        funnelgap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        funnelgroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        funnelmode
            Determines how bars at the same location coordinate are
            displayed on the graph. With "stack", the bars are
            stacked on top of one another With "group", the bars
            are plotted next to one another centered around the
            shared location. With "overlay", the bars are plotted
            over one another, you might need to reduce "opacity" to
            see multiple bars.
        geo
            :class:`plotly.graph_objects.layout.Geo` instance or
            dict with compatible properties
        grid
            :class:`plotly.graph_objects.layout.Grid` instance or
            dict with compatible properties
        height
            Sets the plot's height (in px).
        hiddenlabels
            hiddenlabels is the funnelarea & pie chart analog of
            visible:'legendonly' but it can contain many labels,
            and can simultaneously hide slices from several
            pies/funnelarea charts
        hiddenlabelssrc
            Sets the source reference on Chart Studio Cloud for
            `hiddenlabels`.
        hidesources
            Determines whether or not a text link citing the data
            source is placed at the bottom-right cored of the
            figure. Has only an effect only on graphs that have
            been generated via forked graphs from the Chart Studio
            Cloud (at https://chart-studio.plotly.com or on-
            premise).
        hoverdistance
            Sets the default distance (in pixels) to look for data
            to add hover labels (-1 means no cutoff, 0 means no
            looking for data). This is only a real distance for
            hovering on point-like objects, like scatter points.
            For area-like objects (bars, scatter fills, etc)
            hovering is on inside the area and off outside, but
            these objects will not supersede hover on point-like
            objects in case of conflict.
        hoverlabel
            :class:`plotly.graph_objects.layout.Hoverlabel`
            instance or dict with compatible properties
        hovermode
            Determines the mode of hover interactions. If
            "closest", a single hoverlabel will appear for the
            "closest" point within the `hoverdistance`. If "x" (or
            "y"), multiple hoverlabels will appear for multiple
            points at the "closest" x- (or y-) coordinate within
            the `hoverdistance`, with the caveat that no more than
            one hoverlabel will appear per trace. If *x unified*
            (or *y unified*), a single hoverlabel will appear
            multiple points at the closest x- (or y-) coordinate
            within the `hoverdistance` with the caveat that no more
            than one hoverlabel will appear per trace. In this
            mode, spikelines are enabled by default perpendicular
            to the specified axis. If false, hover interactions are
            disabled.
        hoversubplots
            Determines expansion of hover effects to other subplots
            If "single" just the axis pair of the primary point is
            included without overlaying subplots. If "overlaying"
            all subplots using the main axis and occupying the same
            space are included. If "axis", also include stacked
            subplots using the same axis when `hovermode` is set to
            "x", *x unified*, "y" or *y unified*.
        iciclecolorway
            Sets the default icicle slice colors. Defaults to the
            main `colorway` used for trace colors. If you specify a
            new list here it can still be extended with lighter and
            darker colors, see `extendiciclecolors`.
        images
            A tuple of :class:`plotly.graph_objects.layout.Image`
            instances or dicts with compatible properties
        imagedefaults
            When used in a template (as
            layout.template.layout.imagedefaults), sets the default
            property values to use for elements of layout.images
        legend
            :class:`plotly.graph_objects.layout.Legend` instance or
            dict with compatible properties
        map
            :class:`plotly.graph_objects.layout.Map` instance or
            dict with compatible properties
        mapbox
            :class:`plotly.graph_objects.layout.Mapbox` instance or
            dict with compatible properties
        margin
            :class:`plotly.graph_objects.layout.Margin` instance or
            dict with compatible properties
        meta
            Assigns extra meta information that can be used in
            various `text` attributes. Attributes such as the
            graph, axis and colorbar `title.text`, annotation
            `text` `trace.name` in legend items, `rangeselector`,
            `updatemenus` and `sliders` `label` text all support
            `meta`. One can access `meta` fields using template
            strings: `%{meta[i]}` where `i` is the index of the
            `meta` item in question. `meta` can also be an object
            for example `{key: value}` which can be accessed
            %{meta[key]}.
        metasrc
            Sets the source reference on Chart Studio Cloud for
            `meta`.
        minreducedheight
            Minimum height of the plot with margin.automargin
            applied (in px)
        minreducedwidth
            Minimum width of the plot with margin.automargin
            applied (in px)
        modebar
            :class:`plotly.graph_objects.layout.Modebar` instance
            or dict with compatible properties
        newselection
            :class:`plotly.graph_objects.layout.Newselection`
            instance or dict with compatible properties
        newshape
            :class:`plotly.graph_objects.layout.Newshape` instance
            or dict with compatible properties
        paper_bgcolor
            Sets the background color of the paper where the graph
            is drawn.
        piecolorway
            Sets the default pie slice colors. Defaults to the main
            `colorway` used for trace colors. If you specify a new
            list here it can still be extended with lighter and
            darker colors, see `extendpiecolors`.
        plot_bgcolor
            Sets the background color of the plotting area in-
            between x and y axes.
        polar
            :class:`plotly.graph_objects.layout.Polar` instance or
            dict with compatible properties
        scattergap
            Sets the gap (in plot fraction) between scatter points
            of adjacent location coordinates. Defaults to `bargap`.
        scattermode
            Determines how scatter points at the same location
            coordinate are displayed on the graph. With "group",
            the scatter points are plotted next to one another
            centered around the shared location. With "overlay",
            the scatter points are plotted over one another, you
            might need to reduce "opacity" to see multiple scatter
            points.
        scene
            :class:`plotly.graph_objects.layout.Scene` instance or
            dict with compatible properties
        selectdirection
            When `dragmode` is set to "select", this limits the
            selection of the drag to horizontal, vertical or
            diagonal. "h" only allows horizontal selection, "v"
            only vertical, "d" only diagonal and "any" sets no
            limit.
        selectionrevision
            Controls persistence of user-driven changes in selected
            points from all traces.
        selections
            A tuple of
            :class:`plotly.graph_objects.layout.Selection`
            instances or dicts with compatible properties
        selectiondefaults
            When used in a template (as
            layout.template.layout.selectiondefaults), sets the
            default property values to use for elements of
            layout.selections
        separators
            Sets the decimal and thousand separators. For example,
            *. * puts a '.' before decimals and a space between
            thousands. In English locales, dflt is ".," but other
            locales may alter this default.
        shapes
            A tuple of :class:`plotly.graph_objects.layout.Shape`
            instances or dicts with compatible properties
        shapedefaults
            When used in a template (as
            layout.template.layout.shapedefaults), sets the default
            property values to use for elements of layout.shapes
        showlegend
            Determines whether or not a legend is drawn. Default is
            `true` if there is a trace to show and any of these: a)
            Two or more traces would by default be shown in the
            legend. b) One pie trace is shown in the legend. c) One
            trace is explicitly given with `showlegend: true`.
        sliders
            A tuple of :class:`plotly.graph_objects.layout.Slider`
            instances or dicts with compatible properties
        sliderdefaults
            When used in a template (as
            layout.template.layout.sliderdefaults), sets the
            default property values to use for elements of
            layout.sliders
        smith
            :class:`plotly.graph_objects.layout.Smith` instance or
            dict with compatible properties
        spikedistance
            Sets the default distance (in pixels) to look for data
            to draw spikelines to (-1 means no cutoff, 0 means no
            looking for data). As with hoverdistance, distance does
            not apply to area-like objects. In addition, some
            objects can be hovered on but will not generate
            spikelines, such as scatter fills.
        sunburstcolorway
            Sets the default sunburst slice colors. Defaults to the
            main `colorway` used for trace colors. If you specify a
            new list here it can still be extended with lighter and
            darker colors, see `extendsunburstcolors`.
        template
            Default attributes to be applied to the plot. This
            should be a dict with format: `{'layout':
            layoutTemplate, 'data': {trace_type: [traceTemplate,
            ...], ...}}` where `layoutTemplate` is a dict matching
            the structure of `figure.layout` and `traceTemplate` is
            a dict matching the structure of the trace with type
            `trace_type` (e.g. 'scatter'). Alternatively, this may
            be specified as an instance of
            plotly.graph_objs.layout.Template.  Trace templates are
            applied cyclically to traces of each type. Container
            arrays (eg `annotations`) have special handling: An
            object ending in `defaults` (eg `annotationdefaults`)
            is applied to each array item. But if an item has a
            `templateitemname` key we look in the template array
            for an item with matching `name` and apply that
            instead. If no matching `name` is found we mark the
            item invisible. Any named template item not referenced
            is appended to the end of the array, so this can be
            used to add a watermark annotation or a logo image, for
            example. To omit one of these items on the plot, make
            an item with matching `templateitemname` and `visible:
            false`.
        ternary
            :class:`plotly.graph_objects.layout.Ternary` instance
            or dict with compatible properties
        title
            :class:`plotly.graph_objects.layout.Title` instance or
            dict with compatible properties
        transition
            Sets transition options used during Plotly.react
            updates.
        treemapcolorway
            Sets the default treemap slice colors. Defaults to the
            main `colorway` used for trace colors. If you specify a
            new list here it can still be extended with lighter and
            darker colors, see `extendtreemapcolors`.
        uirevision
            Used to allow user interactions with the plot to
            persist after `Plotly.react` calls that are unaware of
            these interactions. If `uirevision` is omitted, or if
            it is given and it changed from the previous
            `Plotly.react` call, the exact new figure is used. If
            `uirevision` is truthy and did NOT change, any
            attribute that has been affected by user interactions
            and did not receive a different value in the new figure
            will keep the interaction value. `layout.uirevision`
            attribute serves as the default for `uirevision`
            attributes in various sub-containers. For finer control
            you can set these sub-attributes directly. For example,
            if your app separately controls the data on the x and y
            axes you might set `xaxis.uirevision=*time*` and
            `yaxis.uirevision=*cost*`. Then if only the y data is
            changed, you can update `yaxis.uirevision=*quantity*`
            and the y axis range will reset but the x axis range
            will retain any user-driven zoom.
        uniformtext
            :class:`plotly.graph_objects.layout.Uniformtext`
            instance or dict with compatible properties
        updatemenus
            A tuple of
            :class:`plotly.graph_objects.layout.Updatemenu`
            instances or dicts with compatible properties
        updatemenudefaults
            When used in a template (as
            layout.template.layout.updatemenudefaults), sets the
            default property values to use for elements of
            layout.updatemenus
        violingap
            Sets the gap (in plot fraction) between violins of
            adjacent location coordinates. Has no effect on traces
            that have "width" set.
        violingroupgap
            Sets the gap (in plot fraction) between violins of the
            same location coordinate. Has no effect on traces that
            have "width" set.
        violinmode
            Determines how violins at the same location coordinate
            are displayed on the graph. If "group", the violins are
            plotted next to one another centered around the shared
            location. If "overlay", the violins are plotted over
            one another, you might need to set "opacity" to see
            them multiple violins. Has no effect on traces that
            have "width" set.
        waterfallgap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        waterfallgroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        waterfallmode
            Determines how bars at the same location coordinate are
            displayed on the graph. With "group", the bars are
            plotted next to one another centered around the shared
            location. With "overlay", the bars are plotted over one
            another, you might need to reduce "opacity" to see
            multiple bars.
        width
            Sets the plot's width (in px).
        xaxis
            :class:`plotly.graph_objects.layout.XAxis` instance or
            dict with compatible properties
        yaxis
            :class:`plotly.graph_objects.layout.YAxis` instance or
            dict with compatible properties

        Returns
        -------
        Layout
        r*   _parentN>_   r   r
   r+   r,   r-   r   r   r   r.   r/   r   r   r0   r1   r2   r3   r	   r   r4   r5   r6   r7   r8   r9   r:   r;   r   r<   r=   r>   r?   r@   rA   rB   rC   r   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   zThe first argument to the plotly.graph_objs.Layout
constructor must be a dict or
an instance of :class:`plotly.graph_objs.Layout`skip_invalidF	_validateTrk   rQ   rR   rx   r<   rl   rm   r0   rS   r6   r7   r1   rT   r8   r=   rC   r   rG   r>   r?   rZ   r@   r[   r~   ry   rn   r}   r|   r+   rz   rD   rg   rH   r   r,   r2   r\   ro   rU   r`   rI   rE   ra   rh   r3   rb   r	   r
   r   r4   r-   r9   rs   rp   r:   r]   rA   rc   rV   r^   r   rJ   rW   r   rq   rv   rK   ru   rL   r5   rd   rM   r;   ri   r   re   rt   rB   r   r.   rN   rr   rO   rX   rY   r{   rF   rj   rP   r_   rw   rf   r/   r   r   r   )super__init__rf  _valid_props
isinstance	__class__to_plotly_jsondict_copycopy
ValueErrorpop_skip_invalidrh  _set_property_process_kwargs)cr    argrk   rQ   rR   rx   r<   rl   rm   r0   rS   r6   r7   r1   rT   r8   r=   rC   r   rG   r>   r?   rZ   r@   r[   r~   ry   rn   r}   r|   r+   rz   rD   rg   rH   r   r,   r2   r\   ro   rU   r`   rI   rE   ra   rh   r3   rb   r	   r
   r   r4   r-   r9   rs   rp   r:   r]   rA   rc   rV   r^   r   rJ   rW   r   rq   rv   rK   ru   rL   r5   rd   rM   r;   ri   r   re   rt   rB   r   r.   rN   rr   rO   rX   rY   r{   rF   rj   rP   r_   rw   rf   r/   r   r   kwargsrm  sc                                                                                                     r!   rj  zLayout.__init__
  s/
   v 	"""!),DLF`
 `
 `
D ;CCT^,, 
	$$&&CCT"" 	*S//CC4   $ZZ>>K66,c?CCC=#{;;;=#{;;;/6HIII:sH555,c?CCC,c?CCC8S&111=#{;;;9c73339c73338S&111=#{;;;9c7333:sH555;Y777;Y777<j999:sH555:sH555>3===:sH555>3===3S:PQQQ/6HIII,c?CCC138LMMM0#7JKKK63---/6HIII;Y777+S.AAA<j9995#s+++63---8S&111>3===,c?CCC=#{;;;?C???<j999;Y777?C???+S.AAA8S&111?C???8S&1115#s+++8S&1118S&11163---9c7333-s4DEEE,c?CCC9c7333>3===:sH555?C???=#{;;;>3===7C///<j999=#{;;;7C///,c?CCC.5FGGG<j999.5FGGG<j9998S&111?C???<j9999c7333+S.AAA7C///?C???-s4DEEE:sH5559c73337C///<j999,c?CCC<j999=#{;;;=#{;;;/6HIII;Y777+S.AAA<j999>3===.5FGGG?C???7C///7C///7C///33tC22622333"r#   )`NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)q__name__
__module____qualname___subplotid_prop_namesrecompilejoinr%   propertyr"   r(   _parent_path_str	_path_strrk  rk   setterrQ   rR   rx   r<   rl   rm   r0   rS   r6   r7   r1   rT   r8   r=   rC   r   rG   r>   r?   rZ   r@   r[   r~   ry   rn   r}   r|   r+   rz   rD   rg   rH   r   r,   r2   r\   ro   rU   r`   rI   rE   ra   rh   r3   rb   r	   r
   r   r4   r-   r9   rs   rp   r:   r]   rA   rc   rV   r^   r   rJ   rW   r   rq   rv   rK   ru   rL   r5   rd   rM   r;   ri   r   re   rt   rB   r   r.   rN   rr   rO   rX   rY   r{   rF   rj   rP   r_   rw   rf   r/   r   r   rd  rj  __classcell__)rm  s   @r!   r   r      s]          IIID3884I+J+J$JZ$WXX"
 "
 X"
H3 3 3 I` ` `LD ' ' X' & & & # # X# " " " # # X# " " " * * X*$ ) ) )     X " _  _ ' ' X'$ & & & ' ' X' & & &   X ]  ] # # X# " " "   X* ^  ^   X" ^  ^   X ]  ] # # X# " " "   X& ^  ^     X $ _  _ ! ! X!8       ! ! X!       " " X" ! ! !     X  _  _     X  _  _ $ $ X$$ # # #     X $ _  _ $ $ X$ # # # . . X.( "- - #"- * * X*( ) ) ) ' ' X'& & & & , , X,(  + + ! + + + X+( * *  *   X" 
[  [ * * X*" ) ) ) ! ! X!       & & X& % % % " " X"& ! ! !   X 	Z  Z   X 
[  [   X ]  ] $ $ X$ # # # ' ' X' & & & # # X#" " " " % % X%( $ $ $ " " X" ! ! ! ! ! X!2       % % X%& $ $ $ & & X&" % % %   X ]  ] % % X%$ $ $ $   X ]  ]   X 	Z  Z   X ]  ]   X ]  ]   X& 
[  [   X ^  ^ ( ( X( ' ' ' ' ' X' & & &   X ^  ^ $ $ X$ # # #     X  _  _ % % X%$ $ $ $ # # X#" " " " $ $ X$$ # # #   X \  \ " " X" ! ! ! # # X#& " " "   X \  \ ' ' X'" & & & ) ) X) ( ( ( " " X" ! ! ! ) ) X)$ ( ( ( " " X"" ! ! !   X ]  ] % % X%$ $ $ $ " " X"" ! ! !   X ^  ^ & & X&$ % % %   X \  \ % % X%$ $ $ $ ( ( X(" ' ' ' +  +  X+ Z _  _   X ^  ^   X \  \ " " X"  ! ! ! ' ' X'" & & & " " X"6 ! ! ! # # X# " " " # # X# " " " * * X*$ ) ) ) ! ! X!       & & X& % % % " " X"& ! ! ! $ $ X$ # # # ) ) X) ( ( ( % % X%$ $ $ $   X \  \   X \  \   X \  \ l l Xl` #! Cs# s# s# s# s# s# s# s# s# s#r#   r   )plotly.basedatatypesr   _BaseLayoutTyperq  rp  r   r   r#   r!   <module>r     sd    C B B B B B    z6# z6# z6# z6# z6#_ z6# z6# z6# z6# z6#r#   