feat: add psagentai agent with deployment and configuration
Initial project setup including the main agent script, configuration files, profile JSON state, systemd service unit, startup script, deployment documentation, and Python dependencies. Includes .env, venv/, and __pycache__/ which should likely be excluded via .gitignore to avoid committing secrets and artifacts.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
"""Header and footer part objects."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from docx.opc.constants import CONTENT_TYPE as CT
|
||||
from docx.oxml.parser import parse_xml
|
||||
from docx.parts.story import StoryPart
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from docx.package import Package
|
||||
|
||||
|
||||
class FooterPart(StoryPart):
|
||||
"""Definition of a section footer."""
|
||||
|
||||
@classmethod
|
||||
def new(cls, package: Package):
|
||||
"""Return newly created footer part."""
|
||||
partname = package.next_partname("/word/footer%d.xml")
|
||||
content_type = CT.WML_FOOTER
|
||||
element = parse_xml(cls._default_footer_xml())
|
||||
return cls(partname, content_type, element, package)
|
||||
|
||||
@classmethod
|
||||
def _default_footer_xml(cls):
|
||||
"""Return bytes containing XML for a default footer part."""
|
||||
path = os.path.join(os.path.split(__file__)[0], "..", "templates", "default-footer.xml")
|
||||
with open(path, "rb") as f:
|
||||
xml_bytes = f.read()
|
||||
return xml_bytes
|
||||
|
||||
|
||||
class HeaderPart(StoryPart):
|
||||
"""Definition of a section header."""
|
||||
|
||||
@classmethod
|
||||
def new(cls, package: Package):
|
||||
"""Return newly created header part."""
|
||||
partname = package.next_partname("/word/header%d.xml")
|
||||
content_type = CT.WML_HEADER
|
||||
element = parse_xml(cls._default_header_xml())
|
||||
return cls(partname, content_type, element, package)
|
||||
|
||||
@classmethod
|
||||
def _default_header_xml(cls):
|
||||
"""Return bytes containing XML for a default header part."""
|
||||
path = os.path.join(os.path.split(__file__)[0], "..", "templates", "default-header.xml")
|
||||
with open(path, "rb") as f:
|
||||
xml_bytes = f.read()
|
||||
return xml_bytes
|
||||
Reference in New Issue
Block a user