pythonhere 0.3.0__tar.gz → 0.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pythonhere-0.3.0/pythonhere.egg-info → pythonhere-0.3.1}/PKG-INFO +2 -2
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pyproject.toml +1 -1
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/SKILL.md +15 -4
- pythonhere-0.3.1/pythonhere/version_here.py +1 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1/pythonhere.egg-info}/PKG-INFO +2 -2
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere.egg-info/requires.txt +1 -1
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_main.py +3 -13
- pythonhere-0.3.0/pythonhere/version_here.py +0 -1
- {pythonhere-0.3.0 → pythonhere-0.3.1}/LICENSE +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/README.rst +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/agents/openai.yaml +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/able.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/android-media.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/android-packages.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/android-permissions.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/android-runtime.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/jnius.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/kivy-kv.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/kivy-runtime.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/midi.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/plyer.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/__init__.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/android_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/data/logo/logo-128.png +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/data/logo/logo-32.png +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/data/logo/logo-splash.png +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/enum_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/exception_manager_here.kv +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/exception_manager_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/launcher_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/__init__.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/README.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/able.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/android-media.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/android-packages.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/android-permissions.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/android-runtime.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/jnius.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/kivy-kv.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/kivy-runtime.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/midi.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts/plyer.md +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/prompts.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/magic_here/shortcuts.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/main.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/network_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/patches_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/pythonhere.kv +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/server_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/tools_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/__init__.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/actionbar_here.kv +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/common_here.kv +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/connection_address_here.kv +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/connection_address_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/layout_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/server_screen_here.kv +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/server_screen_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/settings_here.kv +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/ui_here/settings_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/window_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere.egg-info/SOURCES.txt +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere.egg-info/dependency_links.txt +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere.egg-info/top_level.txt +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/setup.cfg +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/setup.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_ai_prompts.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_android_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_exception_manager_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_launcher_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_magic.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_network.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_patches.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_pythonhere_skill.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_server_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_settings.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_tools_here.py +0 -0
- {pythonhere-0.3.0 → pythonhere-0.3.1}/tests/test_window_here.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pythonhere
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Here is the Kivy based app to run code from the Jupyter magic %there
|
|
5
5
|
Author-email: b3b <ash.b3b@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
16
16
|
Requires-Python: >=3.10
|
|
17
17
|
Description-Content-Type: text/x-rst
|
|
18
18
|
License-File: LICENSE
|
|
19
|
-
Requires-Dist: herethere[magic]>=0.3.
|
|
19
|
+
Requires-Dist: herethere[magic]>=0.3.2
|
|
20
20
|
Requires-Dist: ipython
|
|
21
21
|
Requires-Dist: ipywidgets
|
|
22
22
|
Requires-Dist: Pillow
|
|
@@ -66,9 +66,11 @@ They complement rather than restrict normal Python:
|
|
|
66
66
|
These helpers may be called on Kivy's main thread or from a worker. Worker calls
|
|
67
67
|
are transparently marshaled to Kivy's thread and block that worker until Kivy
|
|
68
68
|
finishes the operation, normally on its next frame. Continue to prefer normal
|
|
69
|
-
foreground `there get` and `there run` for quick UI operations.
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
foreground `there get` and `there run` for quick UI operations. Add `--worker`
|
|
70
|
+
to `get` or `run` when surrounding slow or blocking work would otherwise block
|
|
71
|
+
the UI. The CLI remains attached, waits for completion, and then returns the
|
|
72
|
+
value or captured output. Worker execution does not make other Kivy access
|
|
73
|
+
thread-safe.
|
|
72
74
|
|
|
73
75
|
Do not call a worker-marshaled helper while Kivy's main thread is synchronously
|
|
74
76
|
waiting for that same worker. Neither side can progress in that cross-thread
|
|
@@ -179,7 +181,9 @@ there --json run --code "from tools_here import pin_shortcut; pin_shortcut('demo
|
|
|
179
181
|
- Keep callbacks non-blocking and marshal UI changes to the Kivy thread.
|
|
180
182
|
4. For more than a short expression, create a local UTF-8 Python file and run it
|
|
181
183
|
with `there --json run FILE`. Prefer a file over fragile shell quoting or a
|
|
182
|
-
long `--code` value. Keep within the installed CLI's input limit.
|
|
184
|
+
long `--code` value. Keep within the installed CLI's input limit. Add
|
|
185
|
+
`--worker` for slow or blocking code that should not occupy Kivy's main
|
|
186
|
+
thread.
|
|
183
187
|
5. Make only the requested live-app mutation. Reuse existing state when
|
|
184
188
|
practical and provide cleanup helpers for scheduled events, sensors,
|
|
185
189
|
Bluetooth, MIDI, files, or other held resources.
|
|
@@ -223,6 +227,13 @@ Run a prepared UI change:
|
|
|
223
227
|
there --json run /tmp/pythonhere-ui.py
|
|
224
228
|
```
|
|
225
229
|
|
|
230
|
+
Run slow or blocking non-UI work without freezing Kivy, while waiting for its
|
|
231
|
+
buffered output:
|
|
232
|
+
|
|
233
|
+
```console
|
|
234
|
+
there --json run --worker /tmp/pythonhere-long-task.py
|
|
235
|
+
```
|
|
236
|
+
|
|
226
237
|
Verify a named status left by that code:
|
|
227
238
|
|
|
228
239
|
```console
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pythonhere
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Here is the Kivy based app to run code from the Jupyter magic %there
|
|
5
5
|
Author-email: b3b <ash.b3b@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
16
16
|
Requires-Python: >=3.10
|
|
17
17
|
Description-Content-Type: text/x-rst
|
|
18
18
|
License-File: LICENSE
|
|
19
|
-
Requires-Dist: herethere[magic]>=0.3.
|
|
19
|
+
Requires-Dist: herethere[magic]>=0.3.2
|
|
20
20
|
Requires-Dist: ipython
|
|
21
21
|
Requires-Dist: ipywidgets
|
|
22
22
|
Requires-Dist: Pillow
|
|
@@ -111,7 +111,7 @@ async def test_root_object_is_in_context(capfd, app_instance, there):
|
|
|
111
111
|
|
|
112
112
|
|
|
113
113
|
@pytest.mark.asyncio
|
|
114
|
-
async def
|
|
114
|
+
async def test_worker_snapshot_traverses_widgets_on_main_thread(
|
|
115
115
|
app_instance,
|
|
116
116
|
there,
|
|
117
117
|
):
|
|
@@ -129,18 +129,8 @@ async def test_background_snapshot_traverses_widgets_on_main_thread(
|
|
|
129
129
|
)
|
|
130
130
|
)
|
|
131
131
|
try:
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
runtime = await there.get_background("tools_here.runtime_info(app, root)")
|
|
135
|
-
else:
|
|
136
|
-
# Herethere 0.3.0 has background execution but predates its
|
|
137
|
-
# background value command. Exercise the same worker bridge while
|
|
138
|
-
# keeping this integration test compatible with that release.
|
|
139
|
-
await there.runcode_background(
|
|
140
|
-
"tools_here._test_background_results = "
|
|
141
|
-
"(tools_here.snapshot_ui(root), tools_here.runtime_info(app, root))"
|
|
142
|
-
)
|
|
143
|
-
snapshot, runtime = await there.get("tools_here._test_background_results")
|
|
132
|
+
snapshot = await there.get_worker("tools_here.snapshot_ui(root)")
|
|
133
|
+
runtime = await there.get_worker("tools_here.runtime_info(app, root)")
|
|
144
134
|
ran_on_main_thread = await there.get(
|
|
145
135
|
"tools_here._test_snapshot_thread == "
|
|
146
136
|
"__import__('threading').main_thread().ident"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.0"
|
|
File without changes
|
|
File without changes
|
{pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/agents/openai.yaml
RENAMED
|
File without changes
|
{pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/able.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/jnius.md
RENAMED
|
File without changes
|
{pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/kivy-kv.md
RENAMED
|
File without changes
|
|
File without changes
|
{pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/midi.md
RENAMED
|
File without changes
|
{pythonhere-0.3.0 → pythonhere-0.3.1}/pythonhere/.agents/skills/pythonhere/references/plyer.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|