import psycopg as pg from _connection import _conn_dict as conn def have_project(name: str) -> bool: with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn: with conn.cursor() as cur: cur.execute(f"select * from pg_database where datname = '{name}'") return cur.rowcount > 0 def create_project(name: str) -> None: with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn: with conn.cursor() as cur: cur.execute(f"create database {name} with template = project") def delete_project(name: str) -> None: with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn: with conn.cursor() as cur: cur.execute(f"drop database {name}") def open_project(name: str) -> None: conn[name] = pg.connect(conninfo=f"dbname={name}", autocommit=True) def is_project_open(name: str) -> bool: return name in conn def close_project(name: str) -> None: conn[name].close() del conn[name]