chore: import upstream snapshot with attribution
Validate YAML Workflows / Validate YAML Configuration Files (push) Has been cancelled
Validate YAML Workflows / Validate YAML Configuration Files (push) Has been cancelled
This commit is contained in:
Executable
+62
@@ -0,0 +1,62 @@
|
||||
"""
|
||||
SQLite-backed storage helpers for Vue graph editor payloads.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sqlite3
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
|
||||
_INITIALIZED_PATHS: set[Path] = set()
|
||||
|
||||
|
||||
def _get_db_path() -> Path:
|
||||
"""Resolve the SQLite database path, allowing overrides via env."""
|
||||
return Path(os.getenv("VUEGRAPHS_DB_PATH", "data/vuegraphs.db"))
|
||||
|
||||
|
||||
def _ensure_db_initialized() -> Path:
|
||||
"""Create the SQLite database and table if they do not already exist."""
|
||||
db_path = _get_db_path()
|
||||
if db_path not in _INITIALIZED_PATHS or not db_path.exists():
|
||||
db_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
with sqlite3.connect(db_path) as connection:
|
||||
connection.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS vuegraphs (
|
||||
filename TEXT PRIMARY KEY,
|
||||
content TEXT NOT NULL
|
||||
)
|
||||
"""
|
||||
)
|
||||
connection.commit()
|
||||
_INITIALIZED_PATHS.add(db_path)
|
||||
return db_path
|
||||
|
||||
|
||||
def save_vuegraph_content(filename: str, content: str) -> None:
|
||||
"""Insert or update the stored content for the provided filename."""
|
||||
db_path = _ensure_db_initialized()
|
||||
with sqlite3.connect(db_path) as connection:
|
||||
connection.execute(
|
||||
"""
|
||||
INSERT INTO vuegraphs (filename, content)
|
||||
VALUES (?, ?)
|
||||
ON CONFLICT(filename) DO UPDATE SET content=excluded.content
|
||||
""",
|
||||
(filename, content),
|
||||
)
|
||||
connection.commit()
|
||||
|
||||
|
||||
def fetch_vuegraph_content(filename: str) -> Optional[str]:
|
||||
"""Return the stored content for filename, or None when absent."""
|
||||
db_path = _ensure_db_initialized()
|
||||
with sqlite3.connect(db_path) as connection:
|
||||
cursor = connection.execute(
|
||||
"SELECT content FROM vuegraphs WHERE filename = ?",
|
||||
(filename,),
|
||||
)
|
||||
row = cursor.fetchone()
|
||||
return row[0] if row else None
|
||||
Reference in New Issue
Block a user