Python sql like query executor with keyword conversion
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill python-sql-like-query-executor-with-keyword-conversionAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Implements a Python-based query executor that converts informal keywords to SQL commands, parses queries preserving string literals, and executes operations on pandas DataFrames.
SKILL.md
2.9 KB, as published. Nobody here has run it
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
-
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.
-
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.
- Use the regex pattern:
-
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).
- First, call
-
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.
- If the condition value starts and ends with single quotes (
-
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