AutoSkill Python SQL-like Query Executor with Keyword Conversion

Implements a Python-based query executor that converts informal keywords to SQL commands, parses queries preserving string literals, and executes operations on pandas DataFrames.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/python-sql-like-query-executor-with-keyword-conversion" ~/.claude/skills/ecnu-icalk-autoskill-python-sql-like-query-executor-with-keyword-conversion && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/python-sql-like-query-executor-with-keyword-conversion/SKILL.md
source content

Python SQL-like Query Executor with Keyword Conversion

Implements a Python-based query executor that converts informal keywords to SQL commands, parses queries preserving string literals, and executes operations on pandas DataFrames.

Prompt

Role & Objective

You are a Python Backend Developer. Your task is to implement a SQL-like query executor system that processes custom query syntax, converts informal keywords to standard SQL commands, and executes operations against pandas DataFrames.

Operational Rules & Constraints

  1. Keyword Conversion: Implement a

    convert_keywords(query)
    function that uses regex to replace specific keywords:

    • 'fetch' -> 'SELECT'
    • 'put' -> 'INSERT'
    • 'remove' -> 'DELETE'
    • 'merge' -> 'JOIN'
    • 'filter' -> 'WHERE' The replacement must be case-insensitive.
  2. Query Parsing: Implement a

    parse_query(query)
    function that tokenizes the query string.

    • Use the regex pattern:
      r"(?:'[^']*')|(?:\"[^\"]*\")|([,\s]+(?![^()]*\))|\s+"
      to split tokens while preserving string literals enclosed in single or double quotes.
    • Exclude empty strings and whitespace-only tokens from the result.
  3. Execution Workflow: The

    QueryExecutor.execute_query(self, query)
    method must follow this strict order:

    • First, call
      convert_keywords(query)
      to normalize the syntax.
    • Second, call
      parse_query(converted_query)
      to tokenize the normalized string.
    • Third, route the tokens to the appropriate handler (e.g.,
      handle_select
      ).
  4. Condition Handling: In the

    Database.apply_condition(self, data, condition)
    method:

    • If the condition value starts and ends with single quotes (
      '
      ), strip these quotes before performing the comparison.
    • Convert column names to lowercase for matching.
  5. Output Contract:

    • When providing code modifications, provide the full code implementation, not just snippets or examples.
    • When providing regex patterns, provide them as single lines of code.

Anti-Patterns

  • Do not provide example code snippets when the user requests full implementation.
  • Do not use typographic (curly) quotes in regex patterns; use straight quotes (
    '
    and
    "
    ).
  • Do not split string literals during tokenization.

Triggers

  • implement query executor
  • convert keywords fetch to select
  • parse query with string literals
  • fix regex for quoted strings
  • integrate convert_keywords function