{"library":"pgspecial","title":"pgspecial","description":"pgspecial is a Python package that provides an API to execute PostgreSQL meta-commands, also known as 'special' or 'backslash commands', typically used in interactive PostgreSQL clients like psql or pgcli. It offers programmatic access to these commands, allowing developers to integrate them into their own applications. The current version is 2.2.1, and it is actively maintained, with releases often coinciding with its primary consumer, pgcli.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pgspecial"],"cli":null},"imports":["from pgspecial.main import PGSpecial","from pgspecial.namedqueries import NamedQueries"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport psycopg2\nfrom pgspecial.main import PGSpecial\n\ntry:\n    # Connection details from environment variables for security/flexibility\n    DB_NAME = os.environ.get('PG_DB_NAME', 'postgres')\n    DB_USER = os.environ.get('PG_DB_USER', 'postgres')\n    DB_PASSWORD = os.environ.get('PG_DB_PASSWORD', '')\n    DB_HOST = os.environ.get('PG_DB_HOST', 'localhost')\n    DB_PORT = os.environ.get('PG_DB_PORT', '5432')\n\n    conn = psycopg2.connect(\n        dbname=DB_NAME, \n        user=DB_USER, \n        password=DB_PASSWORD, \n        host=DB_HOST, \n        port=DB_PORT\n    )\n    cur = conn.cursor()\n    \n    pgspecial = PGSpecial()\n    \n    # Example: List tables in the current database\n    print(\"\\n--- Executing \\\\dt ---\")\n    for title, rows, headers, status in pgspecial.execute(cur, '\\\\dt'):\n        if title: print(f\"Title: {title}\")\n        if headers: print(f\"Headers: {', '.join(headers)}\")\n        if rows:\n            for row in rows:\n                print(f\"Row: {row}\")\n        if status: print(f\"Status: {status}\")\n\n    # Example: Describe a specific table (if one exists, e.g., 'your_table_name')\n    # You might need to create a dummy table for this to show results\n    try:\n        cur.execute(\"CREATE TABLE IF NOT EXISTS pgspecial_example (id SERIAL PRIMARY KEY, name VARCHAR(50))\")\n        conn.commit()\n        print(\"\\n--- Executing \\\\d pgspecial_example ---\")\n        for title, rows, headers, status in pgspecial.execute(cur, '\\\\d pgspecial_example'):\n            if title: print(f\"Title: {title}\")\n            if headers: print(f\"Headers: {', '.join(headers)}\")\n            if rows:\n                for row in rows:\n                    print(f\"Row: {row}\")\n            if status: print(f\"Status: {status}\")\n    except psycopg2.Error as e:\n        print(f\"Could not create/describe example table: {e}\")\n\nexcept psycopg2.Error as e:\n    print(f\"Error connecting to PostgreSQL: {e}\")\n    print(\"Please ensure PostgreSQL is running and connection details (PG_DB_NAME, PG_DB_USER, PG_DB_PASSWORD, PG_DB_HOST, PG_DB_PORT) are correct.\")\nfinally:\n    if 'conn' in locals() and conn:\n        conn.close()","lang":"python","description":"This quickstart demonstrates how to initialize `PGSpecial` and use its `execute` method with a `psycopg2` database cursor to run PostgreSQL meta-commands. It includes an example of listing tables (`\\dt`) and describing a specific table (`\\d table_name`). Ensure you have a running PostgreSQL instance and provide connection details, ideally via environment variables.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"2.2.1","pypi_latest":"2.2.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"21.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.9,"import_time_s":null,"mem_mb":null,"disk_size":"22M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"23.9M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.1,"import_time_s":null,"mem_mb":null,"disk_size":"24M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"15.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.9,"import_time_s":null,"mem_mb":null,"disk_size":"16M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"15.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.8,"import_time_s":null,"mem_mb":null,"disk_size":"16M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"20.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pgspecial","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.2,"import_time_s":null,"mem_mb":null,"disk_size":"21M"}]}}