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,29 @@
|
||||
import os
|
||||
from typing import Union
|
||||
|
||||
_Path = Union[str, os.PathLike]
|
||||
|
||||
|
||||
def ensure_directory(path):
|
||||
"""Ensure that the parent directory of `path` exists"""
|
||||
dirname = os.path.dirname(path)
|
||||
os.makedirs(dirname, exist_ok=True)
|
||||
|
||||
|
||||
def same_path(p1: _Path, p2: _Path) -> bool:
|
||||
"""Differs from os.path.samefile because it does not require paths to exist.
|
||||
Purely string based (no comparison between i-nodes).
|
||||
>>> same_path("a/b", "./a/b")
|
||||
True
|
||||
>>> same_path("a/b", "a/./b")
|
||||
True
|
||||
>>> same_path("a/b", "././a/b")
|
||||
True
|
||||
>>> same_path("a/b", "./a/b/c/..")
|
||||
True
|
||||
>>> same_path("a/b", "../a/b/c")
|
||||
False
|
||||
>>> same_path("a", "a/b")
|
||||
False
|
||||
"""
|
||||
return os.path.normpath(p1) == os.path.normpath(p2)
|
||||
Reference in New Issue
Block a user