Skip to content

2024 10 1 #145

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Oct 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,42 @@ store = await storage("my-data-store", storage_class=MyStorage)
# The store object is now an instance of MyStorage.
```

### `@pyscript/core/donkey`

Sometimes you need a Python worker ready and waiting to evaluate any code on
your behalf. This is the concept behind the JavaScript "donkey". We couldn't
think of a better way than "donkey" to describe something that is easy to
understand and shoulders the burden without complaint. This feature
means you're able to use PyScript without resorting to specialised
`<script type="py">` style tags. It's just vanilla JavaScript.

Simply `import { donkey } from '@pyscript/core/dist/core.js'` and automatically
have both a *pyscript* module running on your page and a utility to bootstrap a
terminal based worker to evaluate any Python code as and when needed in the
future.

```js title="A donkey worker"
import { donkey } from '@pyscript/core/dist/core.js';

const {
process, // process(code) code (visible in the terminal)
execute, // execute(statement) in Python exec way
evaluate, // evaluate(expression) in Python eval way
clear, // clear() the terminal
reset, // reset() the terminal (including colors)
kill, // kill() the worker forever
} = donkey({
type: 'py' || 'mpy', // the Python interpreter to run
persistent: false, // use `true` to track globals and locals
terminal: '', // optionally set a target terminal container
config: {}, // the worker config (packages, files, etc.)
});
```

By default PyScript creates a target terminal. If you don't want a terminal to
appear on your page, use the `terminal` option to point to a CSS addressable
container that is not visible (i.e. the target has `display: none`).

### `@pyscript/core/dist/storage.js`

The equivalent functionality based on the *JS* module can be found through our module.
Expand Down
8 changes: 4 additions & 4 deletions docs/beginning-pyscript.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ module in the document's `<head>` tag:
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>🦜 Polyglot - Piratical PyScript</title>
<link rel="stylesheet" href="https://pyscript.net/releases/2024.9.2/core.css">
<script type="module" src="https://pyscript.net/releases/2024.9.2/core.js"></script>
<link rel="stylesheet" href="https://pyscript.net/releases/2024.10.1/core.css">
<script type="module" src="https://pyscript.net/releases/2024.10.1/core.js"></script>
</head>
<body>

Expand Down Expand Up @@ -168,8 +168,8 @@ In the end, our HTML should look like this:
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>🦜 Polyglot - Piratical PyScript</title>
<link rel="stylesheet" href="https://pyscript.net/releases/2024.9.2/core.css">
<script type="module" src="https://pyscript.net/releases/2024.9.2/core.js"></script>
<link rel="stylesheet" href="https://pyscript.net/releases/2024.10.1/core.css">
<script type="module" src="https://pyscript.net/releases/2024.10.1/core.js"></script>
</head>
<body>
<h1>Polyglot 🦜 💬 🇬🇧 ➡️ 🏴‍☠️</h1>
Expand Down
4 changes: 2 additions & 2 deletions docs/user-guide/first-steps.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ CSS:
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<!-- PyScript CSS -->
<link rel="stylesheet" href="https://pyscript.net/releases/2024.9.2/core.css">
<link rel="stylesheet" href="https://pyscript.net/releases/2024.10.1/core.css">
<!-- This script tag bootstraps PyScript -->
<script type="module" src="https://pyscript.net/releases/2024.9.2/core.js"></script>
<script type="module" src="https://pyscript.net/releases/2024.10.1/core.js"></script>
</head>
<body>
<!-- your code goes here... -->
Expand Down
10 changes: 5 additions & 5 deletions docs/user-guide/plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ For example, this will work because all references are contained within the
registered function:

```js
import { hooks } from "https://pyscript.net/releases/2024.9.2/core.js";
import { hooks } from "https://pyscript.net/releases/2024.10.1/core.js";

hooks.worker.onReady.add(() => {
// NOT suggested, just an example!
Expand All @@ -114,7 +114,7 @@ hooks.worker.onReady.add(() => {
However, due to the outer reference to the variable `i`, this will fail:

```js
import { hooks } from "https://pyscript.net/releases/2024.9.2/core.js";
import { hooks } from "https://pyscript.net/releases/2024.10.1/core.js";

// NO NO NO NO NO! ☠️
let i = 0;
Expand Down Expand Up @@ -147,7 +147,7 @@ the page.

```js title="log.js - a plugin that simply logs to the console."
// import the hooks from PyScript first...
import { hooks } from "https://pyscript.net/releases/2024.9.2/core.js";
import { hooks } from "https://pyscript.net/releases/2024.10.1/core.js";

// The `hooks.main` attribute defines plugins that run on the main thread.
hooks.main.onReady.add((wrap, element) => {
Expand Down Expand Up @@ -197,8 +197,8 @@ hooks.worker.onAfterRun.add(() => {
<!-- JS plugins should be available before PyScript bootstraps -->
<script type="module" src="./log.js"></script>
<!-- PyScript -->
<link rel="stylesheet" href="https://pyscript.net/releases/2024.9.2/core.css">
<script type="module" src="https://pyscript.net/releases/2024.9.2/core.js"></script>
<link rel="stylesheet" href="https://pyscript.net/releases/2024.10.1/core.css">
<script type="module" src="https://pyscript.net/releases/2024.10.1/core.js"></script>
</head>
<body>
<script type="mpy">
Expand Down
4 changes: 2 additions & 2 deletions docs/user-guide/workers.md
Original file line number Diff line number Diff line change
Expand Up @@ -282,9 +282,9 @@ Here's how:
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- PyScript CSS -->
<link rel="stylesheet" href="https://pyscript.net/releases/2024.9.2/core.css">
<link rel="stylesheet" href="https://pyscript.net/releases/2024.10.1/core.css">
<!-- This script tag bootstraps PyScript -->
<script type="module" src="https://pyscript.net/releases/2024.9.2/core.js"></script>
<script type="module" src="https://pyscript.net/releases/2024.10.1/core.js"></script>
<title>PyWorker - mpy bootstrapping pyodide example</title>
<script type="mpy" src="main.py"></script>
</head>
Expand Down
2 changes: 1 addition & 1 deletion version.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"version": "2024.9.2"
"version": "2024.10.1"
}