feat(imports): generate executables from python scripts - #443
Merged
Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
jahvon
force-pushed
the
feat/py-script-imports
branch
from
August 27, 2026 04:28
d34f628 to
ad10991
Compare
jahvon
force-pushed
the
feat/py-script-imports
branch
from
August 27, 2026 05:48
ad10991 to
32ed910
Compare
jahvon
force-pushed
the
feat/py-script-imports
branch
from
August 27, 2026 06:24
32ed910 to
f36c4c9
Compare
jahvon
force-pushed
the
feat/py-script-imports
branch
from
August 27, 2026 06:44
f36c4c9 to
45f9249
Compare
Adds `.py` to the script types that `imports:` can turn into executables, so a repo's Python scripts become named, discoverable flow executables alongside its shell ones. Python uses `#` line comments, so the existing `f:name=` / `f:verb=` metadata syntax and its parser work unchanged — the new parser is the shell one with a different extension. Metadata after a shebang is covered by a test, since a shebang is idiomatic in python scripts. The generated executable leaves `interpreter` unset: the `.py` extension already routes it, and setting the field would add noise to every generated definition. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R328pa3FUUfga4gYah1iQi
jahvon
force-pushed
the
feat/py-script-imports
branch
from
August 27, 2026 06:50
45f9249 to
3a69fbc
Compare
jahvon
added a commit
that referenced
this pull request
Aug 27, 2026
# Summary Reworks flowexec.io: a real design system instead of a 57-line override file, a way to ask questions the guides don't answer, and the SEO/social tags the site never had. Almost entirely docs and `tools/docsgen`. The one runtime change is a second commit fixing three flag usage strings that made `flow --help` print types that do not exist — see the last section. --- ## Ask the codebase `⌘K` local search is untouched and still instant. Alongside it, an **Ask AI** button (`⌘I`) opens a panel that queries DeepWiki's public MCP endpoint directly from the browser — no proxy, no new deploy surface, no secrets. The existing search modal also grows a bridge row that hands the current query across. ## Reference docs (`tools/docsgen`) Cobra's markdown is a flat dump, and the **flag listings were the worst of it** — fixed-width columns that overflowed the content column and clipped their own descriptions off the right edge. A new post-processing pass rewrites them into tables, gives fences a language, and turns the command name into a real page title instead of an h2 with a section rule. The parser is deliberately conservative: anything it cannot parse falls back to a verbatim code block rather than a mangled table. It handles Cobra's backtick-derived placeholders that contain spaces and wrapped description lines. ## SEO There were no Open Graph tags, no Twitter card, no canonical, and no social image, so a link to flowexec.io previewed as a bare URL. ## Guides `integrations.md` split into **Containers** (the `exec.container` field with its full option table, plus running the CLI from the image) and **GitHub Actions** (inputs and outputs read from `action.yaml`). Both sit under a new Integrations group alongside AI Tools. All inbound links and `llms.txt` repointed. Containers covers the Python support from #439–#443 that landed while this was in flight: the interpreter-dependent `entrypoint` default, and the host Python env vars that are dropped at the container boundary regardless of `inheritEnv`. Also: nav collapsed from five items to three (the two reference sections became one menu), a Dockery Labs footer, and `docs/public/demo.gif` deleted — 3 MB, orphaned, nothing referenced it. --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part 5/5. Stacked on #442.
Summary
Adds
.pyto the script typesimports:can turn into executables, so a repo's Python scripts become named, discoverable flow executables alongside its shell ones.→
flow analyze metricsNotable Changes
#line comments, so the existingf:name=/f:verb=metadata syntax and its parser work unchanged — the new parser is the shell one with a different extension.interpreterunset: the.pyextension already routes it (Part 1), and setting the field would add noise to every generated definition.executables.md(import table + a Python tab in the metadata examples) andgenerated-config.md(supported types, comment-prefix note, and Python tabs in the params/args examples).Testing
interpreterunset while still resolving to Python via its extension..sh/.bat/.ps1ones..py, synced, then run — metadata, tags, and description all landed, andflow analyze metricsexecuted it under Python.flow validatepasses;generateproduces no diff.🤖 Generated with Claude Code
https://claude.ai/code/session_01R328pa3FUUfga4gYah1iQi