Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc3345b3

Browse files
authored
Merge branch 'main' into docs
2 parentsd1d3ac4 +d72ac2f commitc3345b3

File tree

4 files changed

+336
-52
lines changed

4 files changed

+336
-52
lines changed

‎GETTING-STARTED.md

Lines changed: 68 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,21 @@ This page will guide you through getting started with PyScript.
77
PyScript does not require any development environment other
88
than a web browser. We recommend using Chrome.
99

10+
If, you're using[VSCode](https://code.visualstudio.com/) the
11+
[Live Server extension](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer)
12+
can be used to reload the page as you edit the HTML file.
13+
1014
##Installation
1115

12-
First, go tohttps://pyscript.net and download the PyScript assets.
13-
Unzip the archive to a directory where you wish to write PyScript-enabled
14-
HTML files. You should then have three files in your directory.
16+
There is no installation required. In this document we'll use
17+
the PyScript assets served onhttps://pyscript.net.
1518

16-
```
17-
├── ./
18-
│ ├── pyscript.css
19-
│ ├── pyscript.js
20-
│ └── pyscript.js.map
21-
```
19+
If you want to download the source and build it yourself follow
20+
the instructions in the README.md file.
2221

2322
##Your first PyScript HTML file
2423

25-
Here's a "Hello, world!" example using PyScript using the assets you
26-
downloaded fromhttps://pyscript.net.
24+
Here's a "Hello, world!" example using PyScript
2725

2826
Using your favorite editor create a new file called`hello.html` in
2927
the same directory as your PyScript JavaScript and CSS files with the
@@ -33,8 +31,8 @@ open an HTML by double clicking it in your file explorer.
3331
```html
3432
<html>
3533
<head>
36-
<linkrel="stylesheet"href="pyscript.css" />
37-
<scriptdefersrc="pyscript.js"></script>
34+
<linkrel="stylesheet"href="https://pyscript.net/alpha/pyscript.css" />
35+
<scriptdefersrc="https://pyscript.net/alpha/pyscript.js"></script>
3836
</head>
3937
<body> <py-script> print('Hello, World!') </py-script> </body>
4038
</html>
@@ -53,8 +51,8 @@ example we can compute π.
5351
```html
5452
<html>
5553
<head>
56-
<linkrel="stylesheet"href="pyscript.css" />
57-
<scriptdefersrc="pyscript.js"></script>
54+
<linkrel="stylesheet"href="https://pyscript.net/alpha/pyscript.css" />
55+
<scriptdefersrc="https://pyscript.net/alpha/pyscript.js"></script>
5856
</head>
5957
<body>
6058
<py-script>
@@ -85,8 +83,8 @@ the `<py-script>` tag write to.
8583
```html
8684
<html>
8785
<head>
88-
<linkrel="stylesheet"href="pyscript.css" />
89-
<scriptdefersrc="pyscript.js"></script>
86+
<linkrel="stylesheet"href="https://pyscript.net/alpha/pyscript.css" />
87+
<scriptdefersrc="https://pyscript.net/alpha/pyscript.js"></script>
9088
<linkhref="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"rel="stylesheet"crossorigin="anonymous">
9189
</head>
9290

@@ -124,15 +122,17 @@ HTML head. You can also link to `.whl` files directly on disk like in our [toga
124122
</py-env>
125123
```
126124

