Mix natural language into your Python code
Project description
Maccarone: AI-managed code blocks in Python ⏪⏩
Maccarone lets you delegate sections of your Python program to AI ownership.
Here's what it looks like in the VS Code extension:
Example
You might write some code like this:
def main(path: str):
#<<filenames = a list of filenames under path>>
for fn in filenames:
#<<size = size of fn in bytes>>
print(fn, size)
#<<use argparse and call main>>
Maccarone then fills in the sections you've delegated:
def main(path: str):
#<<filenames = list of filenames under path; no dirs>>
import os
filenames = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))]
#<</>>
for fn in filenames:
#<<size = size of fn in bytes>>
size = os.path.getsize(os.path.join(path, fn))
#<</>>
print(fn, size)
#<<use argparse and call main>>
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("path", type=str)
args = parser.parse_args()
main(args.path)
#<</>>
Make a change in your code, like adding an extension
parameter to main
, and Maccarone keeps its sections up to date:
def main(path: str, extension: str | None = None):
#<<filenames = list of filenames under path; no dirs>>
…
if extension:
filenames = [f for f in filenames if f.endswith(extension)]
#<</>>
…
#<<use argparse and call main>>
…
parser.add_argument("--extension", type=str, default=None)
args = parser.parse_args()
main(args.path, args.extension)
#<</>>
Quickstart
Prerequisites
- Python 3.8+
- OpenAI API key with GPT-4 (
export OPENAI_API_KEY
)
Easy Mode - VS Code Extension
Easy mode is the free extension from the VS Code marketplace.
Install it in VS Code and you're done (if you have the prerequisites above).
Other Option - Command Line
If you don't use VS Code, you can still install Maccarone directly from PyPI:
pip install maccarone
Then run maccarone
to generate code and update your source file:
$ maccarone --rewrite examples/file_sizes.py
Usage notes
Running maccarone
on a directory
Maccarone can rewrite all files in a directory:
$ maccarone --rewrite --suffix .py examples/
Be careful! You should probably run this only on files in source control, for example.
Related work
FAQs
It needs my OpenAI API key?
Maccarone prompts GPT-4 to write code. It will make OpenAI API calls using your key and you will be charged by OpenAI.
API calls are made every time Maccarone preprocesses a new version of a source file.
The number of tokens consumed is proportional to the size of your completed code. You cannot accurately predict that number in advance. A small source module might cost $0.01–0.10 to preprocess.
What prevents my program from behaving differently after each preprocessing run?
The strength of your faith in GPT-4.
What about non-English languages?
They are likely to work, but less likely than English.
What does "maccarone" mean?
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for maccarone-0.1.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a24aa7940602807c9f7542bd49f7407fde95ce54d4b2dfcf76bac8740c11acb |
|
MD5 | 12ed69d36b747e84ade274dea9f43028 |
|
BLAKE2b-256 | 9dc50224ae045ef187ba2485c3de89f422650511b0b38578cc1549e0caaff6fb |