{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from reactpy import Reactive\n", "import numpy as np\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(4, 25, 4)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r = Reactive()\n", "r.a = 2\n", "r.b = r(lambda a: a*a)\n", "before = r.b\n", "with r.context(a=5):\n", " during = r.b\n", "after = r.b\n", "before, during, after" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "r = Reactive()\n", "r.c = r(lambda a,b: abs(a-b))\n", "r.result = r(lambda a,b,c: a*b + c)\n", "\n", "data = {}\n", "for a, b in ((a, b) for a in range(10) \n", " for b in range(10)):\n", " with r.context(a=a, b=b):\n", " data[(r.a, r.b)] = r.result " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>0</th>\n", " <th>1</th>\n", " <th>2</th>\n", " <th>3</th>\n", " <th>4</th>\n", " <th>5</th>\n", " <th>6</th>\n", " <th>7</th>\n", " <th>8</th>\n", " <th>9</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>0</td>\n", " <td>1</td>\n", " <td>2</td>\n", " <td>3</td>\n", " <td>4</td>\n", " <td>5</td>\n", " <td>6</td>\n", " <td>7</td>\n", " <td>8</td>\n", " <td>9</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>1</td>\n", " <td>1</td>\n", " <td>3</td>\n", " <td>5</td>\n", " <td>7</td>\n", " <td>9</td>\n", " <td>11</td>\n", " <td>13</td>\n", " <td>15</td>\n", " <td>17</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>2</td>\n", " <td>3</td>\n", " <td>4</td>\n", " <td>7</td>\n", " <td>10</td>\n", " <td>13</td>\n", " <td>16</td>\n", " <td>19</td>\n", " <td>22</td>\n", " <td>25</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>3</td>\n", " <td>5</td>\n", " <td>7</td>\n", " <td>9</td>\n", " <td>13</td>\n", " <td>17</td>\n", " <td>21</td>\n", " <td>25</td>\n", " <td>29</td>\n", " <td>33</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>4</td>\n", " <td>7</td>\n", " <td>10</td>\n", " <td>13</td>\n", " <td>16</td>\n", " <td>21</td>\n", " <td>26</td>\n", " <td>31</td>\n", " <td>36</td>\n", " <td>41</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>5</td>\n", " <td>9</td>\n", " <td>13</td>\n", " <td>17</td>\n", " <td>21</td>\n", " <td>25</td>\n", " <td>31</td>\n", " <td>37</td>\n", " <td>43</td>\n", " <td>49</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", " <td>6</td>\n", " <td>11</td>\n", " <td>16</td>\n", " <td>21</td>\n", " <td>26</td>\n", " <td>31</td>\n", " <td>36</td>\n", " <td>43</td>\n", " <td>50</td>\n", " <td>57</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", " <td>7</td>\n", " <td>13</td>\n", " <td>19</td>\n", " <td>25</td>\n", " <td>31</td>\n", " <td>37</td>\n", " <td>43</td>\n", " <td>49</td>\n", " <td>57</td>\n", " <td>65</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", " <td>8</td>\n", " <td>15</td>\n", " <td>22</td>\n", " <td>29</td>\n", " <td>36</td>\n", " <td>43</td>\n", " <td>50</td>\n", " <td>57</td>\n", " <td>64</td>\n", " <td>73</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", " <td>9</td>\n", " <td>17</td>\n", " <td>25</td>\n", " <td>33</td>\n", " <td>41</td>\n", " <td>49</td>\n", " <td>57</td>\n", " <td>65</td>\n", " <td>73</td>\n", " <td>81</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " 0 1 2 3 4 5 6 7 8 9\n", "0 0 1 2 3 4 5 6 7 8 9\n", "1 1 1 3 5 7 9 11 13 15 17\n", "2 2 3 4 7 10 13 16 19 22 25\n", "3 3 5 7 9 13 17 21 25 29 33\n", "4 4 7 10 13 16 21 26 31 36 41\n", "5 5 9 13 17 21 25 31 37 43 49\n", "6 6 11 16 21 26 31 36 43 50 57\n", "7 7 13 19 25 31 37 43 49 57 65\n", "8 8 15 22 29 36 43 50 57 64 73\n", "9 9 17 25 33 41 49 57 65 73 81" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.Series(data).unstack()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.9" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }