
    ]Mh                     v    d dl mZ d dlmZ d dlmZ ddlmZ ddlm	Z	 d dD             Z
 G d	 d
e          ZdS )    )TransformPen)etreetostr   )
parse_path)PathBuilderc                 ,    g | ]}t          |          S  r   ).0ss     ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/svgLib/path/__init__.py
<listcomp>r      s    
7
7
7588
7
7
7    )SVGPathr   c                   8    e Zd ZdZddZedd            Zd ZdS )r   a  Parse SVG ``path`` elements from a file or string, and draw them
    onto a glyph object that supports the FontTools Pen protocol.

    For example, reading from an SVG file and drawing to a Defcon Glyph:

    .. code-block::

        import defcon
        glyph = defcon.Glyph()
        pen = glyph.getPen()
        svg = SVGPath("path/to/a.svg")
        svg.draw(pen)

    Or reading from a string containing SVG data, using the alternative
    'fromstring' (a class method):

    .. code-block::

        data = '<?xml version="1.0" ...'
        svg = SVGPath.fromstring(data)
        svg.draw(pen)

    Both constructors can optionally take a 'transform' matrix (6-float
    tuple, or a FontTools Transform object) to modify the draw output.
    Nc                     |t          j                    | _        n-t          j        |          }|                                | _        || _        d S N)r   ElementTreerootparsegetroot	transform)selffilenamer   trees       r   __init__zSVGPath.__init__&   sC    )++DII;x((DDI"r   c                 P     | |          }t          j        |          |_        |S )N)r   )r   
fromstringr   )clsdatar   r   s       r   r   zSVGPath.fromstring.   s+    sY'''$T**	r   c                 J   | j         rt          || j                   }t                      }| j                                        D ]}|                    |           |}t          |j        |j                  D ]*\  }}|rt          ||          }n|}t          ||           +d S r   )
r   r   r	   r   iteradd_path_from_elementzippaths
transformsr   )r   penpbeloriginal_penpathr   s          r   drawzSVGPath.draw4   s    > 	4sDN33C]]).."" 	) 	)B$$R(((("28R];; 	" 	"OD) #"<;;"tS!!!!	" 	"r   )NNr   )__name__
__module____qualname____doc__r   classmethodr   r-   r   r   r   r   r      sa         4# # # #    [
" " " " "r   r   N)fontTools.pens.transformPenr   fontTools.miscr   fontTools.misc.textToolsr   parserr   shapesr	   __all__objectr   r   r   r   <module>r:      s    4 4 4 4 4 4             * * * * * *             8
76
7
7
76" 6" 6" 6" 6"f 6" 6" 6" 6" 6"r   