U
    TZßfP  ã                   @   s(   d dl mZ d dlZG dd„ deƒZdS )é    )ÚBaseTraceHierarchyTypeNc                       s¦   e Zd ZdZdZddddhZedd„ ƒZejd	d„ ƒZed
d„ ƒZ	e	jdd„ ƒZ	edd„ ƒZ
e
jdd„ ƒZ
edd„ ƒZejdd„ ƒZedd„ ƒZd‡ fdd„	Z‡  ZS )ÚTilingZtreemapztreemap.tilingÚflipÚpackingÚpadÚsquarifyratioc                 C   s   | d S )aO  
        Determines if the positions obtained from solver are flipped on
        each axis.

        The 'flip' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y'] joined with '+' characters
            (e.g. 'x+y')

        Returns
        -------
        Any
        r   © ©Úselfr   r   úE/tmp/pip-unpacked-wheel-5ksk5baj/plotly/graph_objs/treemap/_tiling.pyr      s    zTiling.flipc                 C   s   || d< d S )Nr   r   ©r
   Úvalr   r   r   r       s    c                 C   s   | d S )a™  
        Determines d3 treemap solver. For more info please refer to
        https://github.com/d3/d3-hierarchy#treemap-tiling

        The 'packing' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['squarify', 'binary', 'dice', 'slice', 'slice-dice',
                'dice-slice']

        Returns
        -------
        Any
        r   r   r	   r   r   r   r   &   s    zTiling.packingc                 C   s   || d< d S )Nr   r   r   r   r   r   r   7   s    c                 C   s   | d S )zÚ
        Sets the inner padding (in px).

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

        Returns
        -------
        int|float
        r   r   r	   r   r   r   r   =   s    z
Tiling.padc                 C   s   || d< d S )Nr   r   r   r   r   r   r   K   s    c                 C   s   | d S )a’  
        When using "squarify" `packing` algorithm, according to https:/
        /github.com/d3/d3-
        hierarchy/blob/v3.1.1/README.md#squarify_ratio this option
        specifies the desired aspect ratio of the generated rectangles.
        The ratio must be specified as a number greater than or equal
        to one. Note that the orientation of the generated rectangles
        (tall or wide) is not implied by the ratio; for example, a
        ratio of two will attempt to produce a mixture of rectangles
        whose width:height ratio is either 2:1 or 1:2. When using
        "squarify", unlike d3 which uses the Golden Ratio i.e.
        1.618034, Plotly applies 1 to increase squares in treemap
        layouts.

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

        Returns
        -------
        int|float
        r   r   r	   r   r   r   r   Q   s    zTiling.squarifyratioc                 C   s   || d< d S )Nr   r   r   r   r   r   r   j   s    c                 C   s   dS )Naz          flip
            Determines if the positions obtained from solver are
            flipped on each axis.
        packing
            Determines d3 treemap solver. For more info please
            refer to https://github.com/d3/d3-hierarchy#treemap-
            tiling
        pad
            Sets the inner padding (in px).
        squarifyratio
            When using "squarify" `packing` algorithm, according to
            https://github.com/d3/d3-
            hierarchy/blob/v3.1.1/README.md#squarify_ratio this
            option specifies the desired aspect ratio of the
            generated rectangles. The ratio must be specified as a
            number greater than or equal to one. Note that the
            orientation of the generated rectangles (tall or wide)
            is not implied by the ratio; for example, a ratio of
            two will attempt to produce a mixture of rectangles
            whose width:height ratio is either 2:1 or 1:2. When
            using "squarify", unlike d3 which uses the Golden Ratio
            i.e. 1.618034, Plotly applies 1 to increase squares in
            treemap layouts.
        r   r	   r   r   r   Ú_prop_descriptionsp   s    zTiling._prop_descriptionsNc                    sX  t t| ƒ d¡ d|kr&|d | _dS |dkr4i }n4t|| jƒrJ| ¡ }nt|tƒr`t 	|¡}nt
dƒ‚| dd¡| _| dd¡| _| d	d¡}|dk	rœ|n|}|dk	r°|| d	< | d
d¡}|dk	rÈ|n|}|dk	rÜ|| d
< | dd¡}|dk	rô|n|}|dk	r
|| d< | dd¡}|dk	r$|n|}|dk	r:|| d< | jf t|f|ŽŽ d| _dS )a˜  
        Construct a new Tiling object

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of
            :class:`plotly.graph_objs.treemap.Tiling`
        flip
            Determines if the positions obtained from solver are
            flipped on each axis.
        packing
            Determines d3 treemap solver. For more info please
            refer to https://github.com/d3/d3-hierarchy#treemap-
            tiling
        pad
            Sets the inner padding (in px).
        squarifyratio
            When using "squarify" `packing` algorithm, according to
            https://github.com/d3/d3-
            hierarchy/blob/v3.1.1/README.md#squarify_ratio this
            option specifies the desired aspect ratio of the
            generated rectangles. The ratio must be specified as a
            number greater than or equal to one. Note that the
            orientation of the generated rectangles (tall or wide)
            is not implied by the ratio; for example, a ratio of
            two will attempt to produce a mixture of rectangles
            whose width:height ratio is either 2:1 or 1:2. When
            using "squarify", unlike d3 which uses the Golden Ratio
            i.e. 1.618034, Plotly applies 1 to increase squares in
            treemap layouts.

        Returns
        -------
        Tiling
        ZtilingÚ_parentNz‘The first argument to the plotly.graph_objs.treemap.Tiling
constructor must be a dict or
an instance of :class:`plotly.graph_objs.treemap.Tiling`Zskip_invalidFÚ	_validateTr   r   r   r   )Úsuperr   Ú__init__r   Ú
isinstanceÚ	__class__Zto_plotly_jsonÚdictÚ_copyÚcopyÚ
ValueErrorÚpopZ_skip_invalidr   Z_process_kwargs)r
   Úargr   r   r   r   ÚkwargsZ_v©r   r   r   r   Œ   sB    (


ÿ	

zTiling.__init__)NNNNN)Ú__name__Ú
__module__Ú__qualname__Z_parent_path_strZ	_path_strZ_valid_propsÚpropertyr   Úsetterr   r   r   r   r   Ú__classcell__r   r   r   r   r      s6   








         ÿr   )Zplotly.basedatatypesr   Z_BaseTraceHierarchyTyper   r   r   r   r   r   r   Ú<module>   s   