retifrav / tap-adql-sandbox Goto Github PK
View Code? Open in Web Editor NEWGUI application for executing ADQL queries via TAP interface
License: GNU General Public License v3.0
GUI application for executing ADQL queries via TAP interface
License: GNU General Public License v3.0
After About dialog is shown, if one clicks on about that...
, the About Dear PyGui window will appear, but the original dialog won't be closed properly (though it will disappear from the screen). Exiting the application in this case with result in segmentation fault:
$ tap-adql-sandbox
Segmentation fault: 11
$ echo $?
139
If one opens original About dialog again and closes it using the Close
button, then the application exits normally. But anyway, need to add closing call before opening About Dear PyGui window.
With this query to https://exoplanetarchive.ipac.caltech.edu/TAP:
SELECT *
FROM ps
WHERE pl_name = 'Kepler-102 b' AND pl_orbper IS NOT NULL
ORDER BY pl_pubdate DESC
the results table is just empty, although it has the correct number of rows (9):
Queries work now, but results are printed to the console (in --debug
mode). Need to add one last missing thing from the major functionality: form query results into an ImGui table.
It will be convenient to have a keyboard shortcut, such as Ctrl/Command + Enter
to trigger the Execute query
button.
Current application icon is a bit too overloaded (and dark) for such a small picture. Need to find something with simpler imagery and colors. And preferably under an open license.
The loading indicator hides as soon as query executes, but if query results has a lot of data, then generating the table from it can take some time, so it's too early to hide the indicator and show results block.
Need to move the hiding the indicator call to after the table is generated.
With this query to http://voparis-tap-planeto.obspm.fr/tap:
SELECT *
FROM exoplanet.epn_core
WHERE star_name = 'Kepler-106'
the application crashes with segmentation fault:
$ PYTHONFAULTHANDLER=1 python -m tap_adql_sandbox
Fatal Python error: Segmentation fault
Thread 0x000070000ce9a000 (most recent call first):
<no Python frame>
Current thread 0x000000011245ee00 (most recent call first):
File "/usr/local/lib/python3.9/site-packages/dearpygui/dearpygui.py", line 102 in start_dearpygui
File "/Users/vasya/code/python/tap-adql-sandbox/src/tap_adql_sandbox/__main__.py", line 520 in main
File "/Users/vasya/code/python/tap-adql-sandbox/src/tap_adql_sandbox/__main__.py", line 526 in <module>
File "/usr/local/Cellar/[email protected]/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87 in _run_code
File "/usr/local/Cellar/[email protected]/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 197 in _run_module_as_main
Segmentation fault: 11
Some Mac users (only those on ARM?) set right-click functionality on their touchpad to trigger on single click in one of the corners. In that case the copying cell content action/handler does not trigger.
I tried to reproduce it, but it works fine with corner tap on my Intel-based Mac, so the problem might be specific to ARM-based Macs.
Need to find what event is actually fired and react to that one too, or if it's impossible to catch, then perhaps just make it possible to copy cell content with double clicking - that one for sure should work fine.
Add possibility for user to right-click on a results table cell to copy its value to clipboard.
Add a menu item for saving latest query results to a pickle file.
Users, especially those unfamiliar with SQL, will benefit from having more query examples:
If results table has more than certain amount of columns and rows, tagging cells might get duplicate tag names, with results in the following exception:
Exception:
Error: [1000]
Command: add alias
Item: 0
Label: Not found
Item Type: Unknown
Message: Alias already exists
Hey, it looks like you may have an interesting app for the Dear PyGui showcase. If you would like your app to be featured there, could you make a screenshot or GIF so that we can add it there?
Add examples for queries to exoplanet.eu and NASA databases. User can choose them from the Help menu, and they will prefill the service and query input fields.
Need to add more query examples to the default library. For instance, the current NASA example is too complex, and while it is a great example for the particular purpose that it demonstrates, most of the time users would prefer to get something similar to the current exoplanets.eu example - just a simple SELECT query for one parameter and with trivial WHERE clause.
Cyrillic symbols are displayed as ?
, need to add dpg.mvFontRangeHint_Cyrillic
hint.
Would be nice to have a queries log: what queries were executed and what were results.
Right now all that is printed to stdout
(in debug mode), but it might be more convenient to have a separate GUI window for this. It would be enough to just print stuff as plain text there, query results can be nicely formatted with tabulate.
Simbad has a functionality for getting object IDs from different databases, for example here are results for Kepler 11.
It will be convenient to have this querying in a dedicated window.
Tabulate output defaults to g
(?) format, which is okay in most cases, but sometimes one might want a higher precision.
Need to add a CLI option for setting desired format for tabulate's floatfmt
.
For now it will be used only in debug output, but later it will likely also apply to the query log (#11).
Example query:
http://voparis-tap-planeto.obspm.fr/tap
SELECT table_name, description
FROM tap_schema.tables
WHERE table_type = 'table'
ORDER BY table_name
In the results the meteor_showers.epn_core
description cell is overflown vertically, which also prevents scrolling down below it:
Looks like an upstream issue. I can reproduce this with Dear PyGui 1.4.0
, 1.5.0
and 1.7.1
on Mac OS and Windows.
Some queries, such as this one:
-- https://gea.esac.esa.int/tap-server/tap
SELECT table_name, description
FROM tap_schema.tables
WHERE table_name = 'gaiadr2.dr1_neighbourhood'
might fail with the following error:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 1317: ordinal not in range(128)
This is an bug in PyVO.
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.