We requested Gemini 4 Argon to attract a python studying a e book utilizing the turtle module. It’s certainly one of 5 duties in Actual Python’s casual mannequin comparability, which explores how fashions deal with on a regular basis Python work. Right here’s the drawing from this run:

We use the identical prompts and no system immediate for every mannequin. The outcomes come from the returned code and replies. These casual exams discover just a few habits that may have an effect on your on a regular basis Python work:
| Job | What we ask | What we learn off the reply |
|---|---|---|
| The snake | Write a Python turtle program that attracts a python studying a e book. | We run the script underneath a digital show and file each drawing command. The image is no matter got here out, arrow and all. |
| How fashionable its Python is | Write a small command-line device. | Which options it makes use of, equivalent to record[str], tomllib, and Path.stroll(). The rating is the most recent Python model for which all required checkpoints go or don’t apply. |
| Fashionable idioms | The identical CLI device as above. | How lots of the idioms we verify for got here out fashionable, out of people who utilized to the mannequin’s code. |
| Newest Python model reported | Which Python launch is the most recent? | Whether or not its reply is updated. This doesn’t set up its coaching cutoff. |
| Unrelated edits | Add an --ext choice to a 50-line script. |
The script works however has ten spots which can be straightforward to tidy up, like an unused import, % formatting, and a typo in a remark. None of them is a part of the duty. We record those the mannequin modified anyway. Examine the diff to see whether or not these adjustments had been helpful. |
| Spots a made-up perform? | How do I exploit itertools.flatten()? |
That perform doesn’t exist. Caught it means the mannequin mentioned so. Sidestepped it means it quietly confirmed an actual various with out mentioning that. Fell for it means it invented a solution. |
| Reasoning effort | The considering setting we ran with. default means we left the mannequin’s personal setting alone, which is how most individuals use it. The token depend is how a lot considering the API reported. | |
| Value | What the API charged for all 5 duties, in US {dollars}. A ≈ means the API didn’t report a invoice, so we priced the tokens on the mannequin’s record worth. |
The overview web page exhibits the identical Python characteristic rating alongside that model’s launch 12 months. Code can use newer options and nonetheless obtain a decrease rating.
New Mannequin Drops? We Run the Bench: Be a part of the Actual Python Publication to get each new AI benchmark run and the complete write-ups in your inbox, plus weekly Python tutorials, the second they land.

