From 7c90c397df7b89a814a9fb2f46faa256e850ac83 Mon Sep 17 00:00:00 2001 From: Fabio Pliger Date: Wed, 6 Mar 2024 12:13:06 -0500 Subject: [PATCH 1/4] add local_fs example --- local_fs/readme.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 local_fs/readme.md diff --git a/local_fs/readme.md b/local_fs/readme.md new file mode 100644 index 0000000..9aefc3f --- /dev/null +++ b/local_fs/readme.md @@ -0,0 +1 @@ +Local folder example \ No newline at end of file From fe930789f36ede673b0a651df3e1b47f918cd692 Mon Sep 17 00:00:00 2001 From: Fabio Pliger Date: Wed, 6 Mar 2024 12:22:06 -0500 Subject: [PATCH 2/4] initial files from josh --- local-fs/.pyscript.com/manifest.json | 5 +++++ local-fs/files.py | 13 +++++++++++++ local-fs/index.html | 22 ++++++++++++++++++++++ local-fs/main.py | 8 ++++++++ local-fs/pyscript.toml | 4 ++++ 5 files changed, 52 insertions(+) create mode 100644 local-fs/.pyscript.com/manifest.json create mode 100644 local-fs/files.py create mode 100644 local-fs/index.html create mode 100644 local-fs/main.py create mode 100644 local-fs/pyscript.toml diff --git a/local-fs/.pyscript.com/manifest.json b/local-fs/.pyscript.com/manifest.json new file mode 100644 index 0000000..e061814 --- /dev/null +++ b/local-fs/.pyscript.com/manifest.json @@ -0,0 +1,5 @@ +{ + "project_id": "8b39db48-f8ba-487e-bc77-15b94bc56a1c", + "user_id": "7589ccb7-f838-4034-abea-5550f0e8d949", + "url": "https://fpliger.pyscriptapps.com/local-fs/latest/" +} \ No newline at end of file diff --git a/local-fs/files.py b/local-fs/files.py new file mode 100644 index 0000000..f104f8f --- /dev/null +++ b/local-fs/files.py @@ -0,0 +1,13 @@ +from pyscript import window + +class Files: + def __init__(self): + self.folder = None + + async def select_folder(self, event=None): + self.folder = await window.showDirectoryPicker() + + async def get_file_contents(self, file_name): + file = await self.folder.getFileHandle(file_name) + file_data = await file.getFile() + return await file_data.text() \ No newline at end of file diff --git a/local-fs/index.html b/local-fs/index.html new file mode 100644 index 0000000..76991ff --- /dev/null +++ b/local-fs/index.html @@ -0,0 +1,22 @@ + + + + Crimson Scene + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/local-fs/main.py b/local-fs/main.py new file mode 100644 index 0000000..4769c7e --- /dev/null +++ b/local-fs/main.py @@ -0,0 +1,8 @@ +from files import * +from pyscript import window + +my_files = Files() + +async def get_file(event): + data = await my_files.get_file_contents("test.txt") + window.console.log(data) \ No newline at end of file diff --git a/local-fs/pyscript.toml b/local-fs/pyscript.toml new file mode 100644 index 0000000..e320529 --- /dev/null +++ b/local-fs/pyscript.toml @@ -0,0 +1,4 @@ +name = "local_fs Copy" +[[fetch]] +files = [ "files.py",] + From 7188ede3411c94aa9d248f3c1aa42f57268e7cc4 Mon Sep 17 00:00:00 2001 From: Fabio Pliger Date: Wed, 6 Mar 2024 13:17:39 -0500 Subject: [PATCH 3/4] add media and devices access --- local-fs/index.html | 13 ++++++++++++- local-fs/main.py | 7 +++++-- local-fs/media.py | 31 +++++++++++++++++++++++++++++++ local-fs/pyscript.toml | 2 +- local_fs/readme.md | 1 - 5 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 local-fs/media.py delete mode 100644 local_fs/readme.md diff --git a/local-fs/index.html b/local-fs/index.html index 76991ff..0d4f01b 100644 --- a/local-fs/index.html +++ b/local-fs/index.html @@ -14,9 +14,20 @@ - + + + + + + + + + +
+ + \ No newline at end of file diff --git a/local-fs/main.py b/local-fs/main.py index 4769c7e..aa1cc4a 100644 --- a/local-fs/main.py +++ b/local-fs/main.py @@ -1,8 +1,11 @@ from files import * -from pyscript import window +from pyscript import window, display +import media my_files = Files() async def get_file(event): data = await my_files.get_file_contents("test.txt") - window.console.log(data) \ No newline at end of file + display(data) + +await media.list_media_devices() \ No newline at end of file diff --git a/local-fs/media.py b/local-fs/media.py new file mode 100644 index 0000000..ac527fc --- /dev/null +++ b/local-fs/media.py @@ -0,0 +1,31 @@ +from pyodide.ffi import create_proxy +from pyscript import display, document, when, window +from pyweb import media, pydom + +devicesSelect = pydom["#devices"][0] +video = pydom["video"][0] +devices = {} + + +async def list_media_devices(event=None): + """List the available media devices.""" + global devices + for i, device in enumerate(await media.list_devices()): + devices[device.id] = device + label = f"{i} - ({device.kind}) {device.label} [{device.id}]" + devicesSelect.options.add(value=device.id, html=label) + + +@when("click", "#pick-device") +async def connect_to_device(e): + """Connect to the selected device.""" + device = devices[devicesSelect.value] + video._js.srcObject = await device.get_stream() + + +@when("click", "#snap") +async def camera_click(e): + """Take a picture and download it.""" + video.snap().download() + video.snap() + diff --git a/local-fs/pyscript.toml b/local-fs/pyscript.toml index e320529..060765e 100644 --- a/local-fs/pyscript.toml +++ b/local-fs/pyscript.toml @@ -1,4 +1,4 @@ name = "local_fs Copy" [[fetch]] -files = [ "files.py",] +files = [ "files.py", "media.py"] diff --git a/local_fs/readme.md b/local_fs/readme.md deleted file mode 100644 index 9aefc3f..0000000 --- a/local_fs/readme.md +++ /dev/null @@ -1 +0,0 @@ -Local folder example \ No newline at end of file From f87d5a7d62957ed493d80ca505e86a282391e0a5 Mon Sep 17 00:00:00 2001 From: joshualowe1002 Date: Wed, 6 Mar 2024 17:21:06 -0500 Subject: [PATCH 4/4] Updated files.py --- local-fs/files.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/local-fs/files.py b/local-fs/files.py index f104f8f..9b752cd 100644 --- a/local-fs/files.py +++ b/local-fs/files.py @@ -10,4 +10,13 @@ async def select_folder(self, event=None): async def get_file_contents(self, file_name): file = await self.folder.getFileHandle(file_name) file_data = await file.getFile() - return await file_data.text() \ No newline at end of file + return await file_data.text() + + async def create_new_file(self, contents): + file = await window.showSaveFilePicker() + await self.write_file(file, contents) + + async def write_file(self, file, contents): + writeable = await file.createWritable() + await writeable.write(contents) + await writeable.close() \ No newline at end of file