pyscript
datasette-lite
Our great sponsors
pyscript | datasette-lite | |
---|---|---|
41 | 10 | |
17,435 | 308 | |
0.5% | - | |
9.3 | 5.4 | |
9 days ago | about 1 month ago | |
Python | HTML | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pyscript
-
RustPython
You are right for the most part. I attended a talk about pyscript[1] (runs python in the browser using wasm which is similar) and there is a 2x performance hit.
[1] https://pyscript.net
-
Python HTTP library 'urllib3' now works in the browser
PyScript maintainer here - I'd love to hear more about this application! Either here, or over on our Discord (invite link is on the GitHub Page [1]).
[1] https://github.com/pyscript/pyscript?tab=readme-ov-file#summ...
-
Convert code from alpha version to latest version. Where to find complete and precise changelogs?
For the first question - why your code previously created an HTML node but now just prints out the literal characters of the HTML - that was a change made in 2022.12.1, in Pull Request 915 to be specific. You can check out the single-line change that caused this, if you want. Essentially, calls to Element.write() or display() have their contents escaped by default, which wasn't the case before.
-
How to access py-click from py-script?
Note that in the current release (2023.03.1 at time of writing), py-[event] listeners are only hooked up once at page-load time, so changing that attribute after the page loads won't do anything. In the upcoming release, py-[event] handlers are dynamically attached and managed each time a py-[event] attribute on the page is changed. (PR 1435)
-
After tearing my hair out writing JavaScript the last few days how close are we to Python in the browser?
PyScript started as a usability layer around Pyodide for those not used to working in JS. It's now working on things like incorporating the Micropython runtime as an alternative, moving the interpreter to a worker thread, adding a plugins ecosystem, easier events API's, and more.
-
Any way to display "working..." while waiting for py-reml to evaluate?
Some answers: https://github.com/pyscript/pyscript/discussions/1414
-
How does PyScript work with 3rd party JS libraries, like Three.js ?
You can also check out the WebGL demo from the PyScript examples, which uses Thee.JS.
-
NameError question
Mainly, the pys-onClick syntax that was present in earlier version in favor of the new py-* syntax, where * is a browser event name. It also takes a string of executable python instead of the name of a Callable. So in your case, you'd use py-click="get_input()". (There's a long-in-progress PR on GitHub with more examples.)
- Intrebare frontend
-
Incorporating Two Languages Within A Project?
PyScript ? This is still experimental.
datasette-lite
-
Sqlime: Online SQLite Playground
Also see: https://github.com/simonw/datasette-lite
- Use SQL Without Databases
-
GitHub โ GSA/code-gov: An informative repo for all Code.gov repos
https://github.com/simonw/datasette-lite :
> You can use this tool to open any SQLite database file that is hosted online and served with a `access-control-allow-origin: ` CORS header. Files served by GitHub Pages automatically include this header, as do database files that have been published online using `datasette publish`.*
> [...] You can paste in the "raw" URL to a file, but Datasette Lite also has a shortcut: if you paste in the URL to a page on GitHub or a Gist it will automatically convert it to the "raw" URL for you
> To load a Parquet file, pass a URL to `?parquet=`
> [...] https://lite.datasette.io/?parquet=https://github.com/Terada...*
There are various *-to-sqlite utilities that load data into a SQLite database for use with e.g. datasette. E.g. Pandas with `dtype_backend='arrow'` saves to Parquet.
datasette plugins are written in Python and/or JS w/ pluggy:
-
[SQLlite] Is there any online SQL editor I can host on my website? Maybe something in JS or php
Datasette Lite might be even better for this - you can construct URLs that link directly to examples: https://github.com/simonw/datasette-lite
-
SQLite WASM Official
There are some amazing things for SQLite in the browser especially if you're looking for ways to host queryable data for cheap.
I have a hacked up POC experimental version of datasette-lite to be able to look at multi-GB databases at https://github.com/simonw/datasette-lite/pull/49. It uses a hacked up chunk'd lazyFile implementation from emscripten and others to grap pages from Cloudflare R2.
It's a test with california's unclaimed property records (https://www.sco.ca.gov/upd_download_property_records.html) of a 28GB searching up that guy who owns Twitter: https://datasette-lite-lab.mindflakes.com/index.html?url=htt...
I think there may be a space for super-large multi-GB files served from static storage being accessible from SQlite as well. Another one would be this full-text search of a 43GB SQLite database of Wikipedia's full text search: http://static.wiki/ . Hearing there's official support for this is awesome and I hope they also might add some provisions for those sticking with POSIX/Emscripten as well.
-
Hosting SQLite Databases on GitHub Pages
I grafted the enhanced lazyFile implementation of this to datasette-lite relatively recently. Threw in a 18GB CSV from
https://www.sco.ca.gov/upd_download_property_records.html
into a FTS5 Sqlite Database which came out to about 28GB after processing:
POC, non-merging Draft PR for the hack:
https://github.com/simonw/datasette-lite/pull/49
You can run queries through it if you URL hack into it and just get to the query dialog, browsing is kind of a dud at the moment since datasette runs a count(*) which downloads everything.
- Learn Postgres at the Playground
-
A SQLite extension for reading large files line-by-line
Oh wow! I wonder how hard it would be to load that module into https://github.com/simonw/datasette-lite
-
This Week in Python
datasette-lite โ Datasette running in your browser using WebAssembly and Pyodide
-
Datasette Lite: a server-side Python web application running in a browser
I have an open issue for that here: https://github.com/simonw/datasette-lite/issues/28
My initial hunch is that this will be really difficult - probably require a fork of something like https://github.com/coleifer/pysqlite3 then compiled for WebAssembly.
I'm confident it's feasible, but I don't have the skills to figure it out myself.
What are some alternatives?
brython - Brython (Browser Python) is an implementation of Python 3 running in the browser
sqlite-plus - The ultimate set of SQLite extensions
appdaemon - :page_facing_up: Python Apps for Home Automation
file-system-access - Expose the file system on the userโs device, so Web apps can interoperate with the userโs native applications.
pyodide - Pyodide is a Python distribution for the browser and Node.js based on WebAssembly
datastation - App to easily query, script, and visualize data from every database, file, and API.
django-readers - A lightweight function-oriented toolkit for better organisation of business logic and efficient selection and projection of data in Django projects.
Home Assistant - :house_with_garden: Open source home automation that puts local control and privacy first.
mergestat-lite - Query git repositories with SQL. Generate reports, perform status checks, analyze codebases. ๐ ๐
wasm3 - ๐ A fast WebAssembly interpreter and the most universal WASM runtime
pysqlite3 - SQLite3 DB-API 2.0 driver from Python 3, packaged separately, with improvements