Add core Python agent with configuration management, environment setup, and deployment documentation. Includes user/agent profiles, startup scripts, and dependency management for the psagentia system.
38 lines
1.3 KiB
Python
Executable File
38 lines
1.3 KiB
Python
Executable File
"""Directly exposed API functions and classes, :func:`Document` for now.
|
|
|
|
Provides a syntactically more convenient API for interacting with the OpcPackage graph.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
from typing import IO, TYPE_CHECKING, cast
|
|
|
|
from docx.opc.constants import CONTENT_TYPE as CT
|
|
from docx.package import Package
|
|
|
|
if TYPE_CHECKING:
|
|
from docx.document import Document as DocumentObject
|
|
from docx.parts.document import DocumentPart
|
|
|
|
|
|
def Document(docx: str | IO[bytes] | None = None) -> DocumentObject:
|
|
"""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.
|
|
"""
|
|
docx = _default_docx_path() if docx is None else docx
|
|
document_part = cast("DocumentPart", Package.open(docx).main_document_part)
|
|
if document_part.content_type != CT.WML_DOCUMENT_MAIN:
|
|
tmpl = "file '%s' is not a Word file, content type is '%s'"
|
|
raise ValueError(tmpl % (docx, document_part.content_type))
|
|
return document_part.document
|
|
|
|
|
|
def _default_docx_path():
|
|
"""Return the path to the built-in default .docx package."""
|
|
_thisdir = os.path.split(__file__)[0]
|
|
return os.path.join(_thisdir, "templates", "default.docx")
|