
    hi
                        d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZmZ erddlmZ dd	lmZ  G d
 de	          ZdS )z7The proxy class for an image part, and related objects.    )annotationsN)TYPE_CHECKING)Image)Part)EmuInches)
OpcPackage)PackURIc                       e Zd ZdZ	 dd fdZed             Zed             Zed             Ze	dd            Z
edd            Ze	dd            Zed             Z xZS )	ImagePartzlAn image part.

    Corresponds to the target part of a relationship with type RELATIONSHIP_TYPE.IMAGE.
    Npartnamer
   content_typestrblobbytesimageImage | Nonec                j    t          t          |                               |||           || _        d S N)superr   __init___image)selfr   r   r   r   	__class__s        h/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/docx/parts/image.pyr   zImagePart.__init__   s2     	i'',EEE    c                Z    | j         j        }| j         j        }||z  }t          |          S )zkNative width of this image, calculated from its width in pixels and
        horizontal dots per inch (dpi).)r   px_widthhorz_dpir   )r   r   r   width_in_inchess       r   
default_cxzImagePart.default_cx   s0     :&:&"X-o&&&r   c                    | j         j        }| j         j        }t          t	          d|z  |z                      }t          |          S )zkNative height of this image, calculated from its height in pixels and
        vertical dots per inch (dpi).i )r   	px_heightr   introundr   )r   r#   r   height_in_emus       r   
default_cyzImagePart.default_cy&   sE     J(	:&E&9"4x"?@@AA=!!!r   c                F    | j         | j         j        S d| j        j        z  S )a?  Filename from which this image part was originally created.

        A generic name, e.g. 'image.png', is substituted if no name is available, for
        example when the image was loaded from an unnamed stream. In that case a default
        extension is applied based on the detected MIME type of the image.
        Nzimage.%s)r   filenamer   extr   s    r   r)   zImagePart.filename/   s'     ;";''DM---r   r   c                :    t          ||j        |j        |          S )zZReturn an |ImagePart| instance newly created from `image` and assigned
        `partname`.)r   r   r   )clsr   r   s      r   
from_imagezImagePart.from_image;   s     5#5uz5IIIr   returnc                Z    | j         t          j        | j                  | _         | j         S r   )r   r   	from_blobr   r+   s    r   r   zImagePart.imageA   s%    ;/$)44DK{r   packager	   c                     | |||          S )zCalled by ``docx.opc.package.PartFactory`` to load an image part from a
        package being opened by ``Document(...)`` call. )r-   r   r   r   r2   s        r   loadzImagePart.loadG   s     s8\4000r   c                X    t          j        | j                                                  S )z0SHA1 hash digest of the blob of this image part.)hashlibsha1r   	hexdigestr+   s    r   r8   zImagePart.sha1M   s"     |DI&&00222r   r   )r   r
   r   r   r   r   r   r   )r   r   r   r
   )r/   r   )r   r
   r   r   r   r   r2   r	   )__name__
__module____qualname____doc__r   propertyr!   r'   r)   classmethodr.   r   r5   r8   __classcell__)r   s   @r   r   r      s#         X\       ' ' X' " " X" 	. 	. X	. J J J [J
    X
 1 1 1 [1
 3 3 X3 3 3 3 3r   r   )r=   
__future__r   r7   typingr   docx.image.imager   docx.opc.partr   docx.sharedr   r   docx.opc.packager	   docx.opc.packurir
   r   r4   r   r   <module>rH      s    = = " " " " " "              " " " " " "       # # # # # # # # )++++++((((((?3 ?3 ?3 ?3 ?3 ?3 ?3 ?3 ?3 ?3r   