125+
If your`.whl` is not a pure Python wheel then open a PR or issue with[pyodide](https://github.com/pyodide/pyodide) to get it added herehttps://github.com/pyodide/pyodide/tree/main/packages
126+
127127
For example, NumPy and Matplotlib are available. Notice here we're using`<py-script output="plot">`
128128
as a shortcut, which takes the expression on the last line of the script and runs`pyscript.write('plot', fig)`.
129129

130130

131131
```html
132132
<html>
133133
<head>
134-
<linkrel="stylesheet"href="pyscript.css" />
135-
<scriptdefersrc="pyscript.js"></script>
134+
<linkrel="stylesheet"href="https://pyscript.net/alpha/pyscript.css" />
135+
<scriptdefersrc="https://pyscript.net/alpha/pyscript.js"></script>
136136
<py-env>
137137
- numpy
138138
- matplotlib
@@ -157,4 +157,52 @@ fig
157157
</html>
158158
```
159159

160-
If your`.whl` is not a pure Python wheel then open a PR or issue with[pyodide](https://github.com/pyodide/pyodide) to get it added herehttps://github.com/pyodide/pyodide/tree/main/packages
160+
###Local modules
161+
162+
In addition to packages you can declare local Python modules that will
163+
be imported in the`<py-script>` tag. For example we can place the random
164+
number generation steps in a function in the file`data.py`.
165+
166+
```python
167+
# data.py
168+
import numpyas np
169+
170+
defmake_x_and_y(n):
171+
x= np.random.randn(n)
172+
y= np.random.randn(n)
173+
return x, y
174+
```
175+
176+
In the HTML tag`<py-env>` paths to local modules are provided in the
177+
`paths:` key.
178+
179+
```html
180+
<html>
181+
<head>
182+
<linkrel="stylesheet"href="https://pyscript.net/alpha/pyscript.css" />
183+
<scriptdefersrc="https://pyscript.net/alpha/pyscript.js"></script>
184+
<py-env>
185+
- numpy
186+
- matplotlib
187+
- paths:
188+
- /data.py
189+
</py-env>
190+
</head>
191+
192+
<body>
193+
<h1>Let's plot random numbers</h1>
194+
<divid="plot"></div>
195+
<py-scriptoutput="plot">
196+
import matplotlib.pyplot as plt
197+
from data import make_x_and_y
198+
199+
x, y = make_x_and_y(n=1000)
200+
201+
fig, ax = plt.subplots()
202+
ax.scatter(x, y)
203+
fig
204+
</py-script>
205+
</body>
206+
</html>
207+
```
208+

‎README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ PyScript is a meta project that aims to combine multiple open technologies to cr
1616

1717
To try PyScript, import the pyscript to your html page with:
1818
```
19-
<link rel="stylesheet" href="pyscript.css" />
20-
<script defer src="pyscript.js"></script>
19+
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
20+
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
2121
```
2222
At that point, you can then use PyScript components in your html page. PyScript currently implements the following elements:
2323

@@ -35,6 +35,12 @@ To contribute:
3535
* install the dependencies with`npm install` - make sure to use nodejs version >= 16
3636
* run`npm run dev` to build and run the dev server. This will also watch for changes and rebuild when a file is saved
3737

38+
##Resources
39+
40+
*[Discussion board](https://community.anaconda.cloud/c/tech-topics/pyscript)
41+
*[Home Page](https://pyscript.net/)
42+
*[Blog Post](https://engineering.anaconda.com/2022/04/welcome-pyscript.html)
43+
3844
##Notes
3945

4046
* This is an extremely experimental project, so expect things to break!

‎pyscriptjs/examples/fractals.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
fromtypingimportTuple
12
importnumpyasnp
3+
fromnumpy.polynomialimportPolynomial
24

35
defmandelbrot(width:int,height:int,*,
46
x:float=-0.5,y:float=0,zoom:int=1,max_iterations:int=100)->np.array:
@@ -60,3 +62,48 @@ def julia(width: int, height: int, *,
6062
div_time[m]=i
6163

6264
returndiv_time
65+
66+
Range=Tuple[float,float]
67+
68+
defnewton(width:int,height:int,*,
69+
p:Polynomial,a:complex,xr:Range= (-2.5,1),yr:Range= (-1,1),max_iterations:int=100)-> (np.array,np.array):
70+
""" """
71+
# To make navigation easier we calculate these values
72+
x_from,x_to=xr
73+
y_from,y_to=yr
74+
75+
# Here the actual algorithm starts
76+
x=np.linspace(x_from,x_to,width).reshape((1,width))
77+
y=np.linspace(y_from,y_to,height).reshape((height,1))
78+
z=x+1j*y
79+
80+
# Compute the derivative
81+
dp=p.deriv()
82+
83+
# Compute roots
84+
roots=p.roots()
85+
epsilon=1e-5
86+
87+
# Set the initial conditions
88+
a=np.full(z.shape,a)
89+
90+
# To keep track in which iteration the point diverged
91+
div_time=np.zeros(z.shape,dtype=int)
92+
93+
# To keep track on which points did not converge so far
94+
m=np.full(a.shape,True,dtype=bool)
95+
96+
# To keep track which root each point converged to
97+
r=np.full(a.shape,0,dtype=int)
98+
99+
foriinrange(max_iterations):
100+
z[m]=z[m]-a[m]*p(z[m])/dp(z[m])
101+
102+
forj,rootinenumerate(roots):
103+
converged= (np.abs(z.real-root.real)<epsilon)& (np.abs(z.imag-root.imag)<epsilon)
104+
m[converged]=False
105+
r[converged]=j+1
106+
107+
div_time[m]=i
108+
109+
returndiv_time,r

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp