jpterm 0.2.19__tar.gz → 0.3.0__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.
Files changed (190) hide show
  1. jpterm-0.3.0/.fileid.db +0 -0
  2. jpterm-0.3.0/.ipynb_checkpoints/Untitled-checkpoint.ipynb +24 -0
  3. jpterm-0.3.0/.ipynb_checkpoints/Untitled1-checkpoint.ipynb +24 -0
  4. jpterm-0.3.0/.ipynb_checkpoints/Untitled2-checkpoint.ipynb +24 -0
  5. jpterm-0.3.0/.jupyter_ystore.db +0 -0
  6. {jpterm-0.2.19 → jpterm-0.3.0}/PKG-INFO +23 -22
  7. jpterm-0.3.0/examples/.ipynb_checkpoints/plotext-checkpoint.ipynb +98 -0
  8. jpterm-0.3.0/examples/.ipynb_checkpoints/plotext2-checkpoint.ipynb +72 -0
  9. jpterm-0.3.0/examples/.ipynb_checkpoints/switch-checkpoint.ipynb +64 -0
  10. jpterm-0.3.0/examples/.ipynb_checkpoints/widget-checkpoint.ipynb +253 -0
  11. {jpterm-0.2.19 → jpterm-0.3.0}/jpterm/cli.py +15 -8
  12. jpterm-0.3.0/plugins/cell/pyproject.toml +26 -0
  13. jpterm-0.2.19/plugins/cell/txl_cell/components.py → jpterm-0.3.0/plugins/cell/txl_cell/main.py +60 -26
  14. jpterm-0.3.0/plugins/console/pyproject.toml +26 -0
  15. jpterm-0.2.19/plugins/console/txl_console/components.py → jpterm-0.3.0/plugins/console/txl_console/main.py +9 -12
  16. jpterm-0.3.0/plugins/editors/pyproject.toml +26 -0
  17. jpterm-0.2.19/plugins/editors/txl_editors/components.py → jpterm-0.3.0/plugins/editors/txl_editors/main.py +11 -13
  18. jpterm-0.3.0/plugins/file_browser/pyproject.toml +26 -0
  19. jpterm-0.2.19/plugins/file_browser/txl_file_browser/components.py → jpterm-0.3.0/plugins/file_browser/txl_file_browser/main.py +8 -11
  20. jpterm-0.3.0/plugins/image_viewer/pyproject.toml +26 -0
  21. jpterm-0.2.19/plugins/image_viewer/txl_image_viewer/components.py → jpterm-0.3.0/plugins/image_viewer/txl_image_viewer/main.py +13 -15
  22. jpterm-0.3.0/plugins/jpterm/pyproject.toml +26 -0
  23. jpterm-0.3.0/plugins/jpterm/txl_jpterm/footer.py +13 -0
  24. jpterm-0.2.19/plugins/jpterm/txl_jpterm/components.py → jpterm-0.3.0/plugins/jpterm/txl_jpterm/main.py +25 -33
  25. jpterm-0.3.0/plugins/kernel/pyproject.toml +20 -0
  26. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/kernel/txl_kernel/driver.py +40 -63
  27. jpterm-0.3.0/plugins/launcher/pyproject.toml +26 -0
  28. jpterm-0.2.19/plugins/launcher/txl_launcher/components.py → jpterm-0.3.0/plugins/launcher/txl_launcher/main.py +18 -10
  29. jpterm-0.3.0/plugins/local_contents/pyproject.toml +26 -0
  30. jpterm-0.2.19/plugins/local_contents/txl_local_contents/components.py → jpterm-0.3.0/plugins/local_contents/txl_local_contents/main.py +4 -7
  31. jpterm-0.3.0/plugins/local_kernels/pyproject.toml +28 -0
  32. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_kernels/txl_local_kernels/connect.py +20 -14
  33. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_kernels/txl_local_kernels/driver.py +9 -6
  34. jpterm-0.2.19/plugins/local_kernels/txl_local_kernels/components.py → jpterm-0.3.0/plugins/local_kernels/txl_local_kernels/main.py +18 -17
  35. jpterm-0.3.0/plugins/local_terminals/pyproject.toml +23 -0
  36. jpterm-0.3.0/plugins/local_terminals/txl_local_terminals/main.py +30 -0
  37. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_terminals/txl_local_terminals/terminal.py +18 -17
  38. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_terminals/txl_local_terminals/win_terminal.py +10 -10
  39. jpterm-0.3.0/plugins/markdown_viewer/pyproject.toml +26 -0
  40. jpterm-0.3.0/plugins/markdown_viewer/txl_markdown_viewer/main.py +65 -0
  41. jpterm-0.3.0/plugins/notebook_editor/pyproject.toml +26 -0
  42. jpterm-0.2.19/plugins/notebook_editor/txl_notebook_editor/components.py → jpterm-0.3.0/plugins/notebook_editor/txl_notebook_editor/main.py +54 -54
  43. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/notebook_viewer/pyproject.toml +3 -2
  44. jpterm-0.2.19/plugins/notebook_viewer/txl_notebook_viewer/components.py → jpterm-0.3.0/plugins/notebook_viewer/txl_notebook_viewer/main.py +9 -18
  45. jpterm-0.3.0/plugins/remote_contents/pyproject.toml +23 -0
  46. jpterm-0.2.19/plugins/remote_contents/txl_remote_contents/components.py → jpterm-0.3.0/plugins/remote_contents/txl_remote_contents/main.py +16 -14
  47. jpterm-0.3.0/plugins/remote_kernels/pyproject.toml +28 -0
  48. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_kernels/txl_remote_kernels/driver.py +9 -6
  49. jpterm-0.2.19/plugins/remote_kernels/txl_remote_kernels/components.py → jpterm-0.3.0/plugins/remote_kernels/txl_remote_kernels/main.py +24 -21
  50. jpterm-0.3.0/plugins/remote_terminals/pyproject.toml +23 -0
  51. jpterm-0.2.19/plugins/remote_terminals/txl_remote_terminals/components.py → jpterm-0.3.0/plugins/remote_terminals/txl_remote_terminals/main.py +27 -21
  52. jpterm-0.3.0/plugins/terminal/pyproject.toml +23 -0
  53. jpterm-0.2.19/plugins/terminal/txl_terminal/components.py → jpterm-0.3.0/plugins/terminal/txl_terminal/main.py +17 -12
  54. jpterm-0.3.0/plugins/text_editor/pyproject.toml +26 -0
  55. jpterm-0.3.0/plugins/text_editor/txl_text_editor/main.py +106 -0
  56. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/text_viewer/pyproject.toml +2 -2
  57. jpterm-0.2.19/plugins/text_viewer/txl_text_viewer/components.py → jpterm-0.3.0/plugins/text_viewer/txl_text_viewer/main.py +7 -13
  58. jpterm-0.3.0/plugins/widgets/pyproject.toml +26 -0
  59. jpterm-0.2.19/plugins/widgets/txl_widgets/components.py → jpterm-0.3.0/plugins/widgets/txl_widgets/main.py +12 -15
  60. {jpterm-0.2.19 → jpterm-0.3.0}/publish.py +7 -2
  61. {jpterm-0.2.19 → jpterm-0.3.0}/pyproject.toml +24 -23
  62. jpterm-0.3.0/txl/pyproject.toml +20 -0
  63. jpterm-0.3.0/txl/txl/app.py +36 -0
  64. {jpterm-0.2.19 → jpterm-0.3.0}/txl/txl/base.py +3 -9
  65. {jpterm-0.2.19 → jpterm-0.3.0}/txl/txl/cli.py +0 -7
  66. jpterm-0.3.0/txl/txl/text_input.py +72 -0
  67. jpterm-0.2.19/plugins/cell/pyproject.toml +0 -35
  68. jpterm-0.2.19/plugins/console/pyproject.toml +0 -35
  69. jpterm-0.2.19/plugins/editors/pyproject.toml +0 -34
  70. jpterm-0.2.19/plugins/file_browser/pyproject.toml +0 -34
  71. jpterm-0.2.19/plugins/image_viewer/pyproject.toml +0 -35
  72. jpterm-0.2.19/plugins/jpterm/pyproject.toml +0 -34
  73. jpterm-0.2.19/plugins/jpterm/txl_jpterm/footer.py +0 -148
  74. jpterm-0.2.19/plugins/kernel/pyproject.toml +0 -33
  75. jpterm-0.2.19/plugins/launcher/pyproject.toml +0 -34
  76. jpterm-0.2.19/plugins/local_contents/pyproject.toml +0 -36
  77. jpterm-0.2.19/plugins/local_kernels/pyproject.toml +0 -37
  78. jpterm-0.2.19/plugins/local_terminals/pyproject.toml +0 -36
  79. jpterm-0.2.19/plugins/local_terminals/txl_local_terminals/components.py +0 -26
  80. jpterm-0.2.19/plugins/markdown_viewer/pyproject.toml +0 -34
  81. jpterm-0.2.19/plugins/markdown_viewer/txl_markdown_viewer/components.py +0 -59
  82. jpterm-0.2.19/plugins/notebook_editor/pyproject.toml +0 -36
  83. jpterm-0.2.19/plugins/remote_contents/pyproject.toml +0 -39
  84. jpterm-0.2.19/plugins/remote_kernels/pyproject.toml +0 -38
  85. jpterm-0.2.19/plugins/remote_terminals/pyproject.toml +0 -36
  86. jpterm-0.2.19/plugins/terminal/pyproject.toml +0 -35
  87. jpterm-0.2.19/plugins/text_editor/pyproject.toml +0 -34
  88. jpterm-0.2.19/plugins/text_editor/txl_text_editor/components.py +0 -82
  89. jpterm-0.2.19/plugins/widgets/pyproject.toml +0 -37
  90. jpterm-0.2.19/txl/pyproject.toml +0 -31
  91. jpterm-0.2.19/txl/txl/app.py +0 -34
  92. jpterm-0.2.19/txl/txl/text_input.py +0 -66
  93. {jpterm-0.2.19 → jpterm-0.3.0}/.github/workflows/publish.yml +0 -0
  94. {jpterm-0.2.19 → jpterm-0.3.0}/.github/workflows/test.yml +0 -0
  95. {jpterm-0.2.19 → jpterm-0.3.0}/.gitignore +0 -0
  96. {jpterm-0.2.19 → jpterm-0.3.0}/.pre-commit-config.yaml +0 -0
  97. {jpterm-0.2.19 → jpterm-0.3.0}/CHANGELOG.md +0 -0
  98. {jpterm-0.2.19 → jpterm-0.3.0}/LICENSE +0 -0
  99. {jpterm-0.2.19 → jpterm-0.3.0}/README.md +0 -0
  100. {jpterm-0.2.19 → jpterm-0.3.0}/config.yaml +0 -0
  101. {jpterm-0.2.19 → jpterm-0.3.0}/docs/assets/logo.png +0 -0
  102. {jpterm-0.2.19 → jpterm-0.3.0}/docs/index.md +0 -0
  103. {jpterm-0.2.19 → jpterm-0.3.0}/docs/install.md +0 -0
  104. {jpterm-0.2.19 → jpterm-0.3.0}/docs/plugins/console.md +0 -0
  105. {jpterm-0.2.19 → jpterm-0.3.0}/docs/plugins/notebook_editor.md +0 -0
  106. {jpterm-0.2.19 → jpterm-0.3.0}/docs/usage/CLI.md +0 -0
  107. {jpterm-0.2.19 → jpterm-0.3.0}/docs/usage/key_bindings.md +0 -0
  108. {jpterm-0.2.19 → jpterm-0.3.0}/examples/button.ipynb +0 -0
  109. {jpterm-0.2.19 → jpterm-0.3.0}/examples/demo.md +0 -0
  110. {jpterm-0.2.19 → jpterm-0.3.0}/examples/jupyter.png +0 -0
  111. {jpterm-0.2.19 → jpterm-0.3.0}/examples/plotext.ipynb +0 -0
  112. {jpterm-0.2.19 → jpterm-0.3.0}/examples/plotext2.ipynb +0 -0
  113. {jpterm-0.2.19 → jpterm-0.3.0}/examples/switch.ipynb +0 -0
  114. {jpterm-0.2.19 → jpterm-0.3.0}/examples/widget.ipynb +0 -0
  115. {jpterm-0.2.19 → jpterm-0.3.0}/jpterm/__init__.py +0 -0
  116. {jpterm-0.2.19 → jpterm-0.3.0}/mkdocs.yml +0 -0
  117. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/cell/LICENSE.txt +0 -0
  118. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/cell/README.md +0 -0
  119. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/cell/txl_cell/__init__.py +0 -0
  120. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/console/LICENSE.txt +0 -0
  121. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/console/README.md +0 -0
  122. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/console/txl_console/__init__.py +0 -0
  123. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/editors/LICENSE.txt +0 -0
  124. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/editors/README.md +0 -0
  125. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/editors/txl_editors/__init__.py +0 -0
  126. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/file_browser/LICENSE.txt +0 -0
  127. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/file_browser/README.md +0 -0
  128. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/file_browser/txl_file_browser/__init__.py +0 -0
  129. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/image_viewer/LICENSE.txt +0 -0
  130. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/image_viewer/README.md +0 -0
  131. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/image_viewer/txl_image_viewer/__init__.py +0 -0
  132. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/jpterm/LICENSE.txt +0 -0
  133. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/jpterm/README.md +0 -0
  134. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/jpterm/txl_jpterm/__init__.py +0 -0
  135. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/jpterm/txl_jpterm/header.py +0 -0
  136. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/jpterm/txl_jpterm/jpterm.css +0 -0
  137. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/jpterm/txl_jpterm/main_area.py +0 -0
  138. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/kernel/LICENSE.txt +0 -0
  139. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/kernel/README.md +0 -0
  140. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/kernel/txl_kernel/__init__.py +0 -0
  141. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/kernel/txl_kernel/message.py +0 -0
  142. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/launcher/LICENSE.txt +0 -0
  143. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/launcher/README.md +0 -0
  144. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/launcher/txl_launcher/__init__.py +0 -0
  145. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_contents/LICENSE.txt +0 -0
  146. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_contents/README.md +0 -0
  147. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_contents/txl_local_contents/__init__.py +0 -0
  148. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_kernels/LICENSE.txt +0 -0
  149. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_kernels/README.md +0 -0
  150. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_kernels/txl_local_kernels/__init__.py +0 -0
  151. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_kernels/txl_local_kernels/kernelspec.py +0 -0
  152. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_kernels/txl_local_kernels/message.py +0 -0
  153. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_kernels/txl_local_kernels/paths.py +0 -0
  154. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_terminals/LICENSE.txt +0 -0
  155. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_terminals/README.md +0 -0
  156. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/local_terminals/txl_local_terminals/__init__.py +0 -0
  157. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/markdown_viewer/LICENSE.txt +0 -0
  158. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/markdown_viewer/README.md +0 -0
  159. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/markdown_viewer/txl_markdown_viewer/__init__.py +0 -0
  160. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/notebook_editor/LICENSE.txt +0 -0
  161. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/notebook_editor/README.md +0 -0
  162. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/notebook_editor/txl_notebook_editor/__init__.py +0 -0
  163. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/notebook_viewer/LICENSE.txt +0 -0
  164. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/notebook_viewer/README.md +0 -0
  165. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/notebook_viewer/txl_notebook_viewer/__init__.py +0 -0
  166. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_contents/LICENSE.txt +0 -0
  167. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_contents/README.md +0 -0
  168. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_contents/txl_remote_contents/__init__.py +0 -0
  169. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_kernels/LICENSE.txt +0 -0
  170. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_kernels/README.md +0 -0
  171. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_kernels/txl_remote_kernels/__init__.py +0 -0
  172. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_kernels/txl_remote_kernels/message.py +0 -0
  173. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_terminals/LICENSE.txt +0 -0
  174. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_terminals/README.md +0 -0
  175. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/remote_terminals/txl_remote_terminals/__init__.py +0 -0
  176. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/terminal/LICENSE.txt +0 -0
  177. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/terminal/README.md +0 -0
  178. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/terminal/txl_terminal/__init__.py +0 -0
  179. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/text_editor/LICENSE.txt +0 -0
  180. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/text_editor/README.md +0 -0
  181. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/text_editor/txl_text_editor/__init__.py +0 -0
  182. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/text_viewer/LICENSE.txt +0 -0
  183. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/text_viewer/README.md +0 -0
  184. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/text_viewer/txl_text_viewer/__init__.py +0 -0
  185. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/widgets/LICENSE.txt +0 -0
  186. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/widgets/README.md +0 -0
  187. {jpterm-0.2.19 → jpterm-0.3.0}/plugins/widgets/txl_widgets/__init__.py +0 -0
  188. {jpterm-0.2.19 → jpterm-0.3.0}/txl/LICENSE.txt +0 -0
  189. {jpterm-0.2.19 → jpterm-0.3.0}/txl/README.md +0 -0
  190. {jpterm-0.2.19 → jpterm-0.3.0}/txl/txl/__init__.py +0 -0
Binary file
@@ -0,0 +1,24 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "id": "2fe308b7-5f0e-4a82-a0fe-5a066918ab9a",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": []
10
+ }
11
+ ],
12
+ "metadata": {
13
+ "kernelspec": {
14
+ "display_name": "Python 3 (ipykernel)",
15
+ "language": "python",
16
+ "name": "python3"
17
+ },
18
+ "language_info": {
19
+ "name": ""
20
+ }
21
+ },
22
+ "nbformat": 4,
23
+ "nbformat_minor": 5
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "id": "e724ffa2-2096-447f-93c7-8838208da5be",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": []
10
+ }
11
+ ],
12
+ "metadata": {
13
+ "kernelspec": {
14
+ "display_name": "Python 3 (ipykernel)",
15
+ "language": "python",
16
+ "name": "python3"
17
+ },
18
+ "language_info": {
19
+ "name": ""
20
+ }
21
+ },
22
+ "nbformat": 4,
23
+ "nbformat_minor": 5
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "id": "0467ddd2-0352-445b-94f9-1bc159661410",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": []
10
+ }
11
+ ],
12
+ "metadata": {
13
+ "kernelspec": {
14
+ "display_name": "Python 3 (ipykernel)",
15
+ "language": "python",
16
+ "name": "python3"
17
+ },
18
+ "language_info": {
19
+ "name": ""
20
+ }
21
+ },
22
+ "nbformat": 4,
23
+ "nbformat_minor": 5
24
+ }
Binary file
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: jpterm
3
- Version: 0.2.19
3
+ Version: 0.3.0
4
4
  Summary: Jupyter in the terminal
