pytae 2.3.2__tar.gz → 2.3.4__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.
- {pytae-2.3.2 → pytae-2.3.4}/.ipynb_checkpoints/README-checkpoint.md +3 -0
- {pytae-2.3.2 → pytae-2.3.4}/.ipynb_checkpoints/pyproject-checkpoint.toml +1 -1
- {pytae-2.3.2 → pytae-2.3.4}/PKG-INFO +4 -1
- {pytae-2.3.2 → pytae-2.3.4}/README.md +3 -0
- {pytae-2.3.2 → pytae-2.3.4}/pyproject.toml +1 -1
- pytae-2.3.4/src/.ipynb_checkpoints/other_utilities-checkpoint.ipynb +152 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/.ipynb_checkpoints/plot_x-checkpoint.ipynb +49 -2
- {pytae-2.3.2 → pytae-2.3.4}/src/other_utilities.ipynb +55 -1
- {pytae-2.3.2 → pytae-2.3.4}/src/plot_x.ipynb +53 -6
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/.ipynb_checkpoints/other_utilities-checkpoint.py +27 -29
- pytae-2.3.4/src/pytae/.ipynb_checkpoints/plot_x-checkpoint.py +88 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/other_utilities.py +27 -29
- pytae-2.3.4/src/pytae/plot_x.py +88 -0
- pytae-2.3.2/src/.ipynb_checkpoints/other_utilities-checkpoint.ipynb +0 -814
- pytae-2.3.2/src/pytae/.ipynb_checkpoints/plot_x-checkpoint.py +0 -72
- pytae-2.3.2/src/pytae/plot_x.py +0 -72
- {pytae-2.3.2 → pytae-2.3.4}/.github/workflows/.ipynb_checkpoints/publish-to-test-pypi-checkpoint.yml +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/.github/workflows/publish-to-test-pypi.yml +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/.gitignore +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/.ipynb_checkpoints/LICENSE-checkpoint +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/.ipynb_checkpoints/requirements-checkpoint.txt +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/LICENSE +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/requirements.txt +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/.ipynb_checkpoints/agg_df-checkpoint.ipynb +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/.ipynb_checkpoints/get_data-checkpoint.ipynb +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/.ipynb_checkpoints/shape-checkpoint.ipynb +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/agg_df.ipynb +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/get_data.ipynb +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/.ipynb_checkpoints/__init__-checkpoint.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/.ipynb_checkpoints/agg_df-checkpoint.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/.ipynb_checkpoints/get_data-checkpoint.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/.ipynb_checkpoints/shape-checkpoint.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/__init__.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/agg_df.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/get_data.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/pytae/shape.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/src/shape.ipynb +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/tests/.ipynb_checkpoints/test_agg_df-checkpoint.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/tests/.ipynb_checkpoints/test_shape-checkpoint.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/tests/test_agg_df.py +0 -0
- {pytae-2.3.2 → pytae-2.3.4}/tests/test_shape.py +0 -0
|
@@ -16,5 +16,8 @@ https://github.com/maddytae/pytae/blob/master/src/get_data.ipynb
|
|
|
16
16
|
### 4) some addditional utilities
|
|
17
17
|
https://github.com/maddytae/pytae/blob/master/src/other_utilities.ipynb
|
|
18
18
|
|
|
19
|
+
### 5) plotting utilities
|
|
20
|
+
https://github.com/maddytae/pytae/blob/master/src/plot_x.ipynb
|
|
21
|
+
|
|
19
22
|
#### To Do: Documentation and automated Testing features
|
|
20
23
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pytae"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.4"
|
|
8
8
|
description = "A package to enhance common day to day tasks in the life of a data scientist"
|
|
9
9
|
authors = [{ name = "Madhukar Kumar Jha", email = "madhukar.k.jha@gmail.com" }]
|
|
10
10
|
readme = "README.md"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pytae
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.4
|
|
4
4
|
Dynamic: Requires-Dist
|
|
5
5
|
Summary: A package to enhance common day to day tasks in the life of a data scientist
|
|
6
6
|
Project-URL: Homepage, https://github.com/maddytae/pytae
|
|
@@ -31,5 +31,8 @@ https://github.com/maddytae/pytae/blob/master/src/get_data.ipynb
|
|
|
31
31
|
### 4) some addditional utilities
|
|
32
32
|
https://github.com/maddytae/pytae/blob/master/src/other_utilities.ipynb
|
|
33
33
|
|
|
34
|
+
### 5) plotting utilities
|
|
35
|
+
https://github.com/maddytae/pytae/blob/master/src/plot_x.ipynb
|
|
36
|
+
|
|
34
37
|
#### To Do: Documentation and automated Testing features
|
|
35
38
|
|
|
@@ -16,5 +16,8 @@ https://github.com/maddytae/pytae/blob/master/src/get_data.ipynb
|
|
|
16
16
|
### 4) some addditional utilities
|
|
17
17
|
https://github.com/maddytae/pytae/blob/master/src/other_utilities.ipynb
|
|
18
18
|
|
|
19
|
+
### 5) plotting utilities
|
|
20
|
+
https://github.com/maddytae/pytae/blob/master/src/plot_x.ipynb
|
|
21
|
+
|
|
19
22
|
#### To Do: Documentation and automated Testing features
|
|
20
23
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pytae"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.4"
|
|
8
8
|
description = "A package to enhance common day to day tasks in the life of a data scientist"
|
|
9
9
|
authors = [{ name = "Madhukar Kumar Jha", email = "madhukar.k.jha@gmail.com" }]
|
|
10
10
|
readme = "README.md"
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "code",
|
|
5
|
+
"execution_count": null,
|
|
6
|
+
"id": "af0e75c1-7748-44e7-974e-34112d92d813",
|
|
7
|
+
"metadata": {},
|
|
8
|
+
"outputs": [],
|
|
9
|
+
"source": [
|
|
10
|
+
"import numpy as np\n",
|
|
11
|
+
"import pandas as pd\n",
|
|
12
|
+
"import pytae as pt\n",
|
|
13
|
+
"import seaborn as sns\n",
|
|
14
|
+
"penguins = sns.load_dataset('penguins')"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"cell_type": "code",
|
|
19
|
+
"execution_count": null,
|
|
20
|
+
"id": "e42e01b5-4b00-4f95-acec-274deda67a3c",
|
|
21
|
+
"metadata": {},
|
|
22
|
+
"outputs": [],
|
|
23
|
+
"source": [
|
|
24
|
+
"# get a list of columns\n",
|
|
25
|
+
"penguins.cols()"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"cell_type": "code",
|
|
30
|
+
"execution_count": null,
|
|
31
|
+
"id": "e7136bed-d2e1-48c5-a337-8e31fc020a98",
|
|
32
|
+
"metadata": {},
|
|
33
|
+
"outputs": [],
|
|
34
|
+
"source": [
|
|
35
|
+
"#add a group count\n",
|
|
36
|
+
"df = (\n",
|
|
37
|
+
" penguins\n",
|
|
38
|
+
" .group_x()\n",
|
|
39
|
+
")\n",
|
|
40
|
+
"df.head()"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"cell_type": "code",
|
|
45
|
+
"execution_count": null,
|
|
46
|
+
"id": "87e3dd20-d5e1-4219-8aee-e842a3d52194",
|
|
47
|
+
"metadata": {},
|
|
48
|
+
"outputs": [],
|
|
49
|
+
"source": [
|
|
50
|
+
"# handle missing i.e. str missing or NaN is changed to . and numeric NaN to 0\n",
|
|
51
|
+
"\n",
|
|
52
|
+
"df = (\n",
|
|
53
|
+
" penguins\n",
|
|
54
|
+
" .handle_missing(fillna='$')\n",
|
|
55
|
+
")\n",
|
|
56
|
+
"df.head()\n"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"cell_type": "code",
|
|
61
|
+
"execution_count": null,
|
|
62
|
+
"id": "b17a9574-35ff-4fe2-b40f-054a0b5e5003",
|
|
63
|
+
"metadata": {},
|
|
64
|
+
"outputs": [],
|
|
65
|
+
"source": [
|
|
66
|
+
"df.clip()"
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"cell_type": "code",
|
|
71
|
+
"execution_count": null,
|
|
72
|
+
"id": "b39ba218-6361-47eb-91b2-c6f35b7a130e",
|
|
73
|
+
"metadata": {},
|
|
74
|
+
"outputs": [],
|
|
75
|
+
"source": [
|
|
76
|
+
"penguins\n"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"cell_type": "code",
|
|
81
|
+
"execution_count": null,
|
|
82
|
+
"id": "cf3bf0ae-b4ea-45ad-a358-c3eb5042e039",
|
|
83
|
+
"metadata": {},
|
|
84
|
+
"outputs": [],
|
|
85
|
+
"source": [
|
|
86
|
+
"penguins.select('spe|sex|^n|^bi')"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"cell_type": "code",
|
|
91
|
+
"execution_count": null,
|
|
92
|
+
"id": "3a74dbdf-4afa-4b9c-af1e-22cd016bc39a",
|
|
93
|
+
"metadata": {},
|
|
94
|
+
"outputs": [],
|
|
95
|
+
"source": [
|
|
96
|
+
"penguins.select(['species','n'])"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"cell_type": "code",
|
|
101
|
+
"execution_count": null,
|
|
102
|
+
"id": "f29560f9-bb6e-4b0f-a143-8c75be726609",
|
|
103
|
+
"metadata": {},
|
|
104
|
+
"outputs": [],
|
|
105
|
+
"source": [
|
|
106
|
+
"df = pd.DataFrame(np.arange(12).reshape(3, 4),\n",
|
|
107
|
+
" columns=['A', 'B_X', 'B', 'C'])\n",
|
|
108
|
+
"\n",
|
|
109
|
+
"print('original df')\n",
|
|
110
|
+
"print(df)\n",
|
|
111
|
+
"\n",
|
|
112
|
+
"print('\\nselect using a list')\n",
|
|
113
|
+
"print(df.select(['A','B_X']))\n",
|
|
114
|
+
"\n",
|
|
115
|
+
"print('\\nselect using a regex')\n",
|
|
116
|
+
"print(df.select('^B|C'))\n",
|
|
117
|
+
"\n",
|
|
118
|
+
"print('\\nselect using a tuple of list and regex')\n",
|
|
119
|
+
"print(df.select((['A','B_X'],'^B|C')))"
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"cell_type": "code",
|
|
124
|
+
"execution_count": null,
|
|
125
|
+
"id": "efde3bab-b430-4785-bfff-6ff1f515e6a6",
|
|
126
|
+
"metadata": {},
|
|
127
|
+
"outputs": [],
|
|
128
|
+
"source": []
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"metadata": {
|
|
132
|
+
"kernelspec": {
|
|
133
|
+
"display_name": "py_env",
|
|
134
|
+
"language": "python",
|
|
135
|
+
"name": "py_env"
|
|
136
|
+
},
|
|
137
|
+
"language_info": {
|
|
138
|
+
"codemirror_mode": {
|
|
139
|
+
"name": "ipython",
|
|
140
|
+
"version": 3
|
|
141
|
+
},
|
|
142
|
+
"file_extension": ".py",
|
|
143
|
+
"mimetype": "text/x-python",
|
|
144
|
+
"name": "python",
|
|
145
|
+
"nbconvert_exporter": "python",
|
|
146
|
+
"pygments_lexer": "ipython3",
|
|
147
|
+
"version": "3.9.6"
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"nbformat": 4,
|
|
151
|
+
"nbformat_minor": 5
|
|
152
|
+
}
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
"cell_type": "code",
|
|
92
|
-
"execution_count":
|
|
92
|
+
"execution_count": 4,
|
|
93
93
|
"id": "11d6896c-a3c6-41af-b4be-314fd7a95e57",
|
|
94
94
|
"metadata": {},
|
|
95
95
|
"outputs": [
|
|
@@ -141,9 +141,56 @@
|
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
"cell_type": "code",
|
|
144
|
-
"execution_count":
|
|
144
|
+
"execution_count": 6,
|
|
145
145
|
"id": "4c45df2e-49f3-4540-a1bf-caf19a3a6d45",
|
|
146
146
|
"metadata": {},
|
|
147
|
+
"outputs": [
|
|
148
|
+
{
|
|
149
|
+
"data": {
|
|
150
|
+
"image/png": "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hzR3rjRnjjF17jrxkh6Q1LFKFX27cSNbyAFZ7YsvpH790h4rUkRat84YvQKAGyUnS9u2pR1lv599o0uWlIKDb17QixUzVmkHgExGiafE43opKcaiWVeL+232knxb0ldeXtrz338qWqxYlkUE8D82m/T889K4cWmP16gh/fEHM2NMsHPnTp08eVKPPPKI2VEAw+nT10bZV6823uS78VKcjMqVSwoNNRaurVPH+HX+/JmbFwAygItsgMREadkyo7jPmycdP37Hhxz29tZXNpv69OtHgQfMYrFIo0YZo2grVlw7/vffxsKT06axVVIWGzhwoFavXq1t27bJz8/P7DhwN1arMYPu6gj76tXSv//e+/OVKWOU9aulvWJFZt0BcAiMxDMS754uXDBWkZ87V1q4UIqLy9jj8uWTWrRQxLlzWrJmjfbu3avcuXPbNSqAOzh1yhgR+++/tMfffVf68ENzMrmpQ4cOqVKlSnr66af1ww8/mB0Hru7sWWnNmmuFfe1aY3/2e5Ejh7HzxdXCXru2VLBg5uYFgExCiafEu4+TJ43FsObMkX77TUpIyNjjihY1FtBq1Up65BEpWzb98ssvOn/+vNq1a2fPxAAyaudO4wfvG9+Qi4qSnn3WnExuasyYMerWrZsWL16sJk2amB0HriIlRdq1K+0o+86d9/58pUqlHWWvXJlV4AE4DUo8Jd617d9/7fr2lSuNHwIy4sEHja2qWrUyrq/938qxV/+5WFhJFnA8v/4qNWtmTKm9ysND+uYbqWdP83K5GZvNpiZNmujQoUPavn27PLikAfciLs4YWb9+lP3cuXt7ruzZje/l14+yBwRkalwAyEqUeCcu8f/++68KFy7MdO7r2WzS1q1GaZ8zx9hPOqNCQ68V93Ll0p3eu3evhg0bpu3bt2v27NlO/XcHcFkjRty8sL/xhrGaPdezZokjR44oOTlZwcHBZkeBM7DZpN270y5At3172i0k70aJEtcKe506UtWqUrZsmZsZAEzEvCEn9sILL+jvv/9W69at1blzZ4WFhcnLHaeCWa3GN/w5c4xR9xuvi70VLy/psceM4t6y5U23pEpKStKECRM0fvx4rVy5Urlz51b37t154wRwVD16GLtKfPNN2uNffy0dOCBNmsSq9VmgaNGikqTz58/rv//+U9WqVU1OBIcTF2d8354925gpd+bMvT2P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",
|
|
151
|
+
"text/plain": [
|
|
152
|
+
"<Figure size 1200x600 with 1 Axes>"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
"execution_count": 6,
|
|
156
|
+
"metadata": {},
|
|
157
|
+
"output_type": "execute_result"
|
|
158
|
+
}
|
|
159
|
+
],
|
|
160
|
+
"source": [
|
|
161
|
+
"import pandas as pd\n",
|
|
162
|
+
"import matplotlib.pyplot as plt\n",
|
|
163
|
+
"from matplotlib.axes import Axes\n",
|
|
164
|
+
"import seaborn as sns\n",
|
|
165
|
+
"\n",
|
|
166
|
+
"# Assuming your plot_x function and customize_spines method are already defined\n",
|
|
167
|
+
"\n",
|
|
168
|
+
"# Load the fmri dataset\n",
|
|
169
|
+
"fmri = sns.load_dataset('fmri')\n",
|
|
170
|
+
"fmri\n",
|
|
171
|
+
"\n",
|
|
172
|
+
"# Plot the data using the plot_x function\n",
|
|
173
|
+
"fig, ax = plt.subplots(figsize=(12, 6))\n",
|
|
174
|
+
"plt.close()\n",
|
|
175
|
+
"\n",
|
|
176
|
+
"color={'cue':'red','stim':'black'}\n",
|
|
177
|
+
"style={'cue':'-','stim':'--'}\n",
|
|
178
|
+
"width={'cue':3,'stim':1}\n",
|
|
179
|
+
"\n",
|
|
180
|
+
"\n",
|
|
181
|
+
"fmri.plot_x(ax=ax, x='timepoint', y='signal', by='event', kind='line',aggfunc='mean',\n",
|
|
182
|
+
" style=style,color=color,width=width)\n",
|
|
183
|
+
"\n",
|
|
184
|
+
"\n",
|
|
185
|
+
"# Show the plot\n",
|
|
186
|
+
"fig"
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"cell_type": "code",
|
|
191
|
+
"execution_count": null,
|
|
192
|
+
"id": "aee4fc5e-4071-44e6-a74a-5d2cdfe4d6c0",
|
|
193
|
+
"metadata": {},
|
|
147
194
|
"outputs": [],
|
|
148
195
|
"source": []
|
|
149
196
|
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
"metadata": {},
|
|
8
8
|
"outputs": [],
|
|
9
9
|
"source": [
|
|
10
|
+
"import numpy as np\n",
|
|
10
11
|
"import pandas as pd\n",
|
|
11
12
|
"import pytae as pt\n",
|
|
12
13
|
"import seaborn as sns\n",
|
|
@@ -783,9 +784,62 @@
|
|
|
783
784
|
},
|
|
784
785
|
{
|
|
785
786
|
"cell_type": "code",
|
|
786
|
-
"execution_count":
|
|
787
|
+
"execution_count": 9,
|
|
787
788
|
"id": "f29560f9-bb6e-4b0f-a143-8c75be726609",
|
|
788
789
|
"metadata": {},
|
|
790
|
+
"outputs": [
|
|
791
|
+
{
|
|
792
|
+
"name": "stdout",
|
|
793
|
+
"output_type": "stream",
|
|
794
|
+
"text": [
|
|
795
|
+
"original df\n",
|
|
796
|
+
" A B_X B C\n",
|
|
797
|
+
"0 0 1 2 3\n",
|
|
798
|
+
"1 4 5 6 7\n",
|
|
799
|
+
"2 8 9 10 11\n",
|
|
800
|
+
"\n",
|
|
801
|
+
"select using a list\n",
|
|
802
|
+
" A B_X\n",
|
|
803
|
+
"0 0 1\n",
|
|
804
|
+
"1 4 5\n",
|
|
805
|
+
"2 8 9\n",
|
|
806
|
+
"\n",
|
|
807
|
+
"select using a regex\n",
|
|
808
|
+
" B_X B C\n",
|
|
809
|
+
"0 1 2 3\n",
|
|
810
|
+
"1 5 6 7\n",
|
|
811
|
+
"2 9 10 11\n",
|
|
812
|
+
"\n",
|
|
813
|
+
"select using a tuple of list and regex\n",
|
|
814
|
+
" B C A B_X\n",
|
|
815
|
+
"0 2 3 0 1\n",
|
|
816
|
+
"1 6 7 4 5\n",
|
|
817
|
+
"2 10 11 8 9\n"
|
|
818
|
+
]
|
|
819
|
+
}
|
|
820
|
+
],
|
|
821
|
+
"source": [
|
|
822
|
+
"df = pd.DataFrame(np.arange(12).reshape(3, 4),\n",
|
|
823
|
+
" columns=['A', 'B_X', 'B', 'C'])\n",
|
|
824
|
+
"\n",
|
|
825
|
+
"print('original df')\n",
|
|
826
|
+
"print(df)\n",
|
|
827
|
+
"\n",
|
|
828
|
+
"print('\\nselect using a list')\n",
|
|
829
|
+
"print(df.select(['A','B_X']))\n",
|
|
830
|
+
"\n",
|
|
831
|
+
"print('\\nselect using a regex')\n",
|
|
832
|
+
"print(df.select('^B|C'))\n",
|
|
833
|
+
"\n",
|
|
834
|
+
"print('\\nselect using a tuple of list and regex')\n",
|
|
835
|
+
"print(df.select((['A','B_X'],'^B|C')))"
|
|
836
|
+
]
|
|
837
|
+
},
|
|
838
|
+
{
|
|
839
|
+
"cell_type": "code",
|
|
840
|
+
"execution_count": null,
|
|
841
|
+
"id": "efde3bab-b430-4785-bfff-6ff1f515e6a6",
|
|
842
|
+
"metadata": {},
|
|
789
843
|
"outputs": [],
|
|
790
844
|
"source": []
|
|
791
845
|
}
|