o
    	'fb
                     @   sJ   d Z ddlmZ ddlmZ ddlmZ G dd deZG dd dZd	S )
zhObjects related to shapes.

A shape is a visual object that appears on the drawing layer of a document.
    )WD_INLINE_SHAPE)nsmap)Parentedc                       sD   e Zd ZdZ fddZdd Zdd Zdd	 Zed
d Z	  Z
S )InlineShapeszYSequence of |InlineShape| instances, supporting len(), iteration, and indexed
    access.c                    s   t t| | || _d S N)superr   __init___body)selfbody_elmparent	__class__ B/home/ubuntu/flask/venv/lib/python3.10/site-packages/docx/shape.pyr      s   
zInlineShapes.__init__c                 C   s4   z
| j | }W t|S  ty   d| }t|w )z2Provide indexed access, e.g. 'inline_shapes[idx]'.z$inline shape index [%d] out of range)_inline_lst
IndexErrorInlineShape)r
   idxinlinemsgr   r   r   __getitem__   s   zInlineShapes.__getitem__c                 C   s   dd | j D S )Nc                 s   s    | ]}t |V  qd S r   )r   ).0r   r   r   r   	<genexpr>   s    z(InlineShapes.__iter__.<locals>.<genexpr>)r   r
   r   r   r   __iter__   s   zInlineShapes.__iter__c                 C   s
   t | jS r   )lenr   r   r   r   r   __len__   s   
zInlineShapes.__len__c                 C   s   | j }d}||S )Nz//w:p/w:r/w:drawing/wp:inline)r	   xpath)r
   bodyr   r   r   r   r   "   s   
zInlineShapes._inline_lst)__name__
__module____qualname____doc__r   r   r   r   propertyr   __classcell__r   r   r   r   r      s    	r   c                       s`   e Zd ZdZ fddZedd Zejdd Zedd Zed	d
 Z	e	jdd
 Z	  Z
S )r   zdProxy for an ``<wp:inline>`` element, representing the container for an inline
    graphical object.c                    s   t t|   || _d S r   )r   r   r   _inline)r
   r   r   r   r   r   -   s   
zInlineShape.__init__c                 C   
   | j jjS )z[Read/write.

        The display height of this inline shape as an |Emu| instance.
        )r&   extentcyr   r   r   r   height1      
zInlineShape.heightc                 C      || j j_|| j jjjj_d S r   )r&   r(   r)   graphicgraphicDatapicspPr)r
   r)   r   r   r   r*   9      
c                 C   sf   | j jj}|j}|td kr|jjj}|jdurt	j
S t	jS |td kr't	jS |td kr0t	jS t	jS )zThe type of this inline shape as a member of
        ``docx.enum.shape.WD_INLINE_SHAPE``, e.g. ``LINKED_PICTURE``.

        Read-only.
        r/   Ncdgm)r&   r-   r.   urir   r/   blipFillbliplinkr   LINKED_PICTUREPICTURECHART	SMART_ARTNOT_IMPLEMENTED)r
   r.   r4   r6   r   r   r   type>   s   


zInlineShape.typec                 C   r'   )zZRead/write.

        The display width of this inline shape as an |Emu| instance.
        )r&   r(   cxr   r   r   r   widthR   r+   zInlineShape.widthc                 C   r,   r   )r&   r(   r>   r-   r.   r/   r0   )r
   r>   r   r   r   r?   Z   r1   )r    r!   r"   r#   r   r$   r*   setterr=   r?   r%   r   r   r   r   r   )   s    



r   N)	r#   docx.enum.shaper   docx.oxml.nsr   docx.sharedr   r   r   r   r   r   r   <module>   s    