5
5
  Project-URL: Homepage, https://github.com/davidbrochart/jpterm
6
6
  Author-email: David Brochart <david.brochart@gmail.com>
@@ -12,30 +12,31 @@ Classifier: Programming Language :: Python
12
12
  Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
15
16
  Classifier: Programming Language :: Python :: Implementation :: CPython
16
17
  Classifier: Programming Language :: Python :: Implementation :: PyPy
17
18
  Requires-Python: >=3.10
18
19
  Requires-Dist: rich-click>=1.6.0
19
- Requires-Dist: txl-cell==0.2.14
20
- Requires-Dist: txl-console==0.2.16
21
- Requires-Dist: txl-editors==0.2.14
22
- Requires-Dist: txl-file-browser==0.2.14
23
- Requires-Dist: txl-image-viewer==0.2.14
24
- Requires-Dist: txl-jpterm==0.2.14
25
- Requires-Dist: txl-kernel==0.2.14
26
- Requires-Dist: txl-launcher==0.2.14
27
- Requires-Dist: txl-local-contents==0.2.14
28
- Requires-Dist: txl-local-kernels==0.2.14
29
- Requires-Dist: txl-local-terminals==0.2.14
30
- Requires-Dist: txl-markdown-viewer==0.2.14
31
- Requires-Dist: txl-notebook-editor==0.2.14
32
- Requires-Dist: txl-remote-contents==0.2.14
33
- Requires-Dist: txl-remote-kernels==0.2.14
34
- Requires-Dist: txl-remote-terminals==0.2.14
35
- Requires-Dist: txl-terminal==0.2.14
36
- Requires-Dist: txl-text-editor==0.2.14
37
- Requires-Dist: txl-widgets==0.2.15
38
- Requires-Dist: txl==0.2.19
20
+ Requires-Dist: txl-cell==0.3.0
21
+ Requires-Dist: txl-console==0.3.0
22
+ Requires-Dist: txl-editors==0.3.0
23
+ Requires-Dist: txl-file-browser==0.3.0
24
+ Requires-Dist: txl-image-viewer==0.3.0
25
+ Requires-Dist: txl-jpterm==0.3.0
26
+ Requires-Dist: txl-kernel==0.3.0
27
+ Requires-Dist: txl-launcher==0.3.0
28
+ Requires-Dist: txl-local-contents==0.3.0
29
+ Requires-Dist: txl-local-kernels==0.3.0
30
+ Requires-Dist: txl-local-terminals==0.3.0
31
+ Requires-Dist: txl-markdown-viewer==0.3.0
32
+ Requires-Dist: txl-notebook-editor==0.3.0
33
+ Requires-Dist: txl-remote-contents==0.3.0
34
+ Requires-Dist: txl-remote-kernels==0.3.0
35
+ Requires-Dist: txl-remote-terminals==0.3.0
36
+ Requires-Dist: txl-terminal==0.3.0
37
+ Requires-Dist: txl-text-editor==0.3.0
38
+ Requires-Dist: txl-widgets==0.3.0
39
+ Requires-Dist: txl==0.3.0
39
40
  Provides-Extra: docs