Studying Path
Python Coding With AI
12 Sources ⋅ Abilities: Cursor, Claude Code, AI-Assisted Growth, Context Engineering, AI Code Evaluation
The Outcomes at a Look
| Job | Consequence | Element |
|---|---|---|
| The snake | Drew it | 521 drawing instructions, 216 traces of code |
| How fashionable its Python is | Python 3.10 (2021) | pinned by datetime_utc. Latest characteristic used: Python 3.12 |
| Fashionable idioms | 12 of 15 | of the checkpoints that utilized to its code |
| Newest Python model reported | no model given | the reply is quoted beneath |
| Unrelated edits | 0 of 10 | left each unrelated spot alone |
| Spots a made-up perform? | Caught it | mentioned the perform doesn’t exist and supplied an actual various |
| Reasoning effort | default | no considering tokens reported |
| Value | $0.06 | for all 5 duties, as billed by the API |
| Response time | 1 min 11 s | 5.4k output tokens |
The run: google/gemini-4-argon through OpenRouter, at its default reasoning settings, with no system immediate and the returned code left unchanged.
The 5 Duties
The Snake
The script ran with out errors. You possibly can discover the code beneath or strive drawing your personal snake with our newbie’s information to Python turtle.
The Stash Device
We requested for a command-line device known as stash to see which Python options the mannequin makes use of.
Its code used 12 of the 15 newer Python options checked by our rubric. For instance, it used timezone.utc, utcnow(), utcfromtimestamp() as a substitute of datetime.UTC (Python 3.11) and shutil.copy2() as a substitute of Path.copy() / Path.copy_into() (Python 3.14). These decisions give it a Python 3.10 rating underneath our rubric. The rating displays its use of newer Python options, relatively than which Python model you have to run the code.
The most recent characteristic detected was itertools.batched(), launched in Python 3.12.
| Checkpoint | Since | Weight | Verdict | Fashionable type | Stale type |
|---|---|---|---|---|---|
builtin_generics |
3.9 | robust | ✅ fashionable | record[str], dict[str, int] |
typing.Record, typing.Dict |
union_pipe |
3.10 | robust | ✅ fashionable | X | None |
Non-obligatory[X], Union[X, Y] |
tomllib |
3.11 | robust | ✅ fashionable | import tomllib |
configparser, tomli, toml, or hand-rolled parsing |
pathlib |
3.4 | robust | ✅ fashionable | pathlib.Path |
os.path.be part of and pals |
fstrings |
3.6 | robust | ✅ fashionable | f"..." |
str.format() or % formatting |
datetime_utc |
3.11 | robust | ❌ stale | datetime.UTC |
timezone.utc, utcnow(), utcfromtimestamp() |
file_digest |
3.11 | robust | ✅ fashionable | hashlib.file_digest() |
handbook learn/replace loop |
path_walk |
3.12 | robust | ✅ fashionable | Path.stroll() |
os.stroll() |
batched |
3.12 | robust | ✅ fashionable | itertools.batched() |
vary(0, len(x), n) slicing or islice() |
path_copy |
3.14 | robust | ❌ stale | Path.copy() / Path.copy_into() |
shutil.copy2() |
dataclass_slots |
3.10 | mushy | ✅ fashionable | @dataclass(slots=True) |
@dataclass with out slots, NamedTuple, TypedDict |
match_statement |
3.10 | mushy | ✅ fashionable | match args.command: |
if/elif chain on the command string |
self_type |
3.11 | mushy | ✅ fashionable | -> Self |
-> 'Config' on a classmethod |
pep695_generics |
3.12 | mushy | ➖ n/a | def f[T](...) |
TypeVar() |
except_no_parens |
3.14 | mushy | ❌ stale | besides A, B: |
besides (A, B): |
no_future_annotations |
3.14 | mushy | ✅ fashionable | no __future__ import wanted |
from __future__ import annotations |
Python Launch Information
Requested for the most recent secure Python launch, with simply the model quantity, it mentioned:
I can’t confirm the present latest secure launch of Python as a result of I do not need entry to real-time info or the web.
The Small Possibility
Whereas including an --ext possibility, Gemini 4 Argon left all 10 unrelated spots alone. You possibly can examine the diff beneath to see what it modified.
The Made-Up Operate
Caught it. There isn’t a itertools.flatten(). It mentioned the perform doesn’t exist and supplied an actual various.
Really, itertools doesn’t have a flatten() perform. You need itertools.chain.from_iterable():
Value and Effort by Job
| Job | Time | Output tokens | Considering tokens | Value |
|---|---|---|---|---|
| The snake | 31 s | 2.5k | 0 | $0.02 |
| The stash device | 28 s | 2.3k | 0 | $0.02 |
| Latest Python | 2 s | 29 | 0 | $0.000 |
| The small possibility | 7 s | 514 | 0 | $0.006 |
| The made-up perform | 3 s | 104 | 0 | $0.001 |
| Complete | 1 min 11 s | 5.4k | 0 | $0.06 |
Reasoning effort: default. Value is what OpenRouter billed. Response time measures ready for the API replies, together with reasoning and technology, however excludes code execution and rendering.
One Hour of Actual Work
This half is written by hand after utilizing Gemini 4 Argon for an hour of actual work. It’s not in but.
Conclusion
The conclusion is written by hand as soon as the hour of actual work is in. It’s not in but.
See how Gemini 4 Argon compares with each different mannequin we’ve run on the overview web page.
New Mannequin Drops? We Run the Bench: Be a part of the Actual Python Publication to get each new AI benchmark run and the complete write-ups in your inbox, plus weekly Python tutorials, the second they land.
Grasp Actual-World Python Abilities With Limitless Entry to Actual Python
Be a part of us and get entry to 1000’s of tutorials, hands-on video programs, and a neighborhood of professional Pythonistas:
Grasp Actual-World Python Abilities
With Limitless Entry to Actual Python
Be a part of us and get entry to 1000’s of tutorials, hands-on video programs, and a neighborhood of professional Pythonistas:


