Skip to content

Commit be6a8d5

Browse files
committed
workflow for pyscript dist
1 parent d4e6abe commit be6a8d5

File tree

5 files changed

+165
-7
lines changed

5 files changed

+165
-7
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# ReactPy-Django Build Artifacts
2-
src/reactpy_django/static/*
2+
src/reactpy_django/static/reactpy_django/client.js
3+
src/reactpy_django/static/reactpy_django/pyscript
34

45
# Django #
56
logs

setup.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations, print_function
22

3+
import shutil
34
import sys
45
import traceback
56
from distutils import log
@@ -16,7 +17,9 @@
1617
name = "reactpy_django"
1718
root_dir = Path(__file__).parent
1819
src_dir = root_dir / "src"
20+
js_dir = src_dir / "js"
1921
package_dir = src_dir / name
22+
static_dir = package_dir / "static" / name
2023

2124

2225
# -----------------------------------------------------------------------------
@@ -97,22 +100,29 @@
97100
def build_javascript_first(build_cls: type):
98101
class Command(build_cls):
99102
def run(self):
100-
js_dir = str(src_dir / "js")
101103

102104
log.info("Installing Javascript...")
103-
result = npm.call(["install"], cwd=js_dir)
105+
result = npm.call(["install"], cwd=str(js_dir))
104106
if result != 0:
105107
log.error(traceback.format_exc())
106108
log.error("Failed to install Javascript")
107109
raise RuntimeError("Failed to install Javascript")
108110

109111
log.info("Building Javascript...")
110-
result = npm.call(["run", "build"], cwd=js_dir)
112+
result = npm.call(["run", "build"], cwd=str(js_dir))
111113
if result != 0:
112114
log.error(traceback.format_exc())
113115
log.error("Failed to build Javascript")
114116
raise RuntimeError("Failed to build Javascript")
115117

118+
log.info("Copying @pyscript/core distribution")
119+
pyscript_dist = js_dir / "node_modules" / "@pyscript" / "core" / "dist"
120+
pyscript_static_dir = static_dir / "pyscript"
121+
if not pyscript_static_dir.exists():
122+
pyscript_static_dir.mkdir()
123+
for file in pyscript_dist.iterdir():
124+
shutil.copy(file, pyscript_static_dir / file.name)
125+
116126
log.info("Successfully built Javascript")
117127
super().run()
118128

src/js/package-lock.json

Lines changed: 132 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/js/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@
1313
"@rollup/plugin-replace": "^5.0.5",
1414
"@types/react": "^18.2.48",
1515
"@types/react-dom": "^18.2.18",
16-
"prettier": "^3.2.3",
1716
"eslint": "^8.38.0",
1817
"eslint-plugin-react": "^7.32.2",
18+
"prettier": "^3.2.3",
1919
"rollup": "^4.9.5",
2020
"typescript": "^5.3.3"
2121
},
2222
"dependencies": {
23+
"@pyscript/core": "^0.4.48",
2324
"@reactpy/client": "^0.3.1",
2425
"@rollup/plugin-typescript": "^11.1.6",
2526
"tslib": "^2.6.2"

tests/test_app/__init__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import shutil
12
from pathlib import Path
23

34
from nodejs import npm
@@ -6,3 +7,18 @@
67
js_dir = Path(__file__).parent.parent.parent / "src" / "js"
78
assert npm.call(["install"], cwd=str(js_dir)) == 0
89
assert npm.call(["run", "build"], cwd=str(js_dir)) == 0
10+
11+
# Make sure the current PyScript distribution is available
12+
pyscript_dist = js_dir / "node_modules" / "@pyscript" / "core" / "dist"
13+
pyscript_static_dir = (
14+
Path(__file__).parent.parent.parent
15+
/ "src"
16+
/ "reactpy_django"
17+
/ "static"
18+
/ "reactpy_django"
19+
/ "pyscript"
20+
)
21+
if not pyscript_static_dir.exists():
22+
pyscript_static_dir.mkdir()
23+
for file in pyscript_dist.iterdir():
24+
shutil.copy(file, pyscript_static_dir / file.name)

0 commit comments

Comments
 (0)