40
41
  Requires-Dist: mkdocs; extra == 'docs'
41
42
  Requires-Dist: mkdocs-material; extra == 'docs'
@@ -0,0 +1,98 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "from ypywidgets_textual.plotext import Plotext\n",
10
+ "plt = Plotext()"
11
+ ]
12
+ },
13
+ {
14
+ "cell_type": "code",
15
+ "execution_count": 2,
16
+ "metadata": {},
17
+ "outputs": [
18
+ {
19
+ "data": {
20
+ "application/vnd.jupyter.ywidget-view+json": {
21
+ "model_id": "af1e097e261d4d0b9cd72c9d8f8467d8",
22
+ "version_major": 2,
23
+ "version_minor": 0
24
+ },
25
+ "text/plain": [
26
+ "<ypywidgets_textual.plotext.Plotext object at 0x7f175f732660>"
27
+ ]
28
+ },
29
+ "execution_count": 2,
30
+ "metadata": {},
31
+ "output_type": "execute_result"
32
+ }
33
+ ],
34
+ "source": [
35
+ "plt"
36
+ ]
37
+ },
38
+ {
39
+ "cell_type": "code",
40
+ "execution_count": null,
41
+ "metadata": {},
42
+ "outputs": [],
43
+ "source": [
44
+ "plt.title('Scatter Plot')"
45
+ ]
46
+ },
47
+ {
48
+ "cell_type": "code",
49
+ "execution_count": null,
50
+ "metadata": {},
51
+ "outputs": [],
52
+ "source": [
53
+ "x = [0, 1, 2, 3, 4, 5]\n",
54
+ "y = [5, 6, 7, 1, 2, 3]\n",
55
+ "plt.scatter(x, y)"
56
+ ]
57
+ },
58
+ {
59
+ "cell_type": "code",
60
+ "execution_count": null,
61
+ "metadata": {},
62
+ "outputs": [],
63
+ "source": [
64
+ "plt.title('Hello')"
65
+ ]
66
+ },
67
+ {
68
+ "cell_type": "code",
69
+ "execution_count": null,
70
+ "metadata": {},
71
+ "outputs": [],
72
+ "source": [
73
+ "plt.clear_data()"
74
+ ]
75
+ }
76
+ ],
77
+ "metadata": {
78
+ "kernelspec": {
79
+ "display_name": "Python 3 (ipykernel)",
80
+ "language": "python",
81
+ "name": "python3"
82
+ },
83
+ "language_info": {
84
+ "codemirror_mode": {
85
+ "name": "ipython",
86
+ "version": 3
87
+ },
88
+ "file_extension": ".py",
89
+ "mimetype": "text/x-python",
90
+ "name": "python",
91
+ "nbconvert_exporter": "python",
92
+ "pygments_lexer": "ipython3",
93
+ "version": "3.11.5"
94
+ }
95
+ },
96
+ "nbformat": 4,
97
+ "nbformat_minor": 4
98
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "from textual.app import App, ComposeResult\n",
10
+ "from textual_plotext import PlotextPlot\n",
11
+ "from ypywidgets_textual import Widget, Driver\n",
12
+ "\n",
13
+ "class ScatterApp(App[None]):\n",
14
+ "\n",
15
+ " def compose(self) -> ComposeResult:\n",
16
+ " yield PlotextPlot()\n",
17
+ "\n",
18
+ " def on_mount(self) -> None:\n",
19
+ " plt = self.query_one(PlotextPlot).plt\n",
20
+ " y = plt.sin() # sinusoidal test signal\n",
21
+ " plt.scatter(y)\n",
22
+ " plt.title(\"Scatter Plot\") # to apply a title"
23
+ ]
24
+ },
25
+ {
26
+ "cell_type": "code",
27
+ "execution_count": null,
28
+ "metadata": {},
29
+ "outputs": [],
30
+ "source": [
31
+ "w = Widget(ScatterApp)"
32
+ ]
33
+ },
34
+ {
35
+ "cell_type": "code",
36
+ "execution_count": null,
37
+ "metadata": {},
38
+ "outputs": [],
39
+ "source": [
40
+ "w"
41
+ ]
42
+ },
43
+ {
44
+ "cell_type": "code",
45
+ "execution_count": null,
46
+ "metadata": {},
47
+ "outputs": [],
48
+ "source": []
49
+ }
50
+ ],
51
+ "metadata": {
52
+ "kernelspec": {
53
+ "display_name": "Python 3 (ipykernel)",
54
+ "language": "python",
55
+ "name": "python3"
56
+ },
57
+ "language_info": {
58
+ "codemirror_mode": {
59
+ "name": "ipython",
60
+ "version": 3
61
+ },
62
+ "file_extension": ".py",
63
+ "mimetype": "text/x-python",
64
+ "name": "python",
65
+ "nbconvert_exporter": "python",
66
+ "pygments_lexer": "ipython3",
67
+ "version": "3.12.2"
68
+ }
69
+ },
70
+ "nbformat": 4,
71
+ "nbformat_minor": 4
72
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "from time import sleep\n",
10
+ "from ypywidgets_textual.switch import Switch\n",
11
+ "\n",
12
+ "switch = Switch()"
13
+ ]
14
+ },
15
+ {
16
+ "cell_type": "code",
17
+ "execution_count": null,
18
+ "metadata": {},
19
+ "outputs": [],
20
+ "source": [
21
+ "switch"
22
+ ]
23
+ },
24
+ {
25
+ "cell_type": "code",
26
+ "execution_count": null,
27
+ "metadata": {},
28
+ "outputs": [],
29
+ "source": [
30
+ "while True:\n",
31
+ " switch.toggle()\n",
32
+ " sleep(1)"
33
+ ]
34
+ },
35
+ {
36
+ "cell_type": "code",
37
+ "execution_count": null,
38
+ "metadata": {},
39
+ "outputs": [],
40
+ "source": []
41
+ }
42
+ ],
43
+ "metadata": {
44
+ "kernelspec": {
45
+ "display_name": "Python 3 (ipykernel)",
46
+ "language": "python",
47
+ "name": "python3"
48
+ },
49
+ "language_info": {
50
+ "codemirror_mode": {
51
+ "name": "ipython",
52
+ "version": 3
53
+ },
54
+ "file_extension": ".py",
55
+ "mimetype": "text/x-python",
56
+ "name": "python",
57
+ "nbconvert_exporter": "python",
58
+ "pygments_lexer": "ipython3",
59
+ "version": "3.11.5"
60
+ }
61
+ },
62
+ "nbformat": 4,
63
+ "nbformat_minor": 4
64
+ }
@@ -0,0 +1,253 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "from decimal import Decimal\n",
10
+ "\n",
11
+ "from textual import events, on\r",
12
+ "from textual.app import App, ComposeResult\r",
13
+ "from textual.containers import Container\r",
14
+ "from textual.css.query import NoMatches\r",
15
+ "from textual.reactive import var\r",
16
+ "from textual.widgets import Button, Digits\r",
17
+ "from ypywidgets_textual import Widget, Driver\r",
18
+ "\r",
19
+ "class CalculatorApp(App):\r",
20
+ " \"\"\"A working 'desktop' calculator.\"\"\"\r",
21
+ "\r",
22
+ " CSS = \"\"\"\r",
23
+ " Screen {\r",
24
+ " overflow: auto;\r",
25
+ " }\r",
26
+ " \r",
27
+ " #calculator {\r",
28
+ " layout: grid;\r",
29
+ " grid-size: 4;\r",
30
+ " grid-gutter: 1 2;\r",
31
+ " grid-columns: 1fr;\r",
32
+ " grid-rows: 2fr 1fr 1fr 1fr 1fr 1fr;\r",
33
+ " margin: 1 2;\r",
34
+ " min-height: 25;\r",
35
+ " min-width: 26;\r",
36
+ " height: 100%;\r",
37
+ " }\r",
38
+ " \r",
39
+ " Button {\r",
40
+ " width: 100%;\r",
41
+ " height: 100%;\r",
42
+ " }\r",
43
+ " \r",
44
+ " #numbers {\r",
45
+ " column-span: 4;\r",
46
+ " padding: 0 1;\r",
47
+ " height: 100%;\r",
48
+ " background: $primary-lighten-2;\r",
49
+ " color: $text;\r",
50
+ " content-align: center middle;\r",
51
+ " text-align: right;\r",
52
+ " }\r",
53
+ " \r",
54
+ " #number-0 {\r",
55
+ " column-span: 2;\r",
56
+ " }\r",
57
+ " \"\"\"\r",
58
+ "\r",
59
+ " numbers = var(\"0\")\r",
60
+ " show_ac = var(True)\r",
61
+ " left = var(Decimal(\"0\"))\r",
62
+ " right = var(Decimal(\"0\"))\r",
63
+ " value = var(\"\")\r",
64
+ " operator = var(\"plus\")\r",
65
+ "\r",
66
+ " NAME_MAP = {\r",
67
+ " \"asterisk\": \"multiply\",\r",
68
+ " \"slash\": \"divide\",\r",
69
+ " \"underscore\": \"plus-minus\",\r",
70
+ " \"full_stop\": \"point\",\r",
71
+ " \"plus_minus_sign\": \"plus-minus\",\r",
72
+ " \"percent_sign\": \"percent\",\r",
73
+ " \"equals_sign\": \"equals\",\r",
74
+ " \"minus\": \"minus\",\r",
75
+ " \"plus\": \"plus\",\r",
76
+ " }\r",
77
+ "\r",
78
+ " def watch_numbers(self, value: str) -> None:\r",
79
+ " \"\"\"Called when numbers is updated.\"\"\"\r",
80
+ " self.query_one(\"#numbers\", Digits).update(value)\r",
81
+ "\r",
82
+ " def compute_show_ac(self) -> bool:\r",
83
+ " \"\"\"Compute switch to show AC or C button\"\"\"\r",
84
+ " return self.value in (\"\", \"0\") and self.numbers == \"0\"\r",
85
+ "\r",
86
+ " def watch_show_ac(self, show_ac: bool) -> None:\r",
87
+ " \"\"\"Called when show_ac changes.\"\"\"\r",
88
+ " self.query_one(\"#c\").display = not show_ac\r",
89
+ " self.query_one(\"#ac\").display = show_ac\r",
90
+ "\r",
91
+ " def compose(self) -> ComposeResult:\r",
92
+ " \"\"\"Add our buttons.\"\"\"\r",
93
+ " with Container(id=\"calculator\"):\r",
94
+ " yield Digits(id=\"numbers\")\r",
95
+ " yield Button(\"AC\", id=\"ac\", variant=\"primary\")\r",
96
+ " yield Button(\"C\", id=\"c\", variant=\"primary\")\r",
97
+ " yield Button(\"+/-\", id=\"plus-minus\", variant=\"primary\")\r",
98
+ " yield Button(\"%\", id=\"percent\", variant=\"primary\")\r",
99
+ " yield Button(\"÷\", id=\"divide\", variant=\"warning\")\r",
100
+ " yield Button(\"7\", id=\"number-7\", classes=\"number\")\r",
101
+ " yield Button(\"8\", id=\"number-8\", classes=\"number\")\r",
102
+ " yield Button(\"9\", id=\"number-9\", classes=\"number\")\r",
103
+ " yield Button(\"×\", id=\"multiply\", variant=\"warning\")\r",
104
+ " yield Button(\"4\", id=\"number-4\", classes=\"number\")\r",
105
+ " yield Button(\"5\", id=\"number-5\", classes=\"number\")\r",
106
+ " yield Button(\"6\", id=\"number-6\", classes=\"number\")\r",
107
+ " yield Button(\"-\", id=\"minus\", variant=\"warning\")\r",
108
+ " yield Button(\"1\", id=\"number-1\", classes=\"number\")\r",
109
+ " yield Button(\"2\", id=\"number-2\", classes=\"number\")\r",
110
+ " yield Button(\"3\", id=\"number-3\", classes=\"number\")\r",
111
+ " yield Button(\"+\", id=\"plus\", variant=\"warning\")\r",
112
+ " yield Button(\"0\", id=\"number-0\", classes=\"number\")\r",
113
+ " yield Button(\".\", id=\"point\")\r",
114
+ " yield Button(\"=\", id=\"equals\", variant=\"warning\")\r",
115
+ "\r",
116
+ " def on_key(self, event: events.Key) -> None:\r",
117
+ " \"\"\"Called when the user presses a key.\"\"\"\r",
118
+ "\r",
119
+ " def press(button_id: str) -> None:\r",
120
+ " \"\"\"Press a button, should it exist.\"\"\"\r",
121
+ " try:\r",
122
+ " self.query_one(f\"#{button_id}\", Button).press()\r",
123
+ " except NoMatches:\r",
124
+ " pass\r",
125
+ "\r",
126
+ " key = event.key\r",
127
+ " if key.isdecimal():\r",
128
+ " press(f\"number-{key}\")\r",
129
+ " elif key == \"c\":\r",
130
+ " press(\"c\")\r",
131
+ " press(\"ac\")\r",
132
+ " else:\r",
133
+ " button_id = self.NAME_MAP.get(key)\r",
134
+ " if button_id is not None:\r",
135
+ " press(self.NAME_MAP.get(key, key))\r",
136
+ "\r",
137
+ " @on(Button.Pressed, \".number\")\r",
138
+ " def number_pressed(self, event: Button.Pressed) -> None:\r",
139
+ " \"\"\"Pressed a number.\"\"\"\r",
140
+ " assert event.button.id is not None\r",
141
+ " number = event.button.id.partition(\"-\")[-1]\r",
142
+ " self.numbers = self.value = self.value.lstrip(\"0\") + number\r",
143
+ "\r",
144
+ " @on(Button.Pressed, \"#plus-minus\")\r",
145
+ " def plus_minus_pressed(self) -> None:\r",
146
+ " \"\"\"Pressed + / -\"\"\"\r",
147
+ " self.numbers = self.value = str(Decimal(self.value or \"0\") * -1)\r",
148
+ "\r",
149
+ " @on(Button.Pressed, \"#percent\")\r",
150
+ " def percent_pressed(self) -> None:\r",
151
+ " \"\"\"Pressed %\"\"\"\r",
152
+ " self.numbers = self.value = str(Decimal(self.value or \"0\") / Decimal(100))\r",
153
+ "\r",
154
+ " @on(Button.Pressed, \"#point\")\r",
155
+ " def pressed_point(self) -> None:\r",
156
+ " \"\"\"Pressed .\"\"\"\r",
157
+ " if \".\" not in self.value:\r",
158
+ " self.numbers = self.value = (self.value or \"0\") + \".\"\r",
159
+ "\r",
160
+ " @on(Button.Pressed, \"#ac\")\r",
161
+ " def pressed_ac(self) -> None:\r",
162
+ " \"\"\"Pressed AC\"\"\"\r",
163
+ " self.value = \"\"\r",
164
+ " self.left = self.right = Decimal(0)\r",
165
+ " self.operator = \"plus\"\r",
166
+ " self.numbers = \"0\"\r",
167
+ "\r",
168
+ " @on(Button.Pressed, \"#c\")\r",
169
+ " def pressed_c(self) -> None:\r",
170
+ " \"\"\"Pressed C\"\"\"\r",
171
+ " self.value = \"\"\r",
172
+ " self.numbers = \"0\"\r",
173
+ "\r",
174
+ " def _do_math(self) -> None:\r",
175
+ " \"\"\"Does the math: LEFT OPERATOR RIGHT\"\"\"\r",
176
+ " try:\r",
177
+ " if self.operator == \"plus\":\r",
178
+ " self.left += self.right\r",
179
+ " elif self.operator == \"minus\":\r",
180
+ " self.left -= self.right\r",
181
+ " elif self.operator == \"divide\":\r",
182
+ " self.left /= self.right\r",
183
+ " elif self.operator == \"multiply\":\r",
184
+ " self.left *= self.right\r",
185
+ " self.numbers = str(self.left)\r",
186
+ " self.value = \"\"\r",
187
+ " except Exception:\r",
188
+ " self.numbers = \"Error\"\r",
189
+ "\r",
190
+ " @on(Button.Pressed, \"#plus,#minus,#divide,#multiply\")\r",
191
+ " def pressed_op(self, event: Button.Pressed) -> None:\r",
192
+ " \"\"\"Pressed one of the arithmetic operations.\"\"\"\r",
193
+ " self.right = Decimal(self.value or \"0\")\r",
194
+ " self._do_math()\r",
195
+ " assert event.button.id is not None\r",
196
+ " self.operator = event.button.id\r",
197
+ "\r",
198
+ " @on(Button.Pressed, \"#equals\")\r",
199
+ " def pressed_equals(self) -> None:\r",
200
+ " \"\"\"Pressed =\"\"\"\r",
201
+ " if self.value:\r",
202
+ " self.right = Decimal(self.value)\r",
203
+ " self._do_math()"
204
+ ]
205
+ },
206
+ {
207
+ "cell_type": "code",
208
+ "execution_count": null,
209
+ "metadata": {},
210
+ "outputs": [],
211
+ "source": [
212
+ "w = Widget(CalculatorApp)"
213
+ ]
214
+ },
215
+ {
216
+ "cell_type": "code",
217
+ "execution_count": null,
218
+ "metadata": {},
219
+ "outputs": [],
220
+ "source": [
221
+ "w"
222
+ ]
223
+ },
224
+ {
225
+ "cell_type": "code",
226
+ "execution_count": null,
227
+ "metadata": {},
228
+ "outputs": [],
229
+ "source": []
230
+ }
231
+ ],
232
+ "metadata": {
233
+ "kernelspec": {
234
+ "display_name": "Python 3 (ipykernel)",
235
+ "language": "python",
236
+ "name": "python3"
237
+ },
238
+ "language_info": {
239
+ "codemirror_mode": {
240
+ "name": "ipython",
241
+ "version": 3
242
+ },
243
+ "file_extension": ".py",
244
+ "mimetype": "text/x-python",
245
+ "name": "python",
246
+ "nbconvert_exporter": "python",
247
+ "pygments_lexer": "ipython3",
248
+ "version": "3.12.2"
249
+ }
250
+ },
251
+ "nbformat": 4,
252
+ "nbformat_minor": 4
253
+ }
@@ -18,15 +18,21 @@ def jpterm_main(kwargs):
18
18
  collaborative = kwargs.pop("collaborative")
