Spaces:
Paused
Paused
| """|SettingsPart| and closely related objects.""" | |
| from __future__ import annotations | |
| import os | |
| from typing import TYPE_CHECKING, cast | |
| from docx.opc.constants import CONTENT_TYPE as CT | |
| from docx.opc.packuri import PackURI | |
| from docx.opc.part import XmlPart | |
| from docx.oxml.parser import parse_xml | |
| from docx.settings import Settings | |
| if TYPE_CHECKING: | |
| from docx.oxml.settings import CT_Settings | |
| from docx.package import Package | |
| class SettingsPart(XmlPart): | |
| """Document-level settings part of a WordprocessingML (WML) package.""" | |
| def __init__( | |
| self, partname: PackURI, content_type: str, element: CT_Settings, package: Package | |
| ): | |
| super().__init__(partname, content_type, element, package) | |
| self._settings = element | |
| def default(cls, package: Package): | |
| """Return a newly created settings part, containing a default `w:settings` | |
| element tree.""" | |
| partname = PackURI("/word/settings.xml") | |
| content_type = CT.WML_SETTINGS | |
| element = cast("CT_Settings", parse_xml(cls._default_settings_xml())) | |
| return cls(partname, content_type, element, package) | |
| def settings(self) -> Settings: | |
| """A |Settings| proxy object for the `w:settings` element in this part. | |
| Contains the document-level settings for this document. | |
| """ | |
| return Settings(self._settings) | |
| def _default_settings_xml(cls): | |
| """Return a bytestream containing XML for a default settings part.""" | |
| path = os.path.join(os.path.split(__file__)[0], "..", "templates", "default-settings.xml") | |
| with open(path, "rb") as f: | |
| xml_bytes = f.read() | |
| return xml_bytes | |