chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
# python-aiohttp
|
||||
|
||||
This example contains a simple `perspective-python` folder that uses AIOHTTP to
|
||||
serve a static dataset.
|
||||
|
||||
<span class="warning">
|
||||
This example will not work outside the Perspective source tree! You will need a working local Perspective build to run it.
|
||||
</span>
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "python-aiohttp",
|
||||
"private": true,
|
||||
"version": "4.5.2",
|
||||
"description": "An example of editing a `perspective-python` server from the browser.",
|
||||
"scripts": {
|
||||
"start": "PYTHONPATH=../../python/perspective python3 server.py"
|
||||
},
|
||||
"keywords": [],
|
||||
"license": "Apache-2.0"
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
|
||||
# ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
|
||||
# ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
|
||||
# ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
|
||||
# ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
||||
# ┃ Copyright (c) 2017, the Perspective Authors. ┃
|
||||
# ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
|
||||
# ┃ This file is part of the Perspective library, distributed under the terms ┃
|
||||
# ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import logging
|
||||
|
||||
from aiohttp import web
|
||||
|
||||
from perspective import Server
|
||||
from perspective.handlers.aiohttp import PerspectiveAIOHTTPHandler
|
||||
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
file_path = os.path.join(
|
||||
here, ".", "node_modules", "superstore-arrow", "superstore.lz4.arrow"
|
||||
)
|
||||
|
||||
|
||||
def perspective_thread(server):
|
||||
"""Perspective application thread starts its own event loop, and
|
||||
adds the table with the name "data_source_one", which will be used
|
||||
in the front-end."""
|
||||
|
||||
|
||||
def make_app():
|
||||
server = Server()
|
||||
client = server.new_local_client()
|
||||
with open(file_path, mode="rb") as file:
|
||||
client.table(file.read(), index="Row ID", name="data_source_one")
|
||||
|
||||
async def websocket_handler(request):
|
||||
handler = PerspectiveAIOHTTPHandler(perspective_server=server, request=request)
|
||||
await handler.run()
|
||||
|
||||
app = web.Application()
|
||||
app.router.add_get("/websocket", websocket_handler)
|
||||
app.router.add_static("/node_modules", "../../node_modules/", follow_symlinks=True)
|
||||
app.router.add_static("/", "../python-tornado", show_index=True)
|
||||
return app
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = make_app()
|
||||
logging.critical("Listening on http://localhost:8080")
|
||||
web.run_app(app, host="0.0.0.0", port=8080)
|
||||
Reference in New Issue
Block a user