tap-adql-sandbox


Nametap-adql-sandbox JSON
Version 0.8.1 PyPI version JSON
download
home_pagehttps://github.com/retifrav/tap-adql-sandbox
SummaryA sandbox application for executing ADQL queries via TAP interface
upload_time2024-08-23 12:27:10
maintainerNone
docs_urlNone
authorretif
requires_python>=3.6
licenseNone
keywords tap adql gui astronomy astrophysics cosmology science
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # TAP ADQL sandbox

<!-- MarkdownTOC -->

- [About](#about)
    - [Demonstration](#demonstration)
- [Installing](#installing)
    - [From PyPI](#from-pypi)
    - [From sources](#from-sources)
- [Running](#running)
- [Platforms](#platforms)
- [Known problems](#known-problems)
    - [Application tries to connect to remote hosts on startup and sometimes crashes](#application-tries-to-connect-to-remote-hosts-on-startup-and-sometimes-crashes)
    - [Application crashes when query has too many columns](#application-crashes-when-query-has-too-many-columns)
    - [Queries might fail with UnicodeDecodeError](#queries-might-fail-with-unicodedecodeerror)
- [3rd-party](#3rd-party)
    - [Dependencies](#dependencies)
    - [Resources](#resources)

<!-- /MarkdownTOC -->

## About

A sandbox application for executing ADQL queries via TAP interface of various data sources, such as astronomical databases. Essentially, it's just a GUI for [PyVO](https://pypi.org/project/pyvo/).

![TAP ADQL sandbox application window](https://raw.githubusercontent.com/retifrav/tap-adql-sandbox/master/misc/screenshot-main-macos.png "TAP ADQL sandbox")

More details in [this article](https://decovar.dev/blog/2022/02/26/astronomy-databases-tap-adql/).

### Demonstration

https://user-images.githubusercontent.com/6904927/154367260-db2dc02c-ee88-4fe2-b500-cae14d51bd08.mp4

## Installing

### From PyPI

``` sh
$ pip install tap-adql-sandbox
```

### From sources

``` sh
$ cd /path/to/repository/
$ pip install ./
```

or:

``` sh
$ cd /path/to/repository/
$ python -m build
$ pip install ./dist/tap_adql_sandbox-VERSION-py3-none-any.whl
```

## Running

``` sh
$ tap-adql-sandbox --help
```

## Platforms

Tested on:

- Mac OS:
    + 11.6.4, Intel
    + 12.2.1, Apple silicon
- Windows:
    + 10
    + 11
- GNU/Linux:
    + Ubuntu 20.04

## Known problems

### Application tries to connect to remote hosts on startup and sometimes crashes

Sometimes when you are just launching the application, so you didn't even have a chance to execute any queries, you might notice that it tries to reach various remote hosts on the internet, such as `obspm.fr`, `ietf.org` or probably others.

This is because of the [Astropy](https://astropy.org) package, which is an indirect dependency through PyVO, which is a direct dependency of this project. Specifically, it's the hosts listed in [this file](https://github.com/astropy/astropy/blob/main/astropy/utils/iers/iers.py). Looks harmless enough, apparently just updating some astronomical data.

Denying access to these hosts might lead to the application crash, because Astropy doesn't handle such situation properly:

```
AttributeError: module 'IPython.utils.io' has no attribute 'stdout'
```

If you get the application crashing even when access to those is allowed, try to update the Astropy (*and probably also PyVO*) package:

``` sh
$ pip install astropy -U
```

I had this problem with Astropy v4.2, and it was gone after updating to Astropy v5.1. Or perhaps the problem isn't really gone, but the new package version just came with updated data, so for now there is no need for updating.

### Application crashes when query has too many columns

If your query/request has a lot of columns in `SELECT`, the results table [might not have](https://github.com/retifrav/tap-adql-sandbox/issues/8) visible contents, or the application [might just crash](https://github.com/retifrav/tap-adql-sandbox/issues/14).

### Queries might fail with UnicodeDecodeError

If query results from a TAP service contain non-ASCII symbols, then PyVO will raise [an exception](https://github.com/retifrav/tap-adql-sandbox/issues/19). The application won't crash, but you won't get query results either.

## 3rd-party

### Dependencies

- Python `3.6` or later (*should work with `3.6`, but the oldest tested version is actually `3.7`*)
- [Dear PyGui](https://pypi.org/project/dearpygui/) - application window and UI controls
- [PyVO](https://pypi.org/project/pyvo/) - handling TAP ADQL requests
- [Astroquery](https://pypi.org/project/astroquery/) - looking up IDs in Simbad
- [pandas](https://pypi.org/project/pandas/) - processing results and saving to pickle
- [tabulate](https://pypi.org/project/tabulate/) - printing results to stdout (*with `--debug`*)
- transitive (*dependencies of dependencies*):
    + [NumPy](https://pypi.org/project/numpy/) comes through Astroquery(?), and at the moment it will only work with versions before `2.0.0`, the last tested version is `1.26.4`

### Resources

- [JetBrains Mono](https://www.jetbrains.com/lp/mono/) font
- [an icon](https://github.com/retifrav/tap-adql-sandbox/tree/master/src/tap_adql_sandbox/icons) of unknown origin

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/retifrav/tap-adql-sandbox",
    "name": "tap-adql-sandbox",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "tap, adql, gui, astronomy, astrophysics, cosmology, science",
    "author": "retif",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/3b/77/791c479e5c359708d3f7d8734d6fcbc48441f7a68a7b5b6243dbca709fbe/tap_adql_sandbox-0.8.1.tar.gz",
    "platform": null,
    "description": "# TAP ADQL sandbox\n\n<!-- MarkdownTOC -->\n\n- [About](#about)\n    - [Demonstration](#demonstration)\n- [Installing](#installing)\n    - [From PyPI](#from-pypi)\n    - [From sources](#from-sources)\n- [Running](#running)\n- [Platforms](#platforms)\n- [Known problems](#known-problems)\n    - [Application tries to connect to remote hosts on startup and sometimes crashes](#application-tries-to-connect-to-remote-hosts-on-startup-and-sometimes-crashes)\n    - [Application crashes when query has too many columns](#application-crashes-when-query-has-too-many-columns)\n    - [Queries might fail with UnicodeDecodeError](#queries-might-fail-with-unicodedecodeerror)\n- [3rd-party](#3rd-party)\n    - [Dependencies](#dependencies)\n    - [Resources](#resources)\n\n<!-- /MarkdownTOC -->\n\n## About\n\nA sandbox application for executing ADQL queries via TAP interface of various data sources, such as astronomical databases. Essentially, it's just a GUI for [PyVO](https://pypi.org/project/pyvo/).\n\n![TAP ADQL sandbox application window](https://raw.githubusercontent.com/retifrav/tap-adql-sandbox/master/misc/screenshot-main-macos.png \"TAP ADQL sandbox\")\n\nMore details in [this article](https://decovar.dev/blog/2022/02/26/astronomy-databases-tap-adql/).\n\n### Demonstration\n\nhttps://user-images.githubusercontent.com/6904927/154367260-db2dc02c-ee88-4fe2-b500-cae14d51bd08.mp4\n\n## Installing\n\n### From PyPI\n\n``` sh\n$ pip install tap-adql-sandbox\n```\n\n### From sources\n\n``` sh\n$ cd /path/to/repository/\n$ pip install ./\n```\n\nor:\n\n``` sh\n$ cd /path/to/repository/\n$ python -m build\n$ pip install ./dist/tap_adql_sandbox-VERSION-py3-none-any.whl\n```\n\n## Running\n\n``` sh\n$ tap-adql-sandbox --help\n```\n\n## Platforms\n\nTested on:\n\n- Mac OS:\n    + 11.6.4, Intel\n    + 12.2.1, Apple silicon\n- Windows:\n    + 10\n    + 11\n- GNU/Linux:\n    + Ubuntu 20.04\n\n## Known problems\n\n### Application tries to connect to remote hosts on startup and sometimes crashes\n\nSometimes when you are just launching the application, so you didn't even have a chance to execute any queries, you might notice that it tries to reach various remote hosts on the internet, such as `obspm.fr`, `ietf.org` or probably others.\n\nThis is because of the [Astropy](https://astropy.org) package, which is an indirect dependency through PyVO, which is a direct dependency of this project. Specifically, it's the hosts listed in [this file](https://github.com/astropy/astropy/blob/main/astropy/utils/iers/iers.py). Looks harmless enough, apparently just updating some astronomical data.\n\nDenying access to these hosts might lead to the application crash, because Astropy doesn't handle such situation properly:\n\n```\nAttributeError: module 'IPython.utils.io' has no attribute 'stdout'\n```\n\nIf you get the application crashing even when access to those is allowed, try to update the Astropy (*and probably also PyVO*) package:\n\n``` sh\n$ pip install astropy -U\n```\n\nI had this problem with Astropy v4.2, and it was gone after updating to Astropy v5.1. Or perhaps the problem isn't really gone, but the new package version just came with updated data, so for now there is no need for updating.\n\n### Application crashes when query has too many columns\n\nIf your query/request has a lot of columns in `SELECT`, the results table [might not have](https://github.com/retifrav/tap-adql-sandbox/issues/8) visible contents, or the application [might just crash](https://github.com/retifrav/tap-adql-sandbox/issues/14).\n\n### Queries might fail with UnicodeDecodeError\n\nIf query results from a TAP service contain non-ASCII symbols, then PyVO will raise [an exception](https://github.com/retifrav/tap-adql-sandbox/issues/19). The application won't crash, but you won't get query results either.\n\n## 3rd-party\n\n### Dependencies\n\n- Python `3.6` or later (*should work with `3.6`, but the oldest tested version is actually `3.7`*)\n- [Dear PyGui](https://pypi.org/project/dearpygui/) - application window and UI controls\n- [PyVO](https://pypi.org/project/pyvo/) - handling TAP ADQL requests\n- [Astroquery](https://pypi.org/project/astroquery/) - looking up IDs in Simbad\n- [pandas](https://pypi.org/project/pandas/) - processing results and saving to pickle\n- [tabulate](https://pypi.org/project/tabulate/) - printing results to stdout (*with `--debug`*)\n- transitive (*dependencies of dependencies*):\n    + [NumPy](https://pypi.org/project/numpy/) comes through Astroquery(?), and at the moment it will only work with versions before `2.0.0`, the last tested version is `1.26.4`\n\n### Resources\n\n- [JetBrains Mono](https://www.jetbrains.com/lp/mono/) font\n- [an icon](https://github.com/retifrav/tap-adql-sandbox/tree/master/src/tap_adql_sandbox/icons) of unknown origin\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A sandbox application for executing ADQL queries via TAP interface",
    "version": "0.8.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/retifrav/tap-adql-sandbox/issues",
        "Changelog": "https://github.com/retifrav/tap-adql-sandbox/blob/master/changelog.md",
        "Homepage": "https://github.com/retifrav/tap-adql-sandbox"
    },
    "split_keywords": [
        "tap",
        " adql",
        " gui",
        " astronomy",
        " astrophysics",
        " cosmology",
        " science"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "38c6ac3ac1093117495e63c5ec37bd68f3791c15c0b9862c407388ac1c6c211e",
                "md5": "286bed661c601dd67d0464d0e64cfd0b",
                "sha256": "d623655aa6666fe1a89c538a83b3cc7fadfdfca57bcf57a82b7949db2d5fe247"
            },
            "downloads": -1,
            "filename": "tap_adql_sandbox-0.8.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "286bed661c601dd67d0464d0e64cfd0b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 178939,
            "upload_time": "2024-08-23T12:27:08",
            "upload_time_iso_8601": "2024-08-23T12:27:08.734706Z",
            "url": "https://files.pythonhosted.org/packages/38/c6/ac3ac1093117495e63c5ec37bd68f3791c15c0b9862c407388ac1c6c211e/tap_adql_sandbox-0.8.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3b77791c479e5c359708d3f7d8734d6fcbc48441f7a68a7b5b6243dbca709fbe",
                "md5": "f386dcf20b52beca3d7eea1c1f8363d7",
                "sha256": "7d8a992674315dcebe08aa3cd16f7436c5a2c84eae7285f5d3c87209d126744b"
            },
            "downloads": -1,
            "filename": "tap_adql_sandbox-0.8.1.tar.gz",
            "has_sig": false,
            "md5_digest": "f386dcf20b52beca3d7eea1c1f8363d7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 182952,
            "upload_time": "2024-08-23T12:27:10",
            "upload_time_iso_8601": "2024-08-23T12:27:10.532478Z",
            "url": "https://files.pythonhosted.org/packages/3b/77/791c479e5c359708d3f7d8734d6fcbc48441f7a68a7b5b6243dbca709fbe/tap_adql_sandbox-0.8.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-23 12:27:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "retifrav",
    "github_project": "tap-adql-sandbox",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "tap-adql-sandbox"
}
        
Elapsed time: 0.30040s