19
19
  experimental = kwargs.pop("experimental")
20
20
  set_ = list(kwargs["set_"])
21
- set_.append("logging.version=1") # disable logging
22
21
  if server:
23
- set_.append(f"component.components.remote_contents.url={server}")
24
- set_.append(f"component.components.remote_terminals.url={server}")
25
- set_.append(f"component.components.remote_kernels.url={server}")
26
- set_.append(f"component.components.remote_kernelspecs.url={server}")
27
- set_.append(f"component.components.remote_contents.collaborative={collaborative}")
28
- set_.append(f"component.components.notebook_editor.experimental={experimental}")
29
- disabled.extend(["local_contents", "local_terminals", "local_kernels", "local_kernelspecs"])
22
+ set_.append(f"remote_contents.url={server}")
23
+ set_.append(f"remote_terminals.url={server}")
24
+ set_.append(f"remote_kernels.url={server}")
25
+ set_.append(f"remote_kernelspecs.url={server}")
26
+ set_.append(f"remote_contents.collaborative={collaborative}")
27
+ set_.append(f"notebook_editor.experimental={experimental}")
28
+ disabled.extend(
29
+ [
30
+ "local_contents",
31
+ "local_terminals",
32
+ "local_kernels",
33
+ "local_kernelspecs",
34
+ ]
35
+ )
30
36
  else:
31
37
  disabled.extend(
32
38
  [
@@ -45,6 +51,7 @@ def main():
45
51
  decorators = [
46
52
  click.option("--logo", is_flag=True, default=False, help="Show the jpterm logo."),
47
53
  click.option("--server", default="", help="The URL to the Jupyter server."),
54
+ click.option("--backend", default="asyncio", help="The name of the event loop to use (asyncio or trio)."),
48
55
  click.option(
49
56
  "--collaborative/--no-collaborative",
50
57
  default=False,