o
    ¿Z2hF  ã                   @  sx   d Z ddlmZ ddlZddlmZmZmZ ddlm	Z
 ddlmZ er0ddlmZ ddlmZ dddd„Zdd„ ZdS )zŸDirectly exposed API functions and classes, :func:`Document` for now.

Provides a syntactically more convenient API for interacting with the OpcPackage graph.
é    )ÚannotationsN)ÚIOÚTYPE_CHECKINGÚcast)ÚCONTENT_TYPE)ÚPackage)ÚDocument)ÚDocumentPartÚdocxústr | IO[bytes] | NoneÚreturnÚDocumentObjectc                 C  sL   | du rt ƒ n| } tdt | ¡jƒ}|jtjkr#d}t|| |jf ƒ‚|j	S )zîReturn a |Document| object loaded from `docx`, where `docx` can be either a path
    to a ``.docx`` file (a string) or a file-like object.

    If `docx` is missing or ``None``, the built-in default document "template" is
    loaded.
    Nr	   z2file '%s' is not a Word file, content type is '%s')
Ú_default_docx_pathr   r   ÚopenÚmain_document_partÚcontent_typeÚCTÚWML_DOCUMENT_MAINÚ
ValueErrorÚdocument)r
   Údocument_partÚtmpl© r   úY/home/skpark/git/infrasmart_work/infrasmart/venv/lib/python3.10/site-packages/docx/api.pyr      s   r   c                  C  s    t j t¡d } t j | dd¡S )z6Return the path to the built-in default .docx package.r   Ú	templateszdefault.docx)ÚosÚpathÚsplitÚ__file__Újoin)Ú_thisdirr   r   r   r   "   s   r   )N)r
   r   r   r   )Ú__doc__Ú
__future__r   r   Útypingr   r   r   Údocx.opc.constantsr   r   Údocx.packager   Údocx.documentr   r   Údocx.parts.documentr	   r   r   r   r   r   Ú<module>   s    