Skip to main content

A library for executing CEDARScript, a SQL-like language for code analysis and transformations

Project description

CEDARScript Editor (Python)

PyPI version Python Versions Code style: black AGPL v3

CEDARScript Editor (Python) is a CEDARScript runtime for interpreting CEDARScript scripts and performing code analysis and modification operations on a codebase.

CEDARScript enables offloading low-level code syntax and structure concerns, such as indentation and line counting, from the LLMs. The CEDARScript runtime bears the brunt of file editing by locating the exact line numbers and characters to change, which indentation levels to apply to each line and so on, allowing the CEDARScript commands to focus instead on higher levels of abstraction, like identifier names, line markers, relative indentations and positions (AFTER, BEFORE, INSIDE a function, its BODY, at the TOP or BOTTOM of it...).

It acts as an intermediary between the LLM and the codebase, handling the low-level details of code manipulation and allowing the AI to focus on higher-level tasks.

What is CEDARScript?

CEDARScript (Concise Examination, Development, And Refactoring Script) is a domain-specific language that aims to improve how AI coding assistants interact with codebases and communicate their code modification intentions.

It provides a standardized way to express complex code modification and analysis operations, making it easier for AI-assisted development tools to understand and execute these tasks.

Features

  • Given a CEDARScript script and a base directory, executes the script commands on files inside the base directory;
  • Return results in XML format for easier parsing and processing by LLM systems

Installation

You can install CEDARScript Editor using pip:

pip install cedarscript-editor

Usage

Here's a quick example of how to use CEDARScript Editor:

from cedarscript_editor import CEDARScriptEdior

parser = CEDARScriptEdior()
code = """
CREATE FILE "example.py"
UPDATE FILE "example.py"
    INSERT AT END OF FILE
        CONTENT
            print("Hello, World!")
        END CONTENT
END UPDATE
"""

commands, errors = parser.parse_script(code)

if errors:
    for error in errors:
        print(f"Error: {error}")
else:
    for command in commands:
        print(f"Parsed command: {command}")

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cedarscript_editor-1.2.4.tar.gz (211.4 kB view details)

Uploaded Source

Built Distribution

cedarscript_editor-1.2.4-py3-none-any.whl (43.6 kB view details)

Uploaded Python 3

File details

Details for the file cedarscript_editor-1.2.4.tar.gz.

File metadata

  • Download URL: cedarscript_editor-1.2.4.tar.gz
  • Upload date:
  • Size: 211.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for cedarscript_editor-1.2.4.tar.gz
Algorithm Hash digest
SHA256 6e7b39e8ea710899fd7426c6f0f30801b494dbe663a301c4282d3aed49bcecf3
MD5 34602b320d69065f66009cceffe40dce
BLAKE2b-256 9c2eb1631b5353bd0171d32ae8c32468e45137751b55bb6edf91c54a97ddc6a3

See more details on using hashes here.

File details

Details for the file cedarscript_editor-1.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for cedarscript_editor-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1df4b6392d7e6b19d24e3122e4caf0de56b5b9baeafc98c8c0c631326139e48e
MD5 f271f0a76f0a5903ce9f0bb99ce6a1b5
BLAKE2b-256 10b168d385393393eec54f817080e567012de17e21ef9d4be501b709e54b5f9d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page