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,2 @@
|
||||
from .numpy_proxy import numpy as numpy, has_numpy as has_numpy
|
||||
from .pandas_proxy import pandas as pandas
|
||||
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
from .._exceptions import OpenAIError
|
||||
|
||||
INSTRUCTIONS = """
|
||||
|
||||
OpenAI error:
|
||||
|
||||
missing `{library}`
|
||||
|
||||
This feature requires additional dependencies:
|
||||
|
||||
$ pip install openai[{extra}]
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def format_instructions(*, library: str, extra: str) -> str:
|
||||
return INSTRUCTIONS.format(library=library, extra=extra)
|
||||
|
||||
|
||||
class MissingDependencyError(OpenAIError):
|
||||
pass
|
||||
@@ -0,0 +1,37 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING, Any
|
||||
from typing_extensions import override
|
||||
|
||||
from .._utils import LazyProxy
|
||||
from ._common import MissingDependencyError, format_instructions
|
||||
|
||||
if TYPE_CHECKING:
|
||||
import numpy as numpy
|
||||
|
||||
|
||||
NUMPY_INSTRUCTIONS = format_instructions(library="numpy", extra="datalib")
|
||||
|
||||
|
||||
class NumpyProxy(LazyProxy[Any]):
|
||||
@override
|
||||
def __load__(self) -> Any:
|
||||
try:
|
||||
import numpy
|
||||
except ImportError as err:
|
||||
raise MissingDependencyError(NUMPY_INSTRUCTIONS) from err
|
||||
|
||||
return numpy
|
||||
|
||||
|
||||
if not TYPE_CHECKING:
|
||||
numpy = NumpyProxy()
|
||||
|
||||
|
||||
def has_numpy() -> bool:
|
||||
try:
|
||||
import numpy # noqa: F401 # pyright: ignore[reportUnusedImport]
|
||||
except ImportError:
|
||||
return False
|
||||
|
||||
return True
|
||||
@@ -0,0 +1,28 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING, Any
|
||||
from typing_extensions import override
|
||||
|
||||
from .._utils import LazyProxy
|
||||
from ._common import MissingDependencyError, format_instructions
|
||||
|
||||
if TYPE_CHECKING:
|
||||
import pandas as pandas
|
||||
|
||||
|
||||
PANDAS_INSTRUCTIONS = format_instructions(library="pandas", extra="datalib")
|
||||
|
||||
|
||||
class PandasProxy(LazyProxy[Any]):
|
||||
@override
|
||||
def __load__(self) -> Any:
|
||||
try:
|
||||
import pandas
|
||||
except ImportError as err:
|
||||
raise MissingDependencyError(PANDAS_INSTRUCTIONS) from err
|
||||
|
||||
return pandas
|
||||
|
||||
|
||||
if not TYPE_CHECKING:
|
||||
pandas = PandasProxy()
|
||||
Reference in New Issue
Block a user