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 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
|
||||
TYPE_CHECKING = False
|
||||
if TYPE_CHECKING:
|
||||
from typing import Any, NoReturn, TypeGuard
|
||||
|
||||
from ._typing import StrOrBytesPath
|
||||
|
||||
|
||||
def is_path(f: Any) -> TypeGuard[StrOrBytesPath]:
|
||||
return isinstance(f, (bytes, str, os.PathLike))
|
||||
|
||||
|
||||
class DeferredError:
|
||||
def __init__(self, ex: BaseException):
|
||||
self.ex = ex
|
||||
|
||||
def __getattr__(self, elt: str) -> NoReturn:
|
||||
raise self.ex
|
||||
|
||||
@staticmethod
|
||||
def new(ex: BaseException) -> Any:
|
||||
"""
|
||||
Creates an object that raises the wrapped exception ``ex`` when used,
|
||||
and casts it to :py:obj:`~typing.Any` type.
|
||||
"""
|
||||
return DeferredError(ex)
|
||||
Reference in New Issue
Block a user