"""|SettingsPart| and closely related objects.""" import os 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 class SettingsPart(XmlPart): """Document-level settings part of a WordprocessingML (WML) package.""" @classmethod def default(cls, 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 = parse_xml(cls._default_settings_xml()) return cls(partname, content_type, element, package) @property def settings(self): """A |Settings| proxy object for the `w:settings` element in this part, containing the document-level settings for this document.""" return Settings(self.element) @classmethod 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