Skip to content

Commit 547acde

Browse files
committed
fix docs + improve doc exammple runner
1 parent 49bb80f commit 547acde

File tree

4 files changed

+58
-59
lines changed

4 files changed

+58
-59
lines changed

Diff for: docs/source/examples/simple_dashboard.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def RandomWalkGraph(mu, sigma):
4343
interval = use_interval(0.5)
4444
data, set_data = idom.hooks.use_state([{"x": 0, "y": 0}] * 50)
4545

46-
@idom.hooks.use_async
46+
@idom.hooks.use_effect
4747
async def animate():
4848
await interval
4949
last_data_point = data[-1]
@@ -75,8 +75,8 @@ def update_value(value):
7575
)
7676

7777

78-
def use_interval(rate: float) -> Awaitable[None]:
79-
usage_time = use_ref(time.time())
78+
def use_interval(rate):
79+
usage_time = idom.hooks.use_ref(time.time())
8080

8181
async def interval() -> None:
8282
await asyncio.sleep(rate - (time.time() - usage_time.current))

Diff for: docs/source/examples/snake_game.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ async def on_direction_change(event):
7676

7777
interval = use_interval(0.5)
7878

79-
@idom.hooks.use_async
79+
@idom.hooks.use_effect
8080
async def animate():
8181
if new_game_state is not None:
8282
await asyncio.sleep(1)
@@ -114,8 +114,8 @@ def set_food():
114114
return food, set_food
115115

116116

117-
def use_interval(rate: float) -> Awaitable[None]:
118-
usage_time = use_ref(time.time())
117+
def use_interval(rate):
118+
usage_time = idom.hooks.use_ref(time.time())
119119

120120
async def interval() -> None:
121121
await asyncio.sleep(rate - (time.time() - usage_time.current))

Diff for: scripts/run_doc_example.py

-53
This file was deleted.

Diff for: scripts/run_doc_examples.py

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import sys
2+
from pathlib import Path
3+
from traceback import print_exc
4+
5+
import idom
6+
from idom.server.sanic import PerClientStateServer
7+
8+
here = Path(__file__).parent
9+
examples_dir = here.parent / "docs" / "source" / "examples"
10+
sys.path.insert(0, str(examples_dir))
11+
12+
for file in examples_dir.iterdir():
13+
if not file.is_file() or not file.suffix == ".py" or file.stem.startswith("_"):
14+
continue
15+
16+
17+
def main():
18+
views = []
19+
20+
for example_file in examples_dir.glob("*.py"):
21+
if not example_file.stem.startswith("_"):
22+
with example_file.open() as f_obj:
23+
try:
24+
exec(
25+
f_obj.read(),
26+
{
27+
"display": lambda f, *a, **kw: views.append(
28+
(example_file.stem, f, a, kw)
29+
),
30+
"__file__": str(file),
31+
"__name__": f"widgets.{file.stem}",
32+
},
33+
)
34+
except Exception:
35+
print(f"Failed to load {example_file}")
36+
print_exc()
37+
print()
38+
39+
@idom.element
40+
def AllExamples():
41+
examples = []
42+
for title, f, a, kw in views:
43+
examples.append(idom.html.h1(title))
44+
examples.append(f(*a, **kw))
45+
examples.append(idom.html.hr({"style": {"margin-top": "20px"}}))
46+
return idom.html.div({"style": {"margin": "20px"}}, examples)
47+
48+
PerClientStateServer(AllExamples).run("127.0.0.1", 5000)
49+
50+
51+
if __name__ == "__main__":
52+
main()

0 commit comments

Comments
 (0)