Mohannad commited on
Commit
464a27b
1 Parent(s): f89f71e

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +205 -0
  2. requirements.txt +420 -0
app.py ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import requests
3
+ import base64, torch
4
+ from io import BytesIO
5
+ import numpy as np
6
+ import json
7
+ from json import loads, dumps
8
+ import matplotlib.pyplot as plt
9
+ import cv2
10
+
11
+ def resize_image(image):
12
+ w, h = image.size
13
+ print(w, h)
14
+ max_w = 700
15
+ max_h = 700
16
+
17
+ if max_w<w and w>h:
18
+ new_w = max_w
19
+ new_h = int(h*(max_w/w))
20
+ image = image.resize((new_w,new_h), Image.LANCZOS)
21
+
22
+ elif max_h<h:
23
+ new_h = max_h
24
+ new_w = int(w*(max_h/h))
25
+ image = image.resize((new_w,new_h), Image.LANCZOS)
26
+ else:
27
+ new_w, new_h = w, h
28
+
29
+ return image, new_w, new_h
30
+
31
+ def run_sam_remote(objects, img, url, use_mask):
32
+ headers = {
33
+ 'ngrok-skip-browser-warning': 'sdfsd',
34
+ 'Content-Type': 'application/json'
35
+ }
36
+
37
+ buffered = BytesIO()
38
+ img.save(buffered, format="JPEG")
39
+ img_str = base64.b64encode(buffered.getvalue())
40
+ data = json.dumps({
41
+ "image":img_str.decode()
42
+ })
43
+ r = requests.get(url=url+"/set_img", headers=headers, data=data)
44
+ # print("r", r)
45
+ # objects
46
+ objects = objects.to_json()
47
+ objects = loads(objects)
48
+ objects = dumps(objects, indent=4)
49
+
50
+ data = json.dumps({
51
+ "objects":objects,
52
+ "use_mask":use_mask
53
+ })
54
+ r = requests.get(url=url+"/run_last_img", headers=headers, data=data)
55
+
56
+
57
+
58
+ # extracting data in json format
59
+ data = json.loads(r.content.decode())
60
+
61
+ # print(data)
62
+ return data['image']
63
+
64
+
65
+ def save_data_remote(objects, img, url):
66
+ headers = {
67
+ 'ngrok-skip-browser-warning': 'sdfsd',
68
+ 'Content-Type': 'application/json'
69
+ }
70
+
71
+ buffered = BytesIO()
72
+ img.save(buffered, format="JPEG")
73
+ img_str = base64.b64encode(buffered.getvalue())
74
+ data = json.dumps({
75
+ "image":img_str.decode()
76
+ })
77
+ r = requests.get(url=url+"/set_img", headers=headers, data=data)
78
+ # print("r", r)
79
+ # objects
80
+ objects = objects.to_json()
81
+ objects = loads(objects)
82
+ objects = dumps(objects, indent=4)
83
+
84
+ data = json.dumps({
85
+ "objects":objects
86
+ })
87
+ requests.get(url=url+"/add_to_dataset", headers=headers, data=data)
88
+
89
+
90
+
91
+ # extracting data in json format
92
+ # data = json.loads(r.content.decode())
93
+
94
+ # print(data)
95
+ # return data['image']
96
+
97
+
98
+ import pandas as pd
99
+ from PIL import Image
100
+ import streamlit as st
101
+ from streamlit_drawable_canvas import st_canvas
102
+ import torch
103
+ import torchvision
104
+ import sys
105
+
106
+ # Specify canvas parameters in application
107
+ url = st.sidebar.text_input("Enter URL:")
108
+
109
+ drawing_mode = st.sidebar.selectbox(
110
+ "Drawing tool:",
111
+ ("freedraw", "rect", "transform", "point"),
112
+ )
113
+ stroke_width = st.sidebar.slider("Stroke width: ", 1, 25, 3)
114
+ if drawing_mode == 'point':
115
+ point_display_radius = st.sidebar.slider("Point display radius: ", 1, 25, 3)
116
+ stroke_color = st.sidebar.color_picker("Stroke color hex: ")
117
+ bg_color = st.sidebar.color_picker("Background color hex: ", "#eee")
118
+ bg_image = st.sidebar.file_uploader("Image:", type=["png", "jpg", "jpeg"])
119
+ realtime_update = st.sidebar.checkbox("Update in realtime", True)
120
+ use_mask = st.sidebar.checkbox("use last mask", True)
121
+
122
+ def reset(url):
123
+ headers = {
124
+ 'ngrok-skip-browser-warning': 'sdfsd',
125
+ 'Content-Type': 'application/json'
126
+ }
127
+ r = requests.get(url=url+"/reset", headers=headers)
128
+ st.info("Backend reseted")
129
+
130
+ def show_mask(mask, ax, random_color=False):
131
+ if random_color:
132
+ color = np.concatenate([np.random.random(3), np.array([0.6])], axis=0)
133
+ else:
134
+ color = np.array([30/255, 144/255, 255/255, 0.6])
135
+ h, w = mask.shape[-2:]
136
+ mask_image = mask.reshape(h, w, 1) * color.reshape(1, 1, -1)
137
+ ax.imshow(mask_image)
138
+
139
+ def show_points(coords, labels, ax, marker_size=375):
140
+ pos_points = coords[labels==1]
141
+ neg_points = coords[labels==0]
142
+ ax.scatter(pos_points[:, 0], pos_points[:, 1], color='green', marker='*', s=marker_size, edgecolor='white', linewidth=1.25)
143
+ ax.scatter(neg_points[:, 0], neg_points[:, 1], color='red', marker='*', s=marker_size, edgecolor='white', linewidth=1.25)
144
+
145
+ def show_box(box, ax):
146
+ x0, y0 = box[0], box[1]
147
+ w, h = box[2] - box[0], box[3] - box[1]
148
+ ax.add_patch(plt.Rectangle((x0, y0), w, h, edgecolor='green', facecolor=(0,0,0,0), lw=2))
149
+
150
+
151
+ if st.sidebar.checkbox("Show image", False) and bg_image is not None:
152
+ image = Image.open(bg_image)
153
+ image, width, height = resize_image(image)
154
+ # Create a canvas component
155
+ # width = image.size[0]
156
+ # height = image.size[1]
157
+ canvas_result = st_canvas(
158
+ fill_color="rgba(255, 165, 0, 0.3)", # Fixed fill color with some opacity
159
+ stroke_width=stroke_width,
160
+ stroke_color=stroke_color,
161
+ background_color=bg_color,
162
+ background_image=image if bg_image else None,
163
+ update_streamlit=realtime_update,
164
+ height=height,
165
+ width=width,
166
+ drawing_mode=drawing_mode,
167
+ point_display_radius=point_display_radius if drawing_mode == 'point' else 0,
168
+ display_toolbar=st.sidebar.checkbox("Display toolbar", True),
169
+ key="full_app",
170
+ )
171
+
172
+ if canvas_result.json_data is not None:
173
+ objects = pd.json_normalize(canvas_result.json_data["objects"])
174
+ for col in objects.select_dtypes(include=["object"]).columns:
175
+ objects[col] = objects[col].astype("str")
176
+ st.dataframe(objects)
177
+ # st.write(str(type(objects)))
178
+
179
+ data = None
180
+ if st.sidebar.button('Run SAM'):
181
+ data = None
182
+ data = run_sam_remote(objects, image, url, use_mask)
183
+
184
+ if data is not None:
185
+ masks = data
186
+ fig = plt.figure(figsize=(10, 10))
187
+ pil_image = image#.convert('RGB')
188
+ open_cv_image = np.array(pil_image)
189
+ open_cv_image = open_cv_image.copy()
190
+ plt.imshow(open_cv_image)
191
+ for mask in masks:
192
+ show_mask(np.array(mask), plt.gca(), random_color=True)
193
+ plt.axis('off')
194
+ st.pyplot(fig)
195
+
196
+ data = None
197
+ if st.sidebar.button('Save Data'):
198
+ data = None
199
+ save_data_remote(objects, image, url)
200
+ st.info("All data saved successfully")
201
+
202
+ if st.sidebar.button('Reset backend'):
203
+ reset(url)
204
+
205
+
requirements.txt ADDED
@@ -0,0 +1,420 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ absl-py==1.4.0
2
+ alabaster==0.7.13
3
+ albumentations==1.2.1
4
+ altair==4.2.2
5
+ anyio==3.6.2
6
+ appdirs==1.4.4
7
+ argon2-cffi==21.3.0
8
+ argon2-cffi-bindings==21.2.0
9
+ array-record==0.2.0
10
+ arviz==0.15.1
11
+ astropy==5.2.2
12
+ astunparse==1.6.3
13
+ attrs==23.1.0
14
+ audioread==3.0.0
15
+ autograd==1.5
16
+ Babel==2.12.1
17
+ backcall==0.2.0
18
+ beautifulsoup4==4.11.2
19
+ bleach==6.0.0
20
+ blinker==1.6.2
21
+ blis==0.7.9
22
+ blosc2==2.0.0
23
+ bokeh==2.4.3
24
+ branca==0.6.0
25
+ build==0.10.0
26
+ CacheControl==0.12.11
27
+ cached-property==1.5.2
28
+ cachetools==5.3.0
29
+ catalogue==2.0.8
30
+ certifi==2022.12.7
31
+ cffi==1.15.1
32
+ chardet==4.0.0
33
+ charset-normalizer==2.0.12
34
+ chex==0.1.7
35
+ click==8.1.3
36
+ cloudpickle==2.2.1
37
+ cmake==3.25.2
38
+ cmdstanpy==1.1.0
39
+ colorcet==3.0.1
40
+ colorlover==0.3.0
41
+ community==1.0.0b1
42
+ confection==0.0.4
43
+ cons==0.4.5
44
+ contextlib2==0.6.0.post1
45
+ contourpy==1.0.7
46
+ convertdate==2.4.0
47
+ cryptography==40.0.2
48
+ cufflinks==0.17.3
49
+ cvxopt==1.3.0
50
+ cvxpy==1.3.1
51
+ cycler==0.11.0
52
+ cymem==2.0.7
53
+ Cython==0.29.34
54
+ dask==2022.12.1
55
+ datascience==0.17.6
56
+ db-dtypes==1.1.1
57
+ dbus-python==1.2.16
58
+ debugpy==1.6.6
59
+ decorator==4.4.2
60
+ defusedxml==0.7.1
61
+ distributed==2022.12.1
62
+ dlib==19.24.1
63
+ dm-tree==0.1.8
64
+ docutils==0.16
65
+ dopamine-rl==4.0.6
66
+ duckdb==0.7.1
67
+ earthengine-api==0.1.350
68
+ easydict==1.10
69
+ ecos==2.0.12
70
+ editdistance==0.6.2
71
+ en-core-web-sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.5.0/en_core_web_sm-3.5.0-py3-none-any.whl#sha256=0964370218b7e1672a30ac50d72cdc6b16f7c867496f1d60925691188f4d2510
72
+ entrypoints==0.4
73
+ ephem==4.1.4
74
+ et-xmlfile==1.1.0
75
+ etils==1.2.0
76
+ etuples==0.3.8
77
+ exceptiongroup==1.1.1
78
+ fastai==2.7.12
79
+ fastcore==1.5.29
80
+ fastdownload==0.0.7
81
+ fastjsonschema==2.16.3
82
+ fastprogress==1.0.3
83
+ fastrlock==0.8.1
84
+ filelock==3.12.0
85
+ firebase-admin==5.3.0
86
+ Flask==2.2.4
87
+ flatbuffers==23.3.3
88
+ flax==0.6.9
89
+ folium==0.14.0
90
+ fonttools==4.39.3
91
+ frozendict==2.3.7
92
+ fsspec==2023.4.0
93
+ future==0.18.3
94
+ gast==0.4.0
95
+ GDAL==3.3.2
96
+ gdown==4.6.6
97
+ gensim==4.3.1
98
+ geographiclib==2.0
99
+ geopy==2.3.0
100
+ gin-config==0.5.0
101
+ gitdb==4.0.10
102
+ GitPython==3.1.31
103
+ glob2==0.7
104
+ google==2.0.3
105
+ google-api-core==2.11.0
106
+ google-api-python-client==2.84.0
107
+ google-auth==2.17.3
108
+ google-auth-httplib2==0.1.0
109
+ google-auth-oauthlib==1.0.0
110
+ google-cloud-bigquery==3.9.0
111
+ google-cloud-bigquery-storage==2.19.1
112
+ google-cloud-core==2.3.2
113
+ google-cloud-datastore==2.15.1
114
+ google-cloud-firestore==2.11.0
115
+ google-cloud-language==2.9.1
116
+ google-cloud-storage==2.8.0
117
+ google-cloud-translate==3.11.1
118
+ google-colab @ file:///colabtools/dist/google-colab-1.0.0.tar.gz#sha256=2cffc3ec301c908b14db672a79c4512e64a63a541c42b43c5b9f4a2e184be439
119
+ google-crc32c==1.5.0
120
+ google-pasta==0.2.0
121
+ google-resumable-media==2.5.0
122
+ googleapis-common-protos==1.59.0
123
+ googledrivedownloader==0.4
124
+ graphviz==0.20.1
125
+ greenlet==2.0.2
126
+ grpcio==1.54.0
127
+ grpcio-status==1.48.2
128
+ gspread==3.4.2
129
+ gspread-dataframe==3.0.8
130
+ gym==0.25.2
131
+ gym-notices==0.0.8
132
+ h5netcdf==1.1.0
133
+ h5py==3.8.0
134
+ hijri-converter==2.3.1
135
+ holidays==0.23
136
+ holoviews==1.15.4
137
+ html5lib==1.1
138
+ httpimport==1.3.0
139
+ httplib2==0.21.0
140
+ humanize==4.6.0
141
+ hyperopt==0.2.7
142
+ idna==3.4
143
+ imageio==2.25.1
144
+ imageio-ffmpeg==0.4.8
145
+ imagesize==1.4.1
146
+ imbalanced-learn==0.10.1
147
+ imgaug==0.4.0
148
+ importlib-metadata==6.6.0
149
+ importlib-resources==5.12.0
150
+ imutils==0.5.4
151
+ inflect==6.0.4
152
+ iniconfig==2.0.0
153
+ intel-openmp==2023.1.0
154
+ ipykernel==5.5.6
155
+ ipython==7.34.0
156
+ ipython-genutils==0.2.0
157
+ ipython-sql==0.4.1
158
+ ipywidgets==7.7.1
159
+ itsdangerous==2.1.2
160
+ jax==0.4.8
161
+ jaxlib @ https://storage.googleapis.com/jax-releases/cuda11/jaxlib-0.4.7+cuda11.cudnn86-cp310-cp310-manylinux2014_x86_64.whl#sha256=d8e211ffbd51c1c399b3d78d19c22d8f1d66a0b1b2f96408801069fa1999c17c
162
+ jieba==0.42.1
163
+ Jinja2==3.1.2
164
+ joblib==1.2.0
165
+ jsonpickle==3.0.1
166
+ jsonschema==4.3.3
167
+ jupyter-client==6.1.12
168
+ jupyter-console==6.1.0
169
+ jupyter-server==1.24.0
170
+ jupyter_core==5.3.0
171
+ jupyterlab-pygments==0.2.2
172
+ jupyterlab-widgets==3.0.7
173
+ kaggle==1.5.13
174
+ keras==2.12.0
175
+ kiwisolver==1.4.4
176
+ korean-lunar-calendar==0.3.1
177
+ langcodes==3.3.0
178
+ lazy_loader==0.2
179
+ libclang==16.0.0
180
+ librosa==0.10.0.post2
181
+ lightgbm==3.3.5
182
+ lit==16.0.3
183
+ llvmlite==0.39.1
184
+ locket==1.0.0
185
+ logical-unification==0.4.5
186
+ LunarCalendar==0.0.9
187
+ lxml==4.9.2
188
+ Markdown==3.4.3
189
+ markdown-it-py==2.2.0
190
+ MarkupSafe==2.1.2
191
+ matplotlib==3.7.1
192
+ matplotlib-inline==0.1.6
193
+ matplotlib-venn==0.11.9
194
+ mdurl==0.1.2
195
+ miniKanren==1.0.3
196
+ missingno==0.5.2
197
+ mistune==0.8.4
198
+ mizani==0.8.1
199
+ mkl==2019.0
200
+ ml-dtypes==0.1.0
201
+ mlxtend==0.14.0
202
+ more-itertools==9.1.0
203
+ moviepy==1.0.3
204
+ mpmath==1.3.0
205
+ msgpack==1.0.5
206
+ multipledispatch==0.6.0
207
+ multitasking==0.0.11
208
+ murmurhash==1.0.9
209
+ music21==8.1.0
210
+ natsort==8.3.1
211
+ nbclient==0.7.4
212
+ nbconvert==6.5.4
213
+ nbformat==5.8.0
214
+ nest-asyncio==1.5.6
215
+ networkx==3.1
216
+ nibabel==3.0.2
217
+ nltk==3.8.1
218
+ notebook==6.4.8
219
+ numba==0.56.4
220
+ numexpr==2.8.4
221
+ numpy==1.22.4
222
+ oauth2client==4.1.3
223
+ oauthlib==3.2.2
224
+ opencv-contrib-python==4.7.0.72
225
+ opencv-python==4.7.0.72
226
+ opencv-python-headless==4.7.0.72
227
+ openpyxl==3.0.10
228
+ opt-einsum==3.3.0
229
+ optax==0.1.5
230
+ orbax-checkpoint==0.2.1
231
+ osqp==0.6.2.post8
232
+ packaging==23.1
233
+ palettable==3.3.3
234
+ pandas==1.5.3
235
+ pandas-datareader==0.10.0
236
+ pandas-gbq==0.17.9
237
+ pandocfilters==1.5.0
238
+ panel==0.14.4
239
+ param==1.13.0
240
+ parso==0.8.3
241
+ partd==1.4.0
242
+ pathlib==1.0.1
243
+ pathy==0.10.1
244
+ patsy==0.5.3
245
+ pexpect==4.8.0
246
+ pickleshare==0.7.5
247
+ Pillow==8.4.0
248
+ pip-tools==6.13.0
249
+ platformdirs==3.3.0
250
+ plotly==5.13.1
251
+ plotnine==0.10.1
252
+ pluggy==1.0.0
253
+ polars==0.17.3
254
+ pooch==1.6.0
255
+ portpicker==1.3.9
256
+ prefetch-generator==1.0.3
257
+ preshed==3.0.8
258
+ prettytable==0.7.2
259
+ proglog==0.1.10
260
+ progressbar2==4.2.0
261
+ prometheus-client==0.16.0
262
+ promise==2.3
263
+ prompt-toolkit==3.0.38
264
+ prophet==1.1.2
265
+ proto-plus==1.22.2
266
+ protobuf==3.20.3
267
+ psutil==5.9.5
268
+ psycopg2==2.9.6
269
+ ptyprocess==0.7.0
270
+ py-cpuinfo==9.0.0
271
+ py4j==0.10.9.7
272
+ pyarrow==9.0.0
273
+ pyasn1==0.5.0
274
+ pyasn1-modules==0.3.0
275
+ pycocotools==2.0.6
276
+ pycparser==2.21
277
+ pyct==0.5.0
278
+ pydantic==1.10.7
279
+ pydata-google-auth==1.7.0
280
+ pydeck==0.8.1b0
281
+ pydot==1.4.2
282
+ pydot-ng==2.0.0
283
+ pydotplus==2.0.2
284
+ PyDrive==1.3.1
285
+ pyerfa==2.0.0.3
286
+ pygame==2.3.0
287
+ Pygments==2.14.0
288
+ PyGObject==3.36.0
289
+ pymc==5.1.2
290
+ PyMeeus==0.5.12
291
+ Pympler==1.0.1
292
+ pymystem3==0.2.0
293
+ PyOpenGL==3.1.6
294
+ pyparsing==3.0.9
295
+ pyproject_hooks==1.0.0
296
+ pyrsistent==0.19.3
297
+ PySocks==1.7.1
298
+ pytensor==2.10.1
299
+ pytest==7.2.2
300
+ python-apt==0.0.0
301
+ python-dateutil==2.8.2
302
+ python-louvain==0.16
303
+ python-slugify==8.0.1
304
+ python-utils==3.5.2
305
+ pytz==2022.7.1
306
+ pytz-deprecation-shim==0.1.0.post0
307
+ pyviz-comms==2.2.1
308
+ PyWavelets==1.4.1
309
+ PyYAML==6.0
310
+ pyzmq==23.2.1
311
+ qdldl==0.1.7
312
+ qudida==0.0.4
313
+ regex==2022.10.31
314
+ requests==2.27.1
315
+ requests-oauthlib==1.3.1
316
+ requests-unixsocket==0.2.0
317
+ requirements-parser==0.5.0
318
+ rich==13.3.4
319
+ rpy2==3.5.5
320
+ rsa==4.9
321
+ scikit-image==0.19.3
322
+ scikit-learn==1.2.2
323
+ scipy==1.10.1
324
+ scs==3.2.3
325
+ seaborn==0.12.2
326
+ Send2Trash==1.8.0
327
+ shapely==2.0.1
328
+ six==1.16.0
329
+ sklearn-pandas==2.2.0
330
+ smart-open==6.3.0
331
+ smmap==5.0.0
332
+ sniffio==1.3.0
333
+ snowballstemmer==2.2.0
334
+ sortedcontainers==2.4.0
335
+ soundfile==0.12.1
336
+ soupsieve==2.4.1
337
+ soxr==0.3.5
338
+ spacy==3.5.2
339
+ spacy-legacy==3.0.12
340
+ spacy-loggers==1.0.4
341
+ Sphinx==3.5.4
342
+ sphinxcontrib-applehelp==1.0.4
343
+ sphinxcontrib-devhelp==1.0.2
344
+ sphinxcontrib-htmlhelp==2.0.1
345
+ sphinxcontrib-jsmath==1.0.1
346
+ sphinxcontrib-qthelp==1.0.3
347
+ sphinxcontrib-serializinghtml==1.1.5
348
+ SQLAlchemy==2.0.10
349
+ sqlparse==0.4.4
350
+ srsly==2.4.6
351
+ statsmodels==0.13.5
352
+ streamlit==1.22.0
353
+ streamlit-drawable-canvas==0.9.2
354
+ sympy==1.11.1
355
+ tables==3.8.0
356
+ tabulate==0.8.10
357
+ tblib==1.7.0
358
+ tenacity==8.2.2
359
+ tensorboard==2.12.2
360
+ tensorboard-data-server==0.7.0
361
+ tensorboard-plugin-wit==1.8.1
362
+ tensorflow==2.12.0
363
+ tensorflow-datasets==4.9.2
364
+ tensorflow-estimator==2.12.0
365
+ tensorflow-gcs-config==2.12.0
366
+ tensorflow-hub==0.13.0
367
+ tensorflow-io-gcs-filesystem==0.32.0
368
+ tensorflow-metadata==1.13.1
369
+ tensorflow-probability==0.19.0
370
+ tensorstore==0.1.36
371
+ termcolor==2.3.0
372
+ terminado==0.17.1
373
+ text-unidecode==1.3
374
+ textblob==0.17.1
375
+ tf-slim==1.1.0
376
+ thinc==8.1.9
377
+ threadpoolctl==3.1.0
378
+ tifffile==2023.4.12
379
+ tinycss2==1.2.1
380
+ toml==0.10.2
381
+ tomli==2.0.1
382
+ toolz==0.12.0
383
+ torch @ https://download.pytorch.org/whl/cu118/torch-2.0.0%2Bcu118-cp310-cp310-linux_x86_64.whl#sha256=4b690e2b77f21073500c65d8bb9ea9656b8cb4e969f357370bbc992a3b074764
384
+ torchaudio @ https://download.pytorch.org/whl/cu118/torchaudio-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl#sha256=19c4ef9012324c4fb80ea66934551b7807d97148c28538e2eabafe16ab50e91c
385
+ torchdata==0.6.0
386
+ torchsummary==1.5.1
387
+ torchtext==0.15.1
388
+ torchvision @ https://download.pytorch.org/whl/cu118/torchvision-0.15.1%2Bcu118-cp310-cp310-linux_x86_64.whl#sha256=9a679fa37a741018c804234693bbac3d487fb3dd55ee73f6b33677b177c8c07a
389
+ tornado==6.3.1
390
+ tqdm==4.65.0
391
+ traitlets==5.7.1
392
+ triton==2.0.0
393
+ tweepy==4.13.0
394
+ typer==0.7.0
395
+ types-setuptools==67.7.0.2
396
+ typing_extensions==4.5.0
397
+ tzdata==2023.3
398
+ tzlocal==4.3
399
+ uritemplate==4.1.1
400
+ urllib3==1.26.15
401
+ validators==0.20.0
402
+ vega-datasets==0.9.0
403
+ wasabi==1.1.1
404
+ watchdog==3.0.0
405
+ wcwidth==0.2.6
406
+ webcolors==1.13
407
+ webencodings==0.5.1
408
+ websocket-client==1.5.1
409
+ Werkzeug==2.3.0
410
+ widgetsnbextension==3.6.4
411
+ wordcloud==1.8.2.2
412
+ wrapt==1.14.1
413
+ xarray==2022.12.0
414
+ xarray-einstats==0.5.1
415
+ xgboost==1.7.5
416
+ xlrd==2.0.1
417
+ yellowbrick==1.5
418
+ yfinance==0.2.18
419
+ zict==3.0.0
420
+ zipp==3.15.0