Skip to content

Commit d99dd87

Browse files
Merge remote-tracking branch 'origin/master' into documentation
2 parents b0a6418 + e501252 commit d99dd87

20 files changed

Lines changed: 1273 additions & 348 deletions

.github/workflows/benchmark.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ jobs:
1111
runs-on: ubuntu-latest
1212
timeout-minutes: 20
1313
steps:
14-
- uses: actions/checkout@v5
14+
- uses: actions/checkout@v7
1515

1616
- name: Install uv
17-
uses: astral-sh/setup-uv@v6
17+
uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3 # v8.3.0
1818

1919
- name: Set up Python
20-
uses: actions/setup-python@v5
20+
uses: actions/setup-python@v6
2121
with:
2222
python-version-file: "pyproject.toml"
2323

@@ -50,7 +50,7 @@ jobs:
5050
5151
- name: Upload benchmarks
5252
if: always()
53-
uses: actions/upload-artifact@v4
53+
uses: actions/upload-artifact@v7
5454
with:
5555
name: Benchmarks
5656
path: .benchmarks/

.github/workflows/ci.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515
name: Lint
1616
runs-on: ubuntu-latest
1717
steps:
18-
- uses: actions/checkout@v5
18+
- uses: actions/checkout@v7
1919
- name: Install uv
20-
uses: astral-sh/setup-uv@v6
20+
uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3 # v8.3.0
2121
- name: Set up Python
22-
uses: actions/setup-python@v5
22+
uses: actions/setup-python@v6
2323
with:
2424
python-version-file: "pyproject.toml"
2525
- name: Install only dev dependencies
@@ -47,11 +47,11 @@ jobs:
4747
- name: Linux py314
4848
pyversion: "3.14"
4949
steps:
50-
- uses: actions/checkout@v5
50+
- uses: actions/checkout@v7
5151
- name: Install uv
52-
uses: astral-sh/setup-uv@v6
52+
uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3 # v8.3.0
5353
- name: Set up Python ${{ matrix.pyversion }}
54-
uses: actions/setup-python@v5
54+
uses: actions/setup-python@v6
5555
with:
5656
python-version: ${{ matrix.pyversion }}
5757
- name: Install system dependencies
@@ -69,11 +69,11 @@ jobs:
6969
name: Test PyInstaller hooks
7070
runs-on: ubuntu-latest
7171
steps:
72-
- uses: actions/checkout@v5
72+
- uses: actions/checkout@v7
7373
- name: Install uv
74-
uses: astral-sh/setup-uv@v6
74+
uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3 # v8.3.0
7575
- name: Set up Python
76-
uses: actions/setup-python@v5
76+
uses: actions/setup-python@v6
7777
with:
7878
python-version-file: "pyproject.toml"
7979
- name: Install dependencies
@@ -85,11 +85,11 @@ jobs:
8585
name: Build and test wheel
8686
runs-on: ubuntu-latest
8787
steps:
88-
- uses: actions/checkout@v5
88+
- uses: actions/checkout@v7
8989
- name: Install uv
90-
uses: astral-sh/setup-uv@v6
90+
uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3 # v8.3.0
9191
- name: Set up Python 3.10
92-
uses: actions/setup-python@v2
92+
uses: actions/setup-python@v6
9393
with:
9494
python-version: "3.10"
9595
- name: Install dependencies
@@ -99,7 +99,7 @@ jobs:
9999
- name: Twine check
100100
run: uv run twine check dist/*
101101
- name: Upload wheel artifact
102-
uses: actions/upload-artifact@v4
102+
uses: actions/upload-artifact@v7
103103
with:
104104
path: dist
105105
name: dist
@@ -116,14 +116,14 @@ jobs:
116116
id-token: write
117117
contents: write
118118
steps:
119-
- uses: actions/checkout@v5
119+
- uses: actions/checkout@v7
120120
- name: Download wheel artifact
121-
uses: actions/download-artifact@v4
121+
uses: actions/download-artifact@v8
122122
with:
123123
name: dist
124124
path: dist
125125
- name: Release to GitHub
126-
uses: softprops/action-gh-release@v2
126+
uses: softprops/action-gh-release@v3
127127
with:
128128
token: ${{ secrets.GITHUB_TOKEN }}
129129
files: |

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,12 @@ Instead of using a python file as an entry point to run components, you can run
7575
uv run collagraph examples/pyside/counter.cgx
7676
```
7777

78+
To inspect the Python code that is compiled for a component, use the `--show-code` flag:
79+
80+
```sh
81+
uv run collagraph --show-code examples/pyside/counter.cgx
82+
```
83+
7884
For more examples, please take a look at the [examples folder](examples).
7985

8086
Currently there are two renderers:

collagraph/__main__.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ def animate():
8181
breakpoint() # noqa: T100
8282

8383

84+
def show_code(component_path: Path):
85+
"""Pretty print the Python code that is compiled for a component."""
86+
from collagraph.sfc import print_source
87+
from collagraph.sfc.compiler import generate_source
88+
89+
print_source(generate_source(component_path), component_path)
90+
91+
8492
def existing_component_file(value):
8593
path = Path(value)
8694
if not path.exists():
@@ -134,8 +142,17 @@ def run():
134142
action="store_true",
135143
help="Enable hot reloading (reload on file changes)",
136144
)
145+
parser.add_argument(
146+
"--show-code",
147+
action="store_true",
148+
help="Pretty print the compiled Python code for the component and exit",
149+
)
137150
args = parser.parse_args()
138151

152+
if args.show_code:
153+
show_code(args.component)
154+
return
155+
139156
init_collagraph(args.renderer, args.component, args.state, args.hot_reload)
140157

141158

0 commit comments

Comments
 (0)