|
import os |
|
import subprocess |
|
|
|
directory = os.path.dirname(os.path.realpath(__file__)) |
|
|
|
|
|
def run(*command: str) -> None: |
|
print(f">>>>> Running poetry run {' '.join(command)}") |
|
subprocess.run(["poetry", "run"] + list(command), cwd=directory, check=True) |
|
|
|
|
|
def lint(): |
|
try: |
|
run("ruff", "check", ".", "--exit-zero") |
|
run("isort", "--diff", "--check", "--profile", "black", ".") |
|
run("black", "--diff", "--check", ".") |
|
run("pyright") |
|
except subprocess.CalledProcessError as e: |
|
print("Lint failed, try running `poetry run format` to fix the issues: ", e) |
|
raise e |
|
|
|
|
|
def populate_database(): |
|
import glob |
|
import json |
|
import pathlib |
|
|
|
import requests |
|
|
|
import market.model |
|
|
|
templates = ( |
|
pathlib.Path(__file__).parent.parent / "autogpt_server" / "graph_templates" |
|
) |
|
|
|
all_files = glob.glob(str(templates / "*.json")) |
|
|
|
for file in all_files: |
|
with open(file, "r") as f: |
|
data = f.read() |
|
req = market.model.AddAgentRequest( |
|
graph=json.loads(data), |
|
author="Populate DB", |
|
categories=["Pre-Populated"], |
|
keywords=["test"], |
|
) |
|
response = requests.post( |
|
"http://localhost:8001/api/v1/market/admin/agent", json=req.model_dump() |
|
) |
|
print(response.text) |
|
|
|
|
|
def format(): |
|
run("ruff", "check", "--fix", ".") |
|
run("isort", "--profile", "black", ".") |
|
run("black", ".") |
|
run("pyright", ".") |
|
|
|
|
|
def app(): |
|
run("uvicorn", "market.app:app", "--reload", "--port", "8001") |
|
|
|
|
|
def setup(): |
|
run("prisma", "generate") |
|
run("prisma", "migrate", "deploy") |
|
|