bluenote10 / tabloo Goto Github PK
View Code? Open in Web Editor NEWMinimalistic dashboard app for visualizing tabular data
License: MIT License
Minimalistic dashboard app for visualizing tabular data
License: MIT License
I'm trying to visualize a relatively big dataset (634785 x 282) with your tool, but the plot just won't show up.
I can see the python console is running from the task manager, however even after a long long while (when python is not using CPU any more), the plot won't show (even the tool bar as well).
Using matplotlib is pretty fast for my dataset, but it's not convenient to switch over columns. So I guess there's efficiency issue here.
[root@fc30 tabloo]# pipenv install --dev tabloo
Creating a virtualenv for this project…
Pipfile: /root/tabloo/Pipfile
Using /usr/bin/python3.7 (3.7.4) to create virtualenv…
⠇ Creating virtual environment...Using base prefix '/usr'
New python executable in /root/.local/share/virtualenvs/tabloo-yxMSgON9/bin/python3.7
Also creating executable in /root/.local/share/virtualenvs/tabloo-yxMSgON9/bin/python
Installing setuptools, pip, wheel...done.
Running virtualenv with interpreter /usr/bin/python3.7
✔ Successfully created virtual environment!
Virtualenv location: /root/.local/share/virtualenvs/tabloo-yxMSgON9
Installing tabloo…
Adding tabloo to Pipfile's [dev-packages]…
✔ Installation Succeeded
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
✔ Success!
Locking [packages] dependencies…
✔ Success!
Updated Pipfile.lock (bed5cc)!
Installing dependencies from Pipfile.lock (bed5cc)…
An error occurred while installing tabloo==0.0.5 --hash=sha256:756891169475ba39db2ed9446482c4223640d7409c7b06eca2b0e597875ecdce --hash=sha256:85971b0ca68a3fd473148f6e8ac38af7e66ceb01b432de61c7b2df848393dd7f --hash=sha256:756891169475ba39db2ed9446482c4223640d7409c7b06eca2b0e597875ecdce --hash=sha256:85971b0ca68a3fd473148f6e8ac38af7e66ceb01b432de61c7b2df848393dd7f! Will try again.
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 13/13 — 00:00:20
Installing initially failed dependencies…
[pipenv.exceptions.InstallError]: ['Collecting tabloo==0.0.5 (from -r /tmp/pipenv-eg3n439t-requirements/pipenv-7bbj74nv-requirement.txt (line 1))', ' Using cached https://files.pythonhosted.org/packages/bb/75/9c7008af9a7e3f006872d8ee3c3421c1fe0caff2f196b746f5b88924775e/tabloo-0.0.5.tar.gz']
[pipenv.exceptions.InstallError]: ['ERROR: Command errored out with exit status 1:', ' command: /root/.local/share/virtualenvs/tabloo-yxMSgON9/bin/python3.7 -c \'import sys, setuptools, tokenize; sys.argv[0] = \'"\'"\'/tmp/pip-install-nooms985/tabloo/setup.py\'"\'"\'; __file__=\'"\'"\'/tmp/pip-install-nooms985/tabloo/setup.py\'"\'"\';f=getattr(tokenize, \'"\'"\'open\'"\'"\', open)(__file__);code=f.read().replace(\'"\'"\'\\r\\n\'"\'"\', \'"\'"\'\\n\'"\'"\');f.close();exec(compile(code, __file__, \'"\'"\'exec\'"\'"\'))\' egg_info --egg-base pip-egg-info', ' cwd: /tmp/pip-install-nooms985/tabloo/', ' Complete output (5 lines):', ' Traceback (most recent call last):', ' File "<string>", line 1, in <module>', ' File "/tmp/pip-install-nooms985/tabloo/setup.py", line 3, in <module>', ' with open("requirements.txt") as f:', " FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt'", ' ----------------------------------------', 'ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.']
ERROR: ERROR: Package installation failed...
☤ ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/1 — 0
When trying to show a multi index dataframe, it renders only the column values and not the multi index levels.
Is there a way I can get the multi index levels to show on tabloo as well?
I really like the idea behind your library, and it has a lot of potential to be really useful.
One thing that is limiting at the moment is that if you open a client to look at a DF, subsequent calls just open another client looking at the same data. Ideal behaviour would be just iterate the port and open another client for the second dataframe in a new tab. Exactly the same way that Jupyter does if you already have an instance running.
Good luck with the project and thanks!
When I click on plot I get the following error message:
Any idea why is that? There are some nans / string values in the dataframe but the columns I selected should all be numeric.
Traceback (most recent call last): File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app response = self.full_dispatch_request() File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request rv = self.handle_user_exception(e) File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/flask/app.py", line 1820, in handle_user_exception reraise(exc_type, exc_value, tb) File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise raise value File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request rv = self.dispatch_request() File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/tabloo/server.py", line 98, in get_data filter, sort_column, sort_kind, page, pagination_size)) File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/tabloo/server.py", line 66, in json_response response = make_response(to_json(data)) File "/home/username/anaconda3/envs/hist/lib/python3.7/site-packages/tabloo/backend.py", line 33, in to_json return json.dumps(data, default=converter, allow_nan=False) File "/home/username/anaconda3/envs/hist/lib/python3.7/json/__init__.py", line 238, in dumps **kw).encode(obj) File "/home/username/anaconda3/envs/hist/lib/python3.7/json/encoder.py", line 199, in encode chunks = self.iterencode(o, _one_shot=True) File "/home/username/anaconda3/envs/hist/lib/python3.7/json/encoder.py", line 257, in iterencode return _iterencode(o, 0) ValueError: Out of range float values are not JSON compliant
wrong thread
For some reason Python kernel continues to be busy even after I close the chrome tab that contains the dataframe I wanted to view. I basically have to restart the kernel every time I use tabloo.show because it does not stop automatically when I close the viewer.
Any way to solve this? If it helps, I'm on windows.
I was wondering if you have any examples, or have used this tool within a Jupyter Notebook?
I'm trying to use Tabloo from a Jupyter Notebook. When trying to use it to view a Pandas DataFrame, I get this stacktrace:
'FLASK_ENV' is deprecated and will not be used in Flask 2.3. Use 'FLASK_DEBUG' instead.
'FLASK_ENV' is deprecated and will not be used in Flask 2.3. Use 'FLASK_DEBUG' instead.
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Input In [9], in <module>
----> 1 tabloo.show(df_bikeride)
File ~/miniconda3/lib/python3.9/site-packages/tabloo/tabloo.py:33, in show(df, open_browser, server_port, server_logging, debug)
10 def show(
11 df,
12 open_browser=True,
(...)
15 debug=False,
16 ):
17 """
18 Runs a Tabloo app on a given dataframe.
19
(...)
31 :return:
32 """
---> 33 server.serve(
34 df=df,
35 open_browser=open_browser,
36 server_port=server_port,
37 server_logging=server_logging,
38 debug=debug,
39 )
File ~/miniconda3/lib/python3.9/site-packages/tabloo/server.py:128, in serve(df, open_browser, server_port, server_logging, debug)
125 if open_browser:
126 threading.Timer(0.25, lambda: webbrowser.open(url)).start()
--> 128 app.run(
129 port=server_port,
130 debug=debug,
131 use_reloader=debug,
132 processes=1,
133 threaded=False,
134 )
File ~/miniconda3/lib/python3.9/site-packages/flask/app.py:1188, in Flask.run(self, host, port, debug, load_dotenv, **options)
1185 from werkzeug.serving import run_simple
1187 try:
-> 1188 run_simple(t.cast(str, host), port, self, **options)
1189 finally:
1190 # reset the first request information if the development server
1191 # reset normally. This makes it possible to restart the server
1192 # without reloader and that stuff from an interactive shell.
1193 self._got_first_request = False
File ~/miniconda3/lib/python3.9/site-packages/werkzeug/serving.py:1069, in run_simple(hostname, port, application, use_reloader, use_debugger, use_evalex, extra_files, exclude_patterns, reloader_interval, reloader_type, threaded, processes, request_handler, static_files, passthrough_errors, ssl_context)
1067 os.environ["WERKZEUG_SERVER_FD"] = str(fd)
1068 else:
-> 1069 fd = int(os.environ["WERKZEUG_SERVER_FD"])
1071 srv = make_server(
1072 hostname,
1073 port,
(...)
1080 fd=fd,
1081 )
1083 if not is_running_from_reloader():
File ~/miniconda3/lib/python3.9/os.py:679, in _Environ.__getitem__(self, key)
676 value = self._data[self.encodekey(key)]
677 except KeyError:
678 # raise KeyError with the original key value
--> 679 raise KeyError(key) from None
680 return self.decodevalue(value)
KeyError: 'WERKZEUG_SERVER_FD'
I haven't been able to find any werkzeug
dependency in tabloo. I'm using version 2.2.2.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.