Files
pyscript/pyscriptjs
Antonio Cuni 11a517bba4 Make the life-cycle more linear and kill some svelte stores (#830)
This is a follow-up of PR #806 and it's a big step forward towards solving issue #763.

The basic idea is that at this stage I want to streamline the execution logic
and make it as linear and easy to read/understand as possible. The diff is
relatively big, but for the most part is just "shuffling code around".


Svelte stores:
the idea is to eventually kill of them, so that we can remove the dependency
on svelte but also to avoid relying on so much global state, which makes
things more complicated and error-prone (e.g., we have several issues related
to using runtime when it's not ready yet).

I killed addInitializer, addPostInitializer and the corresponding svelte
stores tada. They are no longer needed since the relevant code is called
directly from main.ts.

I started to kill the usage of the runtimeLoaded svelte store: instead of
relying on a global variable, I want to arrive at the point in which the
runtime is passed as a parameter in all places where it's needed: pyscript.ts
is now free of global state, but I couldn't kill it yet because it's used
heavily by base.ts and pyrepl.ts. I will do it in another PR.

Other misc changes:
I added sanity checks (and corresponding tests!) which complain if you specify
0 or multiple runtimes. Currently we support having one and only one, so there
is no point to pretend otherwise

I modified the messages displayed by the loader, to be more informative from
the user point of view.
2022-10-07 17:13:12 +02:00
..
2022-10-04 13:13:24 +05:30

PyScript Demonstrator

A simple webapp to demonstrate the capabilities of PyScript.

Getting started

  1. If you don't already have Node.js, install it. The official installer for the LTS version of Node is available from nodejs.org.

  2. If you don't already have Rollup, install it. Rollup can be installed as a global resource using:

    $ npm install --global rollup
    
  3. Install the demo apps requirements:

    $ npm install
    
  4. Start the server:

    $ npm run dev
    

    This will compile the resources for the app, and start the development server.

  5. When the compilation completes, it will display something like:

      Your application is ready~! 🚀
    
      - Local:      http://localhost:8080
      - Network:    Add `--host` to expose
    
    ────────────────── LOGS ──────────────────
    

    Once this is visible, open a browser at http://localhost:8080. This will provide a list of demos that you can run.

More information

There is a forum PyScript where you can discuss the project or ask questions at https://community.anaconda.cloud/c/pyscript