From 65d2af09271c1ec01db6d0cedc258169c7f083f8 Mon Sep 17 00:00:00 2001
From: kolibril13 <44469195+kolibril13@users.noreply.github.com>
Date: Fri, 28 Apr 2023 13:39:58 +0200
Subject: [PATCH 1/2] add prime example
---
examples/prime_example.ipynb | 144 +++++++++++++++++++++++++++++++++++
1 file changed, 144 insertions(+)
create mode 100644 examples/prime_example.ipynb
diff --git a/examples/prime_example.ipynb b/examples/prime_example.ipynb
new file mode 100644
index 0000000..9c58732
--- /dev/null
+++ b/examples/prime_example.ipynb
@@ -0,0 +1,144 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from traitlets import Any, observe\n",
+ "from traitlets import Int, Any\n",
+ "import ipyreact\n",
+ "\n",
+ "def is_prime_number(n):\n",
+ " for i in range(2, n):\n",
+ " if n % i == 0:\n",
+ " return \"No 💻🧊🧊🧊\"\n",
+ " return \"Yes 💻✅✅✅\"\n",
+ "\n",
+ "\n",
+ "class PrimePythonWidget(ipyreact.ReactWidget):\n",
+ " prime_message = Any(\"Click the Button\").tag(sync=True)\n",
+ " count = Int(0).tag(sync=True)\n",
+ "\n",
+ " @observe(\"count\")\n",
+ " def _observe_count(self, change):\n",
+ " self.prime_message = is_prime_number(self.count)\n",
+ "\n",
+ " _esm = \"\"\"\n",
+ " import * as React from \"react\";\n",
+ "\n",
+ " export default function({on_count, count, prime_message}) {\n",
+ " return
\n",
+ "
\n",
+ " {prime_message} \n",
+ "
\n",
+ " };\"\"\"\n",
+ "\n",
+ "\n",
+ "primepy = PrimePythonWidget()\n",
+ "primepy\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "primepy.count = 3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "primepy.count = 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class PrimeJavaScriptWidget(ipyreact.ReactWidget):\n",
+ " prime_message = Any(\"Click the Button\").tag(sync=True) \n",
+ " count = Int(0).tag(sync=True)\n",
+ "\n",
+ " _esm = \"\"\"\n",
+ " import * as React from \"react\";\n",
+ "\n",
+ " function isPrimeNumber(n) {\n",
+ " for (let i = 2; i < n; i++) {\n",
+ " if (n % i === 0) {\n",
+ " return \"No 🌐🧊🧊🧊\";\n",
+ " }\n",
+ " }\n",
+ " return \"Yes 🌐✅✅✅\";\n",
+ " }\n",
+ "\n",
+ " export const MyUpdater = ({ count, on_count, prime_message }) => {\n",
+ " prime_message = isPrimeNumber(count);\n",
+ " return {prime_message} ;\n",
+ " };\n",
+ "\n",
+ " export default function ({ on_count, count, prime_message }) {\n",
+ " return (\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "
\n",
+ " );\n",
+ " }\n",
+ " \"\"\"\n",
+ "primejs = PrimeJavaScriptWidget()\n",
+ "primejs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "primejs.count = 3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "primejs.count = 4"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
From 5a0ac776a23022a70ee697fa547378bb19949dcd Mon Sep 17 00:00:00 2001
From: kolibril13 <44469195+kolibril13@users.noreply.github.com>
Date: Fri, 28 Apr 2023 14:11:23 +0200
Subject: [PATCH 2/2] update example
---
examples/prime_example.ipynb | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/examples/prime_example.ipynb b/examples/prime_example.ipynb
index 9c58732..e5d23b7 100644
--- a/examples/prime_example.ipynb
+++ b/examples/prime_example.ipynb
@@ -60,6 +60,15 @@
"primepy.count = 4"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "primepy.prime_message = \"Hello World\""
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -67,7 +76,7 @@
"outputs": [],
"source": [
"class PrimeJavaScriptWidget(ipyreact.ReactWidget):\n",
- " prime_message = Any(\"Click the Button\").tag(sync=True) \n",
+ " prime_message = Any(\"Click the Button\").tag(sync=True) # <- TODO: this message does not show up because prime_message is overwritten\n",
" count = Int(0).tag(sync=True)\n",
"\n",
" _esm = \"\"\"\n",
@@ -82,17 +91,17 @@
" return \"Yes 🌐✅✅✅\";\n",
" }\n",
"\n",
- " export const MyUpdater = ({ count, on_count, prime_message }) => {\n",
+ " export const MyUpdater = ({ count, prime_message}) => {\n",
" prime_message = isPrimeNumber(count);\n",
" return {prime_message} ;\n",
" };\n",
"\n",
- " export default function ({ on_count, count, prime_message }) {\n",
+ " export default function ({ on_count, count, prime_message}) {\n",
" return (\n",
" \n",
" \n",
"
\n",
- " \n",
+ " \n",
"
\n",
" );\n",
" }\n",
@@ -118,6 +127,15 @@
"source": [
"primejs.count = 4"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "primejs.prime_message = \"Hello World\" # <- TODO: this message does not show up because it is overwritten by prime_message = isPrimeNumber(count);"
+ ]
}
],
"metadata": {